From 5fdb8554aa59432924c6cf2cf4e8c178c5856deb Mon Sep 17 00:00:00 2001 From: student Date: Wed, 11 Apr 2018 17:06:20 -0400 Subject: Update --- CSMath/src/bezier/geom/Matrix.java | 55 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 CSMath/src/bezier/geom/Matrix.java (limited to 'CSMath/src/bezier/geom/Matrix.java') 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); + } +} -- cgit v1.2.3