10int svdu1v(
double *d,
double *a,
int m,
double *v,
int n)
12 double *p, *
p1, *q, *
pp, *w, *e;
14 double s, h,
r,
t,
sv;
16 int i,
j, k,
mm, nm,
ms;
20 w = (
double *)
calloc(
m + n,
sizeof(
double));
22 for (i = 0,
mm =
m, nm = n - 1, p = a; i < n; ++i, --
mm, --nm, p += n + 1) {
25 for (
j = 0, q = p, s = 0.;
j <
mm; ++
j, q += n) {
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) =
t * w[
j++];
55 for (
j = 0, q =
p1, s = 0.;
j < nm; ++
j, ++q)
65 for (k = n,
ms = n * (
m - i); k <
ms; k += n) {
66 for (
j = 0, q =
p1,
pp =
p1 + k,
r = 0.;
j < nm; ++
j)
69 for (
j = 0, q =
p1,
pp =
p1 + k;
j < nm; ++
j)
72 for (
j = 1, q =
p1 + 1;
j < nm; ++
j)
84 for (i = 0; i < n; ++i) {
87 for (
j = 0, p = v + i;
j < n; ++
j, p += n)
void atou1(double *a, int m, int n)
int qrbdu1(double *d, double *e, double *u, int m, double *v, int n)
void ldvmat(double *a, double *v, int n)
int svdu1v(double *d, double *a, int m, double *v, int n)