/// <summary>
        /// Convert a <see cref="FieldMatrix"/>/<see cref="BigFraction"/> matrix to a
        /// <see cref="RealMatrix"/>.
        /// </summary>
        /// <param name="m">Matrix to convert.</param>
        /// <returns>the converted matrix.</returns>
        public static Array2DRowRealMatrix bigFractionMatrixToRealMatrix(FieldMatrix <BigFraction> m)
        {
            BigFractionMatrixConverter converter = new BigFractionMatrixConverter();

            m.walkInOptimizedOrder(converter);
            return(converter.getConvertedMatrix());
        }
        /// <inheritdoc/>
        public FieldMatrix <T> getSubMatrix(int[] selectedRows, int[] selectedColumns)
        {
            // safety checks
            checkSubMatrixIndex(selectedRows, selectedColumns);

            // copy entries
            FieldMatrix <T> subMatrix =
                createMatrix(selectedRows.Length, selectedColumns.Length);

            subMatrix.walkInOptimizedOrder(new DefaultFieldMatrixChangingVisitorAnonymous1 <T>(field.getZero(), selectedRows, selectedColumns, this));

            return(subMatrix);
        }