0
|
1 |
#======================================================================
|
|
2 |
# C O V S R T _ O L D . P L
|
|
3 |
# doc: Wed Feb 24 17:35:07 1999
|
|
4 |
# dlm: Sun Sep 26 18:42:48 1999
|
|
5 |
# (c) 1999 A.M. Thurnherr
|
|
6 |
# uE-Info: 12 0 NIL 0 0 72 2 2 4 ofnI
|
|
7 |
#======================================================================
|
|
8 |
|
|
9 |
# COVSRT routine from Numerical Recipes adapted to ANTS
|
|
10 |
# NB: this is the 1st edition version using listA!!!!
|
|
11 |
|
|
12 |
# Notes:
|
|
13 |
# - both @covar and @listA passed by ref
|
|
14 |
|
|
15 |
sub covsrt($$)
|
|
16 |
{
|
|
17 |
my($covarR,$listAR) = @_;
|
|
18 |
my($ma) = $#{$covarR};
|
|
19 |
my($mfit) = $#{$listAR};
|
|
20 |
my($i,$j);
|
|
21 |
my($swap);
|
|
22 |
|
|
23 |
for ($j=1; $j<$ma; $j++) {
|
|
24 |
for ($i=$j+1; $i<=$ma; $i++) { $covarR->[$i][$j] = 0.0; }
|
|
25 |
}
|
|
26 |
for ($i=1; $i<$mfit; $i++) {
|
|
27 |
for ($j=$i+1; $j<=$mfit; $j++) {
|
|
28 |
if ($listAR->[$j] > $listAR->[$i]) {
|
|
29 |
$covarR->[$listAR->[$j]][$listAR->[$i]] = $covarR->[$i][$j];
|
|
30 |
} else {
|
|
31 |
$covarR->[$listAR->[$i]][$listAR->[$j]] = $covarR->[$i][$j];
|
|
32 |
}
|
|
33 |
}
|
|
34 |
}
|
|
35 |
$swap = $covarR->[1][1];
|
|
36 |
for ($j=1; $j<=$ma; $j++) {
|
|
37 |
$covarR->[1][$j] = $covarR->[$j][$j];
|
|
38 |
$covarR->[$j][$j] = 0.0;
|
|
39 |
}
|
|
40 |
$covarR->[$listAR->[1]][$listAR->[1]] = $swap;
|
|
41 |
for ($j=2; $j<=$mfit; $j++) {
|
|
42 |
$covarR->[$listAR->[$j]][$listAR->[$j]] = $covarR->[1][$j];
|
|
43 |
}
|
|
44 |
for ($j=2; $j<=$ma; $j++) {
|
|
45 |
for ($i=1; $i<=$j-1; $i++) {
|
|
46 |
$covarR->[$i][$j] = $covarR->[$j][$i];
|
|
47 |
}
|
|
48 |
}
|
|
49 |
}
|
|
50 |
|
|
51 |
1;
|