code: def Jacobian_re_im(self, pars):
          r
          partials = []
  
          # partials.append(self.dre_dlog10rho0(pars)[:, np.newaxis, :])
          partials.append(self.dre_drho0(pars)[:, np.newaxis])
          partials.append(self.dre_dm(pars))
          # partials.append(self.dre_dlog10tau(pars))
          partials.append(self.dre_dtau(pars))
          partials.append(self.dre_dc(pars))
          # partials.append(self.dim_dlog10rho0(pars)[:, np.newaxis, :])
          partials.append(self.dim_drho0(pars)[:, np.newaxis])
          partials.append(self.dim_dm(pars))
          # partials.append(self.dim_dlog10tau(pars))
          partials.append(self.dim_dtau(pars))
          partials.append(self.dim_dc(pars))
  
          print('SHAPES')
          for x in partials:
              print(x.shape)
  
          J = np.concatenate(partials, axis=1)
          return J
docs: r"""
          :math:`J`
  
          >>> import sip_models.res.cc as cc
          >>> import numpy as np
          >>> f = np.logspace(-3, 3, 20)
          >>> pars = [100, 0.1, 0.04, 0.8]
          >>> obj = cc.cc(f)
          >>> J = obj.Jacobian_re_im(pars)