13void ludcmp(
double **a,
int n,
int *index,
double *d) {
22#pragma omp parallel for private(j, big)
24 for (i = 1; i <= n; i++) {
26 for (j = 1; j <= n; j++)
27 if (fabs(a[i][j]) > big) big = fabs(a[i][j]);
28 if (big == 0.0)
nrerror(
"Singular matrix in routine LUDCMP");
32 for (j = 1; j <= n; j++)
34 for (i = 1; i < j; i++) {
37#pragma omp parallel for private(k) reduction(- : sum)
39 for (k = 1; k < i; k++)
40 sum = sum - a[i][k] * a[k][j];
45 for (i = j; i <= n; i++) {
48#pragma omp parallel for private(k) reduction(- : sum)
50 for (k = 1; k < j; k++)
51 sum = sum - a[i][k] * a[k][j];
54 dum = vv[i] * fabs(sum);
63#pragma omp parallel for private(k, dum)
65 for (k = 1; k <= n; k++) {
82#pragma omp parallel for private(i)
84 for (i = j + 1; i <= n; i++) a[i][j] = a[i][j] * dum;
91void lubksb(
double **a,
int n,
int *index,
double *b) {
95 for (i = 1; i <= n; i++)
102#pragma omp parallel for private(j) reduction(- : sum)
104 for (j = ii; j <= i; j++) sum = sum - a[i][j] * b[j];
110 for (i = n; i >= 1; i--)
114#pragma omp parallel for private(j) reduction(- : sum)
116 for (j = i + 1; j <= n; j++) sum = sum - a[i][j] * b[j];
117 b[i] = sum / a[i][i];
void lubksb(double **a, int n, int *index, double *b)
void ludcmp(double **a, int n, int *index, double *d)
void free_dvector(double *v, long nl, long)
double * dvector(long nl, long nh)