/// <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);
        }