add numerical recipes library
This commit is contained in:
24
lib/nr/cpp/recipes/lubksb.cpp
Normal file
24
lib/nr/cpp/recipes/lubksb.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include "nr.h"
|
||||
|
||||
void NR::lubksb(Mat_I_DP &a, Vec_I_INT &indx, Vec_IO_DP &b)
|
||||
{
|
||||
int i,ii=0,ip,j;
|
||||
DP sum;
|
||||
|
||||
int n=a.nrows();
|
||||
for (i=0;i<n;i++) {
|
||||
ip=indx[i];
|
||||
sum=b[ip];
|
||||
b[ip]=b[i];
|
||||
if (ii != 0)
|
||||
for (j=ii-1;j<i;j++) sum -= a[i][j]*b[j];
|
||||
else if (sum != 0.0)
|
||||
ii=i+1;
|
||||
b[i]=sum;
|
||||
}
|
||||
for (i=n-1;i>=0;i--) {
|
||||
sum=b[i];
|
||||
for (j=i+1;j<n;j++) sum -= a[i][j]*b[j];
|
||||
b[i]=sum/a[i][i];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user