svbksb.pl
changeset 0 a5233793bf69
child 17 4b7486d77b39
equal deleted inserted replaced
-1:000000000000 0:a5233793bf69
       
     1 #======================================================================
       
     2 #                    . / S V B K S B . P L 
       
     3 #                    doc: Sat Jul 31 22:47:03 1999
       
     4 #                    dlm: Sat Jul 31 23:06:40 1999
       
     5 #                    (c) 1999 A.M. Thurnherr
       
     6 #                    uE-Info: 30 32 NIL 0 0 72 2 2 4 ofnI
       
     7 #======================================================================
       
     8 
       
     9 # SVBKSB routine from Numerical Recipes adapted to ANTS
       
    10 
       
    11 # HISTORY:
       
    12 #	Jul 31, 1999: - manually converted from c-source
       
    13 
       
    14 # Notes:
       
    15 #   - everything passed as refs
       
    16 
       
    17 require "$ANTS/nrutil.pl";
       
    18 
       
    19 sub svbksb($$$$$)
       
    20 {
       
    21 	my($uR,$wR,$vR,$bR,$xR) = @_;
       
    22 	my($jj,$j,$i);									# int
       
    23 	my($s);										# float
       
    24 	my(@tmp);									# float[]
       
    25 
       
    26 	&vector(\@tmp,1,$#{$wR});
       
    27 	for ($j=1; $j<=$#{$wR}; $j++) {
       
    28 		$s = 0;
       
    29 		if ($wR->[$j]) {
       
    30 			for ($i=1; $i<=$#{$uR}; $i++) {
       
    31 				$s += $uR->[$i][$j] * $bR->[$i];
       
    32 			}
       
    33 			$s /= $wR->[$j];
       
    34 		}
       
    35 		$tmp[$j]=$s;
       
    36 	}
       
    37 	for ($j=1; $j<=$#{$wR}; $j++) {
       
    38 		$s = 0;
       
    39 		for ($jj=1; $jj<=$#{$wR}; $jj++) {
       
    40 			$s += $vR->[$j][$jj] * tmp[$jj];
       
    41 		}
       
    42 		$x->[$j] = $s;
       
    43 	}
       
    44 }
       
    45 
       
    46