1#![allow(non_camel_case_types)]
2
3use crate::acb::{acb_ptr, acb_struct};
6use crate::arb::arb_struct;
7use crate::arf::arf_struct;
8use crate::mag::mag_struct;
9use flint_sys::deps::*;
10use libc::{c_int, c_void};
11
12pub type acb_calc_func_t = ::std::option::Option<
13 unsafe extern "C" fn(
14 out: acb_ptr,
15 inp: *mut acb_struct,
16 param: *mut c_void,
17 order: mp_limb_signed_t,
18 prec: mp_limb_signed_t,
19 ) -> c_int,
20>;
21
22#[repr(C)]
23#[derive(Debug, Copy, Clone)]
24pub struct acb_calc_integrate_opt_struct {
25 pub deg_limit: mp_limb_signed_t,
26 pub eval_limit: mp_limb_signed_t,
27 pub depth_limit: mp_limb_signed_t,
28 pub use_heap: c_int,
29 pub verbose: c_int,
30}
31
32pub type acb_calc_integrate_opt_t = [acb_calc_integrate_opt_struct; 1usize];
33
34extern "C" {
35 pub fn acb_calc_cauchy_bound(
36 bound: *mut arb_struct,
37 func: acb_calc_func_t,
38 param: *mut c_void,
39 x: *mut acb_struct,
40 radius: *mut arb_struct,
41 maxdepth: mp_limb_signed_t,
42 prec: mp_limb_signed_t,
43 );
44 pub fn acb_calc_integrate_taylor(
45 res: *mut acb_struct,
46 func: acb_calc_func_t,
47 param: *mut c_void,
48 a: *mut acb_struct,
49 b: *mut acb_struct,
50 inner_radius: *mut arf_struct,
51 outer_radius: *mut arf_struct,
52 accuracy_goal: mp_limb_signed_t,
53 prec: mp_limb_signed_t,
54 ) -> c_int;
55 pub fn acb_calc_integrate_opt_init(options: *mut acb_calc_integrate_opt_struct);
56 pub fn acb_calc_integrate(
57 res: *mut acb_struct,
58 f: acb_calc_func_t,
59 param: *mut c_void,
60 a: *mut acb_struct,
61 b: *mut acb_struct,
62 goal: mp_limb_signed_t,
63 tol: *mut mag_struct,
64 options: *mut acb_calc_integrate_opt_struct,
65 prec: mp_limb_signed_t,
66 ) -> c_int;
67 pub fn acb_calc_integrate_gl_auto_deg(
68 res: *mut acb_struct,
69 eval_count: *mut mp_limb_signed_t,
70 f: acb_calc_func_t,
71 param: *mut c_void,
72 a: *mut acb_struct,
73 b: *mut acb_struct,
74 tol: *mut mag_struct,
75 deg_limit: mp_limb_signed_t,
76 verbose: c_int,
77 prec: mp_limb_signed_t,
78 ) -> c_int;
79}