code: def set(self, n=None, ftype=None, colfac=None, lmfac=None, fid=0):
          
          self._checkid(fid)
          if ftype is None:
              ftype = -1
          else:
              ftype = self._gettype(ftype)
          if n is None:
              n = -1
          elif n < 0:
              raise ValueError("Illegal set argument n")
          if colfac is None:
              colfac = -1
          elif colfac < 0:
              raise ValueError("Illegal set argument colfac")
          if lmfac is None:
              lmfac = -1
          elif lmfac < 0:
              raise ValueError("Illegal set argument lmfac")
  
          self._fitids[fid]["stat"] = False
          self._fitids[fid]["solved"] = False
          self._fitids[fid]["haserr"] = False
          self._fitids[fid]["fit"] = True
          self._fitids[fid]["looped"] = False
          if n != -1 or ftype != -1 or colfac != -1 or lmfac != -1:
              if not self._fitproxy.set(fid, n, ftype, colfac, lmfac):
                  return False
          self._fitids[fid]["stat"] = self._getstate(fid)
          return True
docs: Set selected properties of the fitserver instance.
  
          All unset properties remain the same (in the :meth:`init` method all
          properties are (re-)initialized). Like in the constructor, the number
          of unknowns to be solved for; the number of simultaneous solutions;
          the ftype (as code); and the collinearity and Levenberg-Marquardt
          factor can be specified.
  
          :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