//likely lossy conversion, truncation of decimals public SquareIntegerMatrix GetInverse() { int det = Determinant(); if (det == 0) { throw new MatrixTypeMismatchException(); //matrix is not invertible } SquareIntegerMatrix ret = new SquareIntegerMatrix(Size); if (Size == 2) { for (int i = 0; i < Size; i++) { for (int j = 0; j < Size; j++) { ret.Replace(i, j, Get(i, j) / det); } } } else { //size > 2 TODO: } return(ret); }
//TODO: classify multiplications to have the products be as explicit as possible. //im sure theres a better way to do this lol public SquareIntegerMatrix Multiply(SquareIntegerMatrix other) { IntegerMatrix product = Multiply(other as IntegerMatrix); SquareIntegerMatrix ret = new SquareIntegerMatrix(other.RowSize); for (int i = 0; i < RowSize; i++) { for (int j = 0; j < RowSize; j++) { ret.Replace(i, j, product.Get(i, j)); } } return(ret); }
public SquareIntegerMatrix TrySquareConversion() { if (IsSquare) { SquareIntegerMatrix ret = new SquareIntegerMatrix(RowSize); for (int i = 0; i < RowSize; i++) { for (int j = 0; j < RowSize; j++) { ret.Replace(i, j, this.Get(i, j)); } } return(ret); } else { throw new MatrixTypeMismatchException(); } }