int gsl_spline_eval_deriv2_e (const gsl_spline * spline, double x, gsl_interp_accel * a, double * d2) { return gsl_interp_eval_deriv2_e (spline->interp, spline->x, spline->y, x, a, d2); }
static VALUE rb_gsl_interp_eval_deriv2_e(VALUE obj, VALUE xxa, VALUE yya, VALUE xx) { rb_gsl_interp *rgi = NULL; double *ptr1 = NULL, *ptr2 = NULL, x, y; size_t size, stridex, stridey; int status; Need_Float(xx); Data_Get_Struct(obj, rb_gsl_interp, rgi); ptr1 = get_vector_ptr(xxa, &stridex, &size); ptr2 = get_vector_ptr(yya, &stridey, &size); x = NUM2DBL(xx); status = gsl_interp_eval_deriv2_e(rgi->p, ptr1, ptr2, x, rgi->a, &y); switch (status) { case GSL_EDOM: rb_gsl_error_handler("gsl_interp_eval_deriv2_e error", __FILE__, __LINE__, status); break; default: return rb_float_new(y); break; } return Qnil; }