mirror of
https://github.com/vale981/arb
synced 2025-03-04 17:01:40 -05:00
wrap more functions
This commit is contained in:
parent
512d72b2e4
commit
636ca0be39
3 changed files with 235 additions and 7 deletions
63
arb_fpwrap.h
63
arb_fpwrap.h
|
@ -149,6 +149,69 @@ int arb_fpwrap_cdouble_polygamma(complex_double * res, complex_double s, complex
|
|||
int arb_fpwrap_double_polylog(double * res, double s, double z, int flags);
|
||||
int arb_fpwrap_cdouble_polylog(complex_double * res, complex_double s, complex_double z, int flags);
|
||||
|
||||
int arb_fpwrap_double_erf(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_erf(complex_double * res, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_erfc(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_erfc(complex_double * res, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_erfi(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_erfi(complex_double * res, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_bessel_j(double * res, double nu, double x, int flags);
|
||||
int arb_fpwrap_cdouble_bessel_j(complex_double * res, complex_double nu, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_bessel_y(double * res, double nu, double x, int flags);
|
||||
int arb_fpwrap_cdouble_bessel_y(complex_double * res, complex_double nu, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_bessel_i(double * res, double nu, double x, int flags);
|
||||
int arb_fpwrap_cdouble_bessel_i(complex_double * res, complex_double nu, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_bessel_k(double * res, double nu, double x, int flags);
|
||||
int arb_fpwrap_cdouble_bessel_k(complex_double * res, complex_double nu, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_bessel_k_scaled(double * res, double nu, double x, int flags);
|
||||
int arb_fpwrap_cdouble_bessel_k_scaled(complex_double * res, complex_double nu, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_airy_ai(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_airy_ai(complex_double * res, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_airy_ai_prime(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_airy_ai_prime(complex_double * res, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_airy_bi(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_airy_bi(complex_double * res, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_airy_bi_prime(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_airy_bi_prime(complex_double * res, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_coulomb_f(double * res, double l, double eta, double x, int flags);
|
||||
int arb_fpwrap_cdouble_coulomb_f(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_coulomb_g(double * res, double l, double eta, double x, int flags);
|
||||
int arb_fpwrap_cdouble_coulomb_g(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_cdouble_coulomb_hpos(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
|
||||
int arb_fpwrap_cdouble_coulomb_hneg(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_chebyshev_t(double * res, double n, double x, int flags);
|
||||
int arb_fpwrap_cdouble_chebyshev_t(complex_double * res, complex_double n, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_chebyshev_u(double * res, double n, double x, int flags);
|
||||
int arb_fpwrap_cdouble_chebyshev_u(complex_double * res, complex_double n, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_jacobi_p(double * res, double n, double a, double b, double x, int flags);
|
||||
int arb_fpwrap_cdouble_jacobi_p(complex_double * res, complex_double n, complex_double a, complex_double b, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_gegenbauer_c(double * res, double n, double m, double x, int flags);
|
||||
int arb_fpwrap_cdouble_gegenbauer_c(complex_double * res, complex_double n, complex_double m, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_laguerre_l(double * res, double n, double m, double x, int flags);
|
||||
int arb_fpwrap_cdouble_laguerre_l(complex_double * res, complex_double n, complex_double m, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_hermite_h(double * res, double n, double x, int flags);
|
||||
int arb_fpwrap_cdouble_hermite_h(complex_double * res, complex_double n, complex_double x, int flags);
|
||||
|
||||
int arb_fpwrap_double_agm1(double * res, double x, int flags);
|
||||
int arb_fpwrap_cdouble_agm1(complex_double * res, complex_double x, int flags);
|
||||
|
||||
|
|
|
@ -643,9 +643,6 @@ DEF_CDOUBLE_FUN_1(acosh, acb_acosh)
|
|||
DEF_DOUBLE_FUN_1(atanh, arb_atanh)
|
||||
DEF_CDOUBLE_FUN_1(atanh, acb_atanh)
|
||||
|
||||
/* todo: lambertw (with branches) */
|
||||
|
||||
|
||||
DEF_DOUBLE_FUN_2(rising, arb_rising)
|
||||
DEF_CDOUBLE_FUN_2(rising, acb_rising)
|
||||
|
||||
|
@ -667,7 +664,7 @@ DEF_CDOUBLE_FUN_1(zeta, acb_zeta)
|
|||
DEF_DOUBLE_FUN_2(hurwitz_zeta, arb_hurwitz_zeta)
|
||||
DEF_CDOUBLE_FUN_2(hurwitz_zeta, acb_hurwitz_zeta)
|
||||
|
||||
void
|
||||
static void
|
||||
_arb_polygamma(arb_t res, const arb_t s, const arb_t z, slong prec)
|
||||
{
|
||||
acb_t t, u, v;
|
||||
|
@ -686,7 +683,7 @@ _arb_polygamma(arb_t res, const arb_t s, const arb_t z, slong prec)
|
|||
acb_clear(v);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
_arb_barnes_g(arb_t res, const arb_t x, slong prec)
|
||||
{
|
||||
acb_t t, u;
|
||||
|
@ -702,7 +699,7 @@ _arb_barnes_g(arb_t res, const arb_t x, slong prec)
|
|||
acb_clear(u);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
_arb_log_barnes_g(arb_t res, const arb_t x, slong prec)
|
||||
{
|
||||
acb_t t, u;
|
||||
|
@ -730,7 +727,11 @@ DEF_CDOUBLE_FUN_2(polygamma, acb_polygamma)
|
|||
DEF_DOUBLE_FUN_2(polylog, arb_polylog)
|
||||
DEF_CDOUBLE_FUN_2(polylog, acb_polylog)
|
||||
|
||||
void
|
||||
DEF_DOUBLE_FUN_1(dilog, arb_hypgeom_dilog)
|
||||
DEF_CDOUBLE_FUN_1(dilog, acb_hypgeom_dilog)
|
||||
|
||||
|
||||
static void
|
||||
_arb_agm1(arb_t res, const arb_t x, slong prec)
|
||||
{
|
||||
arb_t t;
|
||||
|
@ -746,3 +747,95 @@ DEF_CDOUBLE_FUN_1(agm1, acb_agm1)
|
|||
DEF_DOUBLE_FUN_2(agm, arb_agm)
|
||||
DEF_CDOUBLE_FUN_2(agm, acb_agm)
|
||||
|
||||
|
||||
DEF_DOUBLE_FUN_1(erf, arb_hypgeom_erf)
|
||||
DEF_CDOUBLE_FUN_1(erf, acb_hypgeom_erf)
|
||||
|
||||
DEF_DOUBLE_FUN_1(erfc, arb_hypgeom_erfc)
|
||||
DEF_CDOUBLE_FUN_1(erfc, acb_hypgeom_erfc)
|
||||
|
||||
DEF_DOUBLE_FUN_1(erfi, arb_hypgeom_erfi)
|
||||
DEF_CDOUBLE_FUN_1(erfi, acb_hypgeom_erfi)
|
||||
|
||||
DEF_DOUBLE_FUN_2(bessel_j, arb_hypgeom_bessel_j)
|
||||
DEF_CDOUBLE_FUN_2(bessel_j, acb_hypgeom_bessel_j)
|
||||
|
||||
DEF_DOUBLE_FUN_2(bessel_y, arb_hypgeom_bessel_y)
|
||||
DEF_CDOUBLE_FUN_2(bessel_y, acb_hypgeom_bessel_y)
|
||||
|
||||
DEF_DOUBLE_FUN_2(bessel_i, arb_hypgeom_bessel_i)
|
||||
DEF_CDOUBLE_FUN_2(bessel_i, acb_hypgeom_bessel_i)
|
||||
|
||||
DEF_DOUBLE_FUN_2(bessel_k, arb_hypgeom_bessel_k)
|
||||
DEF_CDOUBLE_FUN_2(bessel_k, acb_hypgeom_bessel_k)
|
||||
|
||||
DEF_DOUBLE_FUN_2(bessel_k_scaled, arb_hypgeom_bessel_k_scaled)
|
||||
DEF_CDOUBLE_FUN_2(bessel_k_scaled, acb_hypgeom_bessel_k_scaled)
|
||||
|
||||
static void _arb_hypgeom_airy_ai(arb_t res, const arb_t x, slong prec) { arb_hypgeom_airy(res, NULL, NULL, NULL, x, prec); }
|
||||
static void _arb_hypgeom_airy_ai_prime(arb_t res, const arb_t x, slong prec) { arb_hypgeom_airy(NULL, res, NULL, NULL, x, prec); }
|
||||
static void _arb_hypgeom_airy_bi(arb_t res, const arb_t x, slong prec) { arb_hypgeom_airy(NULL, NULL, res, NULL, x, prec); }
|
||||
static void _arb_hypgeom_airy_bi_prime(arb_t res, const arb_t x, slong prec) { arb_hypgeom_airy(NULL, NULL, NULL, res, x, prec); }
|
||||
|
||||
static void _acb_hypgeom_airy_ai(acb_t res, const acb_t x, slong prec) { acb_hypgeom_airy(res, NULL, NULL, NULL, x, prec); }
|
||||
static void _acb_hypgeom_airy_ai_prime(acb_t res, const acb_t x, slong prec) { acb_hypgeom_airy(NULL, res, NULL, NULL, x, prec); }
|
||||
static void _acb_hypgeom_airy_bi(acb_t res, const acb_t x, slong prec) { acb_hypgeom_airy(NULL, NULL, res, NULL, x, prec); }
|
||||
static void _acb_hypgeom_airy_bi_prime(acb_t res, const acb_t x, slong prec) { acb_hypgeom_airy(NULL, NULL, NULL, res, x, prec); }
|
||||
|
||||
DEF_DOUBLE_FUN_1(airy_ai, _arb_hypgeom_airy_ai)
|
||||
DEF_CDOUBLE_FUN_1(airy_ai, _acb_hypgeom_airy_ai)
|
||||
|
||||
DEF_DOUBLE_FUN_1(airy_ai_prime, _arb_hypgeom_airy_ai_prime)
|
||||
DEF_CDOUBLE_FUN_1(airy_ai_prime, _acb_hypgeom_airy_ai_prime)
|
||||
|
||||
DEF_DOUBLE_FUN_1(airy_bi, _arb_hypgeom_airy_bi)
|
||||
DEF_CDOUBLE_FUN_1(airy_bi, _acb_hypgeom_airy_bi)
|
||||
|
||||
DEF_DOUBLE_FUN_1(airy_bi_prime, _arb_hypgeom_airy_bi_prime)
|
||||
DEF_CDOUBLE_FUN_1(airy_bi_prime, _acb_hypgeom_airy_bi_prime)
|
||||
|
||||
static void _arb_hypgeom_coulomb_f(arb_t res, const arb_t l, const arb_t eta, const arb_t z, slong prec) { arb_hypgeom_coulomb(res, NULL, l, eta, z, prec); }
|
||||
static void _arb_hypgeom_coulomb_g(arb_t res, const arb_t l, const arb_t eta, const arb_t z, slong prec) { arb_hypgeom_coulomb(NULL, res, l, eta, z, prec); }
|
||||
|
||||
static void _acb_hypgeom_coulomb_f(acb_t res, const acb_t l, const acb_t eta, const acb_t z, slong prec) { acb_hypgeom_coulomb(res, NULL, NULL, NULL, l, eta, z, prec); }
|
||||
static void _acb_hypgeom_coulomb_g(acb_t res, const acb_t l, const acb_t eta, const acb_t z, slong prec) { acb_hypgeom_coulomb(NULL, res, NULL, NULL, l, eta, z, prec); }
|
||||
static void _acb_hypgeom_coulomb_hpos(acb_t res, const acb_t l, const acb_t eta, const acb_t z, slong prec) { acb_hypgeom_coulomb(NULL, NULL, res, NULL, l, eta, z, prec); }
|
||||
static void _acb_hypgeom_coulomb_hneg(acb_t res, const acb_t l, const acb_t eta, const acb_t z, slong prec) { acb_hypgeom_coulomb(NULL, NULL, NULL, res, l, eta, z, prec); }
|
||||
|
||||
DEF_DOUBLE_FUN_3(coulomb_f, _arb_hypgeom_coulomb_f)
|
||||
DEF_CDOUBLE_FUN_3(coulomb_f, _acb_hypgeom_coulomb_f)
|
||||
|
||||
DEF_DOUBLE_FUN_3(coulomb_g, _arb_hypgeom_coulomb_g)
|
||||
DEF_CDOUBLE_FUN_3(coulomb_g, _acb_hypgeom_coulomb_g)
|
||||
|
||||
DEF_CDOUBLE_FUN_3(coulomb_hpos, _acb_hypgeom_coulomb_hpos)
|
||||
DEF_CDOUBLE_FUN_3(coulomb_hneg, _acb_hypgeom_coulomb_hneg)
|
||||
|
||||
DEF_DOUBLE_FUN_2(chebyshev_t, arb_hypgeom_chebyshev_t)
|
||||
DEF_CDOUBLE_FUN_2(chebyshev_t, acb_hypgeom_chebyshev_t)
|
||||
|
||||
DEF_DOUBLE_FUN_2(chebyshev_u, arb_hypgeom_chebyshev_u)
|
||||
DEF_CDOUBLE_FUN_2(chebyshev_u, acb_hypgeom_chebyshev_u)
|
||||
|
||||
DEF_DOUBLE_FUN_4(jacobi_p, arb_hypgeom_jacobi_p)
|
||||
DEF_CDOUBLE_FUN_4(jacobi_p, acb_hypgeom_jacobi_p)
|
||||
|
||||
DEF_DOUBLE_FUN_3(gegenbauer_c, arb_hypgeom_gegenbauer_c)
|
||||
DEF_CDOUBLE_FUN_3(gegenbauer_c, acb_hypgeom_gegenbauer_c)
|
||||
|
||||
DEF_DOUBLE_FUN_3(laguerre_l, arb_hypgeom_laguerre_l)
|
||||
DEF_CDOUBLE_FUN_3(laguerre_l, acb_hypgeom_laguerre_l)
|
||||
|
||||
DEF_DOUBLE_FUN_2(hermite_h, arb_hypgeom_hermite_h)
|
||||
DEF_CDOUBLE_FUN_2(hermite_h, acb_hypgeom_hermite_h)
|
||||
|
||||
|
||||
|
||||
/* todo: lambertw (with branches) */
|
||||
/* todo: fresnel (with flags) */
|
||||
/* todo: functions with multiple outputs */
|
||||
/* todo: incomplete gamma, exp integrals... */
|
||||
/* legendre_p, legendre_q, +roots, spherharm */
|
||||
/* todo: pfqs */
|
||||
|
||||
|
||||
|
|
|
@ -253,6 +253,78 @@ Gamma, zeta and related functions
|
|||
|
||||
Polylogarithm.
|
||||
|
||||
Error functions and exponential integrals
|
||||
...............................................................................
|
||||
|
||||
.. function:: int arb_fpwrap_double_erf(double * res, double x, int flags)
|
||||
int arb_fpwrap_cdouble_erf(complex_double * res, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_erfc(double * res, double x, int flags)
|
||||
int arb_fpwrap_cdouble_erfc(complex_double * res, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_erfi(double * res, double x, int flags)
|
||||
int arb_fpwrap_cdouble_erfi(complex_double * res, complex_double x, int flags)
|
||||
|
||||
Bessel, Airy and Coulomb functions
|
||||
...............................................................................
|
||||
|
||||
.. function:: int arb_fpwrap_double_bessel_j(double * res, double nu, double x, int flags)
|
||||
int arb_fpwrap_cdouble_bessel_j(complex_double * res, complex_double nu, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_bessel_y(double * res, double nu, double x, int flags)
|
||||
int arb_fpwrap_cdouble_bessel_y(complex_double * res, complex_double nu, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_bessel_i(double * res, double nu, double x, int flags)
|
||||
int arb_fpwrap_cdouble_bessel_i(complex_double * res, complex_double nu, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_bessel_k(double * res, double nu, double x, int flags)
|
||||
int arb_fpwrap_cdouble_bessel_k(complex_double * res, complex_double nu, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_bessel_k_scaled(double * res, double nu, double x, int flags)
|
||||
int arb_fpwrap_cdouble_bessel_k_scaled(complex_double * res, complex_double nu, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_airy_ai(double * res, double x, int flags)
|
||||
int arb_fpwrap_cdouble_airy_ai(complex_double * res, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_airy_ai_prime(double * res, double x, int flags)
|
||||
int arb_fpwrap_cdouble_airy_ai_prime(complex_double * res, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_airy_bi(double * res, double x, int flags)
|
||||
int arb_fpwrap_cdouble_airy_bi(complex_double * res, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_airy_bi_prime(double * res, double x, int flags)
|
||||
int arb_fpwrap_cdouble_airy_bi_prime(complex_double * res, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_coulomb_f(double * res, double l, double eta, double x, int flags)
|
||||
int arb_fpwrap_cdouble_coulomb_f(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_coulomb_g(double * res, double l, double eta, double x, int flags)
|
||||
int arb_fpwrap_cdouble_coulomb_g(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_cdouble_coulomb_hpos(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags)
|
||||
int arb_fpwrap_cdouble_coulomb_hneg(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags)
|
||||
|
||||
Orthogonal polynomials
|
||||
...............................................................................
|
||||
|
||||
.. function:: int arb_fpwrap_double_chebyshev_t(double * res, double n, double x, int flags)
|
||||
int arb_fpwrap_cdouble_chebyshev_t(complex_double * res, complex_double n, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_chebyshev_u(double * res, double n, double x, int flags)
|
||||
int arb_fpwrap_cdouble_chebyshev_u(complex_double * res, complex_double n, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_jacobi_p(double * res, double n, double a, double b, double x, int flags)
|
||||
int arb_fpwrap_cdouble_jacobi_p(complex_double * res, complex_double n, complex_double a, complex_double b, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_gegenbauer_c(double * res, double n, double m, double x, int flags)
|
||||
int arb_fpwrap_cdouble_gegenbauer_c(complex_double * res, complex_double n, complex_double m, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_laguerre_l(double * res, double n, double m, double x, int flags)
|
||||
int arb_fpwrap_cdouble_laguerre_l(complex_double * res, complex_double n, complex_double m, complex_double x, int flags)
|
||||
|
||||
.. function:: int arb_fpwrap_double_hermite_h(double * res, double n, double x, int flags)
|
||||
int arb_fpwrap_cdouble_hermite_h(complex_double * res, complex_double n, complex_double x, int flags)
|
||||
|
||||
|
||||
Elliptic integrals and elliptic functions
|
||||
...............................................................................
|
||||
|
|
Loading…
Add table
Reference in a new issue