docs: def derivatives(self, x, y, Rs, theta_Rs, e1, e2, center_x=0, center_y=0):
          """
          returns df/dx and df/dy of the function (integral of NFW)
          """
          phi_G, q = param_util.ellipticity2phi_q(e1, e2)
          x_shift = x - center_x
          y_shift = y - center_y
          cos_phi = np.cos(phi_G)
          sin_phi = np.sin(phi_G)
          e = min(abs(1. - q), 0.99)
          xt1 = (cos_phi*x_shift+sin_phi*y_shift)*np.sqrt(1 - e)
          xt2 = (-sin_phi*x_shift+cos_phi*y_shift)*np.sqrt(1 + e)
          R_ = np.sqrt(xt1**2 + xt2**2)
          rho0_input = self.nfw._alpha2rho0(theta_Rs=theta_Rs, Rs=Rs)
          if Rs < 0.0000001:
              Rs = 0.0000001
          f_x_prim, f_y_prim = self.nfw.nfwAlpha(R_, Rs, rho0_input, xt1, xt2)
          f_x_prim *= np.sqrt(1 - e)
          f_y_prim *= np.sqrt(1 + e)
          f_x = cos_phi*f_x_prim-sin_phi*f_y_prim
          f_y = sin_phi*f_x_prim+cos_phi*f_y_prim
          return f_x, f_y