int gsl_sf_complex_spence_xy_e( const double x, const double y, gsl_sf_result * real_sp, gsl_sf_result * imag_sp ) { const double oms_x = 1.0 - x; const double oms_y = - y; return gsl_sf_complex_dilog_xy_e(oms_x, oms_y, real_sp, imag_sp); }
int gsl_sf_complex_dilog_e( const double r, const double theta, gsl_sf_result * real_dl, gsl_sf_result * imag_dl ) { const double cos_theta = cos(theta); const double sin_theta = sin(theta); const double x = r * cos_theta; const double y = r * sin_theta; return gsl_sf_complex_dilog_xy_e(x, y, real_dl, imag_dl); }
CAMLprim value ml_gsl_sf_complex_dilog_xy_e(value x, value y) { gsl_sf_result re, im; gsl_sf_complex_dilog_xy_e (Double_val(x), Double_val(y), &re, &im); return val_of_result_pair (&re, &im); }
gslpp::complex Polylogarithms::Li2(const gslpp::complex z) const { gsl_sf_result re, im; gsl_sf_complex_dilog_xy_e(z.real(), z.imag(), &re, &im); return gslpp::complex(re.val, im.val, false); }
gslpp::complex Polylogarithms::Li2(const double x) const { gsl_sf_result re, im; gsl_sf_complex_dilog_xy_e(x, 0.0, &re, &im); return gslpp::complex(re.val, im.val, false); }
/** DiLogarithm of a complex number \ingroup complex \param[in] z Complex number \return \f$ Li_2(z) \f$*/ complex dilog(const complex& z) { gsl_sf_result re, im; gsl_sf_complex_dilog_xy_e(z.real(), z.imag(), &re, &im); return complex(re.val, im.val, false); }