fn

matrix_power

Tensor
matrix_power(x: Tensor, n: int)
source

Raise a square matrix to an integer power.

Computes AnA^n for an integer exponent nn:

An={AAAn timesn>0In=0(A1)nn<0A^n \,=\, \begin{cases} \underbrace{A A \cdots A}_{n\ \text{times}} & n > 0 \\ I & n = 0 \\ (A^{-1})^{|n|} & n < 0 \end{cases}

Parameters

xTensor
Square matrix of shape (*, m, m).
nint
Integer exponent. Negative values require AA to be invertible.

Returns

Tensor

AnA^n, shape (*, m, m).

Notes

Uses binary exponentiation (repeated squaring) so the cost is O(logn)O(\log |n|) matrix multiplies rather than n|n|. Implemented as a Python composite over matmul and inv so autograd flows naturally — the engine matrix_power_op is not differentiable.

Examples

>>> import lucid
>>> from lucid.linalg import matrix_power
>>> A = lucid.tensor([[1.0, 1.0], [0.0, 1.0]])
>>> matrix_power(A, 5)
Tensor([[1.0000, 5.0000],
        [0.0000, 1.0000]])