@Test public void testJamaExample() { double[][] M = transpose(new double[][] { { 1., 2., 3., 4. }, { 5., 6., 7., 8. }, { 9., 10., 11., 12. } }); SingularValueDecomposition svd = new SingularValueDecomposition(M); // M = U * S * V^T double[][] M2 = times(svd.getU(), timesTranspose(svd.getS(), svd.getV())); assertTrue("Not a proper decomposition.", almostEquals(M, M2, 1e-14)); }