r"""Complex response of the Cole-Cole model::
        :math:`\hat{\rho} = \rho_0 \left(1 - \sum_i m_i (1 - \frac{1}{1 + (j
        \omega \tau_i)^c_i})\right)`

        Parameters
        ----------
        parameters: list or tuple or numpy.ndarray
            Cole-Cole model parameters: rho0, m, tau, c (all linear)

        Returns
        -------
        response: :class:`sip_models.sip_response.sip_response`
            model response object

def response(self, parameters):
        r"""Complex response of the Cole-Cole model::
        :math:`\hat{\rho} = \rho_0 \left(1 - \sum_i m_i (1 - \frac{1}{1 + (j
        \omega \tau_i)^c_i})\right)`

        Parameters
        ----------
        parameters: list or tuple or numpy.ndarray
            Cole-Cole model parameters: rho0, m, tau, c (all linear)

        Returns
        -------
        response: :class:`sip_models.sip_response.sip_response`
            model response object
        """
        # get a config object
        self._set_parameters(parameters)
        terms = self.m * (1 - (1 / (1 + (1j * self.w * self.tau) ** self.c)))
        # sum up terms
        specs = np.sum(terms, axis=1)
        rcomplex = self.rho0 * (1 - specs)
        response = sip_response.sip_response(self.f, rcomplex=rcomplex)

        return response