def test_qrdecomposition(self): A = Matrix([3, 2], [1, 0]) Q, R = lalg.qr(A) # Test Q is orthonormal self.assertAlmostEqual(Q.transposed() * Q, Matrix(2, 2, mtype="i"), delta=0.001) # Test Q * R = A self.assertAlmostEqual(A, Q * R, delta=0.001) # Test R is uppertriangular self.assertEqual(True, lalg.istriu(R))
def test_istriu(self): self.assertEqual(True, lalg.istriu(Matrix([1, 1, 1, 1], [0, 1, 1, 1], [0, 0, 1, 1], [0, 0, 0, 1]))) self.assertEqual(False, lalg.istriu(Matrix([1, 0, 0, 0], [1, 1, 0, 0], [1, 1, 1, 0], [1, 1, 1, 1]))) # Zero and identity matrix are lower and upper triangular self.assertEqual(True, lalg.istril(Matrix(3, 3))) self.assertEqual(True, lalg.istril(Matrix(8, 8, mtype="i")))