np.linalg.matrix_power¶
-
np.linalg.
matrix_power
(x)[source]¶ Raises a square Galois field matrix to an integer power.
References
Examples
In [1]: GF = galois.GF(31) In [2]: A = GF.Random((3,3)); A Out[2]: GF([[ 2, 16, 8], [11, 21, 20], [25, 6, 14]], order=31) In [3]: np.linalg.matrix_power(A, 3) Out[3]: GF([[13, 20, 24], [18, 13, 21], [20, 19, 26]], order=31) In [4]: A @ A @ A Out[4]: GF([[13, 20, 24], [18, 13, 21], [20, 19, 26]], order=31)
In [5]: GF = galois.GF(31) # Ensure A is full rank and invertible In [6]: while True: ...: A = GF.Random((3,3)); ...: if np.linalg.matrix_rank(A) == 3: ...: break ...: In [7]: A Out[7]: GF([[ 3, 10, 18], [20, 14, 18], [14, 26, 5]], order=31) In [8]: np.linalg.matrix_power(A, -3) Out[8]: GF([[13, 27, 6], [15, 10, 30], [16, 1, 24]], order=31) In [9]: A_inv = np.linalg.inv(A) In [10]: A_inv @ A_inv @ A_inv Out[10]: GF([[13, 27, 6], [15, 10, 30], [16, 1, 24]], order=31)