@Test public void testRecoverOrginal() { final MatrixAlgebra algebra = getAlgebra(); final DecompositionResult result = getSVD().apply(A); assertTrue(result instanceof SVDecompositionResult); final SVDecompositionResult svd_result = (SVDecompositionResult) result; final DoubleMatrix u = svd_result.getU(); final DoubleMatrix w = DoubleMatrix.diagonal(DoubleArray.copyOf(svd_result.getSingularValues())); final DoubleMatrix vt = svd_result.getVT(); final DoubleMatrix a = (DoubleMatrix) algebra.multiply(algebra.multiply(u, w), vt); checkEquals(A, a); }