Slightly more efficient implementation of some methods (due to Arne Plöse).


git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1149405 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gilles Sadowski 2011-07-21 23:17:52 +00:00
parent 6414ab061b
commit c4ed11aba2

View File

@ -346,12 +346,14 @@ public class ArrayRealVector extends AbstractRealVector implements Serializable
/** {@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 AbstractRealVector implements Serializable
/** {@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 AbstractRealVector implements Serializable
/** {@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;
}
/**