CAMLprim value ml_gsl_sf_ellint_D(value arg1, value arg2, value arg3) { CAMLparam3(arg1, arg2, arg3); double dummy_n = 0; /* Ignored by old implementation anyway */ double res = gsl_sf_ellint_D( Double_val(arg1), Double_val(arg2), dummy_n, GSL_MODE_val(arg3)); CAMLreturn(caml_copy_double(res)); }
/** * C++ version of gsl_sf_ellint_D(). * D(phi,k,n) = R_D(1-Sin[phi]^2, 1-k^2 Sin[phi]^2, 1.0) * @param phi A real number * @param k A real number * @param n A real number * @param mode The mode * @return The function value */ inline double D( double phi, double k, double n, mode_t mode ){ return gsl_sf_ellint_D( phi, k, n, mode ); }