1use 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}