//-----------------------------------------------------------------------------------------------
        //Преобразование значений матрицы по шаблону
        public static RealMatrix TransformMatrixValues(
            RealMatrix matrix, BitMask2D stencilMatrix,
            RealIntervalTransform intervalTransform, double prickedValue
            )
        {
            int        rowCount          = matrix.RowCount;
            int        columnCount       = matrix.ColumnCount;
            RealMatrix transformedMatrix = new RealMatrix(rowCount, columnCount);

            for (int row = 0; row < rowCount; row++)
            {
                for (int column = 0; column < columnCount; column++)
                {
                    if (stencilMatrix[row, column] == true)
                    {
                        double value            = matrix[row, column];
                        double transformedValue =
                            intervalTransform.TransformToFinishIntervalValue(value);
                        transformedMatrix[row, column] = transformedValue;
                    }
                    else
                    {
                        transformedMatrix[row, column] = prickedValue;
                    }
                }
            }
            return(transformedMatrix);
        }
        //-----------------------------------------------------------------------------------------------
        //Приведение значений матрицы к интервалу
        public static RealMatrix TransformMatrixValuesToFinishIntervalValues(
            RealMatrix matrix, Interval <double> finishInterval
            )
        {
            double minValue = matrix.GetMinValue();
            double maxValue = matrix.GetMaxValue();

            Interval <double>     startInterval     = new Interval <double>(minValue, maxValue);
            RealIntervalTransform intervalTransform =
                new RealIntervalTransform(startInterval, finishInterval);

            int        rowCount          = matrix.RowCount;
            int        columnCount       = matrix.ColumnCount;
            RealMatrix transformedMatrix = new RealMatrix(rowCount, columnCount);

            for (int row = 0; row < rowCount; row++)
            {
                for (int column = 0; column < columnCount; column++)
                {
                    double value            = matrix[row, column];
                    double transformedValue =
                        intervalTransform.TransformToFinishIntervalValue(value);
                    transformedMatrix[row, column] = transformedValue;
                }
            }
            return(transformedMatrix);
        }
        //-------------------------------------------------------------------------------------
        //Преобразование значений матрицы
        public static IntegerMatrix TransformMatrixValues(
            IntegerMatrix matrix,
            RealIntervalTransform intervalTransform
            )
        {
            int           rowCount          = matrix.RowCount;
            int           columnCount       = matrix.ColumnCount;
            IntegerMatrix transformedMatrix = new IntegerMatrix(rowCount, columnCount);

            for (int row = 0; row < rowCount; row++)
            {
                for (int column = 0; column < columnCount; column++)
                {
                    double value            = matrix[row, column];
                    double transformedValue =
                        intervalTransform.TransformToFinishIntervalValue(value);
                    transformedMatrix[row, column] = Convert.ToInt32(transformedValue);
                }
            }
            return(transformedMatrix);
        }