示例#1
0
            public static mtx2x2 IntPower(mtx2x2 matrix, short power)
            {
                if (power == 0)
                {
                    return(identity);
                }
                if (power == 1)
                {
                    return(matrix);
                }
                int n = 15;

                while ((power <<= 1) >= 0)
                {
                    n--;
                }
                mtx2x2 temp = matrix;

                while (--n > 0)
                {
                    temp = (temp * temp) * (((power <<= 1) < 0) ? matrix : identity);
                }
                return(temp);
            }
示例#2
0
            public static mtx2x2 IntPower(mtx2x2 x, short power)
            {
                if (power == 0)
                {
                    return(identity);
                }
                if (power == 1)
                {
                    return(x);
                }
                int n = 15;

                while ((power <<= 1) >= 0)
                {
                    n--;
                }
                mtx2x2 tmp = x;

                while (--n > 0)
                {
                    tmp = (tmp * tmp) * (((power <<= 1) < 0) ? x : identity);
                }
                return(tmp);
            }