int binom_transform_df(const gsl_vector* x, void* p, gsl_matrix* J) { double r = gsl_vector_get(x, 0); double s = gsl_vector_get(x, 1); double df00 = gsl_sf_psi_1(r); double df01 = -1.0 * gsl_sf_psi_1(s); double df10 = gsl_sf_psi_n(2, r); double df11 = gsl_sf_psi_n(2, s); gsl_matrix_set(J, 0, 0, df00); gsl_matrix_set(J, 0, 1, df01); gsl_matrix_set(J, 1, 0, df10); gsl_matrix_set(J, 1, 1, df11); return GSL_SUCCESS; }
//------------------------------------------------------------------------------ /// Polygamma function \f$ \psi^{(n)}(x) \f$ inline double psin(const int n, const double x) { return gsl_sf_psi_n(n, x); }
double psi_2(double x){ return gsl_sf_psi_n(2,x); }