def _set_parameters(self, parameters):
nr_f = self.f.size<EOL>sigmai, m, tau, c = self._sort_parameters(parameters)<EOL>newsize = (nr_f, len(m))<EOL>m_resized = np.resize(m, newsize)<EOL>tau_resized = np.resize(tau, newsize)<EOL>c_resized = np.resize(c, newsize)<EOL>omega = np.atleast_2d(<NUM_LIT:2> * np.pi * self.f).T<EOL>self.w = np.resize(omega, (len(m), nr_f)).T<EOL>self.sigmai = sigmai<EOL>self.m = m_resized<EOL>self.tau = tau_resized<EOL>self.c = c_resized<EOL>self.sigma0 = (<NUM_LIT:1> - self.m) * self.sigmai<EOL>self.otc = (self.w * self.tau) ** self.c<EOL>self.otc1 = (self.w * self.tau) ** (self.c - <NUM_LIT:1>)<EOL>self.otc2 = (self.w * self.tau) ** (<NUM_LIT:2> * self.c)<EOL>self.ang = self.c * np.pi / <NUM_LIT>  <EOL>self.num = <NUM_LIT:1> + self.otc * np.cos(self.ang)<EOL>self.denom = <NUM_LIT:1> + <NUM_LIT:2> * self.otc * np.cos(self.ang) + self.otc2<EOL>
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: sigmai, m1, tau1, c1
            for multiple terms: sigmai, m1, m2, ..., tau1, tau2, ..., c1, c2,
            ...

        2) a dictionary with the entries "sigmai", "m", "tau", "c"

        2b) if the dictionary entries for "m", "tau", and "c" are lists, the
        entries correspond to mulitple polarisazion terms