code: def fitter(self, n=0, ftype="real", colfac=1.0e-8, lmfac=1.0e-3):
          
          fid = self._fitproxy.getid()
          ftype = self._gettype(ftype)
          n = len(self._fitids)
          if 0 <= fid < n:
              self._fitids[fid] = {}
          elif fid == n:
              self._fitids.append({})
          else:
              # shouldn't happen
              raise RangeError("fit id out of range")
          self.init(n=n, ftype=ftype, colfac=colfac, lmfac=lmfac, fid=fid)
          return fid
docs: Create a sub-fitter.
  
          The created sub-fitter can be used in the same way as a fitter
          default fitter. This function returns an identification, which has to
          be used in the `fid` argument of subsequent calls. The call can
          specify the standard constructor arguments (`n`, `type`, `colfac`,
          `lmfac`), or can specify them later in a :meth:`set` statement.
  
          :param n:      number of unknowns
          :param ftype:  type of solution
                         Allowed: real, complex, separable, asreal, conjugate
          :param colfac: collinearity factor
          :param lmfac:  Levenberg-Marquardt factor
          :param fid:    the id of a sub-fitter