File indexing completed on 2026-11-07 10:15:04
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ACB_CALC_H
0013 #define ACB_CALC_H
0014
0015 #include "acb_types.h"
0016
0017 #ifdef __cplusplus
0018 extern "C" {
0019 #endif
0020
0021 typedef int (*acb_calc_func_t)(acb_ptr out,
0022 const acb_t inp, void * param, slong order, slong prec);
0023
0024
0025
0026 void acb_calc_cauchy_bound(arb_t bound, acb_calc_func_t func,
0027 void * param, const acb_t x, const arb_t radius,
0028 slong maxdepth, slong prec);
0029
0030 int acb_calc_integrate_taylor(acb_t res,
0031 acb_calc_func_t func, void * param,
0032 const acb_t a, const acb_t b,
0033 const arf_t inner_radius,
0034 const arf_t outer_radius,
0035 slong accuracy_goal, slong prec);
0036
0037
0038
0039 typedef struct
0040 {
0041 slong deg_limit;
0042 slong eval_limit;
0043 slong depth_limit;
0044 int use_heap;
0045 int verbose;
0046 }
0047 acb_calc_integrate_opt_struct;
0048
0049 typedef acb_calc_integrate_opt_struct acb_calc_integrate_opt_t[1];
0050
0051 void acb_calc_integrate_opt_init(acb_calc_integrate_opt_t options);
0052
0053 int
0054 acb_calc_integrate(acb_t res, acb_calc_func_t f, void * param,
0055 const acb_t a, const acb_t b,
0056 slong goal, const mag_t tol,
0057 const acb_calc_integrate_opt_t options,
0058 slong prec);
0059
0060 int
0061 acb_calc_integrate_gl_auto_deg(acb_t res, slong * eval_count,
0062 acb_calc_func_t f, void * param,
0063 const acb_t a, const acb_t b, const mag_t tol,
0064 slong deg_limit, int verbose, slong prec);
0065
0066 #ifdef __cplusplus
0067 }
0068 #endif
0069
0070 #endif