diff options
| author | student <student@localhost> | 2018-04-11 17:06:20 -0400 |
|---|---|---|
| committer | student <student@localhost> | 2018-04-11 17:06:20 -0400 |
| commit | 5fdb8554aa59432924c6cf2cf4e8c178c5856deb (patch) | |
| tree | 9fb86d7ed82887c883ba0bd9c462619a6f96499e /CSMath/src/bezier/geom/Matrix.java | |
| parent | dcb6c2159446135a142cad41eec185bb24c45bfb (diff) | |
Update
Diffstat (limited to 'CSMath/src/bezier/geom/Matrix.java')
| -rw-r--r-- | CSMath/src/bezier/geom/Matrix.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/CSMath/src/bezier/geom/Matrix.java b/CSMath/src/bezier/geom/Matrix.java new file mode 100644 index 0000000..a728a02 --- /dev/null +++ b/CSMath/src/bezier/geom/Matrix.java @@ -0,0 +1,55 @@ +package bezier.geom; + +public class Matrix { + public final double[][] mat; + + public Matrix(double[][] mat) { + this.mat = mat; + } + + public Matrix add(Matrix m) { + return add(m.mat); + } + + public double[] scalarMultiply(double[] vec) { + double[] ret = new double[vec.length]; + + for(int i = 0; i < mat[0].length; i++) { + for(int j = 0; j < mat.length; j++) { + ret[i] += mat[i][j] * vec[j]; + } + } + + return ret; + } + + public Matrix add(double[][] matr) { + double[][] ret = new double[mat.length][mat[0].length]; + + for(int i = 0; i < mat.length; i++) { + for(int j = 0; j < mat[0].length; j++) { + ret[i][j] = mat[i][j] + matr[i][j]; + } + } + + return new Matrix(ret); + } + + public Matrix multiply(Matrix m) { + return multiply(m.mat); + } + + public Matrix multiply(double[][] matr) { + double[][] ret = new double[mat.length][matr[0].length]; + + for (int i = 0; i < mat.length; i++) { + for (int j = 0; j < matr[0].length; j++) { + for (int k = 0; k < matr.length; k++) { + ret[i][j] += mat[i][k] * matr[k][j]; + } + } + } + + return new Matrix(ret); + } +} |
