arb_sys/
arb_calc.rs

1#![allow(non_camel_case_types)]
2
3//! *See the [Arb documentation](https://arblib.org/).
4
5use 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}