public TwoByTwoMatrix Add(TwoByTwoMatrix secondMatrix) { var resultMatrix = new TwoByTwoMatrix(this.Element00 + secondMatrix.Element00, this.Element01 + secondMatrix.Element01, this.Element10 + secondMatrix.Element10, this.Element11 + secondMatrix.Element11); return(resultMatrix); }
public TwoByTwoMatrix Subtract(TwoByTwoMatrix secondMatrix) { var resultMatrix = new TwoByTwoMatrix(this.Element00 - secondMatrix.Element00, this.Element01 - secondMatrix.Element01, this.Element10 - secondMatrix.Element10, this.Element11 - secondMatrix.Element11); return(resultMatrix); }
public TwoByTwoMatrix Multiply(TwoByTwoMatrix secondMatrix) { double resultElement00 = (this.Element00 * secondMatrix.Element00) + (this.Element01 * secondMatrix.Element10); double resultElement01 = (this.Element00 * secondMatrix.Element01) + (this.Element01 * secondMatrix.Element11); double resultElement10 = (this.Element10 * secondMatrix.Element00) + (this.Element11 * secondMatrix.Element10); double resultElement11 = (this.Element10 * secondMatrix.Element01) + (this.Element11 * secondMatrix.Element11); var resultMatrix = new TwoByTwoMatrix(resultElement00, resultElement01, resultElement10, resultElement11); return(resultMatrix); }
public TwoByTwoMatrix GetInverse() { double determinant = this.GetDeterminant(); // Matrix with determinant 0 does not have an inverse matrix if (determinant == 0) { return(null); } var inverseMatrix = new TwoByTwoMatrix(this.Element11 / determinant, -this.Element01 / determinant, -this.Element10 / determinant, this.Element00 / determinant); return(inverseMatrix); }