use libc::*;
use crate::deps::*;
use crate::acb_types::*;
use crate::ca_types::*;
use crate::fexpr::*;
use crate::flint::*;
use crate::fmpq_types::*;
use crate::fmpz_types::*;
use crate::gr_types::*;
use crate::mpoly_types::*;
use crate::qqbar::*;
pub const CA_TRIG_DIRECT: u32 = 0;
pub const CA_TRIG_EXPONENTIAL: u32 = 1;
pub const CA_TRIG_SINE_COSINE: u32 = 2;
pub const CA_TRIG_TANGENT: u32 = 3;
pub const CA_FEXPR_SERIALIZATION: u32 = 1;
pub const CA_FACTOR_ZZ_NONE: u32 = 0;
pub const CA_FACTOR_ZZ_SMOOTH: u32 = 2;
pub const CA_FACTOR_ZZ_FULL: u32 = 4;
pub const CA_FACTOR_POLY_NONE: u32 = 0;
pub const CA_FACTOR_POLY_CONTENT: u32 = 64;
pub const CA_FACTOR_POLY_SQF: u32 = 128;
pub const CA_FACTOR_POLY_FULL: u32 = 256;
pub const CA_OPT_VERBOSE: _bindgen_ty_4 = 0;
pub const CA_OPT_PRINT_FLAGS: _bindgen_ty_4 = 1;
pub const CA_OPT_MPOLY_ORD: _bindgen_ty_4 = 2;
pub const CA_OPT_PREC_LIMIT: _bindgen_ty_4 = 3;
pub const CA_OPT_QQBAR_DEG_LIMIT: _bindgen_ty_4 = 4;
pub const CA_OPT_LOW_PREC: _bindgen_ty_4 = 5;
pub const CA_OPT_SMOOTH_LIMIT: _bindgen_ty_4 = 6;
pub const CA_OPT_LLL_PREC: _bindgen_ty_4 = 7;
pub const CA_OPT_POW_LIMIT: _bindgen_ty_4 = 8;
pub const CA_OPT_USE_GROEBNER: _bindgen_ty_4 = 9;
pub const CA_OPT_GROEBNER_LENGTH_LIMIT: _bindgen_ty_4 = 10;
pub const CA_OPT_GROEBNER_POLY_LENGTH_LIMIT: _bindgen_ty_4 = 11;
pub const CA_OPT_GROEBNER_POLY_BITS_LIMIT: _bindgen_ty_4 = 12;
pub const CA_OPT_VIETA_LIMIT: _bindgen_ty_4 = 13;
pub const CA_OPT_TRIG_FORM: _bindgen_ty_4 = 14;
pub const CA_OPT_NUM_OPTIONS: _bindgen_ty_4 = 15;
pub type _bindgen_ty_4 = libc::c_uint;
extern "C" {
pub fn ca_ctx_init(ctx: *mut ca_ctx_struct);
pub fn ca_ctx_clear(ctx: *mut ca_ctx_struct);
pub fn ca_ctx_print(ctx: *mut ca_ctx_struct);
#[link_name = "ca_ctx_get_option__extern"]
pub fn ca_ctx_get_option(ctx: *mut ca_ctx_struct, i: slong) -> slong;
#[link_name = "ca_ctx_set_option__extern"]
pub fn ca_ctx_set_option(ctx: *mut ca_ctx_struct, i: slong, value: slong);
pub fn _ca_ctx_get_field_const(
ctx: *mut ca_ctx_struct,
func: calcium_func_code,
) -> ca_field_ptr;
pub fn _ca_ctx_get_field_fx(
ctx: *mut ca_ctx_struct,
func: calcium_func_code,
x: *const ca_struct,
) -> ca_field_ptr;
pub fn _ca_ctx_get_field_fxy(
ctx: *mut ca_ctx_struct,
func: calcium_func_code,
x: *const ca_struct,
y: *const ca_struct,
) -> ca_field_ptr;
pub fn ca_init(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_clear(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_swap(x: *mut ca_struct, y: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn _ca_make_field_element(
x: *mut ca_struct,
field: ca_field_srcptr,
ctx: *mut ca_ctx_struct,
);
#[link_name = "_ca_make_fmpq__extern"]
pub fn _ca_make_fmpq(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
#[link_name = "_ca_function_fx__extern"]
pub fn _ca_function_fx(
res: *mut ca_struct,
func: calcium_func_code,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
#[link_name = "_ca_function_fxy__extern"]
pub fn _ca_function_fxy(
res: *mut ca_struct,
func: calcium_func_code,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_set(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_transfer(
res: *mut ca_struct,
res_ctx: *mut ca_ctx_struct,
src: *const ca_struct,
src_ctx: *mut ca_ctx_struct,
);
pub fn ca_zero(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_one(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_one(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_set_si(x: *mut ca_struct, v: slong, ctx: *mut ca_ctx_struct);
pub fn ca_set_ui(x: *mut ca_struct, v: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_set_fmpz(x: *mut ca_struct, v: *const fmpz, ctx: *mut ca_ctx_struct);
pub fn ca_set_fmpq(x: *mut ca_struct, v: *const fmpq, ctx: *mut ca_ctx_struct);
pub fn ca_set_d(res: *mut ca_struct, x: f64, ctx: *mut ca_ctx_struct);
pub fn ca_set_d_d(res: *mut ca_struct, x: f64, y: f64, ctx: *mut ca_ctx_struct);
pub fn ca_i(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_i(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pi(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pi_i(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_euler(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_unknown(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_undefined(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_uinf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pos_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pos_i_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_neg_i_inf(x: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_set_qqbar(res: *mut ca_struct, x: *const qqbar_struct, ctx: *mut ca_ctx_struct);
pub fn ca_can_evaluate_qqbar(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
pub fn ca_get_qqbar(
res: *mut qqbar_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> libc::c_int;
pub fn ca_get_fmpq(res: *mut fmpq, x: *const ca_struct, ctx: *mut ca_ctx_struct)
-> libc::c_int;
pub fn ca_get_fmpz(res: *mut fmpz, x: *const ca_struct, ctx: *mut ca_ctx_struct)
-> libc::c_int;
pub fn ca_get_fexpr(
res: *mut fexpr_struct,
x: *const ca_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_set_fexpr(
res: *mut ca_struct,
expr: *const fexpr_struct,
ctx: *mut ca_ctx_struct,
) -> libc::c_int;
pub fn ca_fprint(fp: *mut FILE, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_print(x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_printn(x: *const ca_struct, n: slong, ctx: *mut ca_ctx_struct);
pub fn ca_get_str(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> *mut libc::c_char;
pub fn ca_randtest_same_nf(
res: *mut ca_struct,
state: *mut flint_rand_struct,
x: *const ca_struct,
bits: slong,
den_bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_randtest_rational(
res: *mut ca_struct,
state: *mut flint_rand_struct,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_randtest(
res: *mut ca_struct,
state: *mut flint_rand_struct,
depth: slong,
bits: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_randtest_special(
res: *mut ca_struct,
state: *mut flint_rand_struct,
depth: slong,
bits: slong,
ctx: *mut ca_ctx_struct,
);
#[link_name = "ca_is_special__extern"]
pub fn ca_is_special(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
#[link_name = "ca_is_unknown__extern"]
pub fn ca_is_unknown(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
#[link_name = "ca_is_qq_elem__extern"]
pub fn ca_is_qq_elem(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
#[link_name = "ca_is_qq_elem_zero__extern"]
pub fn ca_is_qq_elem_zero(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
#[link_name = "ca_is_qq_elem_one__extern"]
pub fn ca_is_qq_elem_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
#[link_name = "ca_is_qq_elem_integer__extern"]
pub fn ca_is_qq_elem_integer(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
#[link_name = "ca_is_nf_elem__extern"]
pub fn ca_is_nf_elem(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
#[link_name = "ca_is_generic_elem__extern"]
pub fn ca_is_generic_elem(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> libc::c_int;
pub fn ca_is_cyclotomic_nf_elem(
p: *mut slong,
q: *mut ulong,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> libc::c_int;
pub fn ca_is_zero_check_fast(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_number(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_zero(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_neg_one(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_i(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_neg_i(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_algebraic(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_rational(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_integer(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_real(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_negative_real(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_imaginary(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_undefined(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_infinity(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_uinf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_signed_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_pos_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_neg_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_pos_i_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_is_neg_i_inf(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> truth_t;
pub fn ca_check_equal(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_lt(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_le(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_gt(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_check_ge(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> truth_t;
pub fn ca_equal_repr(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> libc::c_int;
pub fn ca_cmp_repr(
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
) -> libc::c_int;
pub fn ca_hash_repr(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> ulong;
pub fn ca_merge_fields(
resx: *mut ca_struct,
resy: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_condense_field(res: *mut ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_is_gen_as_ext(x: *const ca_struct, ctx: *mut ca_ctx_struct) -> ca_ext_ptr;
pub fn _ca_mpoly_q_reduce_ideal(
res: *mut fmpz_mpoly_q_struct,
field: ca_field_srcptr,
ctx: *mut ca_ctx_struct,
);
pub fn _ca_mpoly_q_simplify_fraction_ideal(
res: *mut fmpz_mpoly_q_struct,
field: ca_field_srcptr,
ctx: *mut ca_ctx_struct,
);
pub fn ca_neg(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_add_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_add_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_add_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_add_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
pub fn ca_add(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sub_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_sub_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
pub fn ca_fmpq_sub(
res: *mut ca_struct,
x: *const fmpq,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_sub(
res: *mut ca_struct,
x: *const fmpz,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ui_sub(res: *mut ca_struct, x: ulong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_si_sub(res: *mut ca_struct, x: slong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sub(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_mul_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_mul_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
pub fn ca_mul(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_inv(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_fmpq_div(
res: *mut ca_struct,
x: *const fmpq,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_div(
res: *mut ca_struct,
x: *const fmpz,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_ui_div(res: *mut ca_struct, x: ulong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_si_div(res: *mut ca_struct, x: slong, y: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_div_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_div_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_div_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_div_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
pub fn ca_div(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_dot(
res: *mut ca_struct,
initial: *const ca_struct,
subtract: libc::c_int,
x: ca_srcptr,
xstep: slong,
y: ca_srcptr,
ystep: slong,
len: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_poly_evaluate(
res: *mut ca_struct,
poly: *const fmpz_poly_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpq_poly_evaluate(
res: *mut ca_struct,
poly: *const fmpq_poly_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_evaluate_horner(
res: *mut ca_struct,
f: *const fmpz_mpoly_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_evaluate_iter(
res: *mut ca_struct,
f: *const fmpz_mpoly_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_evaluate(
res: *mut ca_struct,
f: *const fmpz_mpoly_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_q_evaluate(
res: *mut ca_struct,
f: *const fmpz_mpoly_q_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_fmpz_mpoly_q_evaluate_no_division_by_zero(
res: *mut ca_struct,
f: *const fmpz_mpoly_q_struct,
x: ca_srcptr,
mctx: *const fmpz_mpoly_ctx_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_inv_no_division_by_zero(
res: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
#[link_name = "ca_sqr__extern"]
pub fn ca_sqr(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_pow_fmpq(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpq,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow_fmpz(
res: *mut ca_struct,
x: *const ca_struct,
y: *const fmpz,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow_ui(res: *mut ca_struct, x: *const ca_struct, y: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_pow_si(res: *mut ca_struct, x: *const ca_struct, y: slong, ctx: *mut ca_ctx_struct);
pub fn ca_pow(
res: *mut ca_struct,
x: *const ca_struct,
y: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_pow_si_arithmetic(
res: *mut ca_struct,
x: *const ca_struct,
n: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sqrt_inert(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sqrt_nofactor(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sqrt_factor(
res: *mut ca_struct,
x: *const ca_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sqrt(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
#[link_name = "ca_sqrt_ui__extern"]
pub fn ca_sqrt_ui(res: *mut ca_struct, n: ulong, ctx: *mut ca_ctx_struct);
pub fn ca_conj_shallow(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_conj_deep(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_conj(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_abs(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sgn(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_csgn(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_arg(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_re(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_im(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_floor(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_ceil(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_exp(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_log(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_sin_cos_exponential(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos_direct_exp_hack(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos_direct(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos_tangent(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin_cos(
res1: *mut ca_struct,
res2: *mut ca_struct,
x: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_sin(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_cos(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_tan_sine_cosine(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_tan_exponential(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_tan_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_tan(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_cot(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_atan_logarithm(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_atan_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_atan(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_asin_logarithm(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_asin_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_asin(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_acos_logarithm(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_acos_direct(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_acos(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_erf(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_erfc(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_erfi(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_gamma(res: *mut ca_struct, x: *const ca_struct, ctx: *mut ca_ctx_struct);
pub fn ca_get_acb_raw(
res: *mut acb_struct,
x: *const ca_struct,
prec: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_get_acb(
res: *mut acb_struct,
x: *const ca_struct,
prec: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_get_acb_accurate_parts(
res: *mut acb_struct,
x: *const ca_struct,
prec: slong,
ctx: *mut ca_ctx_struct,
);
pub fn ca_get_decimal_str(
x: *const ca_struct,
digits: slong,
flags: ulong,
ctx: *mut ca_ctx_struct,
) -> *mut libc::c_char;
pub fn ca_factor_init(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_clear(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_one(fac: *mut ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_print(fac: *const ca_factor_struct, ctx: *mut ca_ctx_struct);
pub fn ca_factor_insert(
fac: *mut ca_factor_struct,
base: *const ca_struct,
exp: *const ca_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_factor_get_ca(
res: *mut ca_struct,
fac: *const ca_factor_struct,
ctx: *mut ca_ctx_struct,
);
pub fn ca_factor(
res: *mut ca_factor_struct,
x: *const ca_struct,
flags: ulong,
ctx: *mut ca_ctx_struct,
);
}