/// <summary> /// Returns the state of a solved matrix. /// </summary> public static MatrixSolutionState GetSolutionState(double[,] input, int augmentedCols) { var rowCount = input.GetLength(0); var totalCols = input.GetLength(1); for (int row = 0; row < rowCount; row++) { var sumRow = MatrixFunctions.RowSum(input, row, 0, totalCols - augmentedCols - 1); var sumAug = MatrixFunctions.RowSum(input, row, totalCols - augmentedCols, totalCols - 1); if (sumRow + sumAug == 0) { return(MatrixSolutionState.Infinite); } else if (sumRow == 0) { return(MatrixSolutionState.None); } } return(MatrixSolutionState.Unique); }