1#![allow(non_camel_case_types)]
2
3use crate::arb::{arb_ptr, arb_struct};
6use crate::arf::arf_struct;
7use flint_sys::deps::*;
8use libc::{c_int, c_void};
9
10pub type arb_calc_func_t = ::std::option::Option<
11 unsafe extern "C" fn(
12 out: arb_ptr,
13 inp: *mut arb_struct,
14 param: *mut c_void,
15 order: mp_limb_signed_t,
16 prec: mp_limb_signed_t,
17 ) -> c_int,
18>;
19
20#[repr(C)]
21#[derive(Copy, Clone)]
22pub struct arf_interval_struct {
23 pub a: arf_struct,
24 pub b: arf_struct,
25}
26
27pub type arf_interval_t = [arf_interval_struct; 1usize];
28pub type arf_interval_ptr = *mut arf_interval_struct;
29pub type arf_interval_srcptr = *const arf_interval_struct;
30
31extern "C" {
32 pub static mut arb_calc_verbose: c_int;
33 pub fn arb_calc_partition(
34 L: *mut arf_interval_struct,
35 R: *mut arf_interval_struct,
36 func: arb_calc_func_t,
37 param: *mut c_void,
38 block: *mut arf_interval_struct,
39 prec: mp_limb_signed_t,
40 ) -> c_int;
41 pub fn arb_calc_isolate_roots(
42 blocks: *mut arf_interval_ptr,
43 flags: *mut *mut c_int,
44 func: arb_calc_func_t,
45 param: *mut c_void,
46 block: *mut arf_interval_struct,
47 maxdepth: mp_limb_signed_t,
48 maxeval: mp_limb_signed_t,
49 maxfound: mp_limb_signed_t,
50 prec: mp_limb_signed_t,
51 ) -> mp_limb_signed_t;
52 pub fn arb_calc_refine_root_bisect(
53 r: *mut arf_interval_struct,
54 func: arb_calc_func_t,
55 param: *mut c_void,
56 start: *mut arf_interval_struct,
57 iter: mp_limb_signed_t,
58 prec: mp_limb_signed_t,
59 ) -> c_int;
60 pub fn arb_calc_newton_conv_factor(
61 conv_factor: *mut arf_struct,
62 func: arb_calc_func_t,
63 param: *mut c_void,
64 conv_region: *mut arb_struct,
65 prec: mp_limb_signed_t,
66 );
67 pub fn arb_calc_newton_step(
68 xnew: *mut arb_struct,
69 func: arb_calc_func_t,
70 param: *mut c_void,
71 x: *mut arb_struct,
72 conv_region: *mut arb_struct,
73 conv_factor: *mut arf_struct,
74 prec: mp_limb_signed_t,
75 ) -> c_int;
76 pub fn arb_calc_refine_root_newton(
77 r: *mut arb_struct,
78 func: arb_calc_func_t,
79 param: *mut c_void,
80 start: *mut arb_struct,
81 conv_region: *mut arb_struct,
82 conv_factor: *mut arf_struct,
83 eval_extra_prec: mp_limb_signed_t,
84 prec: mp_limb_signed_t,
85 ) -> c_int;
86}