private void test(DMatrix a) { int m = a.getM(); int n = a.getN(); DMatrixLud lud = new DMatrixLud(a); int[] piv = lud.getPivot(); DMatrix l = lud.getL(); DMatrix u = lud.getU(); DMatrix lu = l.times(u); assertEqualFuzzy(a.get(piv, null), lu); if (m == n) { int nrhs = 2; DMatrix b = DMatrix.random(m, nrhs); DMatrix x = lud.solve(b); DMatrix ax = a.times(x); assertEqualFuzzy(ax, b); } }
public DMatrix sub(double v) { DMatrix m = DMath.createMatrix(this.rows(), this.columns(), this.toArray()); for (int i = 0; i < this.length(); i++) m.put(i, m.get(i) - v); return m; }