covsrt_old.pl
author Andreas Thurnherr <ant@ldeo.columbia.edu>
Mon, 13 Apr 2020 11:06:22 -0400
changeset 40 c1803ae2540f
parent 0 a5233793bf69
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     1
#======================================================================
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     2
#                    C O V S R T _ O L D . P L 
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     3
#                    doc: Wed Feb 24 17:35:07 1999
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     4
#                    dlm: Sun Sep 26 18:42:48 1999
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     5
#                    (c) 1999 A.M. Thurnherr
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     6
#                    uE-Info: 12 0 NIL 0 0 72 2 2 4 ofnI
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     7
#======================================================================
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     8
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     9
# COVSRT routine from Numerical Recipes adapted to ANTS
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    10
# NB: this is the 1st edition version using listA!!!!
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    11
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    12
# Notes:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    13
#	- both @covar and @listA passed by ref
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    14
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    15
sub covsrt($$)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    16
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    17
	my($covarR,$listAR) = @_;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    18
	my($ma) = $#{$covarR};
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    19
	my($mfit) = $#{$listAR};
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    20
	my($i,$j);
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    21
	my($swap);
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    22
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
	for ($j=1; $j<$ma; $j++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
		for ($i=$j+1; $i<=$ma; $i++) { $covarR->[$i][$j] = 0.0; }
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
	}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    26
	for ($i=1; $i<$mfit; $i++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    27
		for ($j=$i+1; $j<=$mfit; $j++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    28
			if ($listAR->[$j] > $listAR->[$i]) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    29
				$covarR->[$listAR->[$j]][$listAR->[$i]] = $covarR->[$i][$j];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
			} else {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
				$covarR->[$listAR->[$i]][$listAR->[$j]] = $covarR->[$i][$j];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32
			}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    33
		}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    34
	}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    35
	$swap = $covarR->[1][1];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    36
	for ($j=1; $j<=$ma; $j++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    37
		$covarR->[1][$j]  = $covarR->[$j][$j];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    38
		$covarR->[$j][$j] = 0.0;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    39
	}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    40
	$covarR->[$listAR->[1]][$listAR->[1]] = $swap;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    41
	for ($j=2; $j<=$mfit; $j++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    42
		$covarR->[$listAR->[$j]][$listAR->[$j]] = $covarR->[1][$j];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    43
	}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    44
	for ($j=2; $j<=$ma; $j++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    45
		for ($i=1; $i<=$j-1; $i++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    46
			$covarR->[$i][$j] = $covarR->[$j][$i];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    47
		}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    48
	}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    49
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    50
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    51
1;