Skip to main content

flint_sys/
nmod_vec.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use libc::*;
4use crate::deps::*;
5use crate::flint::*;
6use crate::nmod_types::*;
7
8
9pub const DOT_SPLIT_BITS: u32 = 56;
10extern "C" {
11    #[link_name = "_nmod_vec_init__extern"]
12    pub fn _nmod_vec_init(len: slong) -> nn_ptr;
13    #[link_name = "_nmod_vec_clear__extern"]
14    pub fn _nmod_vec_clear(vec: nn_ptr);
15    pub fn _nmod_vec_randtest(vec: nn_ptr, state: *mut flint_rand_struct, len: slong, mod_: nmod_t);
16    pub fn _nmod_vec_rand(vec: nn_ptr, state: *mut flint_rand_struct, len: slong, mod_: nmod_t);
17    #[link_name = "_nmod_vec_zero__extern"]
18    pub fn _nmod_vec_zero(vec: nn_ptr, len: slong);
19    pub fn _nmod_vec_max_bits(vec: nn_srcptr, len: slong) -> flint_bitcnt_t;
20    #[link_name = "_nmod_vec_set__extern"]
21    pub fn _nmod_vec_set(res: nn_ptr, vec: nn_srcptr, len: slong);
22    #[link_name = "_nmod_vec_swap__extern"]
23    pub fn _nmod_vec_swap(a: nn_ptr, b: nn_ptr, length: slong);
24    #[link_name = "_nmod_vec_equal__extern"]
25    pub fn _nmod_vec_equal(vec: nn_srcptr, vec2: nn_srcptr, len: slong) -> libc::c_int;
26    #[link_name = "_nmod_vec_is_zero__extern"]
27    pub fn _nmod_vec_is_zero(vec: nn_srcptr, len: slong) -> libc::c_int;
28    pub fn _nmod_vec_fprint_pretty(
29        file: *mut FILE,
30        vec: nn_srcptr,
31        len: slong,
32        mod_: nmod_t,
33    ) -> libc::c_int;
34    pub fn _nmod_vec_fprint(f: *mut FILE, vec: nn_srcptr, len: slong, mod_: nmod_t) -> libc::c_int;
35    pub fn _nmod_vec_print_pretty(vec: nn_srcptr, len: slong, mod_: nmod_t);
36    pub fn _nmod_vec_print(vec: nn_srcptr, len: slong, mod_: nmod_t) -> libc::c_int;
37    pub fn _nmod_vec_reduce(res: nn_ptr, vec: nn_srcptr, len: slong, mod_: nmod_t);
38    pub fn _nmod_vec_add(res: nn_ptr, vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t);
39    pub fn _nmod_vec_sub(res: nn_ptr, vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t);
40    pub fn _nmod_vec_neg(res: nn_ptr, vec: nn_srcptr, len: slong, mod_: nmod_t);
41    pub fn _nmod_vec_scalar_mul_nmod(
42        res: nn_ptr,
43        vec: nn_srcptr,
44        len: slong,
45        c: ulong,
46        mod_: nmod_t,
47    );
48    pub fn _nmod_vec_scalar_mul_nmod_redc(
49        res: nn_ptr,
50        vec: nn_srcptr,
51        len: slong,
52        c: ulong,
53        mod_: nmod_t,
54    );
55    pub fn _nmod_vec_scalar_mul_nmod_generic(
56        res: nn_ptr,
57        vec: nn_srcptr,
58        len: slong,
59        c: ulong,
60        mod_: nmod_t,
61    );
62    pub fn _nmod_vec_scalar_mul_nmod_shoup(
63        res: nn_ptr,
64        vec: nn_srcptr,
65        len: slong,
66        c: ulong,
67        mod_: nmod_t,
68    );
69    pub fn _nmod_vec_scalar_addmul_nmod(
70        res: nn_ptr,
71        vec: nn_srcptr,
72        len: slong,
73        c: ulong,
74        mod_: nmod_t,
75    );
76    pub fn _nmod_vec_scalar_addmul_nmod_generic(
77        res: nn_ptr,
78        vec: nn_srcptr,
79        len: slong,
80        c: ulong,
81        mod_: nmod_t,
82    );
83    pub fn _nmod_vec_scalar_addmul_nmod_shoup(
84        res: nn_ptr,
85        vec: nn_srcptr,
86        len: slong,
87        c: ulong,
88        mod_: nmod_t,
89    );
90    #[link_name = "_nmod_vec_nored_scalar_addmul_halflimb__extern"]
91    pub fn _nmod_vec_nored_scalar_addmul_halflimb(
92        res: nn_ptr,
93        vec: nn_srcptr,
94        len: slong,
95        c: ulong,
96    );
97    pub fn _nmod_vec_nored_ll_scalar_addmul_halflimb(
98        res: nn_ptr,
99        vec: nn_srcptr,
100        len: slong,
101        c: ulong,
102    );
103    pub fn _nmod_vec_nored_ll_scalar_addmul(res: nn_ptr, vec: nn_srcptr, len: slong, c: ulong);
104    pub fn _nmod_vec_nored_lll_scalar_addmul(res: nn_ptr, vec: nn_srcptr, len: slong, c: ulong);
105    pub fn _nmod_vec_invert(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
106    pub fn _nmod_vec_invert_naive(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
107    pub fn _nmod_vec_invert_generic(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
108    pub fn _nmod_vec_invert_shoup(res: nn_ptr, vec: nn_srcptr, len: ulong, mod_: nmod_t);
109    #[link_name = "_nmod_vec_dot_params__extern"]
110    pub fn _nmod_vec_dot_params(len: ulong, mod_: nmod_t) -> dot_params_t;
111    pub fn _nmod_vec_dot_bound_limbs(len: slong, mod_: nmod_t) -> libc::c_int;
112    pub fn _nmod_vec_dot_bound_limbs_from_params(
113        len: slong,
114        mod_: nmod_t,
115        params: dot_params_t,
116    ) -> libc::c_int;
117    pub fn _nmod_vec_dot_pow2(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
118    pub fn _nmod_vec_dot1(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
119    pub fn _nmod_vec_dot2_half(
120        vec1: nn_srcptr,
121        vec2: nn_srcptr,
122        len: slong,
123        mod_: nmod_t,
124        pow2_precomp: ulong,
125    ) -> ulong;
126    pub fn _nmod_vec_dot2(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
127    pub fn _nmod_vec_dot3_acc(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
128    pub fn _nmod_vec_dot3(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
129    pub fn _nmod_vec_dot2_split(
130        vec1: nn_srcptr,
131        vec2: nn_srcptr,
132        len: slong,
133        mod_: nmod_t,
134        pow2_precomp: ulong,
135    ) -> ulong;
136    pub fn _nmod_vec_dot_pow2_rev(
137        vec1: nn_srcptr,
138        vec2: nn_srcptr,
139        len: slong,
140        mod_: nmod_t,
141    ) -> ulong;
142    pub fn _nmod_vec_dot1_rev(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
143    pub fn _nmod_vec_dot2_half_rev(
144        vec1: nn_srcptr,
145        vec2: nn_srcptr,
146        len: slong,
147        mod_: nmod_t,
148    ) -> ulong;
149    pub fn _nmod_vec_dot2_rev(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
150    pub fn _nmod_vec_dot3_acc_rev(
151        vec1: nn_srcptr,
152        vec2: nn_srcptr,
153        len: slong,
154        mod_: nmod_t,
155    ) -> ulong;
156    pub fn _nmod_vec_dot3_rev(vec1: nn_srcptr, vec2: nn_srcptr, len: slong, mod_: nmod_t) -> ulong;
157    pub fn _nmod_vec_dot2_split_rev(
158        vec1: nn_srcptr,
159        vec2: nn_srcptr,
160        len: slong,
161        mod_: nmod_t,
162        pow2_precomp: ulong,
163    ) -> ulong;
164    pub fn _nmod_vec_dot_pow2_ptr(
165        vec1: nn_srcptr,
166        vec2: *const nn_ptr,
167        offset: slong,
168        len: slong,
169        mod_: nmod_t,
170    ) -> ulong;
171    pub fn _nmod_vec_dot1_ptr(
172        vec1: nn_srcptr,
173        vec2: *const nn_ptr,
174        offset: slong,
175        len: slong,
176        mod_: nmod_t,
177    ) -> ulong;
178    pub fn _nmod_vec_dot2_half_ptr(
179        vec1: nn_srcptr,
180        vec2: *const nn_ptr,
181        offset: slong,
182        len: slong,
183        mod_: nmod_t,
184    ) -> ulong;
185    pub fn _nmod_vec_dot2_ptr(
186        vec1: nn_srcptr,
187        vec2: *const nn_ptr,
188        offset: slong,
189        len: slong,
190        mod_: nmod_t,
191    ) -> ulong;
192    pub fn _nmod_vec_dot3_acc_ptr(
193        vec1: nn_srcptr,
194        vec2: *const nn_ptr,
195        offset: slong,
196        len: slong,
197        mod_: nmod_t,
198    ) -> ulong;
199    pub fn _nmod_vec_dot3_ptr(
200        vec1: nn_srcptr,
201        vec2: *const nn_ptr,
202        offset: slong,
203        len: slong,
204        mod_: nmod_t,
205    ) -> ulong;
206    pub fn _nmod_vec_dot2_split_ptr(
207        vec1: nn_srcptr,
208        vec2: *const nn_ptr,
209        offset: slong,
210        len: slong,
211        mod_: nmod_t,
212        pow2_precomp: ulong,
213    ) -> ulong;
214    #[link_name = "_nmod_vec_dot__extern"]
215    pub fn _nmod_vec_dot(
216        vec1: nn_srcptr,
217        vec2: nn_srcptr,
218        len: slong,
219        mod_: nmod_t,
220        params: dot_params_t,
221    ) -> ulong;
222    #[link_name = "_nmod_vec_dot_rev__extern"]
223    pub fn _nmod_vec_dot_rev(
224        vec1: nn_srcptr,
225        vec2: nn_srcptr,
226        len: slong,
227        mod_: nmod_t,
228        params: dot_params_t,
229    ) -> ulong;
230    #[link_name = "_nmod_vec_dot_ptr__extern"]
231    pub fn _nmod_vec_dot_ptr(
232        vec1: nn_srcptr,
233        vec2: *const nn_ptr,
234        offset: slong,
235        len: slong,
236        mod_: nmod_t,
237        params: dot_params_t,
238    ) -> ulong;
239}