aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/src/NonLinearOptimization/qform.h
diff options
context:
space:
mode:
Diffstat (limited to 'unsupported/Eigen/src/NonLinearOptimization/qform.h')
-rw-r--r--unsupported/Eigen/src/NonLinearOptimization/qform.h47
1 files changed, 9 insertions, 38 deletions
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_ */
+}