def iterate(self):
        if BACKPORT_TO is None:
            return None
        if BACKPORT_TO == '0.10':
            if self.tp in 'fd':
                self.ido, self.tol, self.resid, self.v, self.iparam, self.ipntr, self.info =\
                    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)
            else:
                self.ido, self.tol, self.resid, self.v, self.iparam, self.ipntr, self.info =\
                    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)
        elif BACKPORT_TO == '0.09':
            if 'fd' in self.tp:
                self.ido, self.resid, self.v, self.iparam, self.ipntr, self.info =\
                    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)
            else:
                self.ido, self.resid, self.v, self.iparam, self.ipntr, self.info =\
                    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)

        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)
dataset/ETHPy150Open scikit-learn/scikit-learn/sklearn/utils/arpack.py/_UnsymmetricArpackParams.iterate/swapped operands of `in`