class_docstr: IterInv:
     helper class to repeatedly solve M*x=b
     using an iterative method.
code: def _matvec(self, x):
      b, info = self.ifunc(self.M, x, tol=self.tol)
      if info != 0:
          raise ValueError(
              "Error in inverting M: function "
              "%s did not converge (info = %i)."
              % (self.ifunc.__name__, info)
          )
      return b
  
imports: from __future__ import division, print_function, absolute_import
  from .None import _arpack
  import numpy
  import warnings
  from scipy.sparse.linalg.interface import aslinearoperator, LinearOperator
  from scipy.sparse import eye, issparse, isspmatrix, isspmatrix_csr
  from scipy.linalg import eig, eigh, lu_factor, lu_solve
  from scipy.sparse.sputils import isdense
  from scipy.sparse.linalg import gmres, splu
  from scipy._lib._util import _aligned_zeros
  from scipy._lib._threadsafety import ReentrancyLock
label_desc: Use image node_id 2 for calling the IterInv obj's underlying member method code with example usage: obj._matvec(x) and returns: b