@Test public void testSVD() { AMatrix a = Matrixx.createRandomMatrix(5, 3); AMatrix[] ms = ThinSVD.decompose(a); AMatrix u = ms[0]; AMatrix s = ms[1]; AMatrix v = ms[2]; // we are testing that A = USV* AMatrix usvt = u.innerProduct(s.innerProduct(v.getTranspose())); // assertEquals(a,usvt); assertTrue(usvt.epsilonEquals(a)); assertTrue(v.isOrthogonal()); assertTrue(s.isRectangularDiagonal()); assertTrue(u.hasOrthonormalColumns()); }