diff --git a/unsupported/Eigen/src/NonLinearOptimization/dogleg.h b/unsupported/Eigen/src/NonLinearOptimization/dogleg.h index dd6b39cb4..cf488b0bf 100644 --- a/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +++ b/unsupported/Eigen/src/NonLinearOptimization/dogleg.h @@ -118,7 +118,5 @@ algo_end: temp = (1.-alpha) * std::min(sgnorm,delta); x = temp * wa1 + alpha * x; - return; - } diff --git a/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h b/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h index 376df7c40..e9c8fa991 100644 --- a/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +++ b/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h @@ -22,7 +22,7 @@ int ei_fdjac1( Matrix< Scalar, Dynamic, 1 > wa1(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; if (msum >= n) { /* computation of dense approximate jacobian. */ @@ -49,18 +49,16 @@ int ei_fdjac1( x[j] = wa2[j] + h; } iflag = Functor(x, wa1); - if (iflag < 0) { + if (iflag < 0) return iflag; - } for (j = k; msum< 0 ? j > n: j < n; j += msum) { x[j] = wa2[j]; h = eps * ei_abs(wa2[j]); if (h == 0.) h = eps; for (i = 0; i < n; ++i) { 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; - } } } } diff --git a/unsupported/Eigen/src/NonLinearOptimization/qform.h b/unsupported/Eigen/src/NonLinearOptimization/qform.h index 47bbd1fbe..1c3e3e267 100644 --- a/unsupported/Eigen/src/NonLinearOptimization/qform.h +++ b/unsupported/Eigen/src/NonLinearOptimization/qform.h @@ -7,7 +7,7 @@ void ei_qform(int m, int n, Scalar *q, int int q_dim1, q_offset; /* Local variables */ - int i, j, k, l, jm1, np1; + int i, j, k, l; Scalar sum, temp; 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. */ minmn = std::min(m,n); - if (minmn < 2) { - goto L30; - } for (j = 2; j <= minmn; ++j) { - jm1 = j - 1; - for (i = 1; i <= jm1; ++i) { + for (i = 1; i <= j-1; ++i) q[i + j * q_dim1] = 0.; - /* L10: */ - } - /* L20: */ } -L30: /* initialize remaining columns to those of the identity matrix. */ - np1 = n + 1; - if (m < np1) { - goto L60; - } - for (j = np1; j <= m; ++j) { - for (i = 1; i <= m; ++i) { + for (j = n+1; j <= m; ++j) { + for (i = 1; i <= m; ++i) q[i + j * q_dim1] = 0.; - /* L40: */ - } q[j + j * q_dim1] = 1.; - /* L50: */ } -L60: /* accumulate q from its factored form. */ @@ -58,32 +42,19 @@ L60: for (i = k; i <= m; ++i) { wa[i] = q[i + k * q_dim1]; q[i + k * q_dim1] = 0.; - /* L70: */ } q[k + k * q_dim1] = 1.; - if (wa[k] == 0.) { - goto L110; - } + if (wa[k] == 0.) + continue; for (j = k; j <= m; ++j) { sum = 0.; - for (i = k; i <= m; ++i) { + for (i = k; i <= m; ++i) sum += q[i + j * q_dim1] * wa[i]; - /* L80: */ - } temp = sum / wa[k]; - for (i = k; i <= m; ++i) { + for (i = k; i <= m; ++i) q[i + j * q_dim1] -= temp * wa[i]; - /* L90: */ - } - /* L100: */ } -L110: - /* L120: */ - ; } - return; - /* last card of subroutine qform. */ - -} /* qform_ */ +} diff --git a/unsupported/Eigen/src/NonLinearOptimization/qrfac.h b/unsupported/Eigen/src/NonLinearOptimization/qrfac.h index 0c1ecf394..ff297293d 100644 --- a/unsupported/Eigen/src/NonLinearOptimization/qrfac.h +++ b/unsupported/Eigen/src/NonLinearOptimization/qrfac.h @@ -39,22 +39,17 @@ void ei_qrfac(int m, int n, Scalar *a, int minmn = std::min(m,n); for (j = 1; j <= minmn; ++j) { - if (! (pivot)) { + if (! (pivot)) goto L40; - } /* bring the column of largest norm into the pivot position. */ kmax = j; - for (k = j; k <= n; ++k) { - if (rdiag[k] > rdiag[kmax]) { + for (k = j; k <= n; ++k) + if (rdiag[k] > rdiag[kmax]) kmax = k; - } - /* L20: */ - } - if (kmax == j) { + if (kmax == j) goto L40; - } for (i = 1; i <= m; ++i) { temp = a[i + j * 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. */ ajnorm = Map< Matrix< Scalar, Dynamic, 1 > >(&a[j + j * a_dim1],m-j+1).blueNorm(); - if (ajnorm == 0.) { + if (ajnorm == 0.) goto L100; - } - if (a[j + j * a_dim1] < 0.) { + if (a[j + j * a_dim1] < 0.) ajnorm = -ajnorm; - } - for (i = j; i <= m; ++i) { + for (i = j; i <= m; ++i) a[i + j * a_dim1] /= ajnorm; - /* L50: */ - } a[j + j * a_dim1] += 1.; /* apply the transformation to the remaining columns */ /* and update the norms. */ jp1 = j + 1; - if (n < jp1) { - goto L100; - } for (k = jp1; k <= n; ++k) { 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]; - /* L60: */ - } 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]; - /* L70: */ - } - if (! (pivot) || rdiag[k] == 0.) { - goto L80; - } + if (! (pivot) || rdiag[k] == 0.) + continue; temp = a[j + k * a_dim1] / rdiag[k]; /* Computing MAX */ /* Computing 2nd power */ rdiag[k] *= ei_sqrt((std::max(Scalar(0.), Scalar(1.)-ei_abs2(temp)))); /* Computing 2nd power */ - if (Scalar(.05) * ei_abs2(rdiag[k] / wa[k]) > epsmch) { - goto L80; - } + if (Scalar(.05) * ei_abs2(rdiag[k] / wa[k]) > epsmch) + continue; rdiag[k] = Map< Matrix< Scalar, Dynamic, 1 > >(&a[jp1 + k * a_dim1],m-j).blueNorm(); wa[k] = rdiag[k]; -L80: - /* L90: */ - ; } L100: rdiag[j] = -ajnorm; - /* L110: */ } - return; - - /* last card of subroutine qrfac. */ - -} /* qrfac_ */ +}