public void RectangularMatrixNorms() { RectangularMatrix Z = new RectangularMatrix(3, 4); Assert.IsTrue(Z.OneNorm() == 0.0); Assert.IsTrue(Z.InfinityNorm() == 0.0); Assert.IsTrue(Z.FrobeniusNorm() == 0.0); RectangularMatrix A = GenerateRandomMatrix(4, 5); Assert.IsTrue(A.OneNorm() > 0.0); Assert.IsTrue(A.InfinityNorm() > 0.0); Assert.IsTrue(A.FrobeniusNorm() > 0.0); RectangularMatrix B = GenerateRandomMatrix(5, 6); Assert.IsTrue(B.OneNorm() > 0.0); Assert.IsTrue(B.InfinityNorm() > 0.0); Assert.IsTrue(B.FrobeniusNorm() > 0.0); // Frobenius norm is sub-multiplicative RectangularMatrix P = A * B; Assert.IsTrue(P.FrobeniusNorm() <= A.FrobeniusNorm() * B.FrobeniusNorm()); }