1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#![allow(non_camel_case_types)]

//! See the [FLINT documentation](http://flintlib.org/doc/perm.html).


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


extern "C" {
    pub fn _perm_init(n: mp_limb_signed_t) -> *mut mp_limb_signed_t;
    pub fn _perm_clear(vec: *mut mp_limb_signed_t);
    pub fn _perm_equal(
        vec1: *const mp_limb_signed_t,
        vec2: *const mp_limb_signed_t,
        n: mp_limb_signed_t,
    ) -> mp_limb_signed_t;
    pub fn _perm_set(res: *mut mp_limb_signed_t, vec: *const mp_limb_signed_t, n: mp_limb_signed_t);
    pub fn _perm_set_one(vec: *mut mp_limb_signed_t, n: mp_limb_signed_t);
    pub fn _perm_inv(res: *mut mp_limb_signed_t, vec: *const mp_limb_signed_t, n: mp_limb_signed_t);
    pub fn _perm_compose(
        res: *mut mp_limb_signed_t,
        vec1: *const mp_limb_signed_t,
        vec2: *const mp_limb_signed_t,
        n: mp_limb_signed_t,
    );
    pub fn _perm_randtest(
        vec: *mut mp_limb_signed_t,
        n: mp_limb_signed_t,
        state: *const flint_rand_s,
    ) -> c_int;
    pub fn _perm_parity(vec: *const mp_limb_signed_t, n: mp_limb_signed_t)
        -> c_int;
    pub fn _long_vec_print(
        vec: *const mp_limb_signed_t,
        len: mp_limb_signed_t,
    ) -> c_int;
    pub fn _perm_print(vec: *const mp_limb_signed_t, n: mp_limb_signed_t) -> c_int;
}