Author: luc Date: Sun Jan 4 04:09:53 2009 New Revision: 731232 URL: http://svn.apache.org/viewvc?rev=731232&view=rev Log: avoid ugly call to getDataRef that relies on vector internal implementation
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseRealMatrix.java Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseRealMatrix.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseRealMatrix.java?rev=731232&r1=731231&r2=731232&view=diff ============================================================================== --- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseRealMatrix.java (original) +++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseRealMatrix.java Sun Jan 4 04:09:53 2009 @@ -1032,13 +1032,12 @@ throws MatrixIndexException { checkRowIndex(row); - final RealVectorImpl out = new RealVectorImpl(columns); + final double[] outData = new double[columns]; // perform copy block-wise, to ensure good cache behavior final int iBlock = row / BLOCK_SIZE; final int iRow = row - iBlock * BLOCK_SIZE; int outIndex = 0; - double[] outData = out.getDataRef(); for (int jBlock = 0; jBlock < blockColumns; ++jBlock) { final int jWidth = blockWidth(jBlock); final double[] block = blocks[iBlock * blockColumns + jBlock]; @@ -1046,7 +1045,7 @@ outIndex += jWidth; } - return out; + return new RealVectorImpl(outData, false); } @@ -1065,14 +1064,13 @@ throws MatrixIndexException { checkColumnIndex(column); - final RealVectorImpl out = new RealVectorImpl(rows); + final double[] outData = new double[rows]; // perform copy block-wise, to ensure good cache behavior final int jBlock = column / BLOCK_SIZE; final int jColumn = column - jBlock * BLOCK_SIZE; final int jWidth = blockWidth(jBlock); int outIndex = 0; - double[] outData = out.getDataRef(); for (int iBlock = 0; iBlock < blockRows; ++iBlock) { final int iHeight = blockHeight(iBlock); final double[] block = blocks[iBlock * blockColumns + jBlock]; @@ -1081,7 +1079,7 @@ } } - return out; + return new RealVectorImpl(outData, false); }