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 2011/07/22 01:17:53 UTC
svn commit: r1149405 -
/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
Author: erans
Date: Thu Jul 21 23:17:52 2011
New Revision: 1149405
URL: http://svn.apache.org/viewvc?rev=1149405&view=rev
Log:
MATH-623
Slightly more efficient implementation of some methods (due to Arne Plöse).
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java?rev=1149405&r1=1149404&r2=1149405&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/ArrayRealVector.java Thu Jul 21 23:17:52 2011
@@ -346,12 +346,14 @@ public class ArrayRealVector extends Abs
/** {@inheritDoc} */
@Override
public RealVector subtract(double[] v) {
- checkVectorDimensions(v.length);
- double[] out = data.clone();
- for (int i = 0; i < data.length; i++) {
- out[i] -= v[i];
+ final int dim = v.length;
+ checkVectorDimensions(dim);
+ ArrayRealVector result = new ArrayRealVector(dim);
+ double[] resultData = result.data;
+ for (int i = 0; i < dim; i++) {
+ resultData[i] = data[i] - v[i];
}
- return new ArrayRealVector(out, false);
+ return result;
}
/**
@@ -434,12 +436,14 @@ public class ArrayRealVector extends Abs
/** {@inheritDoc} */
@Override
public RealVector ebeMultiply(double[] v) {
- checkVectorDimensions(v.length);
- double[] out = data.clone();
- for (int i = 0; i < data.length; i++) {
- out[i] *= v[i];
+ final int dim = v.length;
+ checkVectorDimensions(dim);
+ ArrayRealVector result = new ArrayRealVector(dim);
+ double[] resultData = result.data;
+ for (int i = 0; i < dim; i++) {
+ resultData[i] = data[i] * v[i];
}
- return new ArrayRealVector(out, false);
+ return result;
}
/**
@@ -470,12 +474,14 @@ public class ArrayRealVector extends Abs
/** {@inheritDoc} */
@Override
public RealVector ebeDivide(double[] v) {
- checkVectorDimensions(v.length);
- double[] out = data.clone();
- for (int i = 0; i < data.length; i++) {
- out[i] /= v[i];
+ final int dim = v.length;
+ checkVectorDimensions(dim);
+ ArrayRealVector result = new ArrayRealVector(dim);
+ double[] resultData = result.data;
+ for (int i = 0; i < dim; i++) {
+ resultData[i] = data[i] / v[i];
}
- return new ArrayRealVector(out, false);
+ return result;
}
/**