1use libc::*;
4use crate::deps::*;
5use crate::arb_types::*;
6use crate::arf::*;
7use crate::arf_types::*;
8use crate::flint::*;
9
10
11pub const ARB_ATAN_TAB1_BITS: u32 = 8;
12pub const ARB_ATAN_TAB1_PREC: u32 = 512;
13pub const ARB_ATAN_TAB1_LIMBS: u32 = 8;
14pub const ARB_ATAN_TAB21_BITS: u32 = 5;
15pub const ARB_ATAN_TAB22_BITS: u32 = 5;
16pub const ARB_ATAN_TAB2_PREC: u32 = 4608;
17pub const ARB_ATAN_TAB2_LIMBS: u32 = 72;
18pub const ARB_ATAN_NEWTON_PREC: u32 = 3400;
19pub const ARB_LOG_TAB11_BITS: u32 = 7;
20pub const ARB_LOG_TAB12_BITS: u32 = 7;
21pub const ARB_LOG_TAB1_PREC: u32 = 512;
22pub const ARB_LOG_TAB1_LIMBS: u32 = 8;
23pub const ARB_LOG_TAB21_BITS: u32 = 5;
24pub const ARB_LOG_TAB22_BITS: u32 = 5;
25pub const ARB_LOG_TAB2_PREC: u32 = 4608;
26pub const ARB_LOG_TAB2_LIMBS: u32 = 72;
27pub const ARB_LOG_PRIME_CACHE_NUM: u32 = 13;
28pub const ARB_EXP_TAB1_NUM: u32 = 178;
29pub const ARB_EXP_TAB1_BITS: u32 = 8;
30pub const ARB_EXP_TAB1_PREC: u32 = 512;
31pub const ARB_EXP_TAB1_LIMBS: u32 = 8;
32pub const ARB_EXP_TAB21_NUM: u32 = 23;
33pub const ARB_EXP_TAB21_BITS: u32 = 5;
34pub const ARB_EXP_TAB22_BITS: u32 = 5;
35pub const ARB_EXP_TAB2_PREC: u32 = 4608;
36pub const ARB_EXP_TAB2_LIMBS: u32 = 72;
37pub const ARB_LOG_REDUCTION_DEFAULT_MAX_PREC: u32 = 4000000;
38pub const ARB_EXP_LOG_REDUCTION_PREC: u32 = 2240;
39pub const ARB_LOG_NEWTON_PREC: u32 = 2800;
40pub const ARB_SIN_COS_TAB1_NUM: u32 = 203;
41pub const ARB_SIN_COS_TAB1_BITS: u32 = 8;
42pub const ARB_SIN_COS_TAB1_PREC: u32 = 512;
43pub const ARB_SIN_COS_TAB1_LIMBS: u32 = 8;
44pub const ARB_SIN_COS_TAB21_NUM: u32 = 26;
45pub const ARB_SIN_COS_TAB21_BITS: u32 = 5;
46pub const ARB_SIN_COS_TAB22_BITS: u32 = 5;
47pub const ARB_SIN_COS_TAB2_PREC: u32 = 4608;
48pub const ARB_SIN_COS_TAB2_LIMBS: u32 = 72;
49pub const ARB_PI4_TAB_LIMBS: u32 = 72;
50pub const ARB_ATAN_GAUSS_PRIME_CACHE_NUM: u32 = 13;
51pub const ARB_SIN_COS_ATAN_REDUCTION_DEFAULT_MAX_PREC: u32 = 4000000;
52pub const ARB_SIN_COS_ATAN_REDUCTION_PREC: u32 = 2600;
53extern "C" {
54 #[link_name = "arb_init__extern"]
55 pub fn arb_init(x: *mut arb_struct);
56 pub fn arb_clear(x: *mut arb_struct);
57 pub fn _arb_vec_init(n: slong) -> arb_ptr;
58 pub fn _arb_vec_clear(v: arb_ptr, n: slong);
59 #[link_name = "arb_mid_ptr__extern"]
60 pub fn arb_mid_ptr(z: *mut arb_struct) -> arf_ptr;
61 #[link_name = "arb_rad_ptr__extern"]
62 pub fn arb_rad_ptr(z: *mut arb_struct) -> mag_ptr;
63 #[link_name = "arb_is_exact__extern"]
64 pub fn arb_is_exact(x: *const arb_struct) -> libc::c_int;
65 #[link_name = "arb_equal__extern"]
66 pub fn arb_equal(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
67 #[link_name = "arb_equal_si__extern"]
68 pub fn arb_equal_si(x: *const arb_struct, y: slong) -> libc::c_int;
69 pub fn arb_eq(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
70 pub fn arb_ne(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
71 pub fn arb_lt(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
72 pub fn arb_le(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
73 pub fn arb_gt(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
74 pub fn arb_ge(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
75 pub fn arb_zero(x: *mut arb_struct);
76 #[link_name = "arb_is_zero__extern"]
77 pub fn arb_is_zero(x: *const arb_struct) -> libc::c_int;
78 #[link_name = "arb_pos_inf__extern"]
79 pub fn arb_pos_inf(x: *mut arb_struct);
80 #[link_name = "arb_neg_inf__extern"]
81 pub fn arb_neg_inf(x: *mut arb_struct);
82 #[link_name = "arb_zero_pm_inf__extern"]
83 pub fn arb_zero_pm_inf(x: *mut arb_struct);
84 #[link_name = "arb_zero_pm_one__extern"]
85 pub fn arb_zero_pm_one(x: *mut arb_struct);
86 #[link_name = "arb_unit_interval__extern"]
87 pub fn arb_unit_interval(x: *mut arb_struct);
88 pub fn arb_indeterminate(x: *mut arb_struct);
89 pub fn arb_is_finite(x: *const arb_struct) -> libc::c_int;
90 pub fn arb_set(y: *mut arb_struct, x: *const arb_struct);
91 #[link_name = "arb_swap__extern"]
92 pub fn arb_swap(x: *mut arb_struct, y: *mut arb_struct);
93 pub fn arb_set_round(z: *mut arb_struct, x: *const arb_struct, prec: slong);
94 pub fn arb_trim(y: *mut arb_struct, x: *const arb_struct);
95 pub fn arb_neg(y: *mut arb_struct, x: *const arb_struct);
96 pub fn arb_neg_round(y: *mut arb_struct, x: *const arb_struct, prec: slong);
97 pub fn arb_abs(y: *mut arb_struct, x: *const arb_struct);
98 pub fn arb_nonnegative_abs(y: *mut arb_struct, x: *const arb_struct);
99 pub fn arb_sgn(res: *mut arb_struct, x: *const arb_struct);
100 pub fn arb_sgn_nonzero(x: *const arb_struct) -> libc::c_int;
101 pub fn _arb_digits_round_inplace(
102 s: *mut libc::c_char,
103 shift: *mut flint_bitcnt_t,
104 error: *mut fmpz,
105 n: slong,
106 rnd: arf_rnd_t,
107 );
108 pub fn arb_set_str(res: *mut arb_struct, inp: *const libc::c_char, prec: slong) -> libc::c_int;
109 pub fn arb_get_str(x: *const arb_struct, n: slong, flags: ulong) -> *mut libc::c_char;
110 #[link_name = "arb_set_arf__extern"]
111 pub fn arb_set_arf(x: *mut arb_struct, y: *const arf_struct);
112 pub fn arb_set_si(y: *mut arb_struct, x: slong);
113 pub fn arb_set_ui(y: *mut arb_struct, x: ulong);
114 pub fn arb_set_d(y: *mut arb_struct, x: f64);
115 pub fn arb_set_fmpz(y: *mut arb_struct, x: *const fmpz);
116 #[link_name = "arb_set_fmpz_2exp__extern"]
117 pub fn arb_set_fmpz_2exp(x: *mut arb_struct, y: *const fmpz, exp: *const fmpz);
118 pub fn arb_set_round_fmpz_2exp(
119 y: *mut arb_struct,
120 x: *const fmpz,
121 exp: *const fmpz,
122 prec: slong,
123 );
124 pub fn arb_set_round_fmpz(y: *mut arb_struct, x: *const fmpz, prec: slong);
125 #[link_name = "arb_is_one__extern"]
126 pub fn arb_is_one(f: *const arb_struct) -> libc::c_int;
127 pub fn arb_one(f: *mut arb_struct);
128 pub fn arb_fprint(file: *mut FILE, x: *const arb_struct);
129 pub fn arb_fprintd(file: *mut FILE, x: *const arb_struct, digits: slong);
130 pub fn arb_fprintn(file: *mut FILE, x: *const arb_struct, digits: slong, flags: ulong);
131 pub fn arb_print(x: *const arb_struct);
132 pub fn arb_printd(x: *const arb_struct, digits: slong);
133 pub fn arb_printn(x: *const arb_struct, digits: slong, flags: ulong);
134 pub fn _arb_vec_printn(vec: arb_srcptr, len: slong, ndigits: slong, flags: ulong);
135 pub fn _arb_vec_printd(vec: arb_srcptr, len: slong, ndigits: slong);
136 pub fn arb_mul_2exp_si(y: *mut arb_struct, x: *const arb_struct, e: slong);
137 #[link_name = "arb_mul_2exp_fmpz__extern"]
138 pub fn arb_mul_2exp_fmpz(y: *mut arb_struct, x: *const arb_struct, e: *const fmpz);
139 #[link_name = "arb_is_int__extern"]
140 pub fn arb_is_int(x: *const arb_struct) -> libc::c_int;
141 #[link_name = "arb_is_int_2exp_si__extern"]
142 pub fn arb_is_int_2exp_si(x: *const arb_struct, e: slong) -> libc::c_int;
143 pub fn arb_contains_zero(x: *const arb_struct) -> libc::c_int;
144 pub fn arb_is_nonzero(x: *const arb_struct) -> libc::c_int;
145 pub fn arb_is_positive(x: *const arb_struct) -> libc::c_int;
146 pub fn arb_is_nonnegative(x: *const arb_struct) -> libc::c_int;
147 pub fn arb_is_negative(x: *const arb_struct) -> libc::c_int;
148 pub fn arb_is_nonpositive(x: *const arb_struct) -> libc::c_int;
149 pub fn arb_contains_negative(x: *const arb_struct) -> libc::c_int;
150 pub fn arb_contains_nonpositive(x: *const arb_struct) -> libc::c_int;
151 pub fn arb_contains_positive(x: *const arb_struct) -> libc::c_int;
152 pub fn arb_contains_nonnegative(x: *const arb_struct) -> libc::c_int;
153 pub fn arb_get_mag_lower(z: *mut mag_struct, x: *const arb_struct);
154 pub fn arb_get_mag_lower_nonnegative(z: *mut mag_struct, x: *const arb_struct);
155 #[link_name = "arb_get_mag__extern"]
156 pub fn arb_get_mag(z: *mut mag_struct, x: *const arb_struct);
157 #[link_name = "arb_get_mid_arb__extern"]
158 pub fn arb_get_mid_arb(z: *mut arb_struct, x: *const arb_struct);
159 #[link_name = "arb_get_rad_arb__extern"]
160 pub fn arb_get_rad_arb(z: *mut arb_struct, x: *const arb_struct);
161 pub fn arb_get_abs_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
162 pub fn arb_get_abs_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
163 pub fn arb_get_ubound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
164 pub fn arb_get_lbound_arf(u: *mut arf_struct, x: *const arb_struct, prec: slong);
165 pub fn arb_nonnegative_part(res: *mut arb_struct, x: *const arb_struct);
166 pub fn arb_rel_error_bits(x: *const arb_struct) -> slong;
167 #[link_name = "arb_rel_accuracy_bits__extern"]
168 pub fn arb_rel_accuracy_bits(x: *const arb_struct) -> slong;
169 pub fn arb_rel_one_accuracy_bits(x: *const arb_struct) -> slong;
170 #[link_name = "arb_bits__extern"]
171 pub fn arb_bits(x: *const arb_struct) -> slong;
172 pub fn arb_randtest_exact(
173 x: *mut arb_struct,
174 state: *mut flint_rand_struct,
175 prec: slong,
176 mag_bits: slong,
177 );
178 pub fn arb_randtest_wide(
179 x: *mut arb_struct,
180 state: *mut flint_rand_struct,
181 prec: slong,
182 mag_bits: slong,
183 );
184 pub fn arb_randtest_precise(
185 x: *mut arb_struct,
186 state: *mut flint_rand_struct,
187 prec: slong,
188 mag_bits: slong,
189 );
190 pub fn arb_randtest_positive(
191 x: *mut arb_struct,
192 state: *mut flint_rand_struct,
193 prec: slong,
194 mag_bits: slong,
195 );
196 pub fn arb_randtest(
197 x: *mut arb_struct,
198 state: *mut flint_rand_struct,
199 prec: slong,
200 mag_bits: slong,
201 );
202 pub fn arb_randtest_special(
203 x: *mut arb_struct,
204 state: *mut flint_rand_struct,
205 prec: slong,
206 mag_bits: slong,
207 );
208 pub fn arb_urandom(x: *mut arb_struct, state: *mut flint_rand_struct, prec: slong);
209 pub fn arb_add_error_arf(x: *mut arb_struct, err: *const arf_struct);
210 pub fn arb_add_error_2exp_si(x: *mut arb_struct, err: slong);
211 pub fn arb_add_error_2exp_fmpz(x: *mut arb_struct, err: *const fmpz);
212 pub fn arb_add_error(x: *mut arb_struct, error: *const arb_struct);
213 #[link_name = "arb_add_error_mag__extern"]
214 pub fn arb_add_error_mag(x: *mut arb_struct, err: *const mag_struct);
215 pub fn arb_contains_arf(x: *const arb_struct, y: *const arf_struct) -> libc::c_int;
216 pub fn arb_contains_fmpq(x: *const arb_struct, y: *const fmpq) -> libc::c_int;
217 pub fn arb_contains_fmpz(x: *const arb_struct, y: *const fmpz) -> libc::c_int;
218 pub fn arb_contains_si(x: *const arb_struct, y: slong) -> libc::c_int;
219 pub fn arb_contains_mpfr(x: *const arb_struct, y: *const __mpfr_struct) -> libc::c_int;
220 pub fn arb_overlaps(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
221 pub fn arb_contains(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
222 pub fn arb_contains_interior(x: *const arb_struct, y: *const arb_struct) -> libc::c_int;
223 pub fn arb_contains_int(x: *const arb_struct) -> libc::c_int;
224 pub fn arb_get_interval_fmpz_2exp(
225 a: *mut fmpz,
226 b: *mut fmpz,
227 exp: *mut fmpz,
228 x: *const arb_struct,
229 );
230 pub fn arb_get_unique_fmpz(z: *mut fmpz, x: *const arb_struct) -> libc::c_int;
231 pub fn arb_get_fmpz_mid_rad_10exp(
232 mid: *mut fmpz,
233 rad: *mut fmpz,
234 exp: *mut fmpz,
235 x: *const arb_struct,
236 n: slong,
237 );
238 pub fn arb_floor(z: *mut arb_struct, x: *const arb_struct, prec: slong);
239 pub fn arb_ceil(z: *mut arb_struct, x: *const arb_struct, prec: slong);
240 pub fn arb_nint(res: *mut arb_struct, x: *const arb_struct, prec: slong);
241 pub fn arb_trunc(res: *mut arb_struct, x: *const arb_struct, prec: slong);
242 pub fn arb_set_interval_arf(
243 x: *mut arb_struct,
244 a: *const arf_struct,
245 b: *const arf_struct,
246 prec: slong,
247 );
248 pub fn arb_set_interval_mpfr(
249 x: *mut arb_struct,
250 a: *const __mpfr_struct,
251 b: *const __mpfr_struct,
252 prec: slong,
253 );
254 pub fn arb_get_interval_arf(
255 a: *mut arf_struct,
256 b: *mut arf_struct,
257 x: *const arb_struct,
258 prec: slong,
259 );
260 pub fn arb_get_interval_mpfr(
261 a: *mut __mpfr_struct,
262 b: *mut __mpfr_struct,
263 x: *const arb_struct,
264 );
265 pub fn arb_set_interval_mag(
266 res: *mut arb_struct,
267 a: *const mag_struct,
268 b: *const mag_struct,
269 prec: slong,
270 );
271 pub fn arb_set_interval_neg_pos_mag(
272 res: *mut arb_struct,
273 a: *const mag_struct,
274 b: *const mag_struct,
275 prec: slong,
276 );
277 pub fn arb_union(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
278 pub fn arb_intersection(
279 z: *mut arb_struct,
280 x: *const arb_struct,
281 y: *const arb_struct,
282 prec: slong,
283 ) -> libc::c_int;
284 pub fn arb_get_rand_fmpq(
285 q: *mut fmpq,
286 state: *mut flint_rand_struct,
287 x: *const arb_struct,
288 bits: slong,
289 );
290 pub fn arb_min(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
291 pub fn arb_max(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
292 pub fn arb_minmax(
293 z1: *mut arb_struct,
294 z2: *mut arb_struct,
295 x: *const arb_struct,
296 y: *const arb_struct,
297 prec: slong,
298 );
299 pub fn arb_can_round_arf(x: *const arb_struct, prec: slong, rnd: arf_rnd_t) -> libc::c_int;
300 pub fn arb_can_round_mpfr(x: *const arb_struct, prec: slong, rnd: mpfr_rnd_t) -> libc::c_int;
301 pub fn arb_add(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
302 pub fn arb_add_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
303 pub fn arb_add_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
304 pub fn arb_add_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
305 pub fn arb_add_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
306 pub fn arb_add_fmpz_2exp(
307 z: *mut arb_struct,
308 x: *const arb_struct,
309 man: *const fmpz,
310 exp: *const fmpz,
311 prec: slong,
312 );
313 pub fn arb_sub(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
314 pub fn arb_sub_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
315 pub fn arb_sub_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
316 pub fn arb_sub_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
317 pub fn arb_sub_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
318 pub fn arb_mul(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
319 pub fn arb_mul_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
320 pub fn arb_mul_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
321 pub fn arb_mul_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
322 pub fn arb_mul_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
323 pub fn arb_addmul(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
324 pub fn arb_addmul_arf(
325 z: *mut arb_struct,
326 x: *const arb_struct,
327 y: *const arf_struct,
328 prec: slong,
329 );
330 pub fn arb_addmul_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
331 pub fn arb_addmul_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
332 pub fn arb_addmul_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
333 pub fn arb_submul(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
334 pub fn arb_submul_arf(
335 z: *mut arb_struct,
336 x: *const arb_struct,
337 y: *const arf_struct,
338 prec: slong,
339 );
340 pub fn arb_submul_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
341 pub fn arb_submul_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
342 pub fn arb_submul_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
343 pub fn arb_fma(
344 res: *mut arb_struct,
345 x: *const arb_struct,
346 y: *const arb_struct,
347 z: *const arb_struct,
348 prec: slong,
349 );
350 pub fn arb_fma_arf(
351 res: *mut arb_struct,
352 x: *const arb_struct,
353 y: *const arf_struct,
354 z: *const arb_struct,
355 prec: slong,
356 );
357 pub fn arb_fma_si(
358 res: *mut arb_struct,
359 x: *const arb_struct,
360 y: slong,
361 z: *const arb_struct,
362 prec: slong,
363 );
364 pub fn arb_fma_ui(
365 res: *mut arb_struct,
366 x: *const arb_struct,
367 y: ulong,
368 z: *const arb_struct,
369 prec: slong,
370 );
371 pub fn arb_fma_fmpz(
372 res: *mut arb_struct,
373 x: *const arb_struct,
374 y: *const fmpz,
375 z: *const arb_struct,
376 prec: slong,
377 );
378 pub fn arb_dot_simple(
379 res: *mut arb_struct,
380 initial: *const arb_struct,
381 subtract: libc::c_int,
382 x: arb_srcptr,
383 xstep: slong,
384 y: arb_srcptr,
385 ystep: slong,
386 len: slong,
387 prec: slong,
388 );
389 pub fn arb_dot_precise(
390 res: *mut arb_struct,
391 initial: *const arb_struct,
392 subtract: libc::c_int,
393 x: arb_srcptr,
394 xstep: slong,
395 y: arb_srcptr,
396 ystep: slong,
397 len: slong,
398 prec: slong,
399 );
400 pub fn arb_dot(
401 res: *mut arb_struct,
402 initial: *const arb_struct,
403 subtract: libc::c_int,
404 x: arb_srcptr,
405 xstep: slong,
406 y: arb_srcptr,
407 ystep: slong,
408 len: slong,
409 prec: slong,
410 );
411 pub fn arb_approx_dot(
412 res: *mut arb_struct,
413 initial: *const arb_struct,
414 subtract: libc::c_int,
415 x: arb_srcptr,
416 xstep: slong,
417 y: arb_srcptr,
418 ystep: slong,
419 len: slong,
420 prec: slong,
421 );
422 pub fn arb_dot_ui(
423 res: *mut arb_struct,
424 initial: *const arb_struct,
425 subtract: libc::c_int,
426 x: arb_srcptr,
427 xstep: slong,
428 y: *const ulong,
429 ystep: slong,
430 len: slong,
431 prec: slong,
432 );
433 pub fn arb_dot_si(
434 res: *mut arb_struct,
435 initial: *const arb_struct,
436 subtract: libc::c_int,
437 x: arb_srcptr,
438 xstep: slong,
439 y: *const slong,
440 ystep: slong,
441 len: slong,
442 prec: slong,
443 );
444 pub fn arb_dot_uiui(
445 res: *mut arb_struct,
446 initial: *const arb_struct,
447 subtract: libc::c_int,
448 x: arb_srcptr,
449 xstep: slong,
450 y: *const ulong,
451 ystep: slong,
452 len: slong,
453 prec: slong,
454 );
455 pub fn arb_dot_siui(
456 res: *mut arb_struct,
457 initial: *const arb_struct,
458 subtract: libc::c_int,
459 x: arb_srcptr,
460 xstep: slong,
461 y: *const ulong,
462 ystep: slong,
463 len: slong,
464 prec: slong,
465 );
466 pub fn arb_dot_fmpz(
467 res: *mut arb_struct,
468 initial: *const arb_struct,
469 subtract: libc::c_int,
470 x: arb_srcptr,
471 xstep: slong,
472 y: *const fmpz,
473 ystep: slong,
474 len: slong,
475 prec: slong,
476 );
477 pub fn arb_div(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
478 pub fn arb_div_arf(z: *mut arb_struct, x: *const arb_struct, y: *const arf_struct, prec: slong);
479 pub fn arb_div_si(z: *mut arb_struct, x: *const arb_struct, y: slong, prec: slong);
480 pub fn arb_div_ui(z: *mut arb_struct, x: *const arb_struct, y: ulong, prec: slong);
481 pub fn arb_div_fmpz(z: *mut arb_struct, x: *const arb_struct, y: *const fmpz, prec: slong);
482 pub fn arb_fmpz_div_fmpz(z: *mut arb_struct, x: *const fmpz, y: *const fmpz, prec: slong);
483 pub fn arb_ui_div(z: *mut arb_struct, x: ulong, y: *const arb_struct, prec: slong);
484 pub fn arb_div_arf_newton(
485 res: *mut arb_struct,
486 x: *const arb_struct,
487 y: *const arf_struct,
488 prec: slong,
489 );
490 pub fn arb_div_newton(
491 res: *mut arb_struct,
492 x: *const arb_struct,
493 y: *const arb_struct,
494 prec: slong,
495 );
496 pub fn arb_fmpz_divapprox(res: *mut fmpz, x: *const fmpz, y: *const fmpz);
497 #[link_name = "arb_inv__extern"]
498 pub fn arb_inv(y: *mut arb_struct, x: *const arb_struct, prec: slong);
499 #[link_name = "arb_set_fmpq__extern"]
500 pub fn arb_set_fmpq(y: *mut arb_struct, x: *const fmpq, prec: slong);
501 pub fn arb_sqrt(z: *mut arb_struct, x: *const arb_struct, prec: slong);
502 pub fn arb_sqrt_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
503 pub fn arb_sqrt_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
504 pub fn arb_sqrt_ui(z: *mut arb_struct, x: ulong, prec: slong);
505 pub fn arb_sqrtpos(z: *mut arb_struct, x: *const arb_struct, prec: slong);
506 pub fn arb_hypot(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
507 pub fn arb_rsqrt(z: *mut arb_struct, x: *const arb_struct, prec: slong);
508 pub fn arb_rsqrt_ui(z: *mut arb_struct, x: ulong, prec: slong);
509 pub fn arb_sqrt1pm1(r: *mut arb_struct, z: *const arb_struct, prec: slong);
510 pub fn arb_rsqrt_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
511 pub fn arb_sqrt_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
512 pub fn arb_sqrt_newton(z: *mut arb_struct, x: *const arb_struct, prec: slong);
513 pub fn arb_pow_fmpz_binexp(
514 y: *mut arb_struct,
515 b: *const arb_struct,
516 e: *const fmpz,
517 prec: slong,
518 );
519 pub fn arb_pow_fmpz(y: *mut arb_struct, b: *const arb_struct, e: *const fmpz, prec: slong);
520 pub fn arb_pow_ui(y: *mut arb_struct, b: *const arb_struct, e: ulong, prec: slong);
521 pub fn arb_ui_pow_ui(y: *mut arb_struct, b: ulong, e: ulong, prec: slong);
522 pub fn arb_si_pow_ui(y: *mut arb_struct, b: slong, e: ulong, prec: slong);
523 pub fn arb_pow_fmpq(y: *mut arb_struct, x: *const arb_struct, a: *const fmpq, prec: slong);
524 pub fn arb_div_2expm1_ui(z: *mut arb_struct, x: *const arb_struct, n: ulong, prec: slong);
525 pub fn arb_pow(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
526 pub fn arb_root_ui(z: *mut arb_struct, x: *const arb_struct, k: ulong, prec: slong);
527 pub fn arb_root(z: *mut arb_struct, x: *const arb_struct, k: ulong, prec: slong);
528 pub fn _arb_log_precompute_reductions(
529 rel: *mut libc::c_short,
530 eps: *mut f64,
531 alpha: arb_srcptr,
532 n: slong,
533 max_rel: slong,
534 C: f64,
535 );
536 pub fn arb_log(z: *mut arb_struct, x: *const arb_struct, prec: slong);
537 pub fn arb_log_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
538 pub fn arb_log_ui(z: *mut arb_struct, x: ulong, prec: slong);
539 pub fn arb_log_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
540 pub fn arb_log1p(r: *mut arb_struct, z: *const arb_struct, prec: slong);
541 pub fn arb_log_base_ui(res: *mut arb_struct, x: *const arb_struct, b: ulong, prec: slong);
542 pub fn arb_log_hypot(
543 res: *mut arb_struct,
544 x: *const arb_struct,
545 y: *const arb_struct,
546 prec: slong,
547 );
548 pub fn arb_exp(z: *mut arb_struct, x: *const arb_struct, prec: slong);
549 pub fn arb_expm1(z: *mut arb_struct, x: *const arb_struct, prec: slong);
550 pub fn arb_exp_invexp(
551 z: *mut arb_struct,
552 w: *mut arb_struct,
553 x: *const arb_struct,
554 prec: slong,
555 );
556 pub fn arb_sin(s: *mut arb_struct, x: *const arb_struct, prec: slong);
557 pub fn arb_cos(c: *mut arb_struct, x: *const arb_struct, prec: slong);
558 pub fn arb_sin_cos(s: *mut arb_struct, c: *mut arb_struct, x: *const arb_struct, prec: slong);
559 pub fn arb_sin_pi(s: *mut arb_struct, x: *const arb_struct, prec: slong);
560 pub fn arb_cos_pi(c: *mut arb_struct, x: *const arb_struct, prec: slong);
561 pub fn arb_sin_cos_pi(
562 s: *mut arb_struct,
563 c: *mut arb_struct,
564 x: *const arb_struct,
565 prec: slong,
566 );
567 pub fn arb_tan(y: *mut arb_struct, x: *const arb_struct, prec: slong);
568 pub fn arb_cot(y: *mut arb_struct, x: *const arb_struct, prec: slong);
569 pub fn arb_tan_pi(y: *mut arb_struct, x: *const arb_struct, prec: slong);
570 pub fn arb_cot_pi(y: *mut arb_struct, x: *const arb_struct, prec: slong);
571 pub fn _arb_sin_pi_fmpq_algebraic(s: *mut arb_struct, p: ulong, q: ulong, prec: slong);
572 pub fn _arb_cos_pi_fmpq_algebraic(c: *mut arb_struct, p: ulong, q: ulong, prec: slong);
573 pub fn _arb_sin_cos_pi_fmpq_algebraic(
574 s: *mut arb_struct,
575 c: *mut arb_struct,
576 p: ulong,
577 q: ulong,
578 prec: slong,
579 );
580 pub fn arb_sin_cos_pi_fmpq(s: *mut arb_struct, c: *mut arb_struct, x: *const fmpq, prec: slong);
581 pub fn arb_sin_pi_fmpq(s: *mut arb_struct, x: *const fmpq, prec: slong);
582 pub fn arb_cos_pi_fmpq(c: *mut arb_struct, x: *const fmpq, prec: slong);
583 pub fn arb_sinc(z: *mut arb_struct, x: *const arb_struct, prec: slong);
584 pub fn arb_sinc_pi(z: *mut arb_struct, x: *const arb_struct, prec: slong);
585 pub fn arb_sinh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
586 pub fn arb_cosh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
587 pub fn arb_sinh_cosh(s: *mut arb_struct, c: *mut arb_struct, x: *const arb_struct, prec: slong);
588 pub fn arb_tanh(y: *mut arb_struct, x: *const arb_struct, prec: slong);
589 pub fn arb_coth(y: *mut arb_struct, x: *const arb_struct, prec: slong);
590 pub fn arb_atan_arf(z: *mut arb_struct, x: *const arf_struct, prec: slong);
591 pub fn arb_atan(z: *mut arb_struct, x: *const arb_struct, prec: slong);
592 pub fn arb_atan2(z: *mut arb_struct, b: *const arb_struct, a: *const arb_struct, prec: slong);
593 pub fn arb_asin(z: *mut arb_struct, x: *const arb_struct, prec: slong);
594 pub fn arb_acos(z: *mut arb_struct, x: *const arb_struct, prec: slong);
595 pub fn arb_atanh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
596 pub fn arb_asinh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
597 pub fn arb_acosh(z: *mut arb_struct, x: *const arb_struct, prec: slong);
598 pub fn arb_sec(res: *mut arb_struct, x: *const arb_struct, prec: slong);
599 pub fn arb_csc(res: *mut arb_struct, x: *const arb_struct, prec: slong);
600 pub fn arb_csc_pi(res: *mut arb_struct, x: *const arb_struct, prec: slong);
601 pub fn arb_sech(res: *mut arb_struct, x: *const arb_struct, prec: slong);
602 pub fn arb_csch(res: *mut arb_struct, x: *const arb_struct, prec: slong);
603 pub fn arb_fac_ui(z: *mut arb_struct, n: ulong, prec: slong);
604 pub fn arb_doublefac_ui(z: *mut arb_struct, n: ulong, prec: slong);
605 pub fn arb_bin_ui(z: *mut arb_struct, n: *const arb_struct, k: ulong, prec: slong);
606 pub fn arb_bin_uiui(z: *mut arb_struct, n: ulong, k: ulong, prec: slong);
607 pub fn arb_fib_fmpz(z: *mut arb_struct, n: *const fmpz, prec: slong);
608 pub fn arb_fib_ui(z: *mut arb_struct, n: ulong, prec: slong);
609 pub fn arb_const_pi(z: *mut arb_struct, prec: slong);
610 pub fn arb_const_sqrt_pi(z: *mut arb_struct, prec: slong);
611 pub fn arb_const_log_sqrt2pi(z: *mut arb_struct, prec: slong);
612 pub fn arb_const_log2(z: *mut arb_struct, prec: slong);
613 pub fn arb_const_log10(z: *mut arb_struct, prec: slong);
614 pub fn arb_const_euler(z: *mut arb_struct, prec: slong);
615 pub fn arb_const_catalan(z: *mut arb_struct, prec: slong);
616 pub fn arb_const_e(z: *mut arb_struct, prec: slong);
617 pub fn arb_const_khinchin(z: *mut arb_struct, prec: slong);
618 pub fn arb_const_glaisher(z: *mut arb_struct, prec: slong);
619 pub fn arb_const_reciprocal_fibonacci(res: *mut arb_struct, prec: slong);
620 pub fn arb_agm(z: *mut arb_struct, x: *const arb_struct, y: *const arb_struct, prec: slong);
621 pub fn arb_lgamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
622 pub fn arb_rgamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
623 pub fn arb_gamma(z: *mut arb_struct, x: *const arb_struct, prec: slong);
624 pub fn arb_gamma_fmpq(z: *mut arb_struct, x: *const fmpq, prec: slong);
625 pub fn arb_gamma_fmpz(z: *mut arb_struct, x: *const fmpz, prec: slong);
626 pub fn arb_digamma(y: *mut arb_struct, x: *const arb_struct, prec: slong);
627 pub fn arb_zeta(z: *mut arb_struct, s: *const arb_struct, prec: slong);
628 pub fn arb_hurwitz_zeta(
629 z: *mut arb_struct,
630 s: *const arb_struct,
631 a: *const arb_struct,
632 prec: slong,
633 );
634 pub fn arb_rising_ui(z: *mut arb_struct, x: *const arb_struct, n: ulong, prec: slong);
635 pub fn arb_rising_fmpq_ui(y: *mut arb_struct, x: *const fmpq, n: ulong, prec: slong);
636 pub fn arb_rising(z: *mut arb_struct, x: *const arb_struct, n: *const arb_struct, prec: slong);
637 pub fn arb_rising2_ui(
638 u: *mut arb_struct,
639 v: *mut arb_struct,
640 x: *const arb_struct,
641 n: ulong,
642 prec: slong,
643 );
644 pub fn arb_log_ui_from_prev(
645 s: *mut arb_struct,
646 k: ulong,
647 log_prev: *mut arb_struct,
648 prev: ulong,
649 prec: slong,
650 );
651 pub fn arb_const_apery(s: *mut arb_struct, prec: slong);
652 pub fn arb_zeta_ui_asymp(x: *mut arb_struct, s: ulong, prec: slong);
653 pub fn arb_zeta_ui_borwein_bsplit(x: *mut arb_struct, s: ulong, prec: slong);
654 pub fn arb_zeta_ui_euler_product(z: *mut arb_struct, s: ulong, prec: slong);
655 pub fn arb_zeta_ui_bernoulli(x: *mut arb_struct, n: ulong, prec: slong);
656 pub fn arb_zeta_ui_vec_borwein(z: arb_ptr, start: ulong, num: slong, step: ulong, prec: slong);
657 pub fn arb_zeta_ui(x: *mut arb_struct, n: ulong, prec: slong);
658 pub fn arb_zeta_ui_vec_even(x: arb_ptr, start: ulong, num: slong, prec: slong);
659 pub fn arb_zeta_ui_vec_odd(x: arb_ptr, start: ulong, num: slong, prec: slong);
660 pub fn arb_zeta_ui_vec(x: arb_ptr, start: ulong, num: slong, prec: slong);
661 pub fn arb_bernoulli_ui(b: *mut arb_struct, n: ulong, prec: slong);
662 pub fn arb_bernoulli_ui_zeta(b: *mut arb_struct, n: ulong, prec: slong);
663 pub fn arb_bernoulli_fmpz(b: *mut arb_struct, n: *const fmpz, prec: slong);
664 pub fn arb_bernoulli_poly_ui(res: *mut arb_struct, n: ulong, x: *const arb_struct, prec: slong);
665 pub fn arb_polylog(w: *mut arb_struct, s: *const arb_struct, z: *const arb_struct, prec: slong);
666 pub fn arb_polylog_si(w: *mut arb_struct, s: slong, z: *const arb_struct, prec: slong);
667 pub fn arb_chebyshev_t_ui(a: *mut arb_struct, n: ulong, x: *const arb_struct, prec: slong);
668 pub fn arb_chebyshev_t2_ui(
669 a: *mut arb_struct,
670 b: *mut arb_struct,
671 n: ulong,
672 x: *const arb_struct,
673 prec: slong,
674 );
675 pub fn arb_chebyshev_u_ui(a: *mut arb_struct, n: ulong, x: *const arb_struct, prec: slong);
676 pub fn arb_chebyshev_u2_ui(
677 a: *mut arb_struct,
678 b: *mut arb_struct,
679 n: ulong,
680 x: *const arb_struct,
681 prec: slong,
682 );
683 pub fn arb_power_sum_vec(
684 res: arb_ptr,
685 a: *const arb_struct,
686 b: *const arb_struct,
687 len: slong,
688 prec: slong,
689 );
690 pub fn arb_bell_sum_taylor(
691 res: *mut arb_struct,
692 n: *const fmpz,
693 a: *const fmpz,
694 b: *const fmpz,
695 mmag: *const fmpz,
696 prec: slong,
697 );
698 pub fn arb_bell_sum_bsplit(
699 res: *mut arb_struct,
700 n: *const fmpz,
701 a: *const fmpz,
702 b: *const fmpz,
703 mmag: *const fmpz,
704 prec: slong,
705 );
706 pub fn arb_bell_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
707 pub fn arb_bell_ui(res: *mut arb_struct, n: ulong, prec: slong);
708 pub fn arb_euler_number_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
709 pub fn arb_euler_number_ui(res: *mut arb_struct, n: ulong, prec: slong);
710 pub fn arb_fmpz_euler_number_ui_multi_mod(res: *mut fmpz, n: ulong, alpha: f64);
711 pub fn arb_fmpz_euler_number_ui(res: *mut fmpz, n: ulong);
712 pub fn arb_partitions_fmpz(res: *mut arb_struct, n: *const fmpz, prec: slong);
713 pub fn arb_partitions_ui(res: *mut arb_struct, n: ulong, prec: slong);
714 pub fn arb_primorial_nth_ui(res: *mut arb_struct, n: ulong, prec: slong);
715 pub fn arb_primorial_ui(res: *mut arb_struct, n: ulong, prec: slong);
716 pub fn arb_lambertw(
717 res: *mut arb_struct,
718 x: *const arb_struct,
719 flags: libc::c_int,
720 prec: slong,
721 );
722 #[link_name = "arb_sqr__extern"]
723 pub fn arb_sqr(res: *mut arb_struct, val: *const arb_struct, prec: slong);
724 pub fn _arb_vec_entry_ptr(vec: arb_ptr, i: slong) -> arb_ptr;
725 pub fn _arb_vec_zero(A: arb_ptr, n: slong);
726 pub fn _arb_vec_indeterminate(vec: arb_ptr, len: slong);
727 pub fn _arb_vec_is_zero(vec: arb_srcptr, len: slong) -> libc::c_int;
728 pub fn _arb_vec_is_finite(x: arb_srcptr, len: slong) -> libc::c_int;
729 pub fn _arb_vec_equal(vec1: arb_srcptr, vec2: arb_srcptr, len: slong) -> libc::c_int;
730 pub fn _arb_vec_overlaps(vec1: arb_srcptr, vec2: arb_srcptr, len: slong) -> libc::c_int;
731 pub fn _arb_vec_contains(vec1: arb_srcptr, vec2: arb_srcptr, len: slong) -> libc::c_int;
732 pub fn _arb_vec_set(res: arb_ptr, vec: arb_srcptr, len: slong);
733 pub fn _arb_vec_swap(res: arb_ptr, vec: arb_ptr, len: slong);
734 pub fn _arb_vec_neg(B: arb_ptr, A: arb_srcptr, n: slong);
735 pub fn _arb_vec_set_round(res: arb_ptr, vec: arb_srcptr, len: slong, prec: slong);
736 pub fn _arb_vec_sub(C: arb_ptr, A: arb_srcptr, B: arb_srcptr, n: slong, prec: slong);
737 pub fn _arb_vec_add(C: arb_ptr, A: arb_srcptr, B: arb_srcptr, n: slong, prec: slong);
738 pub fn _arb_vec_scalar_mul(
739 res: arb_ptr,
740 vec: arb_srcptr,
741 len: slong,
742 c: *const arb_struct,
743 prec: slong,
744 );
745 pub fn _arb_vec_scalar_mul_fmpz(
746 res: arb_ptr,
747 vec: arb_srcptr,
748 len: slong,
749 c: *const fmpz,
750 prec: slong,
751 );
752 pub fn _arb_vec_scalar_mul_2exp_si(res: arb_ptr, src: arb_srcptr, len: slong, c: slong);
753 pub fn _arb_vec_scalar_div(
754 res: arb_ptr,
755 vec: arb_srcptr,
756 len: slong,
757 c: *const arb_struct,
758 prec: slong,
759 );
760 pub fn _arb_vec_scalar_addmul(
761 res: arb_ptr,
762 vec: arb_srcptr,
763 len: slong,
764 c: *const arb_struct,
765 prec: slong,
766 );
767 pub fn _arb_vec_get_mag(bound: *mut mag_struct, vec: arb_srcptr, len: slong);
768 pub fn _arb_vec_bits(x: arb_srcptr, len: slong) -> slong;
769 pub fn _arb_vec_set_powers(xs: arb_ptr, x: *const arb_struct, len: slong, prec: slong);
770 pub fn _arb_vec_add_error_arf_vec(res: arb_ptr, err: arf_srcptr, len: slong);
771 pub fn _arb_vec_add_error_mag_vec(res: arb_ptr, err: mag_srcptr, len: slong);
772 pub fn _arb_vec_trim(res: arb_ptr, vec: arb_srcptr, len: slong);
773 pub fn _arb_vec_get_unique_fmpz_vec(res: *mut fmpz, vec: arb_srcptr, len: slong)
774 -> libc::c_int;
775 pub static mut arb_atan_tab1: [[ulong; 8usize]; 256usize];
776 pub static mut arb_atan_tab21: [[ulong; 72usize]; 32usize];
777 pub static mut arb_atan_tab22: [[ulong; 72usize]; 32usize];
778 pub static arb_atan_pi2_minus_one: [ulong; 72usize];
779 pub fn _arb_atan_taylor_naive(
780 y: nn_ptr,
781 error: *mut ulong,
782 x: nn_srcptr,
783 xn: slong,
784 N: ulong,
785 alternating: libc::c_int,
786 );
787 pub fn _arb_atan_taylor_rs(
788 y: nn_ptr,
789 error: *mut ulong,
790 x: nn_srcptr,
791 xn: slong,
792 N: ulong,
793 alternating: libc::c_int,
794 );
795 pub fn arb_atan_newton(res: *mut arb_struct, x: *const arb_struct, prec: slong);
796 pub fn arb_atan_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
797 pub static mut arb_log_tab11: [[ulong; 8usize]; 128usize];
798 pub static mut arb_log_tab12: [[ulong; 8usize]; 128usize];
799 pub static mut arb_log_tab21: [[ulong; 72usize]; 32usize];
800 pub static mut arb_log_tab22: [[ulong; 72usize]; 32usize];
801 pub static arb_log_log2_tab: nn_srcptr;
802 pub fn arb_log_newton(res: *mut arb_struct, x: *const arb_struct, prec: slong);
803 pub fn arb_log_arf_newton(res: *mut arb_struct, x: *const arf_struct, prec: slong);
804 pub static mut arb_log_p_tab: [[ulong; 72usize]; 13usize];
805 pub fn arb_log_primes_vec_bsplit(res: arb_ptr, n: slong, prec: slong);
806 pub fn _arb_log_p_ensure_cached(prec: slong);
807 pub fn _arb_log_p_cache_vec() -> arb_srcptr;
808 pub static mut arb_exp_tab1: [[ulong; 8usize]; 178usize];
809 pub static mut arb_exp_tab21: [[ulong; 72usize]; 23usize];
810 pub static mut arb_exp_tab22: [[ulong; 72usize]; 32usize];
811 pub fn _arb_exp_taylor_naive(y: nn_ptr, error: *mut ulong, x: nn_srcptr, xn: slong, N: ulong);
812 pub fn _arb_exp_taylor_rs(y: nn_ptr, error: *mut ulong, x: nn_srcptr, xn: slong, N: ulong);
813 pub fn arb_exp_arf_bb(
814 z: *mut arb_struct,
815 x: *const arf_struct,
816 prec: slong,
817 minus_one: libc::c_int,
818 );
819 pub fn arb_exp_arf_rs_generic(
820 res: *mut arb_struct,
821 x: *const arf_struct,
822 prec: slong,
823 minus_one: libc::c_int,
824 );
825 pub fn _arb_get_mpn_fixed_mod_log2(
826 w: nn_ptr,
827 q: *mut fmpz,
828 error: *mut ulong,
829 x: *const arf_struct,
830 wn: slong,
831 ) -> libc::c_int;
832 pub fn _arb_exp_taylor_bound(mag: slong, prec: slong) -> slong;
833 pub fn _arb_exp_sum_bs_powtab(
834 T: *mut fmpz,
835 Q: *mut fmpz,
836 Qexp: *mut flint_bitcnt_t,
837 x: *const fmpz,
838 r: flint_bitcnt_t,
839 N: slong,
840 );
841 pub fn _arb_exp_sum_bs_simple(
842 T: *mut fmpz,
843 Q: *mut fmpz,
844 Qexp: *mut flint_bitcnt_t,
845 x: *const fmpz,
846 r: flint_bitcnt_t,
847 N: slong,
848 );
849 pub fn arb_exp_arf_log_reduction(
850 res: *mut arb_struct,
851 x: *const arf_struct,
852 prec: slong,
853 minus_one: libc::c_int,
854 );
855 pub fn arb_exp_arf_generic(
856 z: *mut arb_struct,
857 x: *const arf_struct,
858 prec: slong,
859 minus_one: libc::c_int,
860 );
861 pub fn arb_exp_arf(
862 z: *mut arb_struct,
863 x: *const arf_struct,
864 prec: slong,
865 minus_one: libc::c_int,
866 maglim: slong,
867 );
868 pub static mut arb_sin_cos_tab1: [[ulong; 8usize]; 406usize];
869 pub static mut arb_sin_cos_tab21: [[ulong; 72usize]; 52usize];
870 pub static mut arb_sin_cos_tab22: [[ulong; 72usize]; 64usize];
871 pub static arb_pi4_tab: [ulong; 72usize];
872 pub fn _arb_sin_cos_taylor_naive(
873 ysin: nn_ptr,
874 ycos: nn_ptr,
875 error: *mut ulong,
876 x: nn_srcptr,
877 xn: slong,
878 N: ulong,
879 );
880 pub fn _arb_sin_cos_taylor_rs(
881 ysin: nn_ptr,
882 ycos: nn_ptr,
883 error: *mut ulong,
884 x: nn_srcptr,
885 xn: slong,
886 N: ulong,
887 sinonly: libc::c_int,
888 alternating: libc::c_int,
889 );
890 pub fn _arb_get_mpn_fixed_mod_pi4(
891 w: nn_ptr,
892 q: *mut fmpz,
893 octant: *mut libc::c_int,
894 error: *mut ulong,
895 x: *const arf_struct,
896 wn: slong,
897 ) -> libc::c_int;
898 pub fn arb_sin_cos_arf_bb(
899 zsin: *mut arb_struct,
900 zcos: *mut arb_struct,
901 x: *const arf_struct,
902 prec: slong,
903 );
904 pub fn arb_sin_cos_arf_rs_generic(
905 res_sin: *mut arb_struct,
906 res_cos: *mut arb_struct,
907 x: *const arf_struct,
908 prec: slong,
909 );
910 pub fn arb_sin_cos_arf_generic(
911 res_sin: *mut arb_struct,
912 res_cos: *mut arb_struct,
913 x: *const arf_struct,
914 prec: slong,
915 );
916 pub fn _arb_sin_cos_wide(
917 s: *mut arb_struct,
918 c: *mut arb_struct,
919 x: *const arf_struct,
920 r: *const mag_struct,
921 prec: slong,
922 );
923 pub fn arb_sin_cos_wide(
924 s: *mut arb_struct,
925 c: *mut arb_struct,
926 x: *const arb_struct,
927 prec: slong,
928 );
929 pub fn _arb_sin_cos_generic(
930 s: *mut arb_struct,
931 c: *mut arb_struct,
932 x: *const arf_struct,
933 xrad: *const mag_struct,
934 prec: slong,
935 );
936 pub fn arb_sin_cos_generic(
937 s: *mut arb_struct,
938 c: *mut arb_struct,
939 x: *const arb_struct,
940 prec: slong,
941 );
942 pub fn arb_atan_gauss_primes_vec_bsplit(res: arb_ptr, n: slong, prec: slong);
943 pub static mut arb_atan_gauss_tab: [[ulong; 72usize]; 13usize];
944 pub fn _arb_atan_gauss_p_ensure_cached(prec: slong);
945 pub fn _arb_atan_gauss_p_cache_vec() -> arb_srcptr;
946 pub fn arb_sin_cos_arf_atan_reduction(
947 res1: *mut arb_struct,
948 res2: *mut arb_struct,
949 x: *const arf_struct,
950 prec: slong,
951 );
952 #[link_name = "_arb_mpn_leading_zeros__extern"]
953 pub fn _arb_mpn_leading_zeros(d: nn_srcptr, n: slong) -> flint_bitcnt_t;
954 pub fn _arb_atan_sum_bs_simple(
955 T: *mut fmpz,
956 Q: *mut fmpz,
957 Qexp: *mut flint_bitcnt_t,
958 x: *const fmpz,
959 r: flint_bitcnt_t,
960 N: slong,
961 );
962 pub fn _arb_atan_sum_bs_powtab(
963 T: *mut fmpz,
964 Q: *mut fmpz,
965 Qexp: *mut flint_bitcnt_t,
966 x: *const fmpz,
967 r: flint_bitcnt_t,
968 N: slong,
969 );
970 pub fn arb_atan_arf_bb(z: *mut arb_struct, x: *const arf_struct, prec: slong);
971 pub fn arb_atan_frac_bsplit(
972 s: *mut arb_struct,
973 p: *const fmpz,
974 q: *const fmpz,
975 hyperbolic: libc::c_int,
976 prec: slong,
977 );
978 #[link_name = "arb_allocated_bytes__extern"]
979 pub fn arb_allocated_bytes(x: *const arb_struct) -> slong;
980 pub fn _arb_vec_allocated_bytes(vec: arb_srcptr, len: slong) -> slong;
981 pub fn _arb_vec_estimate_allocated_bytes(len: slong, prec: slong) -> f64;
982 pub fn arb_load_str(res: *mut arb_struct, data: *const libc::c_char) -> libc::c_int;
983 pub fn arb_dump_str(x: *const arb_struct) -> *mut libc::c_char;
984 pub fn arb_load_file(res: *mut arb_struct, stream: *mut FILE) -> libc::c_int;
985 pub fn arb_dump_file(stream: *mut FILE, x: *const arb_struct) -> libc::c_int;
986}