Skip to main content

flint_sys/
ca.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use libc::*;
4use crate::deps::*;
5use crate::acb_types::*;
6use crate::ca_types::*;
7use crate::fexpr::*;
8use crate::flint::*;
9use crate::fmpq_types::*;
10use crate::fmpz_types::*;
11use crate::gr_types::*;
12use crate::mpoly_types::*;
13use crate::qqbar::*;
14
15
16pub const CA_TRIG_DIRECT: u32 = 0;
17pub const CA_TRIG_EXPONENTIAL: u32 = 1;
18pub const CA_TRIG_SINE_COSINE: u32 = 2;
19pub const CA_TRIG_TANGENT: u32 = 3;
20pub const CA_FEXPR_SERIALIZATION: u32 = 1;
21pub const CA_FACTOR_ZZ_NONE: u32 = 0;
22pub const CA_FACTOR_ZZ_SMOOTH: u32 = 2;
23pub const CA_FACTOR_ZZ_FULL: u32 = 4;
24pub const CA_FACTOR_POLY_NONE: u32 = 0;
25pub const CA_FACTOR_POLY_CONTENT: u32 = 64;
26pub const CA_FACTOR_POLY_SQF: u32 = 128;
27pub const CA_FACTOR_POLY_FULL: u32 = 256;
28pub const CA_OPT_VERBOSE: _bindgen_ty_4 = 0;
29pub const CA_OPT_PRINT_FLAGS: _bindgen_ty_4 = 1;
30pub const CA_OPT_MPOLY_ORD: _bindgen_ty_4 = 2;
31pub const CA_OPT_PREC_LIMIT: _bindgen_ty_4 = 3;
32pub const CA_OPT_QQBAR_DEG_LIMIT: _bindgen_ty_4 = 4;
33pub const CA_OPT_LOW_PREC: _bindgen_ty_4 = 5;
34pub const CA_OPT_SMOOTH_LIMIT: _bindgen_ty_4 = 6;
35pub const CA_OPT_LLL_PREC: _bindgen_ty_4 = 7;
36pub const CA_OPT_POW_LIMIT: _bindgen_ty_4 = 8;
37pub const CA_OPT_USE_GROEBNER: _bindgen_ty_4 = 9;
38pub const CA_OPT_GROEBNER_LENGTH_LIMIT: _bindgen_ty_4 = 10;
39pub const CA_OPT_GROEBNER_POLY_LENGTH_LIMIT: _bindgen_ty_4 = 11;
40pub const CA_OPT_GROEBNER_POLY_BITS_LIMIT: _bindgen_ty_4 = 12;
41pub const CA_OPT_VIETA_LIMIT: _bindgen_ty_4 = 13;
42pub const CA_OPT_TRIG_FORM: _bindgen_ty_4 = 14;
43pub const CA_OPT_NUM_OPTIONS: _bindgen_ty_4 = 15;
44pub type _bindgen_ty_4 = libc::c_uint;
45extern "C" {
46    pub fn ca_ctx_init(ctx: *mut ca_ctx_struct);
47    pub fn ca_ctx_clear(ctx: *mut ca_ctx_struct);
48    pub fn ca_ctx_print(ctx: *mut ca_ctx_struct);
49    #[link_name = "ca_ctx_get_option__extern"]
50    pub fn ca_ctx_get_option(ctx: *mut ca_ctx_struct, i: slong) -> slong;
51    #[link_name = "ca_ctx_set_option__extern"]
52    pub fn ca_ctx_set_option(ctx: *mut ca_ctx_struct, i: slong, value: slong);
53    pub fn _ca_ctx_get_field_const(
54        ctx: *mut ca_ctx_struct,
55        func: calcium_func_code,
56    ) -> ca_field_ptr;
57    pub fn _ca_ctx_get_field_fx(
58        ctx: *mut ca_ctx_struct,
59        func: calcium_func_code,
60        x: *const ca_struct,
61    ) -> ca_field_ptr;
62    pub fn _ca_ctx_get_field_fxy(
63        ctx: *mut ca_ctx_struct,
64        func: calcium_func_code,
65        x: *const ca_struct,
66        y: *const ca_struct,
67    ) -> ca_field_ptr;
68    pub fn ca_init(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
69    pub fn ca_clear(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
70    pub fn ca_swap(x: *mut ca_struct, y: *mut ca_struct, ctx: *mut ca_ctx_struct);
71    pub fn _ca_make_field_element(
72        x: *mut ca_struct,
73        field: ca_field_srcptr,
74        ctx: *mut ca_ctx_struct,
75    );
76    #[link_name = "_ca_make_fmpq__extern"]
77    pub fn _ca_make_fmpq(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
78    #[link_name = "_ca_function_fx__extern"]
79    pub fn _ca_function_fx(
80        res: *mut ca_struct,
81        func: calcium_func_code,
82        x: *const ca_struct,
83        ctx: *mut ca_ctx_struct,
84    );
85    #[link_name = "_ca_function_fxy__extern"]
86    pub fn _ca_function_fxy(
87        res: *mut ca_struct,
88        func: calcium_func_code,
89        x: *const ca_struct,
90        y: *const ca_struct,
91        ctx: *mut ca_ctx_struct,
92    );
93    pub fn ca_set(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
94    pub fn ca_transfer(
95        res: *mut ca_struct,
96        res_ctx: *mut ca_ctx_struct,
97        src: *const ca_struct,
98        src_ctx: *mut ca_ctx_struct,
99    );
100    pub fn ca_zero(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
101    pub fn ca_one(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
102    pub fn ca_neg_one(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
103    pub fn ca_set_si(x: *mut ca_struct, v: slong, ctx: *mut ca_ctx_struct);
104    pub fn ca_set_ui(x: *mut ca_struct, v: ulong, ctx: *mut ca_ctx_struct);
105    pub fn ca_set_fmpz(x: *mut ca_struct, v: *const fmpz, ctx: *mut ca_ctx_struct);
106    pub fn ca_set_fmpq(x: *mut ca_struct, v: *const fmpq, ctx: *mut ca_ctx_struct);
107    pub fn ca_set_d(res: *mut ca_struct, x: f64, ctx: *mut ca_ctx_struct);
108    pub fn ca_set_d_d(res: *mut ca_struct, x: f64, y: f64, ctx: *mut ca_ctx_struct);
109    pub fn ca_i(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
110    pub fn ca_neg_i(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
111    pub fn ca_pi(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
112    pub fn ca_pi_i(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
113    pub fn ca_euler(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
114    pub fn ca_unknown(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
115    pub fn ca_undefined(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
116    pub fn ca_uinf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
117    pub fn ca_pos_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
118    pub fn ca_neg_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
119    pub fn ca_pos_i_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
120    pub fn ca_neg_i_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
121    pub fn ca_set_qqbar(res: *mut ca_struct, x: *const qqbar_struct, ctx: *mut ca_ctx_struct);
122    pub fn ca_can_evaluate_qqbar(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
123    pub fn ca_get_qqbar(
124        res: *mut qqbar_struct,
125        x: *const ca_struct,
126        ctx: *mut ca_ctx_struct,
127    ) -> libc::c_int;
128    pub fn ca_get_fmpq(res: *mut fmpq, x: *const ca_struct, ctx: *mut ca_ctx_struct)
129        -> libc::c_int;
130    pub fn ca_get_fmpz(res: *mut fmpz, x: *const ca_struct, ctx: *mut ca_ctx_struct)
131        -> libc::c_int;
132    pub fn ca_get_fexpr(
133        res: *mut fexpr_struct,
134        x: *const ca_struct,
135        flags: ulong,
136        ctx: *mut ca_ctx_struct,
137    );
138    pub fn ca_set_fexpr(
139        res: *mut ca_struct,
140        expr: *const fexpr_struct,
141        ctx: *mut ca_ctx_struct,
142    ) -> libc::c_int;
143    pub fn ca_fprint(fp: *mut FILE, x: *const ca_struct, ctx: *mut ca_ctx_struct);
144    pub fn ca_print(x: *const ca_struct, ctx: *mut ca_ctx_struct);
145    pub fn ca_printn(x: *const ca_struct, n: slong, ctx: *mut ca_ctx_struct);
146    pub fn ca_get_str(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> *mut libc::c_char;
147    pub fn ca_randtest_same_nf(
148        res: *mut ca_struct,
149        state: *mut flint_rand_struct,
150        x: *const ca_struct,
151        bits: slong,
152        den_bits: slong,
153        ctx: *mut ca_ctx_struct,
154    );
155    pub fn ca_randtest_rational(
156        res: *mut ca_struct,
157        state: *mut flint_rand_struct,
158        bits: slong,
159        ctx: *mut ca_ctx_struct,
160    );
161    pub fn ca_randtest(
162        res: *mut ca_struct,
163        state: *mut flint_rand_struct,
164        depth: slong,
165        bits: slong,
166        ctx: *mut ca_ctx_struct,
167    );
168    pub fn ca_randtest_special(
169        res: *mut ca_struct,
170        state: *mut flint_rand_struct,
171        depth: slong,
172        bits: slong,
173        ctx: *mut ca_ctx_struct,
174    );
175    #[link_name = "ca_is_special__extern"]
176    pub fn ca_is_special(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
177    #[link_name = "ca_is_unknown__extern"]
178    pub fn ca_is_unknown(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
179    #[link_name = "ca_is_qq_elem__extern"]
180    pub fn ca_is_qq_elem(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
181    #[link_name = "ca_is_qq_elem_zero__extern"]
182    pub fn ca_is_qq_elem_zero(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
183    #[link_name = "ca_is_qq_elem_one__extern"]
184    pub fn ca_is_qq_elem_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
185    #[link_name = "ca_is_qq_elem_integer__extern"]
186    pub fn ca_is_qq_elem_integer(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
187    #[link_name = "ca_is_nf_elem__extern"]
188    pub fn ca_is_nf_elem(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
189    #[link_name = "ca_is_generic_elem__extern"]
190    pub fn ca_is_generic_elem(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
191    pub fn ca_is_cyclotomic_nf_elem(
192        p: *mut slong,
193        q: *mut ulong,
194        x: *const ca_struct,
195        ctx: *mut ca_ctx_struct,
196    ) -> libc::c_int;
197    pub fn ca_is_zero_check_fast(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
198    pub fn ca_check_is_number(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
199    pub fn ca_check_is_zero(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
200    pub fn ca_check_is_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
201    pub fn ca_check_is_neg_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
202    pub fn ca_check_is_i(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
203    pub fn ca_check_is_neg_i(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
204    pub fn ca_check_is_algebraic(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
205    pub fn ca_check_is_rational(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
206    pub fn ca_check_is_integer(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
207    pub fn ca_check_is_real(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
208    pub fn ca_check_is_negative_real(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
209    pub fn ca_check_is_imaginary(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
210    pub fn ca_check_is_undefined(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
211    pub fn ca_check_is_infinity(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
212    pub fn ca_check_is_uinf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
213    pub fn ca_check_is_signed_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
214    pub fn ca_check_is_pos_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
215    pub fn ca_check_is_neg_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
216    pub fn ca_check_is_pos_i_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
217    pub fn ca_check_is_neg_i_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
218    pub fn ca_check_equal(
219        x: *const ca_struct,
220        y: *const ca_struct,
221        ctx: *mut ca_ctx_struct,
222    ) -> truth_t;
223    pub fn ca_check_lt(
224        x: *const ca_struct,
225        y: *const ca_struct,
226        ctx: *mut ca_ctx_struct,
227    ) -> truth_t;
228    pub fn ca_check_le(
229        x: *const ca_struct,
230        y: *const ca_struct,
231        ctx: *mut ca_ctx_struct,
232    ) -> truth_t;
233    pub fn ca_check_gt(
234        x: *const ca_struct,
235        y: *const ca_struct,
236        ctx: *mut ca_ctx_struct,
237    ) -> truth_t;
238    pub fn ca_check_ge(
239        x: *const ca_struct,
240        y: *const ca_struct,
241        ctx: *mut ca_ctx_struct,
242    ) -> truth_t;
243    pub fn ca_equal_repr(
244        x: *const ca_struct,
245        y: *const ca_struct,
246        ctx: *mut ca_ctx_struct,
247    ) -> libc::c_int;
248    pub fn ca_cmp_repr(
249        x: *const ca_struct,
250        y: *const ca_struct,
251        ctx: *mut ca_ctx_struct,
252    ) -> libc::c_int;
253    pub fn ca_hash_repr(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> ulong;
254    pub fn ca_merge_fields(
255        resx: *mut ca_struct,
256        resy: *mut ca_struct,
257        x: *const ca_struct,
258        y: *const ca_struct,
259        ctx: *mut ca_ctx_struct,
260    );
261    pub fn ca_condense_field(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
262    pub fn ca_is_gen_as_ext(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> ca_ext_ptr;
263    pub fn _ca_mpoly_q_reduce_ideal(
264        res: *mut fmpz_mpoly_q_struct,
265        field: ca_field_srcptr,
266        ctx: *mut ca_ctx_struct,
267    );
268    pub fn _ca_mpoly_q_simplify_fraction_ideal(
269        res: *mut fmpz_mpoly_q_struct,
270        field: ca_field_srcptr,
271        ctx: *mut ca_ctx_struct,
272    );
273    pub fn ca_neg(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
274    pub fn ca_add_fmpq(
275        res: *mut ca_struct,
276        x: *const ca_struct,
277        y: *const fmpq,
278        ctx: *mut ca_ctx_struct,
279    );
280    pub fn ca_add_fmpz(
281        res: *mut ca_struct,
282        x: *const ca_struct,
283        y: *const fmpz,
284        ctx: *mut ca_ctx_struct,
285    );
286    pub fn ca_add_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
287    pub fn ca_add_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
288    pub fn ca_add(
289        res: *mut ca_struct,
290        x: *const ca_struct,
291        y: *const ca_struct,
292        ctx: *mut ca_ctx_struct,
293    );
294    pub fn ca_sub_fmpq(
295        res: *mut ca_struct,
296        x: *const ca_struct,
297        y: *const fmpq,
298        ctx: *mut ca_ctx_struct,
299    );
300    pub fn ca_sub_fmpz(
301        res: *mut ca_struct,
302        x: *const ca_struct,
303        y: *const fmpz,
304        ctx: *mut ca_ctx_struct,
305    );
306    pub fn ca_sub_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
307    pub fn ca_sub_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
308    pub fn ca_fmpq_sub(
309        res: *mut ca_struct,
310        x: *const fmpq,
311        y: *const ca_struct,
312        ctx: *mut ca_ctx_struct,
313    );
314    pub fn ca_fmpz_sub(
315        res: *mut ca_struct,
316        x: *const fmpz,
317        y: *const ca_struct,
318        ctx: *mut ca_ctx_struct,
319    );
320    pub fn ca_ui_sub(res: *mut ca_struct, x: ulong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
321    pub fn ca_si_sub(res: *mut ca_struct, x: slong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
322    pub fn ca_sub(
323        res: *mut ca_struct,
324        x: *const ca_struct,
325        y: *const ca_struct,
326        ctx: *mut ca_ctx_struct,
327    );
328    pub fn ca_mul_fmpq(
329        res: *mut ca_struct,
330        x: *const ca_struct,
331        y: *const fmpq,
332        ctx: *mut ca_ctx_struct,
333    );
334    pub fn ca_mul_fmpz(
335        res: *mut ca_struct,
336        x: *const ca_struct,
337        y: *const fmpz,
338        ctx: *mut ca_ctx_struct,
339    );
340    pub fn ca_mul_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
341    pub fn ca_mul_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
342    pub fn ca_mul(
343        res: *mut ca_struct,
344        x: *const ca_struct,
345        y: *const ca_struct,
346        ctx: *mut ca_ctx_struct,
347    );
348    pub fn ca_inv(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
349    pub fn ca_fmpq_div(
350        res: *mut ca_struct,
351        x: *const fmpq,
352        y: *const ca_struct,
353        ctx: *mut ca_ctx_struct,
354    );
355    pub fn ca_fmpz_div(
356        res: *mut ca_struct,
357        x: *const fmpz,
358        y: *const ca_struct,
359        ctx: *mut ca_ctx_struct,
360    );
361    pub fn ca_ui_div(res: *mut ca_struct, x: ulong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
362    pub fn ca_si_div(res: *mut ca_struct, x: slong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
363    pub fn ca_div_fmpq(
364        res: *mut ca_struct,
365        x: *const ca_struct,
366        y: *const fmpq,
367        ctx: *mut ca_ctx_struct,
368    );
369    pub fn ca_div_fmpz(
370        res: *mut ca_struct,
371        x: *const ca_struct,
372        y: *const fmpz,
373        ctx: *mut ca_ctx_struct,
374    );
375    pub fn ca_div_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
376    pub fn ca_div_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
377    pub fn ca_div(
378        res: *mut ca_struct,
379        x: *const ca_struct,
380        y: *const ca_struct,
381        ctx: *mut ca_ctx_struct,
382    );
383    pub fn ca_dot(
384        res: *mut ca_struct,
385        initial: *const ca_struct,
386        subtract: libc::c_int,
387        x: ca_srcptr,
388        xstep: slong,
389        y: ca_srcptr,
390        ystep: slong,
391        len: slong,
392        ctx: *mut ca_ctx_struct,
393    );
394    pub fn ca_fmpz_poly_evaluate(
395        res: *mut ca_struct,
396        poly: *const fmpz_poly_struct,
397        x: *const ca_struct,
398        ctx: *mut ca_ctx_struct,
399    );
400    pub fn ca_fmpq_poly_evaluate(
401        res: *mut ca_struct,
402        poly: *const fmpq_poly_struct,
403        x: *const ca_struct,
404        ctx: *mut ca_ctx_struct,
405    );
406    pub fn ca_fmpz_mpoly_evaluate_horner(
407        res: *mut ca_struct,
408        f: *const fmpz_mpoly_struct,
409        x: ca_srcptr,
410        mctx: *const fmpz_mpoly_ctx_struct,
411        ctx: *mut ca_ctx_struct,
412    );
413    pub fn ca_fmpz_mpoly_evaluate_iter(
414        res: *mut ca_struct,
415        f: *const fmpz_mpoly_struct,
416        x: ca_srcptr,
417        mctx: *const fmpz_mpoly_ctx_struct,
418        ctx: *mut ca_ctx_struct,
419    );
420    pub fn ca_fmpz_mpoly_evaluate(
421        res: *mut ca_struct,
422        f: *const fmpz_mpoly_struct,
423        x: ca_srcptr,
424        mctx: *const fmpz_mpoly_ctx_struct,
425        ctx: *mut ca_ctx_struct,
426    );
427    pub fn ca_fmpz_mpoly_q_evaluate(
428        res: *mut ca_struct,
429        f: *const fmpz_mpoly_q_struct,
430        x: ca_srcptr,
431        mctx: *const fmpz_mpoly_ctx_struct,
432        ctx: *mut ca_ctx_struct,
433    );
434    pub fn ca_fmpz_mpoly_q_evaluate_no_division_by_zero(
435        res: *mut ca_struct,
436        f: *const fmpz_mpoly_q_struct,
437        x: ca_srcptr,
438        mctx: *const fmpz_mpoly_ctx_struct,
439        ctx: *mut ca_ctx_struct,
440    );
441    pub fn ca_inv_no_division_by_zero(
442        res: *mut ca_struct,
443        x: *const ca_struct,
444        ctx: *mut ca_ctx_struct,
445    );
446    #[link_name = "ca_sqr__extern"]
447    pub fn ca_sqr(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
448    pub fn ca_pow_fmpq(
449        res: *mut ca_struct,
450        x: *const ca_struct,
451        y: *const fmpq,
452        ctx: *mut ca_ctx_struct,
453    );
454    pub fn ca_pow_fmpz(
455        res: *mut ca_struct,
456        x: *const ca_struct,
457        y: *const fmpz,
458        ctx: *mut ca_ctx_struct,
459    );
460    pub fn ca_pow_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
461    pub fn ca_pow_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
462    pub fn ca_pow(
463        res: *mut ca_struct,
464        x: *const ca_struct,
465        y: *const ca_struct,
466        ctx: *mut ca_ctx_struct,
467    );
468    pub fn ca_pow_si_arithmetic(
469        res: *mut ca_struct,
470        x: *const ca_struct,
471        n: slong,
472        ctx: *mut ca_ctx_struct,
473    );
474    pub fn ca_sqrt_inert(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
475    pub fn ca_sqrt_nofactor(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
476    pub fn ca_sqrt_factor(
477        res: *mut ca_struct,
478        x: *const ca_struct,
479        flags: ulong,
480        ctx: *mut ca_ctx_struct,
481    );
482    pub fn ca_sqrt(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
483    #[link_name = "ca_sqrt_ui__extern"]
484    pub fn ca_sqrt_ui(res: *mut ca_struct, n: ulong, ctx: *mut ca_ctx_struct);
485    pub fn ca_conj_shallow(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
486    pub fn ca_conj_deep(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
487    pub fn ca_conj(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
488    pub fn ca_abs(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
489    pub fn ca_sgn(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
490    pub fn ca_csgn(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
491    pub fn ca_arg(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
492    pub fn ca_re(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
493    pub fn ca_im(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
494    pub fn ca_floor(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
495    pub fn ca_ceil(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
496    pub fn ca_exp(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
497    pub fn ca_log(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
498    pub fn ca_sin_cos_exponential(
499        res1: *mut ca_struct,
500        res2: *mut ca_struct,
501        x: *const ca_struct,
502        ctx: *mut ca_ctx_struct,
503    );
504    pub fn ca_sin_cos_direct_exp_hack(
505        res1: *mut ca_struct,
506        res2: *mut ca_struct,
507        x: *const ca_struct,
508        ctx: *mut ca_ctx_struct,
509    );
510    pub fn ca_sin_cos_direct(
511        res1: *mut ca_struct,
512        res2: *mut ca_struct,
513        x: *const ca_struct,
514        ctx: *mut ca_ctx_struct,
515    );
516    pub fn ca_sin_cos_tangent(
517        res1: *mut ca_struct,
518        res2: *mut ca_struct,
519        x: *const ca_struct,
520        ctx: *mut ca_ctx_struct,
521    );
522    pub fn ca_sin_cos(
523        res1: *mut ca_struct,
524        res2: *mut ca_struct,
525        x: *const ca_struct,
526        ctx: *mut ca_ctx_struct,
527    );
528    pub fn ca_sin(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
529    pub fn ca_cos(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
530    pub fn ca_tan_sine_cosine(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
531    pub fn ca_tan_exponential(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
532    pub fn ca_tan_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
533    pub fn ca_tan(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
534    pub fn ca_cot(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
535    pub fn ca_atan_logarithm(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
536    pub fn ca_atan_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
537    pub fn ca_atan(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
538    pub fn ca_asin_logarithm(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
539    pub fn ca_asin_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
540    pub fn ca_asin(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
541    pub fn ca_acos_logarithm(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
542    pub fn ca_acos_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
543    pub fn ca_acos(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
544    pub fn ca_erf(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
545    pub fn ca_erfc(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
546    pub fn ca_erfi(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
547    pub fn ca_gamma(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
548    pub fn ca_get_acb_raw(
549        res: *mut acb_struct,
550        x: *const ca_struct,
551        prec: slong,
552        ctx: *mut ca_ctx_struct,
553    );
554    pub fn ca_get_acb(
555        res: *mut acb_struct,
556        x: *const ca_struct,
557        prec: slong,
558        ctx: *mut ca_ctx_struct,
559    );
560    pub fn ca_get_acb_accurate_parts(
561        res: *mut acb_struct,
562        x: *const ca_struct,
563        prec: slong,
564        ctx: *mut ca_ctx_struct,
565    );
566    pub fn ca_get_decimal_str(
567        x: *const ca_struct,
568        digits: slong,
569        flags: ulong,
570        ctx: *mut ca_ctx_struct,
571    ) -> *mut libc::c_char;
572    pub fn ca_factor_init(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
573    pub fn ca_factor_clear(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
574    pub fn ca_factor_one(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
575    pub fn ca_factor_print(fac: *const ca_factor_struct, ctx: *mut ca_ctx_struct);
576    pub fn ca_factor_insert(
577        fac: *mut ca_factor_struct,
578        base: *const ca_struct,
579        exp: *const ca_struct,
580        ctx: *mut ca_ctx_struct,
581    );
582    pub fn ca_factor_get_ca(
583        res: *mut ca_struct,
584        fac: *const ca_factor_struct,
585        ctx: *mut ca_ctx_struct,
586    );
587    pub fn ca_factor(
588        res: *mut ca_factor_struct,
589        x: *const ca_struct,
590        flags: ulong,
591        ctx: *mut ca_ctx_struct,
592    );
593}