mirror of
https://github.com/apache/commons-math.git
synced 2025-02-08 11:05:56 +00:00
MATH-623
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:
parent
6414ab061b
commit
c4ed11aba2
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user