Merged Mathematics class
This commit is contained in:
parent
00ddb505ac
commit
bb67e727bb
@ -446,10 +446,21 @@ public class Mathematics {
|
|||||||
*/
|
*/
|
||||||
public static double[] svAdd (double s, double[] v) {
|
public static double[] svAdd (double s, double[] v) {
|
||||||
double[] res = new double[v.length];
|
double[] res = new double[v.length];
|
||||||
|
svAdd(s, v, res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add each entry of a vector with a scalar in a result vector.
|
||||||
|
*
|
||||||
|
* @param s
|
||||||
|
* @param v
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static void svAdd(double s, double[] v, double[] res) {
|
||||||
for (int i = 0; i < v.length; i++) {
|
for (int i = 0; i < v.length; i++) {
|
||||||
res[i] = v[i] + s;
|
res[i] = v[i] + s;
|
||||||
}
|
}
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -862,7 +873,7 @@ public class Mathematics {
|
|||||||
* @param range
|
* @param range
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static double[] shiftRange(double[][] range) {
|
public static double[] getAbsRange(double[][] range) {
|
||||||
double[] ret = new double[range.length];
|
double[] ret = new double[range.length];
|
||||||
for (int i = 0; i < ret.length; i++) {
|
for (int i = 0; i < ret.length; i++) {
|
||||||
ret[i]=range[i][1]-range[i][0];
|
ret[i]=range[i][1]-range[i][0];
|
||||||
@ -870,6 +881,31 @@ public class Mathematics {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shift bounds by a constant value in every dimension.
|
||||||
|
*
|
||||||
|
* @param range
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static void shiftRange(double[][] range, double dist) {
|
||||||
|
for (int i = 0; i < range.length; i++) {
|
||||||
|
svAdd(dist, range[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shift bounds by a constant value in every dimension. The dists
|
||||||
|
* must be of dimensions as the range.
|
||||||
|
*
|
||||||
|
* @param range
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static void shiftRange(double[][] range, double[] dists) {
|
||||||
|
for (int i = 0; i < range.length; i++) {
|
||||||
|
svAdd(dists[i], range[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Project the values in x to the range given. The range must be an vector of 2d-arrays
|
* Project the values in x to the range given. The range must be an vector of 2d-arrays
|
||||||
* each of which containing lower and upper bound in the i-th dimension.
|
* each of which containing lower and upper bound in the i-th dimension.
|
||||||
@ -905,7 +941,7 @@ public class Mathematics {
|
|||||||
* @param range
|
* @param range
|
||||||
*/
|
*/
|
||||||
public static void scaleRange(double rangeScaleFact, double[][] range) {
|
public static void scaleRange(double rangeScaleFact, double[][] range) {
|
||||||
double[] intervalLengths=Mathematics.shiftRange(range);
|
double[] intervalLengths=Mathematics.getAbsRange(range);
|
||||||
double[] tmpInts=Mathematics.svMult(rangeScaleFact, intervalLengths);
|
double[] tmpInts=Mathematics.svMult(rangeScaleFact, intervalLengths);
|
||||||
Mathematics.vvSub(tmpInts, intervalLengths, tmpInts); // this is what must be added to range interval
|
Mathematics.vvSub(tmpInts, intervalLengths, tmpInts); // this is what must be added to range interval
|
||||||
for (int i=0; i<range.length; i++) {
|
for (int i=0; i<range.length; i++) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user