flint-sys 0.9.0

Bindings to the FLINT C library
Documentation
/* automatically generated by rust-bindgen 0.70.1 */

use libc::*;
use crate::deps::*;
use crate::flint::*;


extern "C" {
    #[link_name = "_fmpz_vec_init__extern"]
    pub fn _fmpz_vec_init(len: slong) -> *mut fmpz;
    pub fn _fmpz_vec_clear(vec: *mut fmpz, len: slong);
    pub fn _fmpz_vec_randtest(
        f: *mut fmpz,
        state: *mut flint_rand_struct,
        len: slong,
        bits: flint_bitcnt_t,
    );
    pub fn _fmpz_vec_randtest_unsigned(
        f: *mut fmpz,
        state: *mut flint_rand_struct,
        len: slong,
        bits: flint_bitcnt_t,
    );
    pub fn _fmpz_vec_max_bits(vec: *const fmpz, len: slong) -> slong;
    pub fn _fmpz_vec_max_bits_ref(vec: *const fmpz, len: slong) -> slong;
    pub fn _fmpz_vec_sum_max_bits(
        sumabs: *mut slong,
        maxabs: *mut slong,
        coeffs: *const fmpz,
        length: slong,
    );
    pub fn _fmpz_vec_max_limbs(vec: *const fmpz, len: slong) -> slong;
    pub fn _fmpz_vec_height(height: *mut fmpz, vec: *const fmpz, len: slong);
    pub fn _fmpz_vec_height_index(vec: *const fmpz, len: slong) -> slong;
    pub fn _fmpz_vec_fprint(file: *mut FILE, vec: *const fmpz, len: slong) -> libc::c_int;
    pub fn _fmpz_vec_fread(file: *mut FILE, vec: *mut *mut fmpz, len: *mut slong) -> libc::c_int;
    pub fn _fmpz_vec_print(vec: *const fmpz, len: slong) -> libc::c_int;
    pub fn _fmpz_vec_read(vec: *mut *mut fmpz, len: *mut slong) -> libc::c_int;
    pub fn _fmpz_vec_get_nmod_vec(res: nn_ptr, poly: *const fmpz, len: slong, mod_: nmod_t);
    pub fn _fmpz_vec_set_nmod_vec(res: *mut fmpz, poly: nn_srcptr, len: slong, mod_: nmod_t);
    pub fn _fmpz_vec_get_fft(
        coeffs_f: *mut *mut ulong,
        coeffs_m: *const fmpz,
        l: slong,
        length: slong,
    );
    pub fn _fmpz_vec_set_fft(
        coeffs_m: *mut fmpz,
        length: slong,
        coeffs_f: *const nn_ptr,
        limbs: slong,
        sign: slong,
    );
    pub fn _fmpz_vec_get_d_vec_2exp(appv: *mut f64, vec: *const fmpz, len: slong) -> slong;
    pub fn _fmpz_vec_set(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
    pub fn _fmpz_vec_swap(vec1: *mut fmpz, vec2: *mut fmpz, len2: slong);
    pub fn _fmpz_vec_zero(vec: *mut fmpz, len: slong);
    pub fn _fmpz_vec_scalar_abs(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
    pub fn _fmpz_vec_equal(vec1: *const fmpz, vec2: *const fmpz, len: slong) -> libc::c_int;
    pub fn _fmpz_vec_is_zero(vec: *const fmpz, len: slong) -> libc::c_int;
    pub fn _fmpz_vec_min(vec1: *mut fmpz, vec2: *const fmpz, vec3: *const fmpz, len: slong);
    pub fn _fmpz_vec_max(vec1: *mut fmpz, vec2: *const fmpz, vec3: *const fmpz, len: slong);
    pub fn _fmpz_vec_min_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: slong);
    pub fn _fmpz_vec_max_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: slong);
    pub fn _fmpz_vec_sort(vec: *mut fmpz, len: slong);
    pub fn _fmpz_vec_add(res: *mut fmpz, vec1: *const fmpz, vec2: *const fmpz, len2: slong);
    pub fn _fmpz_vec_sub(res: *mut fmpz, vec1: *const fmpz, vec2: *const fmpz, len2: slong);
    pub fn _fmpz_vec_neg(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
    pub fn _fmpz_vec_scalar_mul_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
    pub fn _fmpz_vec_scalar_mul_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
    pub fn _fmpz_vec_scalar_mul_fmpz(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        x: *const fmpz,
    );
    pub fn _fmpz_vec_scalar_mul_2exp(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, exp: ulong);
    pub fn _fmpz_vec_scalar_divexact_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
    pub fn _fmpz_vec_scalar_divexact_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
    pub fn _fmpz_vec_scalar_divexact_fmpz(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        x: *const fmpz,
    );
    pub fn _fmpz_vec_scalar_fdiv_q_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
    pub fn _fmpz_vec_scalar_fdiv_q_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
    pub fn _fmpz_vec_scalar_fdiv_q_fmpz(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        c: *const fmpz,
    );
    pub fn _fmpz_vec_scalar_fdiv_q_2exp(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        exp: ulong,
    );
    pub fn _fmpz_vec_scalar_fdiv_r_2exp(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        exp: ulong,
    );
    pub fn _fmpz_vec_scalar_tdiv_q_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
    pub fn _fmpz_vec_scalar_tdiv_q_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
    pub fn _fmpz_vec_scalar_tdiv_q_fmpz(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        c: *const fmpz,
    );
    pub fn _fmpz_vec_scalar_tdiv_q_2exp(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        exp: ulong,
    );
    pub fn _fmpz_vec_scalar_addmul_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
    pub fn _fmpz_vec_scalar_addmul_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
    pub fn _fmpz_vec_scalar_addmul_fmpz(
        poly1: *mut fmpz,
        poly2: *const fmpz,
        len2: slong,
        x: *const fmpz,
    );
    pub fn _fmpz_vec_scalar_addmul_si_2exp(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        c: slong,
        exp: ulong,
    );
    pub fn _fmpz_vec_scalar_submul_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
    pub fn _fmpz_vec_scalar_submul_fmpz(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        x: *const fmpz,
    );
    pub fn _fmpz_vec_scalar_submul_si_2exp(
        vec1: *mut fmpz,
        vec2: *const fmpz,
        len2: slong,
        c: slong,
        exp: ulong,
    );
    pub fn _fmpz_vec_sum(res: *mut fmpz, vec: *const fmpz, len: slong);
    pub fn _fmpz_vec_prod(res: *mut fmpz, vec: *const fmpz, len: slong);
    pub fn _fmpz_ui_vec_prod(res: *mut fmpz, vec: nn_srcptr, len: slong);
    pub fn _fmpz_vec_scalar_mod_fmpz(res: *mut fmpz, vec: *const fmpz, len: slong, p: *const fmpz);
    pub fn _fmpz_vec_scalar_smod_fmpz(res: *mut fmpz, vec: *const fmpz, len: slong, p: *const fmpz);
    pub fn _fmpz_vec_content(res: *mut fmpz, vec: *const fmpz, len: slong);
    pub fn _fmpz_vec_content_chained(
        res: *mut fmpz,
        vec: *const fmpz,
        len: slong,
        inp: *const fmpz,
    );
    pub fn _fmpz_vec_lcm(res: *mut fmpz, vec: *const fmpz, len: slong);
    pub fn _fmpz_vec_dot_general_naive(
        res: *mut fmpz,
        initial: *const fmpz,
        subtract: libc::c_int,
        a: *const fmpz,
        b: *const fmpz,
        reverse: libc::c_int,
        len: slong,
    );
    pub fn _fmpz_vec_dot_general(
        res: *mut fmpz,
        initial: *const fmpz,
        subtract: libc::c_int,
        a: *const fmpz,
        b: *const fmpz,
        reverse: libc::c_int,
        len: slong,
    );
    #[link_name = "_fmpz_vec_dot__extern"]
    pub fn _fmpz_vec_dot(res: *mut fmpz, vec1: *const fmpz, vec2: *const fmpz, len2: slong);
}