docs: def _set_parameters(self, parameters):
          """Sort out the various possible parameter inputs and return a config
          object (dict)
  
          We have multiple input formats:
  
          1) a list, tuple, or numpy.ndarray, containing the linear parameters
          in the following order:
          * for single term: rho0, m1, tau1, c1
          * for multiple termss: rho0, m1, m2, ..., tau1, tau2, ..., c1, c2, ...
  
          2) a dictionary with the entries "rho0", "m", "tau", "c"
  
          2b) if the dictionary entries for "m", "tau", and "c" are lists, the
          entries correspond to mulitple polarisazion terms
  
          """
          nr_f = self.f.size
  
          # sort out parameters
          rho0, m, tau, c = self._sort_parameters(parameters)
  
          newsize = (nr_f, len(m))
          # rho0_resized = np.resize(rho0, newsize)
          m_resized = np.resize(m, newsize)
          tau_resized = np.resize(tau, newsize)
          c_resized = np.resize(c, newsize)
  
          omega = np.atleast_2d(2 * np.pi * self.f).T
          self.w = np.resize(omega, (len(m), nr_f)).T
          self.rho0 = rho0
          self.m = m_resized
          self.tau = tau_resized
          self.c = c_resized
  
          # compute some common terms
          self.otc = (self.w * self.tau) ** self.c
          self.otc2 = (self.w * self.tau) ** (2 * self.c)
          self.ang = self.c * np.pi / 2.0  # rad
          self.denom = 1 + 2 * self.otc * np.cos(self.ang) + self.otc2