示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }