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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#![allow(non_camel_case_types)]

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

use crate::deps::*;
use crate::flint::*;
use crate::fq_zech::{fq_zech_ctx_struct, fq_zech_struct};
use libc::{c_int, FILE};

extern "C" {
    pub fn _fq_zech_vec_init(
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    ) -> *mut fq_zech_struct;
    pub fn _fq_zech_vec_clear(
        vec: *mut fq_zech_struct,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_randtest(
        f: *mut fq_zech_struct,
        state: *mut flint_rand_s,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_fprint(
        file: *mut FILE,
        vec: *const fq_zech_struct,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    ) -> c_int;
    pub fn _fq_zech_vec_print(
        vec: *const fq_zech_struct,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    ) -> c_int;
    pub fn _fq_zech_vec_set(
        v: *mut fq_zech_struct,
        f: *const fq_zech_struct,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_swap(
        vec1: *mut fq_zech_struct,
        vec2: *mut fq_zech_struct,
        len2: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_zero(
        v: *mut fq_zech_struct,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_neg(
        vec1: *mut fq_zech_struct,
        vec2: *const fq_zech_struct,
        len2: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_is_zero(
        vec: *const fq_zech_struct,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    ) -> c_int;
    pub fn _fq_zech_vec_equal(
        vec1: *const fq_zech_struct,
        vec2: *const fq_zech_struct,
        len: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    ) -> c_int;
    pub fn _fq_zech_vec_add(
        res: *mut fq_zech_struct,
        vec1: *const fq_zech_struct,
        vec2: *const fq_zech_struct,
        len2: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_sub(
        res: *mut fq_zech_struct,
        vec1: *const fq_zech_struct,
        vec2: *const fq_zech_struct,
        len2: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_scalar_addmul_fq_zech(
        poly1: *mut fq_zech_struct,
        poly2: *const fq_zech_struct,
        len2: mp_limb_signed_t,
        x: *mut fq_zech_struct,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_scalar_submul_fq_zech(
        poly1: *mut fq_zech_struct,
        poly2: *const fq_zech_struct,
        len2: mp_limb_signed_t,
        x: *mut fq_zech_struct,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_scalar_mul_fq_zech(
        poly1: *mut fq_zech_struct,
        poly2: *const fq_zech_struct,
        len2: mp_limb_signed_t,
        x: *mut fq_zech_struct,
        ctx: *mut fq_zech_ctx_struct,
    );
    pub fn _fq_zech_vec_dot(
        res: *mut fq_zech_struct,
        vec1: *const fq_zech_struct,
        vec2: *const fq_zech_struct,
        len2: mp_limb_signed_t,
        ctx: *mut fq_zech_ctx_struct,
    );
}