Source code for sympy.matrices.expressions.matpow

from __future__ import print_function, division

from .matexpr import MatrixExpr, ShapeError, Identity
from sympy import Pow, S, Basic
from sympy.core.sympify import _sympify


[docs]class MatPow(MatrixExpr): def __new__(cls, base, exp): base = _sympify(base) assert base.is_Matrix exp = _sympify(exp) return super(MatPow, cls).__new__(cls, base, exp) @property def base(self): return self.args[0] @property def exp(self): return self.args[1] @property def shape(self): return self.base.shape def _entry(self, i, j): if self.exp.is_Integer: # Make an explicity MatMul out of the MatPow return MatMul(*[self.base for k in range(self.exp)])._entry(i, j)
from .matmul import MatMul