示例#1
0
 public void Invert()
 {
     matrix = matrix.Invert();
 }
示例#2
0
		public static Matrix Power(Matrix m, int pow)           // Power matrix to exponent
		{
			if (pow == 0) return IdentityMatrix(m.rows, m.cols);
			if (pow == 1) return m.Duplicate();
			if (pow == -1) return m.Invert();
			
			Matrix x;
			if (pow < 0) { x = m.Invert(); pow *= -1; }
			else x = m.Duplicate();
			
			Matrix ret = IdentityMatrix(m.rows, m.cols);
			while (pow != 0)
			{
				if ((pow & 1) == 1) ret *= x;
				x *= x;
				pow >>= 1;
			}
			return ret;
		}