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::*;
use crate::nmod_types::*;


pub const DOT_SPLIT_BITS: u32 = 56;
extern "C" {
    #[link_name = "_nmod_vec_init__extern"]
    pub fn _nmod_vec_init(len: slong) -> nn_ptr;
    #[link_name = "_nmod_vec_clear__extern"]
    pub fn _nmod_vec_clear(vec: nn_ptr);
    pub fn _nmod_vec_randtest(vec: nn_ptr, state: *mut flint_rand_struct, len: slong, mod_: nmod_t);
    pub fn _nmod_vec_rand(vec: nn_ptr, state: *mut flint_rand_struct, len: slong, mod_: nmod_t);
    #[link_name = "_nmod_vec_zero__extern"]
    pub fn _nmod_vec_zero(vec: nn_ptr, len: slong);
    pub fn _nmod_vec_max_bits(vec: nn_srcptr, len: slong) -> flint_bitcnt_t;
    #[link_name = "_nmod_vec_set__extern"]
    pub fn _nmod_vec_set(res: nn_ptr, vec: nn_srcptr, len: slong);
    #[link_name = "_nmod_vec_swap__extern"]
    pub fn _nmod_vec_swap(a: nn_ptr, b: nn_ptr, length: slong);
    #[link_name = "_nmod_vec_equal__extern"]
    pub fn _nmod_vec_equal(vec: nn_srcptr, vec2: nn_srcptr, len: slong) -> libc::c_int;
    #[link_name = "_nmod_vec_is_zero__extern"]
    pub fn _nmod_vec_is_zero(vec: nn_srcptr, len: slong) -> libc::c_int;
    pub fn _nmod_vec_fprint_pretty(
        file: *mut FILE,
        vec: nn_srcptr,
        len: slong,
        mod_: nmod_t,
    ) -> libc::c_int;
    pub fn _nmod_vec_fprint(f: *mut FILE, vec: nn_srcptr, len: slong, mod_: nmod_t) -> libc::c_int;
    pub fn _nmod_vec_print_pretty(vec: nn_srcptr, len: slong, mod_: nmod_t);
    pub fn _nmod_vec_print(vec: nn_srcptr, len: slong, mod_: nmod_t) -> libc::c_int;
    pub fn _nmod_vec_reduce(res: nn_ptr, vec: nn_srcptr, len: slong, mod_: nmod_t);
    pub fn _nmod_vec_add(res: nn_ptr, vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t);
    pub fn _nmod_vec_sub(res: nn_ptr, vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t);
    pub fn _nmod_vec_neg(res: nn_ptr, vec: nn_srcptr, len: slong, mod_: nmod_t);
    pub fn _nmod_vec_scalar_mul_nmod(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
        mod_: nmod_t,
    );
    pub fn _nmod_vec_scalar_mul_nmod_redc(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
        mod_: nmod_t,
    );
    pub fn _nmod_vec_scalar_mul_nmod_generic(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
        mod_: nmod_t,
    );
    pub fn _nmod_vec_scalar_mul_nmod_shoup(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
        mod_: nmod_t,
    );
    pub fn _nmod_vec_scalar_addmul_nmod(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
        mod_: nmod_t,
    );
    pub fn _nmod_vec_scalar_addmul_nmod_generic(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
        mod_: nmod_t,
    );
    pub fn _nmod_vec_scalar_addmul_nmod_shoup(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
        mod_: nmod_t,
    );
    #[link_name = "_nmod_vec_nored_scalar_addmul_halflimb__extern"]
    pub fn _nmod_vec_nored_scalar_addmul_halflimb(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
    );
    pub fn _nmod_vec_nored_ll_scalar_addmul_halflimb(
        res: nn_ptr,
        vec: nn_srcptr,
        len: slong,
        c: ulong,
    );
    pub fn _nmod_vec_nored_ll_scalar_addmul(res: nn_ptr, vec: nn_srcptr, len: slong, c: ulong);
    pub fn _nmod_vec_nored_lll_scalar_addmul(res: nn_ptr, vec: nn_srcptr, len: slong, c: ulong);
    pub fn _nmod_vec_invert(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
    pub fn _nmod_vec_invert_naive(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
    pub fn _nmod_vec_invert_generic(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
    pub fn _nmod_vec_invert_shoup(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
    #[link_name = "_nmod_vec_dot_params__extern"]
    pub fn _nmod_vec_dot_params(len: ulong, mod_: nmod_t) -> dot_params_t;
    pub fn _nmod_vec_dot_bound_limbs(len: slong, mod_: nmod_t) -> libc::c_int;
    pub fn _nmod_vec_dot_bound_limbs_from_params(
        len: slong,
        mod_: nmod_t,
        params: dot_params_t,
    ) -> libc::c_int;
    pub fn _nmod_vec_dot_pow2(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot1(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot2_half(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
        pow2_precomp: ulong,
    ) -> ulong;
    pub fn _nmod_vec_dot2(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot3_acc(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot3(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot2_split(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
        pow2_precomp: ulong,
    ) -> ulong;
    pub fn _nmod_vec_dot_pow2_rev(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot1_rev(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot2_half_rev(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot2_rev(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot3_acc_rev(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot3_rev(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
    pub fn _nmod_vec_dot2_split_rev(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
        pow2_precomp: ulong,
    ) -> ulong;
    pub fn _nmod_vec_dot_pow2_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot1_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot2_half_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot2_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot3_acc_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot3_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
    ) -> ulong;
    pub fn _nmod_vec_dot2_split_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
        pow2_precomp: ulong,
    ) -> ulong;
    #[link_name = "_nmod_vec_dot__extern"]
    pub fn _nmod_vec_dot(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
        params: dot_params_t,
    ) -> ulong;
    #[link_name = "_nmod_vec_dot_rev__extern"]
    pub fn _nmod_vec_dot_rev(
        vec1: nn_srcptr,
        vec2: nn_srcptr,
        len: slong,
        mod_: nmod_t,
        params: dot_params_t,
    ) -> ulong;
    #[link_name = "_nmod_vec_dot_ptr__extern"]
    pub fn _nmod_vec_dot_ptr(
        vec1: nn_srcptr,
        vec2: *const nn_ptr,
        offset: slong,
        len: slong,
        mod_: nmod_t,
        params: dot_params_t,
    ) -> ulong;
}