@Test(expectedExceptions = IllegalArgumentException.class) public void testNullObjectMatrix() { CDOG.apply((DoubleMatrix) null); }
/** * {@inheritDoc} */ @Override public CholeskyDecompositionResult apply(DoubleMatrix x) { return evaluate(x, DEFAULT_SYMMETRY_THRESHOLD, DEFAULT_POSITIVITY_THRESHOLD); }
/** * Tests A = L L^T. */ public void recoverOrginal() { final CholeskyDecompositionResult result = CDOG.apply(A3); final DoubleMatrix a = (DoubleMatrix) ALGEBRA.multiply(result.getL(), result.getLT()); checkEquals(A3, a); }
/** * Tests solve Ax = b from A and b. */ public void solveVector() { final CholeskyDecompositionResult result = CDOG.apply(A5); double[] b = new double[] {1.0, 2.0, 3.0, 4.0, -1.0 }; double[] x = result.solve(b); DoubleArray ax = (DoubleArray) ALGEBRA.multiply(A5, DoubleArray.copyOf(x)); ArrayAsserts.assertArrayEquals("Cholesky decomposition OpenGamma - solve", b, ax.toArray(), 1.0E-10); }
/** * Tests solve AX = B from A and B. */ public void solveMatrix() { final CholeskyDecompositionResult result = CDOG.apply(A5); double[][] b = new double[][] { {1.0, 2.0 }, {2.0, 3.0 }, {3.0, 4.0 }, {4.0, -2.0 }, {-1.0, -1.0 } }; DoubleMatrix x = result.solve(DoubleMatrix.copyOf(b)); DoubleMatrix ax = (DoubleMatrix) ALGEBRA.multiply(A5, x); ArrayAsserts.assertArrayEquals("Cholesky decomposition OpenGamma - solve", b[0], ax.rowArray(0), 1.0E-10); ArrayAsserts.assertArrayEquals("Cholesky decomposition OpenGamma - solve", b[1], ax.rowArray(1), 1.0E-10); }
/** * Compare results with Common decomposition */ public void compareCommon() { final CholeskyDecompositionResult resultOG = CDOG.apply(A3); final CholeskyDecompositionResult resultC = CDC.apply(A3); checkEquals(resultC.getL(), resultOG.getL()); checkEquals(ALGEBRA.getTranspose(resultC.getL()), resultOG.getLT()); assertEquals("Determinant", resultC.getDeterminant(), resultOG.getDeterminant(), 1.0E-10); }