public override bool Equals(object obj)
        {
            MatrixBase <TScalar, TMatrix, TInvert> rhs = obj as MatrixBase <TScalar, TMatrix, TInvert>;

            if (rhs == null)
            {
                return(false);
            }

            for (int i = 0; i < this.Size; i++)
            {
                for (int j = 0; j < this.Size; j++)
                {
                    if (!this.Operations.Compare(this[i, j], rhs[i, j]))
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
 public TScalar Dot(MatrixBase <TScalar, TInvert, TMatrix> matrix)
 {
     return(MatrixUtilities.ScalarProduct((i, j) => this[i, j], (i, j) => matrix[i, j], this.Size, this.Operations));
 }