You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tn...@apache.org on 2012/01/22 12:19:26 UTC

svn commit: r1234486 - /commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/TriDiagonalTransformer.java

Author: tn
Date: Sun Jan 22 11:19:26 2012
New Revision: 1234486

URL: http://svn.apache.org/viewvc?rev=1234486&view=rev
Log:
Fixed faulty test for zero in TridiagonalTransformer

JIRA: MATH-652
Reported and patched by Greg Sterijevski

Modified:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/TriDiagonalTransformer.java

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/TriDiagonalTransformer.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/TriDiagonalTransformer.java?rev=1234486&r1=1234485&r2=1234486&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/TriDiagonalTransformer.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/TriDiagonalTransformer.java Sun Jan 22 11:19:26 2012
@@ -98,13 +98,13 @@ class TriDiagonalTransformer {
         if (cachedQt == null) {
             final int m = householderVectors.length;
             double[][] qta = new double[m][m];
-          
+
             // build up first part of the matrix by applying Householder transforms
             for (int k = m - 1; k >= 1; --k) {
                 final double[] hK = householderVectors[k - 1];
-                final double inv = 1.0 / (secondary[k - 1] * hK[k]);
                 qta[k][k] = 1;
                 if (hK[k] != 0.0) {
+                    final double inv = 1.0 / (secondary[k - 1] * hK[k]);
                     double beta = 1.0 / secondary[k - 1];
                     qta[k][k] = 1 + beta * hK[k];
                     for (int i = k + 1; i < m; ++i) {