18#define DEBUG_FPRINTF(...)
19#define DEBUG_EXIT(...)
113 for ( i = 0; i < n; i++ )
127 for ( i = 0; i < m; i++ )
129 dy[i] = dy[i] +
da * dx[i];
132 for ( i = m; i < n; i = i + 4 )
134 dy[i ] = dy[i ] +
da * dx[i ];
135 dy[i+1] = dy[i+1] +
da * dx[i+1];
136 dy[i+2] = dy[i+2] +
da * dx[i+2];
137 dy[i+3] = dy[i+3] +
da * dx[i+3];
232 for ( i = 0; i < n; i++ )
246 for ( i = 0; i < m; i++ )
251 for ( i = m; i < n; i = i + 5 )
318 if ( n < 1 ||
incx < 1 )
332 for ( i = 0; i < n; i++ )
438 for ( i = 0; i < n; i++ )
452 for (
j = 0;
j < k;
j++ )
566 for (
j = 1;
j <=
p;
j++ )
592 for (
j =
p; 1 <=
j;
j-- )
626 for ( l = 1; l <=
lup; l++ )
631 if (
pl <= l && l <
pu )
635 for (
j = l;
j <=
pu;
j++ )
665 if ( a[l-1+(l-1)*
lda] != 0.0 )
671 a[l-1+(l-1)*
lda] = 1.0 + a[l-1+(l-1)*
lda];
675 for (
j = l + 1;
j <=
p;
j++ )
677 t = -
ddot ( n-l+1, a+l-1+(l-1)*
lda, 1, a+l-1+(
j-1)*
lda, 1 )
867void dqrlss (
float a[],
int lda,
int m,
int n,
int kr,
float b[],
float x[],
951 info =
dqrsl ( a,
lda, m,
kr,
qraux,
b,
rsd,
rsd, x,
rsd,
rsd,
job );
954 for ( i = 0; i < n; i++ )
959 for ( i =
kr; i < n; i++ )
964 for (
j = 1;
j <= n;
j++ )
966 if (
jpvt[
j-1] <= 0 )
986 float qy[],
float qty[],
float b[],
float rsd[],
float ab[],
int job )
1143 cqy = (
job / 10000 != 0 );
1144 cqty = ( (
job % 10000 ) != 0 );
1145 cb = ( (
job % 1000 ) / 100 != 0 );
1146 cr = ( (
job % 100 ) / 10 != 0 );
1147 cab = ( (
job % 10 ) != 0 );
1172 if ( a[0+0*
lda] == 0.0 )
1178 b[0] = y[0] / a[0+0*
lda];
1193 for ( i = 1; i <= n; i++ )
1201 for ( i = 1; i <= n; i++ )
1217 temp = a[
j-1+(
j-1)*
lda];
1221 a[
j-1+(
j-1)*
lda] = temp;
1230 for (
j = 1;
j <=
ju;
j++ )
1234 temp = a[
j-1+(
j-1)*
lda];
1238 a[
j-1+(
j-1)*
lda] = temp;
1247 for ( i = 1; i <= k; i++ )
1255 for ( i = 1; i <= k; i++ )
1263 for ( i = k+1; i <= n; i++ )
1269 if (
cab && k+1 <= n )
1271 for ( i = k+1; i <= n; i++ )
1279 for ( i = 1; i <= k; i++ )
1289 for (
jj = 1;
jj <= k;
jj++ )
1293 if ( a[
j-1+(
j-1)*
lda] == 0.0 )
1319 temp = a[
j-1+(
j-1)*
lda];
1335 a[
j-1+(
j-1)*
lda] = temp;
1394 else if (
incx == 1 )
1398 for ( i = 0; i < m; i++ )
1403 for ( i = m; i < n; i = i + 5 )
1406 x[i+1] =
sa * x[i+1];
1407 x[i+2] =
sa * x[i+2];
1408 x[i+3] =
sa * x[i+3];
1409 x[i+4] =
sa * x[i+4];
1423 for ( i = 0; i < n; i++ )
1491 for ( i = 0; i < m; i++ )
1498 for ( i = m; i < n; i = i + 3 )
1533 for ( i = 0; i < n; i++ )
1548void qr_solve (
int m,
int n,
float a[],
float b[],
float x[] )
1613 ind =
dqrls (
a_qr,
lda, m, n,
tol, &
kr,
b, x, r,
jpvt,
qraux,
itask );
static const float scale[]
void dqrlss(float a[], int lda, int m, int n, int kr, float b[], float x[], float rsd[], int jpvt[], float qraux[])
float ddot(int n, float dx[], int incx, float dy[], int incy)
#define DEBUG_FPRINTF(...)
int dqrsl(float a[], int lda, int n, int k, float qraux[], float y[], float qy[], float qty[], float b[], float rsd[], float ab[], int job)
void dqrank(float a[], int lda, int m, int n, float tol, int *kr, int jpvt[], float qraux[])
void qr_solve(int m, int n, float a[], float b[], float x[])
void daxpy(int n, float da, float dx[], int incx, float dy[], int incy)
void dscal(int n, float sa, float x[], int incx)
float dnrm2(int n, float x[], int incx)
int dqrls(float a[], int lda, int m, int n, float tol, int *kr, float b[], float x[], float rsd[], int jpvt[], float qraux[], int itask)
void dswap(int n, float x[], int incx, float y[], int incy)
void dqrdc(float a[], int lda, int n, int p, float qraux[], int jpvt[], float work[], int job)
float r8_max(float x, float y)
float r8mat_amax(int m, int n, float a[])
void r8mat_copy_new(int m, int n, float a1[], float a2[])
int i4_min(int i1, int i2)