public void CastRectangularToSquare() { RectangularMatrix A = GenerateRandomMatrix(2, 3); RectangularMatrix AT = A.Transpose; RectangularMatrix ATA1 = AT * A; SquareMatrix ATA2 = (SquareMatrix)ATA1; Assert.IsTrue(ATA2 == ATA1); SymmetricMatrix ATA3 = A.MultiplyTransposeBySelf(); Assert.IsTrue(ATA2 == ATA3); RectangularMatrix AAT1 = A * AT; SquareMatrix AAT2 = (SquareMatrix)AAT1; Assert.IsTrue(AAT2 == AAT1); SymmetricMatrix AAT3 = A.MultiplySelfByTranspose(); Assert.IsTrue(AAT2 == AAT3); }
public void MatrixSelfMultiplication() { RectangularMatrix A = GenerateRandomMatrix(3, 4); SymmetricMatrix AAT = A.MultiplySelfByTranspose(); Assert.IsTrue(TestUtilities.IsNearlyEqual(AAT, A * A.Transpose)); SymmetricMatrix ATA = A.MultiplyTransposeBySelf(); Assert.IsTrue(TestUtilities.IsNearlyEqual(ATA, A.Transpose * A)); }