equal
deleted
inserted
replaced
|
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 |