Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:15:07

0001 /*
0002     Copyright (C) 2021 Fredrik Johansson
0003 
0004     This file is part of FLINT.
0005 
0006     FLINT is free software: you can redistribute it and/or modify it under
0007     the terms of the GNU Lesser General Public License (LGPL) as published
0008     by the Free Software Foundation; either version 3 of the License, or
0009     (at your option) any later version.  See <https://www.gnu.org/licenses/>.
0010 */
0011 
0012 #ifndef ARB_FPWRAP_H
0013 #define ARB_FPWRAP_H
0014 
0015 #include "flint.h"
0016 
0017 #ifdef __cplusplus
0018 extern "C" {
0019 #endif
0020 
0021 #define FPWRAP_SUCCESS 0
0022 #define FPWRAP_UNABLE 1
0023 
0024 #define FPWRAP_ACCURATE_PARTS 1
0025 #define FPWRAP_CORRECT_ROUNDING 2
0026 #define FPWRAP_WORK_LIMIT 65536
0027 
0028 typedef struct
0029 {
0030     double real;
0031     double imag;
0032 }
0033 complex_double;
0034 
0035 int arb_fpwrap_double_exp(double * res, double x, int flags);
0036 int arb_fpwrap_cdouble_exp(complex_double * res, complex_double x, int flags);
0037 
0038 int arb_fpwrap_double_expm1(double * res, double x, int flags);
0039 int arb_fpwrap_cdouble_expm1(complex_double * res, complex_double x, int flags);
0040 
0041 int arb_fpwrap_double_log(double * res, double x, int flags);
0042 int arb_fpwrap_cdouble_log(complex_double * res, complex_double x, int flags);
0043 
0044 int arb_fpwrap_double_log1p(double * res, double x, int flags);
0045 int arb_fpwrap_cdouble_log1p(complex_double * res, complex_double x, int flags);
0046 
0047 int arb_fpwrap_double_pow(double * res, double x, double y, int flags);
0048 int arb_fpwrap_cdouble_pow(complex_double * res, complex_double x, complex_double y, int flags);
0049 
0050 int arb_fpwrap_double_sqrt(double * res, double x, int flags);
0051 int arb_fpwrap_cdouble_sqrt(complex_double * res, complex_double x, int flags);
0052 
0053 int arb_fpwrap_double_rsqrt(double * res, double x, int flags);
0054 int arb_fpwrap_cdouble_rsqrt(complex_double * res, complex_double x, int flags);
0055 
0056 int arb_fpwrap_double_cbrt(double * res, double x, int flags);
0057 int arb_fpwrap_cdouble_cbrt(complex_double * res, complex_double x, int flags);
0058 
0059 int arb_fpwrap_double_sin(double * res, double x, int flags);
0060 int arb_fpwrap_cdouble_sin(complex_double * res, complex_double x, int flags);
0061 
0062 int arb_fpwrap_double_cos(double * res, double x, int flags);
0063 int arb_fpwrap_cdouble_cos(complex_double * res, complex_double x, int flags);
0064 
0065 int arb_fpwrap_double_tan(double * res, double x, int flags);
0066 int arb_fpwrap_cdouble_tan(complex_double * res, complex_double x, int flags);
0067 
0068 int arb_fpwrap_double_cot(double * res, double x, int flags);
0069 int arb_fpwrap_cdouble_cot(complex_double * res, complex_double x, int flags);
0070 
0071 int arb_fpwrap_double_sec(double * res, double x, int flags);
0072 int arb_fpwrap_cdouble_sec(complex_double * res, complex_double x, int flags);
0073 
0074 int arb_fpwrap_double_csc(double * res, double x, int flags);
0075 int arb_fpwrap_cdouble_csc(complex_double * res, complex_double x, int flags);
0076 
0077 int arb_fpwrap_double_sinc(double * res, double x, int flags);
0078 int arb_fpwrap_cdouble_sinc(complex_double * res, complex_double x, int flags);
0079 
0080 int arb_fpwrap_double_sin_pi(double * res, double x, int flags);
0081 int arb_fpwrap_cdouble_sin_pi(complex_double * res, complex_double x, int flags);
0082 
0083 int arb_fpwrap_double_cos_pi(double * res, double x, int flags);
0084 int arb_fpwrap_cdouble_cos_pi(complex_double * res, complex_double x, int flags);
0085 
0086 int arb_fpwrap_double_tan_pi(double * res, double x, int flags);
0087 int arb_fpwrap_cdouble_tan_pi(complex_double * res, complex_double x, int flags);
0088 
0089 int arb_fpwrap_double_cot_pi(double * res, double x, int flags);
0090 int arb_fpwrap_cdouble_cot_pi(complex_double * res, complex_double x, int flags);
0091 
0092 int arb_fpwrap_double_sinc_pi(double * res, double x, int flags);
0093 int arb_fpwrap_cdouble_sinc_pi(complex_double * res, complex_double x, int flags);
0094 
0095 int arb_fpwrap_double_asin(double * res, double x, int flags);
0096 int arb_fpwrap_cdouble_asin(complex_double * res, complex_double x, int flags);
0097 
0098 int arb_fpwrap_double_acos(double * res, double x, int flags);
0099 int arb_fpwrap_cdouble_acos(complex_double * res, complex_double x, int flags);
0100 
0101 int arb_fpwrap_double_atan(double * res, double x, int flags);
0102 int arb_fpwrap_cdouble_atan(complex_double * res, complex_double x, int flags);
0103 
0104 int arb_fpwrap_double_atan2(double * res, double x1, double x2, int flags);
0105 
0106 int arb_fpwrap_double_asinh(double * res, double x, int flags);
0107 int arb_fpwrap_cdouble_asinh(complex_double * res, complex_double x, int flags);
0108 
0109 int arb_fpwrap_double_acosh(double * res, double x, int flags);
0110 int arb_fpwrap_cdouble_acosh(complex_double * res, complex_double x, int flags);
0111 
0112 int arb_fpwrap_double_atanh(double * res, double x, int flags);
0113 int arb_fpwrap_cdouble_atanh(complex_double * res, complex_double x, int flags);
0114 
0115 int arb_fpwrap_double_lambertw(double * res, double x, slong branch, int flags);
0116 int arb_fpwrap_cdouble_lambertw(complex_double * res, complex_double x, slong branch, int flags);
0117 
0118 int arb_fpwrap_double_rising(double * res, double x, double n, int flags);
0119 int arb_fpwrap_cdouble_rising(complex_double * res, complex_double x, complex_double n, int flags);
0120 
0121 int arb_fpwrap_double_gamma(double * res, double x, int flags);
0122 int arb_fpwrap_cdouble_gamma(complex_double * res, complex_double x, int flags);
0123 
0124 int arb_fpwrap_double_rgamma(double * res, double x, int flags);
0125 int arb_fpwrap_cdouble_rgamma(complex_double * res, complex_double x, int flags);
0126 
0127 int arb_fpwrap_double_lgamma(double * res, double x, int flags);
0128 int arb_fpwrap_cdouble_lgamma(complex_double * res, complex_double x, int flags);
0129 
0130 int arb_fpwrap_double_digamma(double * res, double x, int flags);
0131 int arb_fpwrap_cdouble_digamma(complex_double * res, complex_double x, int flags);
0132 
0133 int arb_fpwrap_double_zeta(double * res, double x, int flags);
0134 int arb_fpwrap_cdouble_zeta(complex_double * res, complex_double x, int flags);
0135 
0136 int arb_fpwrap_double_hurwitz_zeta(double * res, double s, double z, int flags);
0137 int arb_fpwrap_cdouble_hurwitz_zeta(complex_double * res, complex_double s, complex_double z, int flags);
0138 
0139 int arb_fpwrap_double_barnes_g(double * res, double x, int flags);
0140 int arb_fpwrap_cdouble_barnes_g(complex_double * res, complex_double x, int flags);
0141 
0142 int arb_fpwrap_double_log_barnes_g(double * res, double x, int flags);
0143 int arb_fpwrap_cdouble_log_barnes_g(complex_double * res, complex_double x, int flags);
0144 
0145 int arb_fpwrap_double_polygamma(double * res, double s, double z, int flags);
0146 int arb_fpwrap_cdouble_polygamma(complex_double * res, complex_double s, complex_double z, int flags);
0147 
0148 int arb_fpwrap_double_polylog(double * res, double s, double z, int flags);
0149 int arb_fpwrap_cdouble_polylog(complex_double * res, complex_double s, complex_double z, int flags);
0150 
0151 int arb_fpwrap_double_lerch_phi(double * res, double z, double s, double a, int flags);
0152 int arb_fpwrap_cdouble_lerch_phi(complex_double * res, complex_double z, complex_double s, complex_double a, int flags);
0153 
0154 int arb_fpwrap_cdouble_dirichlet_eta(complex_double * res, complex_double s, int flags);
0155 int arb_fpwrap_cdouble_riemann_xi(complex_double * res, complex_double s, int flags);
0156 int arb_fpwrap_cdouble_hardy_theta(complex_double * res, complex_double z, int flags);
0157 int arb_fpwrap_cdouble_hardy_z(complex_double * res, complex_double z, int flags);
0158 int arb_fpwrap_cdouble_zeta_zero(complex_double * res, ulong n, int flags);
0159 
0160 int arb_fpwrap_double_erf(double * res, double x, int flags);
0161 int arb_fpwrap_cdouble_erf(complex_double * res, complex_double x, int flags);
0162 
0163 int arb_fpwrap_double_erfc(double * res, double x, int flags);
0164 int arb_fpwrap_cdouble_erfc(complex_double * res, complex_double x, int flags);
0165 
0166 int arb_fpwrap_double_erfi(double * res, double x, int flags);
0167 int arb_fpwrap_cdouble_erfi(complex_double * res, complex_double x, int flags);
0168 
0169 int arb_fpwrap_double_erfinv(double * res, double x, int flags);
0170 int arb_fpwrap_double_erfcinv(double * res, double x, int flags);
0171 
0172 int arb_fpwrap_double_fresnel_s(double * res, double x, int normalized, int flags);
0173 int arb_fpwrap_cdouble_fresnel_s(complex_double * res, complex_double x, int normalized, int flags);
0174 
0175 int arb_fpwrap_double_fresnel_c(double * res, double x, int normalized, int flags);
0176 int arb_fpwrap_cdouble_fresnel_c(complex_double * res, complex_double x, int normalized, int flags);
0177 
0178 int arb_fpwrap_double_gamma_upper(double * res, double s, double z, int regularized, int flags);
0179 int arb_fpwrap_cdouble_gamma_upper(complex_double * res, complex_double s, complex_double z, int regularized, int flags);
0180 
0181 int arb_fpwrap_double_gamma_lower(double * res, double s, double z, int regularized, int flags);
0182 int arb_fpwrap_cdouble_gamma_lower(complex_double * res, complex_double s, complex_double z, int regularized, int flags);
0183 
0184 int arb_fpwrap_double_beta_lower(double * res, double a, double b, double z, int regularized, int flags);
0185 int arb_fpwrap_cdouble_beta_lower(complex_double * res, complex_double a, complex_double b, complex_double z, int regularized, int flags);
0186 
0187 int arb_fpwrap_double_exp_integral_e(double * res, double s, double z, int flags);
0188 int arb_fpwrap_cdouble_exp_integral_e(complex_double * res, complex_double s, complex_double z, int flags);
0189 
0190 int arb_fpwrap_double_exp_integral_ei(double * res, double x, int flags);
0191 int arb_fpwrap_cdouble_exp_integral_ei(complex_double * res, complex_double x, int flags);
0192 
0193 int arb_fpwrap_double_sin_integral(double * res, double x, int flags);
0194 int arb_fpwrap_cdouble_sin_integral(complex_double * res, complex_double x, int flags);
0195 
0196 int arb_fpwrap_double_cos_integral(double * res, double x, int flags);
0197 int arb_fpwrap_cdouble_cos_integral(complex_double * res, complex_double x, int flags);
0198 
0199 int arb_fpwrap_double_sinh_integral(double * res, double x, int flags);
0200 int arb_fpwrap_cdouble_sinh_integral(complex_double * res, complex_double x, int flags);
0201 
0202 int arb_fpwrap_double_cosh_integral(double * res, double x, int flags);
0203 int arb_fpwrap_cdouble_cosh_integral(complex_double * res, complex_double x, int flags);
0204 
0205 int arb_fpwrap_double_log_integral(double * res, double x, int offset, int flags);
0206 int arb_fpwrap_cdouble_log_integral(complex_double * res, complex_double x, int offset, int flags);
0207 
0208 int arb_fpwrap_double_dilog(double * res, double x, int flags);
0209 int arb_fpwrap_cdouble_dilog(complex_double * res, complex_double x, int flags);
0210 
0211 int arb_fpwrap_double_bessel_j(double * res, double nu, double x, int flags);
0212 int arb_fpwrap_cdouble_bessel_j(complex_double * res, complex_double nu, complex_double x, int flags);
0213 
0214 int arb_fpwrap_double_bessel_y(double * res, double nu, double x, int flags);
0215 int arb_fpwrap_cdouble_bessel_y(complex_double * res, complex_double nu, complex_double x, int flags);
0216 
0217 int arb_fpwrap_double_bessel_i(double * res, double nu, double x, int flags);
0218 int arb_fpwrap_cdouble_bessel_i(complex_double * res, complex_double nu, complex_double x, int flags);
0219 
0220 int arb_fpwrap_double_bessel_k(double * res, double nu, double x, int flags);
0221 int arb_fpwrap_cdouble_bessel_k(complex_double * res, complex_double nu, complex_double x, int flags);
0222 
0223 int arb_fpwrap_double_bessel_k_scaled(double * res, double nu, double x, int flags);
0224 int arb_fpwrap_cdouble_bessel_k_scaled(complex_double * res, complex_double nu, complex_double x, int flags);
0225 
0226 int arb_fpwrap_double_airy_ai(double * res, double x, int flags);
0227 int arb_fpwrap_cdouble_airy_ai(complex_double * res, complex_double x, int flags);
0228 
0229 int arb_fpwrap_double_airy_ai_prime(double * res, double x, int flags);
0230 int arb_fpwrap_cdouble_airy_ai_prime(complex_double * res, complex_double x, int flags);
0231 
0232 int arb_fpwrap_double_airy_bi(double * res, double x, int flags);
0233 int arb_fpwrap_cdouble_airy_bi(complex_double * res, complex_double x, int flags);
0234 
0235 int arb_fpwrap_double_airy_bi_prime(double * res, double x, int flags);
0236 int arb_fpwrap_cdouble_airy_bi_prime(complex_double * res, complex_double x, int flags);
0237 
0238 int arb_fpwrap_double_airy_ai_zero(double * res, ulong n, int flags);
0239 int arb_fpwrap_double_airy_ai_prime_zero(double * res, ulong n, int flags);
0240 int arb_fpwrap_double_airy_bi_zero(double * res, ulong n, int flags);
0241 int arb_fpwrap_double_airy_bi_prime_zero(double * res, ulong n, int flags);
0242 
0243 int arb_fpwrap_double_coulomb_f(double * res, double l, double eta, double x, int flags);
0244 int arb_fpwrap_cdouble_coulomb_f(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
0245 
0246 int arb_fpwrap_double_coulomb_g(double * res, double l, double eta, double x, int flags);
0247 int arb_fpwrap_cdouble_coulomb_g(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
0248 
0249 int arb_fpwrap_cdouble_coulomb_hpos(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
0250 int arb_fpwrap_cdouble_coulomb_hneg(complex_double * res, complex_double l, complex_double eta, complex_double x, int flags);
0251 
0252 int arb_fpwrap_double_chebyshev_t(double * res, double n, double x, int flags);
0253 int arb_fpwrap_cdouble_chebyshev_t(complex_double * res, complex_double n, complex_double x, int flags);
0254 
0255 int arb_fpwrap_double_chebyshev_u(double * res, double n, double x, int flags);
0256 int arb_fpwrap_cdouble_chebyshev_u(complex_double * res, complex_double n, complex_double x, int flags);
0257 
0258 int arb_fpwrap_double_jacobi_p(double * res, double n, double a, double b, double x, int flags);
0259 int arb_fpwrap_cdouble_jacobi_p(complex_double * res, complex_double n, complex_double a, complex_double b, complex_double x, int flags);
0260 
0261 int arb_fpwrap_double_gegenbauer_c(double * res, double n, double m, double x, int flags);
0262 int arb_fpwrap_cdouble_gegenbauer_c(complex_double * res, complex_double n, complex_double m, complex_double x, int flags);
0263 
0264 int arb_fpwrap_double_laguerre_l(double * res, double n, double m, double x, int flags);
0265 int arb_fpwrap_cdouble_laguerre_l(complex_double * res, complex_double n, complex_double m, complex_double x, int flags);
0266 
0267 int arb_fpwrap_double_hermite_h(double * res, double n, double x, int flags);
0268 int arb_fpwrap_cdouble_hermite_h(complex_double * res, complex_double n, complex_double x, int flags);
0269 
0270 int arb_fpwrap_double_legendre_p(double * res, double n, double m, double x, int type, int flags);
0271 int arb_fpwrap_cdouble_legendre_p(complex_double * res, complex_double n, complex_double m, complex_double x, int type, int flags);
0272 
0273 int arb_fpwrap_double_legendre_q(double * res, double n, double m, double x, int type, int flags);
0274 int arb_fpwrap_cdouble_legendre_q(complex_double * res, complex_double n, complex_double m, complex_double x, int type, int flags);
0275 
0276 int arb_fpwrap_double_legendre_root(double * res1, double * res2, ulong n, ulong k, int flags);
0277 
0278 int arb_fpwrap_cdouble_spherical_y(complex_double * res, slong n, slong m, complex_double x1, complex_double x2, int flags);
0279 
0280 int arb_fpwrap_double_hypgeom_0f1(double * res, double a, double x, int regularized, int flags);
0281 int arb_fpwrap_cdouble_hypgeom_0f1(complex_double * res, complex_double a, complex_double x, int regularized, int flags);
0282 
0283 int arb_fpwrap_double_hypgeom_1f1(double * res, double a, double b, double x, int regularized, int flags);
0284 int arb_fpwrap_cdouble_hypgeom_1f1(complex_double * res, complex_double a, complex_double b, complex_double x, int regularized, int flags);
0285 
0286 int arb_fpwrap_double_hypgeom_u(double * res, double a, double b, double x, int flags);
0287 int arb_fpwrap_cdouble_hypgeom_u(complex_double * res, complex_double a, complex_double b, complex_double x, int flags);
0288 
0289 int arb_fpwrap_double_hypgeom_2f1(double * res, double a, double b, double c, double x, int regularized, int flags);
0290 int arb_fpwrap_cdouble_hypgeom_2f1(complex_double * res, complex_double a, complex_double b, complex_double c, complex_double x, int regularized, int flags);
0291 
0292 int arb_fpwrap_double_hypgeom_pfq(double * res, const double * a, slong p, const double * b, slong q, double z, int regularized, int flags);
0293 int arb_fpwrap_cdouble_hypgeom_pfq(complex_double * res, const complex_double * a, slong p, const complex_double * b, slong q, complex_double z, int regularized, int flags);
0294 
0295 
0296 int arb_fpwrap_double_agm(double * res, double x, double y, int flags);
0297 int arb_fpwrap_cdouble_agm(complex_double * res, complex_double x, complex_double y, int flags);
0298 
0299 int arb_fpwrap_cdouble_elliptic_k(complex_double * res, complex_double m, int flags);
0300 int arb_fpwrap_cdouble_elliptic_e(complex_double * res, complex_double m, int flags);
0301 int arb_fpwrap_cdouble_elliptic_pi(complex_double * res, complex_double n, complex_double m, int flags);
0302 int arb_fpwrap_cdouble_elliptic_f(complex_double * res, complex_double phi, complex_double m, int pi, int flags);
0303 int arb_fpwrap_cdouble_elliptic_e_inc(complex_double * res, complex_double phi, complex_double m, int pi, int flags);
0304 int arb_fpwrap_cdouble_elliptic_pi_inc(complex_double * res, complex_double n, complex_double phi, complex_double m, int pi, int flags);
0305 
0306 int arb_fpwrap_cdouble_elliptic_rf(complex_double * res, complex_double x, complex_double y, complex_double z, int option, int flags);
0307 int arb_fpwrap_cdouble_elliptic_rg(complex_double * res, complex_double x, complex_double y, complex_double z, int option, int flags);
0308 int arb_fpwrap_cdouble_elliptic_rj(complex_double * res, complex_double x, complex_double y, complex_double z, complex_double w, int option, int flags);
0309 
0310 int arb_fpwrap_cdouble_elliptic_p(complex_double * res, complex_double z, complex_double tau, int flags);
0311 int arb_fpwrap_cdouble_elliptic_p_prime(complex_double * res, complex_double z, complex_double tau, int flags);
0312 int arb_fpwrap_cdouble_elliptic_inv_p(complex_double * res, complex_double z, complex_double tau, int flags);
0313 int arb_fpwrap_cdouble_elliptic_zeta(complex_double * res, complex_double z, complex_double tau, int flags);
0314 int arb_fpwrap_cdouble_elliptic_sigma(complex_double * res, complex_double z, complex_double tau, int flags);
0315 
0316 int arb_fpwrap_cdouble_jacobi_theta_1(complex_double * res, complex_double z, complex_double tau, int flags);
0317 int arb_fpwrap_cdouble_jacobi_theta_2(complex_double * res, complex_double z, complex_double tau, int flags);
0318 int arb_fpwrap_cdouble_jacobi_theta_3(complex_double * res, complex_double z, complex_double tau, int flags);
0319 int arb_fpwrap_cdouble_jacobi_theta_4(complex_double * res, complex_double z, complex_double tau, int flags);
0320 
0321 int arb_fpwrap_cdouble_dedekind_eta(complex_double * res, complex_double tau, int flags);
0322 int arb_fpwrap_cdouble_modular_j(complex_double * res, complex_double tau, int flags);
0323 int arb_fpwrap_cdouble_modular_lambda(complex_double * res, complex_double tau, int flags);
0324 int arb_fpwrap_cdouble_modular_delta(complex_double * res, complex_double tau, int flags);
0325 
0326 #ifdef __cplusplus
0327 }
0328 #endif
0329 
0330 #endif