public static (int iBegin, int iEnd, int jBegin, int jEnd) GetIndexes(PartOfMatrix part, int dimension)
        {
            int iBegin = 0, iEnd = 0, jBegin = 0, jEnd = 0;

            if (!IsPowerOfTwo(dimension))
            {
                return(iBegin : iBegin, iEnd : iEnd, jBegin : jBegin, jEnd : jEnd);
            }

            if (part == PartOfMatrix.LeftTop)
            {
                iBegin = 0;
                iEnd   = dimension / 2;
                jBegin = 0;
                jEnd   = dimension / 2;
            }
            if (part == PartOfMatrix.LeftBottom)
            {
                iBegin = dimension / 2;
                iEnd   = dimension;
                jBegin = 0;
                jEnd   = dimension / 2;
            }
            if (part == PartOfMatrix.RightTop)
            {
                iBegin = 0;
                iEnd   = dimension / 2;
                jBegin = dimension / 2;
                jEnd   = dimension;
            }
            if (part == PartOfMatrix.RightBottom)
            {
                iBegin = dimension / 2;
                iEnd   = dimension;
                jBegin = dimension / 2;
                jEnd   = dimension;
            }
            return(iBegin : iBegin, iEnd : iEnd, jBegin : jBegin, jEnd : jEnd);
        }
예제 #2
0
 public MatrixPart(int[,] v1, PartOfMatrix part)
 {
     Data = MathExtensions.CreateMatrixPart(v1, part);
 }