10 int sv2uv(
double *d,
double *a,
double *u,
int m,
double *v,
int n)
12 double *p, *p1, *q, *pp, *w, *e;
14 double s,
t, h,
r, sv;
16 int i, j, k, mm, nm, ms;
20 w = (
double *)calloc(m + n,
sizeof(
double));
22 for (i = 0, mm = m, p = a; i < n; ++i, --mm, p += n + 1) {
25 for (j = 0, q = p, s = 0.; j < mm; ++j, q += n) {
36 sv = 1. + fabs(*p / h);
37 for (k = 1, ms = n - i; k < ms; ++k) {
38 for (j = 0, q = p + k,
r = 0.; j < mm; q += n)
41 for (j = 0, q = p + k; j < mm; q += n)
44 for (j = 1, q = p; j < mm;)
45 *(q += n) = w[j++] *
t;
54 for (i = 0, q = a; i < n; ++i) {
55 for (j = 0; j < n; ++j, ++q) {
62 for (i = 0, mm = n, nm = n - 1, p = a; i < n; ++i, --mm, --nm, p += n + 1) {
65 for (j = 0, q = p, s = 0.; j < mm; ++j, q += n) {
76 sv = 1. + fabs(*p / h);
77 for (k = 1, ms = n - i; k < ms; ++k) {
78 for (j = 0, q = p + k,
r = 0.; j < mm; q += n)
80 for (j = 0, q = p + k,
r *= s; j < mm; q += n)
83 for (k = 0, p1 = u + i; k < m; ++k, p1 += m) {
84 for (j = 0, q = p1,
r = 0.; j < mm;)
86 for (j = 0, q = p1,
r *= s; j < mm;)
98 for (j = 0, q = p1, s = 0.; j < nm; ++j, ++q)
104 sv = 1. + fabs(*p1 / h);
108 for (k = n, ms = n * (n - i); k < ms; k += n) {
109 for (j = 0, q = p1, pp = p1 + k,
r = 0.; j < nm; ++j)
111 for (j = 0, q = p1, pp = p1 + k,
r *= s; j < nm; ++j)
114 for (j = 1, q = p1 + 1; j < nm; ++j)
124 qrbdv(d, e, u, m, v, n);
125 for (i = 0; i < n; ++i) {
128 for (j = 0, p = v + i; j < n; ++j, p += n)
void ldumat(double *a, double *u, int m, int n)
int qrbdv(double *d, double *e, double *u, int m, double *v, int n)
void ldvmat(double *a, double *v, int n)
int sv2uv(double *d, double *a, double *u, int m, double *v, int n)