From a39054a51f42d83087f5f23c967c8d825123cddd Mon Sep 17 00:00:00 2001 From: Marcel Kronfeld Date: Mon, 6 Apr 2009 17:03:43 +0000 Subject: [PATCH] Updates for eNES implementation, synch mk branch rev. 272 --- src/eva2/tools/Mathematics.java | 16 ++++- src/wsi/ra/math/Jama/Matrix.java | 106 ++++++++++++++++++++++++++++++- 2 files changed, 118 insertions(+), 4 deletions(-) diff --git a/src/eva2/tools/Mathematics.java b/src/eva2/tools/Mathematics.java index d83d6d7b..4bb279ed 100644 --- a/src/eva2/tools/Mathematics.java +++ b/src/eva2/tools/Mathematics.java @@ -389,8 +389,20 @@ public class Mathematics { * @return vector addition */ public static void vvAdd(double[] v1, double[] v2, double[] res) { - for (int i = 0; i < v1.length; i++) - res[i] = v1[i] + v2[i]; + vvAddOffs(v1, 0, v2, 0, res, 0, v1.length); + } + + /** + * Add vectors in place setting with an offset within the target + * vector, meaning that res[resOffs+i]=v1[v1Offs+i]+v2[v2Offs+i] for i in length. + * + * @param v1 + * @param v2 + * @return vector addition + */ + public static void vvAddOffs(double[] v1, int v1Offs, double[] v2, int v2Offs, double[] res, int resOffs, int len) { + for (int i = 0; i < len; i++) + res[resOffs+i] = v1[v1Offs+i] + v2[v2Offs+i]; } /** diff --git a/src/wsi/ra/math/Jama/Matrix.java b/src/wsi/ra/math/Jama/Matrix.java index 8671d440..d557492d 100644 --- a/src/wsi/ra/math/Jama/Matrix.java +++ b/src/wsi/ra/math/Jama/Matrix.java @@ -244,6 +244,17 @@ public class Matrix implements Cloneable, java.io.Serializable { return new Matrix(D); } + /** + * Return the diagonal array for a matrix. + * @param M + * @return + */ + public double[] diag() { + double[] d = new double[Math.min(getColumnDimension(), getRowDimension())]; + for (int i=0; i