mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-05-21 20:17:35 +08:00
useless cleaning
This commit is contained in:
parent
6ae7d842a3
commit
cbf6022e5a
@ -118,7 +118,5 @@ algo_end:
|
|||||||
|
|
||||||
temp = (1.-alpha) * std::min(sgnorm,delta);
|
temp = (1.-alpha) * std::min(sgnorm,delta);
|
||||||
x = temp * wa1 + alpha * x;
|
x = temp * wa1 + alpha * x;
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ int ei_fdjac1(
|
|||||||
Matrix< Scalar, Dynamic, 1 > wa1(n);
|
Matrix< Scalar, Dynamic, 1 > wa1(n);
|
||||||
Matrix< Scalar, Dynamic, 1 > wa2(n);
|
Matrix< Scalar, Dynamic, 1 > wa2(n);
|
||||||
|
|
||||||
eps = ei_sqrt((std::max(epsfcn,epsmch)));
|
eps = ei_sqrt(std::max(epsfcn,epsmch));
|
||||||
msum = ml + mu + 1;
|
msum = ml + mu + 1;
|
||||||
if (msum >= n) {
|
if (msum >= n) {
|
||||||
/* computation of dense approximate jacobian. */
|
/* computation of dense approximate jacobian. */
|
||||||
@ -49,18 +49,16 @@ int ei_fdjac1(
|
|||||||
x[j] = wa2[j] + h;
|
x[j] = wa2[j] + h;
|
||||||
}
|
}
|
||||||
iflag = Functor(x, wa1);
|
iflag = Functor(x, wa1);
|
||||||
if (iflag < 0) {
|
if (iflag < 0)
|
||||||
return iflag;
|
return iflag;
|
||||||
}
|
|
||||||
for (j = k; msum< 0 ? j > n: j < n; j += msum) {
|
for (j = k; msum< 0 ? j > n: j < n; j += msum) {
|
||||||
x[j] = wa2[j];
|
x[j] = wa2[j];
|
||||||
h = eps * ei_abs(wa2[j]);
|
h = eps * ei_abs(wa2[j]);
|
||||||
if (h == 0.) h = eps;
|
if (h == 0.) h = eps;
|
||||||
for (i = 0; i < n; ++i) {
|
for (i = 0; i < n; ++i) {
|
||||||
fjac(i,j) = 0.;
|
fjac(i,j) = 0.;
|
||||||
if (i >= j - mu && i <= j + ml) {
|
if (i >= j - mu && i <= j + ml)
|
||||||
fjac(i,j) = (wa1[i] - fvec[i]) / h;
|
fjac(i,j) = (wa1[i] - fvec[i]) / h;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ void ei_qform(int m, int n, Scalar *q, int
|
|||||||
int q_dim1, q_offset;
|
int q_dim1, q_offset;
|
||||||
|
|
||||||
/* Local variables */
|
/* Local variables */
|
||||||
int i, j, k, l, jm1, np1;
|
int i, j, k, l;
|
||||||
Scalar sum, temp;
|
Scalar sum, temp;
|
||||||
int minmn;
|
int minmn;
|
||||||
|
|
||||||
@ -22,34 +22,18 @@ void ei_qform(int m, int n, Scalar *q, int
|
|||||||
/* zero out upper triangle of q in the first min(m,n) columns. */
|
/* zero out upper triangle of q in the first min(m,n) columns. */
|
||||||
|
|
||||||
minmn = std::min(m,n);
|
minmn = std::min(m,n);
|
||||||
if (minmn < 2) {
|
|
||||||
goto L30;
|
|
||||||
}
|
|
||||||
for (j = 2; j <= minmn; ++j) {
|
for (j = 2; j <= minmn; ++j) {
|
||||||
jm1 = j - 1;
|
for (i = 1; i <= j-1; ++i)
|
||||||
for (i = 1; i <= jm1; ++i) {
|
|
||||||
q[i + j * q_dim1] = 0.;
|
q[i + j * q_dim1] = 0.;
|
||||||
/* L10: */
|
|
||||||
}
|
|
||||||
/* L20: */
|
|
||||||
}
|
}
|
||||||
L30:
|
|
||||||
|
|
||||||
/* initialize remaining columns to those of the identity matrix. */
|
/* initialize remaining columns to those of the identity matrix. */
|
||||||
|
|
||||||
np1 = n + 1;
|
for (j = n+1; j <= m; ++j) {
|
||||||
if (m < np1) {
|
for (i = 1; i <= m; ++i)
|
||||||
goto L60;
|
|
||||||
}
|
|
||||||
for (j = np1; j <= m; ++j) {
|
|
||||||
for (i = 1; i <= m; ++i) {
|
|
||||||
q[i + j * q_dim1] = 0.;
|
q[i + j * q_dim1] = 0.;
|
||||||
/* L40: */
|
|
||||||
}
|
|
||||||
q[j + j * q_dim1] = 1.;
|
q[j + j * q_dim1] = 1.;
|
||||||
/* L50: */
|
|
||||||
}
|
}
|
||||||
L60:
|
|
||||||
|
|
||||||
/* accumulate q from its factored form. */
|
/* accumulate q from its factored form. */
|
||||||
|
|
||||||
@ -58,32 +42,19 @@ L60:
|
|||||||
for (i = k; i <= m; ++i) {
|
for (i = k; i <= m; ++i) {
|
||||||
wa[i] = q[i + k * q_dim1];
|
wa[i] = q[i + k * q_dim1];
|
||||||
q[i + k * q_dim1] = 0.;
|
q[i + k * q_dim1] = 0.;
|
||||||
/* L70: */
|
|
||||||
}
|
}
|
||||||
q[k + k * q_dim1] = 1.;
|
q[k + k * q_dim1] = 1.;
|
||||||
if (wa[k] == 0.) {
|
if (wa[k] == 0.)
|
||||||
goto L110;
|
continue;
|
||||||
}
|
|
||||||
for (j = k; j <= m; ++j) {
|
for (j = k; j <= m; ++j) {
|
||||||
sum = 0.;
|
sum = 0.;
|
||||||
for (i = k; i <= m; ++i) {
|
for (i = k; i <= m; ++i)
|
||||||
sum += q[i + j * q_dim1] * wa[i];
|
sum += q[i + j * q_dim1] * wa[i];
|
||||||
/* L80: */
|
|
||||||
}
|
|
||||||
temp = sum / wa[k];
|
temp = sum / wa[k];
|
||||||
for (i = k; i <= m; ++i) {
|
for (i = k; i <= m; ++i)
|
||||||
q[i + j * q_dim1] -= temp * wa[i];
|
q[i + j * q_dim1] -= temp * wa[i];
|
||||||
/* L90: */
|
|
||||||
}
|
|
||||||
/* L100: */
|
|
||||||
}
|
}
|
||||||
L110:
|
|
||||||
/* L120: */
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
|
|
||||||
/* last card of subroutine qform. */
|
}
|
||||||
|
|
||||||
} /* qform_ */
|
|
||||||
|
|
||||||
|
@ -39,22 +39,17 @@ void ei_qrfac(int m, int n, Scalar *a, int
|
|||||||
|
|
||||||
minmn = std::min(m,n);
|
minmn = std::min(m,n);
|
||||||
for (j = 1; j <= minmn; ++j) {
|
for (j = 1; j <= minmn; ++j) {
|
||||||
if (! (pivot)) {
|
if (! (pivot))
|
||||||
goto L40;
|
goto L40;
|
||||||
}
|
|
||||||
|
|
||||||
/* bring the column of largest norm into the pivot position. */
|
/* bring the column of largest norm into the pivot position. */
|
||||||
|
|
||||||
kmax = j;
|
kmax = j;
|
||||||
for (k = j; k <= n; ++k) {
|
for (k = j; k <= n; ++k)
|
||||||
if (rdiag[k] > rdiag[kmax]) {
|
if (rdiag[k] > rdiag[kmax])
|
||||||
kmax = k;
|
kmax = k;
|
||||||
}
|
if (kmax == j)
|
||||||
/* L20: */
|
|
||||||
}
|
|
||||||
if (kmax == j) {
|
|
||||||
goto L40;
|
goto L40;
|
||||||
}
|
|
||||||
for (i = 1; i <= m; ++i) {
|
for (i = 1; i <= m; ++i) {
|
||||||
temp = a[i + j * a_dim1];
|
temp = a[i + j * a_dim1];
|
||||||
a[i + j * a_dim1] = a[i + kmax * a_dim1];
|
a[i + j * a_dim1] = a[i + kmax * a_dim1];
|
||||||
@ -72,60 +67,39 @@ L40:
|
|||||||
/* j-th column of a to a multiple of the j-th unit vector. */
|
/* j-th column of a to a multiple of the j-th unit vector. */
|
||||||
|
|
||||||
ajnorm = Map< Matrix< Scalar, Dynamic, 1 > >(&a[j + j * a_dim1],m-j+1).blueNorm();
|
ajnorm = Map< Matrix< Scalar, Dynamic, 1 > >(&a[j + j * a_dim1],m-j+1).blueNorm();
|
||||||
if (ajnorm == 0.) {
|
if (ajnorm == 0.)
|
||||||
goto L100;
|
goto L100;
|
||||||
}
|
if (a[j + j * a_dim1] < 0.)
|
||||||
if (a[j + j * a_dim1] < 0.) {
|
|
||||||
ajnorm = -ajnorm;
|
ajnorm = -ajnorm;
|
||||||
}
|
for (i = j; i <= m; ++i)
|
||||||
for (i = j; i <= m; ++i) {
|
|
||||||
a[i + j * a_dim1] /= ajnorm;
|
a[i + j * a_dim1] /= ajnorm;
|
||||||
/* L50: */
|
|
||||||
}
|
|
||||||
a[j + j * a_dim1] += 1.;
|
a[j + j * a_dim1] += 1.;
|
||||||
|
|
||||||
/* apply the transformation to the remaining columns */
|
/* apply the transformation to the remaining columns */
|
||||||
/* and update the norms. */
|
/* and update the norms. */
|
||||||
|
|
||||||
jp1 = j + 1;
|
jp1 = j + 1;
|
||||||
if (n < jp1) {
|
|
||||||
goto L100;
|
|
||||||
}
|
|
||||||
for (k = jp1; k <= n; ++k) {
|
for (k = jp1; k <= n; ++k) {
|
||||||
sum = 0.;
|
sum = 0.;
|
||||||
for (i = j; i <= m; ++i) {
|
for (i = j; i <= m; ++i)
|
||||||
sum += a[i + j * a_dim1] * a[i + k * a_dim1];
|
sum += a[i + j * a_dim1] * a[i + k * a_dim1];
|
||||||
/* L60: */
|
|
||||||
}
|
|
||||||
temp = sum / a[j + j * a_dim1];
|
temp = sum / a[j + j * a_dim1];
|
||||||
for (i = j; i <= m; ++i) {
|
for (i = j; i <= m; ++i)
|
||||||
a[i + k * a_dim1] -= temp * a[i + j * a_dim1];
|
a[i + k * a_dim1] -= temp * a[i + j * a_dim1];
|
||||||
/* L70: */
|
if (! (pivot) || rdiag[k] == 0.)
|
||||||
}
|
continue;
|
||||||
if (! (pivot) || rdiag[k] == 0.) {
|
|
||||||
goto L80;
|
|
||||||
}
|
|
||||||
temp = a[j + k * a_dim1] / rdiag[k];
|
temp = a[j + k * a_dim1] / rdiag[k];
|
||||||
/* Computing MAX */
|
/* Computing MAX */
|
||||||
/* Computing 2nd power */
|
/* Computing 2nd power */
|
||||||
rdiag[k] *= ei_sqrt((std::max(Scalar(0.), Scalar(1.)-ei_abs2(temp))));
|
rdiag[k] *= ei_sqrt((std::max(Scalar(0.), Scalar(1.)-ei_abs2(temp))));
|
||||||
/* Computing 2nd power */
|
/* Computing 2nd power */
|
||||||
if (Scalar(.05) * ei_abs2(rdiag[k] / wa[k]) > epsmch) {
|
if (Scalar(.05) * ei_abs2(rdiag[k] / wa[k]) > epsmch)
|
||||||
goto L80;
|
continue;
|
||||||
}
|
|
||||||
rdiag[k] = Map< Matrix< Scalar, Dynamic, 1 > >(&a[jp1 + k * a_dim1],m-j).blueNorm();
|
rdiag[k] = Map< Matrix< Scalar, Dynamic, 1 > >(&a[jp1 + k * a_dim1],m-j).blueNorm();
|
||||||
wa[k] = rdiag[k];
|
wa[k] = rdiag[k];
|
||||||
L80:
|
|
||||||
/* L90: */
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
L100:
|
L100:
|
||||||
rdiag[j] = -ajnorm;
|
rdiag[j] = -ajnorm;
|
||||||
/* L110: */
|
|
||||||
}
|
}
|
||||||
return;
|
}
|
||||||
|
|
||||||
/* last card of subroutine qrfac. */
|
|
||||||
|
|
||||||
} /* qrfac_ */
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user