code: def iterate(self):
      if self.tp in "fd":
          results = self._arpack_solver(
              self.ido,
              self.bmat,
              self.which,
              self.k,
              self.tol,
              self.resid,
              self.v,
              self.iparam,
              self.ipntr,
              self.workd,
              self.workl,
              self.info,
          )
          (
              self.ido,
              self.tol,
              self.resid,
              self.v,
              self.iparam,
              self.ipntr,
              self.info,
          ) = results
  
      else:
          results = self._arpack_solver(
              self.ido,
              self.bmat,
              self.which,
              self.k,
              self.tol,
              self.resid,
              self.v,
              self.iparam,
              self.ipntr,
              self.workd,
              self.workl,
              self.rwork,
              self.info,
          )
          (
              self.ido,
              self.tol,
              self.resid,
              self.v,
              self.iparam,
              self.ipntr,
              self.info,
          ) = results
  
      xslice = slice(self.ipntr[0] - 1, self.ipntr[0] - 1 + self.n)
      yslice = slice(self.ipntr[1] - 1, self.ipntr[1] - 1 + self.n)
      if self.ido == -1:
          # initialization
          self.workd[yslice] = self.OP(self.workd[xslice])
      elif self.ido == 1:
          # compute y = Op*x
          if self.mode in (1, 2):
              self.workd[yslice] = self.OP(self.workd[xslice])
          else:
              Bxslice = slice(
                  self.ipntr[2] - 1, self.ipntr[2] - 1 + self.n
              )
              self.workd[yslice] = self.OPa(self.workd[Bxslice])
      elif self.ido == 2:
          self.workd[yslice] = self.B(self.workd[xslice])
      elif self.ido == 3:
          raise ValueError(
              "ARPACK requested user shifts.  Assure ISHIFT==0"
          )
      else:
          self.converged = True
  
          if self.info == 0:
              pass
          elif self.info == 1:
              self._raise_no_convergence()
          else:
              raise ArpackError(
                  self.info, infodict=self.iterate_infodict
              )
  
imports: import numpy
  import warnings
  from scipy.sparse.linalg._interface import aslinearoperator, LinearOperator
  from scipy.sparse import eye, issparse
  from scipy.linalg import eig, eigh, lu_factor, lu_solve
  from scipy.sparse._sputils import isdense, is_pydata_spmatrix
  from scipy.sparse.linalg import gmres, splu
  from scipy._lib._util import _aligned_zeros
  from scipy._lib._threadsafety import ReentrancyLock
  from .None import _arpack
label_desc: Use image node_id 2 for calling the _UnsymmetricArpackParams obj's underlying member method code with example usage: obj.iterate() without return types