You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2012/07/29 14:12:12 UTC
svn commit: r1366826 -
/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/LUDecomposition.java
Author: erans
Date: Sun Jul 29 12:12:11 2012
New Revision: 1366826
URL: http://svn.apache.org/viewvc?rev=1366826&view=rev
Log:
Reverting changes inadvertently committed in revision 1366821.
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/LUDecomposition.java
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/LUDecomposition.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/LUDecomposition.java?rev=1366826&r1=1366825&r2=1366826&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/LUDecomposition.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/LUDecomposition.java Sun Jul 29 12:12:11 2012
@@ -89,8 +89,8 @@ public class LUDecomposition {
matrix.getColumnDimension());
}
+ final int m = matrix.getColumnDimension();
lu = matrix.getData();
- final int m = lu.length;
pivot = new int[m];
cachedL = null;
cachedU = null;
@@ -105,20 +105,15 @@ public class LUDecomposition {
// Loop over columns
for (int col = 0; col < m; col++) {
- final double[] luColumnCol = new double[m];
- for (int i = 0; i < m; i++) {
- luColumnCol[i] = lu[i][col];
- }
// upper
for (int row = 0; row < col; row++) {
final double[] luRow = lu[row];
double sum = luRow[col];
for (int i = 0; i < row; i++) {
- sum -= luRow[i] * luColumnCol[i];
+ sum -= luRow[i] * lu[i][col];
}
luRow[col] = sum;
- luColumnCol[row] = sum;
}
// lower
@@ -128,10 +123,9 @@ public class LUDecomposition {
final double[] luRow = lu[row];
double sum = luRow[col];
for (int i = 0; i < col; i++) {
- sum -= luRow[i] * luColumnCol[i];
+ sum -= luRow[i] * lu[i][col];
}
luRow[col] = sum;
- luColumnCol[row] = sum;
// maintain best permutation choice
if (FastMath.abs(sum) > largest) {
@@ -141,21 +135,22 @@ public class LUDecomposition {
}
// Singularity check
- if (FastMath.abs(luColumnCol[max]) < singularityThreshold) {
+ if (FastMath.abs(lu[max][col]) < singularityThreshold) {
singular = true;
return;
}
// Pivot if necessary
if (max != col) {
+ double tmp = 0;
final double[] luMax = lu[max];
final double[] luCol = lu[col];
for (int i = 0; i < m; i++) {
- final double tmp = luMax[i];
+ tmp = luMax[i];
luMax[i] = luCol[i];
luCol[i] = tmp;
}
- final int temp = pivot[max];
+ int temp = pivot[max];
pivot[max] = pivot[col];
pivot[col] = temp;
even = !even;