@Override public void add(int row, int column, double value) { synchronized (lock[row]) { A.add(row, column, value); } }
@Override public void add(int row, int column, double value) { synchronized (lock[column]) { A.add(row, column, value); } }
@Override public void add(int row, int column, double value) { synchronized (lock[column]) { A.add(row, column, value); } }
@Override public void increment( final int row, final int column, final double value) { this.internalMatrix.add(row, column, value); }
@Override public void add(int row, int column, double value) { synchronized (lock[row]) { A.add(row, column, value); } }
@Override public void increment( final int row, final int column, final double value) { this.internalMatrix.add(row, column, value); }
@Override public void add(int row, int column, double value) { A.add(this.row[row], this.column[column], value); }
@Override public void increment( final int row, final int column, final double value) { this.internalMatrix.add(row, column, value); }
@Override public synchronized void add(int row, int column, double value) { A.add(row, column, value); }
@Override public synchronized void add(int row, int column, double value) { A.add(row, column, value); }
@Override public void add(int row, int column, double value) { A.add(this.row[row], this.column[column], value); }
public Matrix transBmultAdd(double alpha, Matrix B, Matrix C) { checkTransBmultAdd(B, C); if (alpha != 0) for (int i = 0; i < numRows; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numColumns; ++k) dot += get(i, k) * B.get(j, k); C.add(i, j, alpha * dot); } return C; }
public Matrix multAdd(double alpha, Matrix B, Matrix C) { checkMultAdd(B, C); if (alpha != 0) for (int i = 0; i < numRows; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numColumns; ++k) dot += get(i, k) * B.get(k, j); C.add(i, j, alpha * dot); } return C; }
public Matrix multAdd(double alpha, Matrix B, Matrix C) { checkMultAdd(B, C); if (alpha != 0) for (int i = 0; i < numRows; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numColumns; ++k) dot += get(i, k) * B.get(k, j); C.add(i, j, alpha * dot); } return C; }
public Matrix transAmultAdd(double alpha, Matrix B, Matrix C) { checkTransAmultAdd(B, C); if (alpha != 0) for (int i = 0; i < numColumns; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numRows; ++k) dot += get(k, i) * B.get(k, j); C.add(i, j, alpha * dot); } return C; }
public Matrix transABmultAdd(double alpha, Matrix B, Matrix C) { checkTransABmultAdd(B, C); if (alpha != 0) for (int i = 0; i < numColumns; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numRows; ++k) dot += get(k, i) * B.get(j, k); C.add(i, j, alpha * dot); } return C; }
public Matrix transAmultAdd(double alpha, Matrix B, Matrix C) { checkTransAmultAdd(B, C); if (alpha != 0) for (int i = 0; i < numColumns; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numRows; ++k) dot += get(k, i) * B.get(k, j); C.add(i, j, alpha * dot); } return C; }
public Matrix transBmultAdd(double alpha, Matrix B, Matrix C) { checkTransBmultAdd(B, C); if (alpha != 0) for (int i = 0; i < numRows; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numColumns; ++k) dot += get(i, k) * B.get(j, k); C.add(i, j, alpha * dot); } return C; }
public Matrix transABmultAdd(double alpha, Matrix B, Matrix C) { checkTransABmultAdd(B, C); if (alpha != 0) for (int i = 0; i < numColumns; ++i) for (int j = 0; j < C.numColumns(); ++j) { double dot = 0; for (int k = 0; k < numRows; ++k) dot += get(k, i) * B.get(j, k); C.add(i, j, alpha * dot); } return C; }
Matrix a = new Basci2DMatrix(new double[][]{ { 1.0, 2.0 }, { 3.0, 4.0 } }); Matrix b = new Basci2DMatrix(new double[][]{ { 5.0, 6.0 }, { 7.0, 8.0 } }); Matrix c = a.multiply(b); // a * b Matrix d = a.add(b); // a + b Matrix e = a.subtract(b); // a - b