code: def _matmat(self, X):
      for i in range(self._p):
          X = _smart_matrix_product(
              self._A, X, structure=self._structure
          )
      return X
  
imports: from __future__ import division, print_function, absolute_import
  import math
  import numpy
  import scipy.special
  from scipy.linalg.basic import solve, solve_triangular
  from scipy.sparse.base import isspmatrix
  from scipy.sparse.construct import eye
  from scipy.sparse.linalg import spsolve
  import scipy.sparse
  import scipy.sparse.linalg
  from scipy.sparse.linalg.interface import LinearOperator
label_desc: Use image node_id 4 for calling the MatrixPowerOperator obj's underlying member method code with example usage: obj._matmat(X) and returns: X