svbksb.pl
author A.M. Thurnherr <athurnherr@yahoo.com>
Wed, 16 May 2012 06:31:27 +0000
changeset 0 a5233793bf69
child 17 4b7486d77b39
permissions -rw-r--r--
V5.0
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
#                    . / S V B K S B . P L 
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     3
#                    doc: Sat Jul 31 22:47:03 1999
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
     4
#                    dlm: Sat Jul 31 23:06:40 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: 30 32 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
# SVBKSB routine from Numerical Recipes adapted to ANTS
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    10
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    11
# HISTORY:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    12
#	Jul 31, 1999: - manually converted from c-source
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    13
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    14
# Notes:
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    15
#   - everything passed as refs
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    16
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    17
require "$ANTS/nrutil.pl";
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    18
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    19
sub svbksb($$$$$)
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    20
{
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    21
	my($uR,$wR,$vR,$bR,$xR) = @_;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    22
	my($jj,$j,$i);									# int
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    23
	my($s);										# float
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    24
	my(@tmp);									# float[]
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    25
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    26
	&vector(\@tmp,1,$#{$wR});
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    27
	for ($j=1; $j<=$#{$wR}; $j++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    28
		$s = 0;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    29
		if ($wR->[$j]) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    30
			for ($i=1; $i<=$#{$uR}; $i++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    31
				$s += $uR->[$i][$j] * $bR->[$i];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    32
			}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    33
			$s /= $wR->[$j];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    34
		}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    35
		$tmp[$j]=$s;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    36
	}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    37
	for ($j=1; $j<=$#{$wR}; $j++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    38
		$s = 0;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    39
		for ($jj=1; $jj<=$#{$wR}; $jj++) {
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    40
			$s += $vR->[$j][$jj] * tmp[$jj];
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    41
		}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    42
		$x->[$j] = $s;
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    43
	}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    44
}
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    45
A.M. Thurnherr <athurnherr@yahoo.com>
parents:
diff changeset
    46