flint-sys 0.9.0

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

use crate::deps::*;
use crate::flint::*;
use crate::fmpz_mod_types::*;
use crate::fmpz_types::*;


#[repr(C)]
pub struct fmpz_mod_poly_interval_poly_arg_t {
    pub baby: *mut fmpz_mod_poly_struct,
    pub res: *mut fmpz_mod_poly_struct,
    pub H: *mut fmpz_mod_poly_struct,
    pub v: *mut fmpz_mod_poly_struct,
    pub vinv: *mut fmpz_mod_poly_struct,
    pub ctx: *const fmpz_mod_ctx_struct,
    pub tmp: *mut fmpz,
    pub m: slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of fmpz_mod_poly_interval_poly_arg_t"]
        [::std::mem::size_of::<fmpz_mod_poly_interval_poly_arg_t>() - 64usize];
    ["Alignment of fmpz_mod_poly_interval_poly_arg_t"]
        [::std::mem::align_of::<fmpz_mod_poly_interval_poly_arg_t>() - 8usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::baby"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, baby) - 0usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::res"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, res) - 8usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::H"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, H) - 16usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::v"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, v) - 24usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::vinv"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, vinv) - 32usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::ctx"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, ctx) - 40usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::tmp"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, tmp) - 48usize];
    ["Offset of field: fmpz_mod_poly_interval_poly_arg_t::m"]
        [::std::mem::offset_of!(fmpz_mod_poly_interval_poly_arg_t, m) - 56usize];
};
impl Default for fmpz_mod_poly_interval_poly_arg_t {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
extern "C" {
    pub fn fmpz_mod_poly_factor_init(
        fac: *mut fmpz_mod_poly_factor_struct,
        UNUSED_ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_clear(
        fac: *mut fmpz_mod_poly_factor_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_realloc(
        fac: *mut fmpz_mod_poly_factor_struct,
        alloc: slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_fit_length(
        fac: *mut fmpz_mod_poly_factor_struct,
        len: slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_set(
        res: *mut fmpz_mod_poly_factor_struct,
        fac: *const fmpz_mod_poly_factor_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    #[link_name = "fmpz_mod_poly_factor_swap__extern"]
    pub fn fmpz_mod_poly_factor_swap(
        a: *mut fmpz_mod_poly_factor_struct,
        b: *mut fmpz_mod_poly_factor_struct,
        UNUSED_ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_get_poly(
        a: *mut fmpz_mod_poly_struct,
        b: *const fmpz_mod_poly_factor_struct,
        i: slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_insert(
        fac: *mut fmpz_mod_poly_factor_struct,
        poly: *const fmpz_mod_poly_struct,
        exp: slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_print(
        fac: *const fmpz_mod_poly_factor_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_print_pretty(
        fac: *const fmpz_mod_poly_factor_struct,
        var: *const libc::c_char,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_concat(
        res: *mut fmpz_mod_poly_factor_struct,
        fac: *const fmpz_mod_poly_factor_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_pow(
        fac: *mut fmpz_mod_poly_factor_struct,
        exp: slong,
        UNUSED_ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_is_irreducible(
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_is_irreducible_ddf(
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_is_irreducible_rabin(
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_is_irreducible_rabin_f(
        fac: *mut fmpz,
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn _fmpz_mod_poly_is_squarefree(
        f: *const fmpz,
        len: slong,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn _fmpz_mod_poly_is_squarefree_f(
        fac: *mut fmpz,
        f: *const fmpz,
        len: slong,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_is_squarefree(
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_is_squarefree_f(
        fac: *mut fmpz,
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_factor_equal_deg_prob(
        factor: *mut fmpz_mod_poly_struct,
        state: *mut flint_rand_struct,
        pol: *const fmpz_mod_poly_struct,
        d: slong,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_factor_equal_deg_with_frob(
        factors: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        d: slong,
        frob: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_equal_deg(
        factors: *mut fmpz_mod_poly_factor_struct,
        pol: *const fmpz_mod_poly_struct,
        d: slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_distinct_deg_with_frob(
        res: *mut fmpz_mod_poly_factor_struct,
        poly: *const fmpz_mod_poly_struct,
        polyinv: *const fmpz_mod_poly_struct,
        frob: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_distinct_deg(
        res: *mut fmpz_mod_poly_factor_struct,
        poly: *const fmpz_mod_poly_struct,
        degs: *const *mut slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_distinct_deg_threaded_with_frob(
        res: *mut fmpz_mod_poly_factor_struct,
        poly: *const fmpz_mod_poly_struct,
        polyinv: *const fmpz_mod_poly_struct,
        frob: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_distinct_deg_threaded(
        res: *mut fmpz_mod_poly_factor_struct,
        poly: *const fmpz_mod_poly_struct,
        degs: *const *mut slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_squarefree(
        res: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor(
        res: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_cantor_zassenhaus(
        res: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_kaltofen_shoup(
        res: *mut fmpz_mod_poly_factor_struct,
        poly: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_factor_berlekamp(
        factors: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn _fmpz_mod_poly_interval_poly_worker(arg_ptr: *mut libc::c_void);
    pub fn fmpz_mod_poly_roots(
        r: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        with_multiplicity: libc::c_int,
        ctx: *const fmpz_mod_ctx_struct,
    );
    pub fn fmpz_mod_poly_roots_factored(
        r: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        with_multiplicity: libc::c_int,
        n: *const fmpz_factor_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_roots_factored_with_length_limit(
        x0: *mut fmpz_mod_poly_factor_struct,
        f: *const fmpz_mod_poly_struct,
        with_mult: libc::c_int,
        length_limit: slong,
        fac: *const fmpz_factor_struct,
        ctx: *const fmpz_mod_ctx_struct,
    ) -> libc::c_int;
    pub fn fmpz_mod_poly_factor_get_fmpz_mod_poly(
        z: *mut fmpz_mod_poly_struct,
        fac: *mut fmpz_mod_poly_factor_struct,
        i: slong,
        ctx: *const fmpz_mod_ctx_struct,
    );
}