1#![allow(non_camel_case_types)]
2use crate::deps::*;
7use crate::flint::*;
8use crate::fmpz::fmpz;
9use libc::{c_int, FILE};
10
11extern "C" {
12 pub fn _fmpz_vec_init(len: mp_limb_signed_t) -> *mut fmpz;
13 pub fn _fmpz_vec_clear(vec: *mut fmpz, len: mp_limb_signed_t);
14 pub fn _fmpz_vec_randtest(
15 f: *mut fmpz,
16 state: *const flint_rand_s,
17 len: mp_limb_signed_t,
18 bits: mp_limb_t,
19 );
20 pub fn _fmpz_vec_randtest_unsigned(
21 f: *mut fmpz,
22 state: *const flint_rand_s,
23 len: mp_limb_signed_t,
24 bits: mp_limb_t,
25 );
26 pub fn _fmpz_vec_max_bits(vec: *const fmpz, len: mp_limb_signed_t) -> mp_limb_signed_t;
27 pub fn _fmpz_vec_max_bits_ref(vec: *const fmpz, len: mp_limb_signed_t) -> mp_limb_signed_t;
28 pub fn _fmpz_vec_sum_max_bits(
29 sumabs: *mut mp_limb_signed_t,
30 maxabs: *mut mp_limb_signed_t,
31 coeffs: *const fmpz,
32 length: mp_limb_signed_t,
33 );
34 pub fn _fmpz_vec_max_limbs(vec: *const fmpz, len: mp_limb_signed_t) -> mp_size_t;
35 pub fn _fmpz_vec_height(height: *mut fmpz, vec: *const fmpz, len: mp_limb_signed_t);
36 pub fn _fmpz_vec_height_index(vec: *const fmpz, len: mp_limb_signed_t) -> mp_limb_signed_t;
37 pub fn _fmpz_vec_fprint(file: *mut FILE, vec: *const fmpz, len: mp_limb_signed_t) -> c_int;
38 pub fn _fmpz_vec_print(vec: *const fmpz, len: mp_limb_signed_t) -> c_int;
39 pub fn _fmpz_vec_fread(
40 file: *const FILE,
41 vec: *mut *mut fmpz,
42 len: *mut mp_limb_signed_t,
43 ) -> c_int;
44 pub fn _fmpz_vec_read(vec: *mut *mut fmpz, len: *mut mp_limb_signed_t) -> c_int;
45 pub fn _fmpz_vec_get_fft(
60 coeffs_f: *mut *mut mp_limb_t,
61 coeffs_m: *const fmpz,
62 l: mp_limb_signed_t,
63 length: mp_limb_signed_t,
64 ) -> mp_limb_signed_t;
65 pub fn _fmpz_vec_set_fft(
66 coeffs_m: *mut fmpz,
67 length: mp_limb_signed_t,
68 coeffs_f: *const mp_ptr,
69 limbs: mp_limb_signed_t,
70 sign: mp_limb_signed_t,
71 );
72 pub fn _fmpz_vec_get_d_vec_2exp(
73 appv: *mut f64,
74 vec: *const fmpz,
75 len: mp_limb_signed_t,
76 ) -> mp_limb_signed_t;
77 pub fn _fmpz_vec_set(vec1: *mut fmpz, vec2: *const fmpz, len2: mp_limb_signed_t);
79 pub fn _fmpz_vec_swap(vec1: *mut fmpz, vec2: *mut fmpz, len2: mp_limb_signed_t);
80 pub fn _fmpz_vec_zero(vec: *mut fmpz, len: mp_limb_signed_t);
81 pub fn _fmpz_vec_neg(vec1: *mut fmpz, vec2: *const fmpz, len2: mp_limb_signed_t);
82 pub fn _fmpz_vec_scalar_abs(vec1: *mut fmpz, vec2: *const fmpz, len2: mp_limb_signed_t);
83 pub fn _fmpz_vec_equal(vec1: *const fmpz, vec2: *const fmpz, len: mp_limb_signed_t) -> c_int;
84 pub fn _fmpz_vec_is_zero(vec: *const fmpz, len: mp_limb_signed_t) -> c_int;
85 pub fn _fmpz_vec_max(
86 vec1: *mut fmpz,
87 vec2: *const fmpz,
88 vec3: *const fmpz,
89 len: mp_limb_signed_t,
90 );
91 pub fn _fmpz_vec_max_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: mp_limb_signed_t);
92 pub fn _fmpz_vec_min(
93 vec1: *mut fmpz,
94 vec2: *const fmpz,
95 vec3: *const fmpz,
96 len: mp_limb_signed_t,
97 );
98 pub fn _fmpz_vec_min_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: mp_limb_signed_t);
99 pub fn _fmpz_vec_sort(vec: *mut fmpz, len: mp_limb_signed_t);
100 pub fn _fmpz_vec_add(
101 res: *mut fmpz,
102 vec1: *const fmpz,
103 vec2: *const fmpz,
104 len2: mp_limb_signed_t,
105 );
106 pub fn _fmpz_vec_sub(
107 res: *mut fmpz,
108 vec1: *const fmpz,
109 vec2: *const fmpz,
110 len2: mp_limb_signed_t,
111 );
112 pub fn _fmpz_vec_scalar_mul_si(
113 vec1: *mut fmpz,
114 vec2: *const fmpz,
115 len2: mp_limb_signed_t,
116 c: mp_limb_signed_t,
117 );
118 pub fn _fmpz_vec_scalar_mul_ui(
119 vec1: *mut fmpz,
120 vec2: *const fmpz,
121 len2: mp_limb_signed_t,
122 c: mp_limb_t,
123 );
124 pub fn _fmpz_vec_scalar_mul_fmpz(
125 vec1: *mut fmpz,
126 vec2: *const fmpz,
127 len2: mp_limb_signed_t,
128 x: *const fmpz,
129 );
130 pub fn _fmpz_vec_scalar_mul_2exp(
131 vec1: *mut fmpz,
132 vec2: *const fmpz,
133 len2: mp_limb_signed_t,
134 exp: mp_limb_t,
135 );
136 pub fn _fmpz_vec_scalar_divexact_fmpz(
137 vec1: *mut fmpz,
138 vec2: *const fmpz,
139 len2: mp_limb_signed_t,
140 x: *const fmpz,
141 );
142 pub fn _fmpz_vec_scalar_divexact_si(
143 vec1: *mut fmpz,
144 vec2: *const fmpz,
145 len2: mp_limb_signed_t,
146 c: mp_limb_signed_t,
147 );
148 pub fn _fmpz_vec_scalar_divexact_ui(
149 vec1: *mut fmpz,
150 vec2: *const fmpz,
151 len2: mp_limb_signed_t,
152 c: mp_limb_t,
153 );
154 pub fn _fmpz_vec_scalar_fdiv_q_fmpz(
155 vec1: *mut fmpz,
156 vec2: *const fmpz,
157 len2: mp_limb_signed_t,
158 c: *const fmpz,
159 );
160 pub fn _fmpz_vec_scalar_fdiv_q_si(
161 vec1: *mut fmpz,
162 vec2: *const fmpz,
163 len2: mp_limb_signed_t,
164 c: mp_limb_signed_t,
165 );
166 pub fn _fmpz_vec_scalar_fdiv_q_ui(
167 vec1: *mut fmpz,
168 vec2: *const fmpz,
169 len2: mp_limb_signed_t,
170 c: mp_limb_t,
171 );
172 pub fn _fmpz_vec_scalar_fdiv_q_2exp(
173 vec1: *mut fmpz,
174 vec2: *const fmpz,
175 len2: mp_limb_signed_t,
176 exp: mp_limb_t,
177 );
178 pub fn _fmpz_vec_scalar_fdiv_r_2exp(
179 vec1: *mut fmpz,
180 vec2: *const fmpz,
181 len2: mp_limb_signed_t,
182 exp: mp_limb_t,
183 );
184 pub fn _fmpz_vec_scalar_tdiv_q_fmpz(
185 vec1: *mut fmpz,
186 vec2: *const fmpz,
187 len2: mp_limb_signed_t,
188 c: *const fmpz,
189 );
190 pub fn _fmpz_vec_scalar_tdiv_q_si(
191 vec1: *mut fmpz,
192 vec2: *const fmpz,
193 len2: mp_limb_signed_t,
194 c: mp_limb_signed_t,
195 );
196 pub fn _fmpz_vec_scalar_tdiv_q_ui(
197 vec1: *mut fmpz,
198 vec2: *const fmpz,
199 len2: mp_limb_signed_t,
200 c: mp_limb_t,
201 );
202 pub fn _fmpz_vec_scalar_tdiv_q_2exp(
203 vec1: *mut fmpz,
204 vec2: *const fmpz,
205 len2: mp_limb_signed_t,
206 exp: mp_limb_t,
207 );
208 pub fn _fmpz_vec_scalar_addmul_si(
209 vec1: *mut fmpz,
210 vec2: *const fmpz,
211 len2: mp_limb_signed_t,
212 c: mp_limb_signed_t,
213 );
214 pub fn _fmpz_vec_scalar_addmul_fmpz(
215 poly1: *mut fmpz,
216 poly2: *const fmpz,
217 len2: mp_limb_signed_t,
218 x: *const fmpz,
219 );
220 pub fn _fmpz_vec_scalar_addmul_si_2exp(
221 vec1: *mut fmpz,
222 vec2: *const fmpz,
223 len2: mp_limb_signed_t,
224 c: mp_limb_signed_t,
225 exp: mp_limb_t,
226 );
227 pub fn _fmpz_vec_scalar_submul_si(
228 vec1: *mut fmpz,
229 vec2: *const fmpz,
230 len2: mp_limb_signed_t,
231 c: mp_limb_signed_t,
232 );
233 pub fn _fmpz_vec_scalar_submul_fmpz(
234 vec1: *mut fmpz,
235 vec2: *const fmpz,
236 len2: mp_limb_signed_t,
237 x: *const fmpz,
238 );
239 pub fn _fmpz_vec_scalar_submul_si_2exp(
240 vec1: *mut fmpz,
241 vec2: *const fmpz,
242 len2: mp_limb_signed_t,
243 c: mp_limb_signed_t,
244 exp: mp_limb_t,
245 );
246 pub fn _fmpz_vec_sum(res: *mut fmpz, vec: *const fmpz, len: mp_limb_signed_t);
247 pub fn _fmpz_vec_prod(res: *mut fmpz, vec: *const fmpz, len: mp_limb_signed_t);
248 pub fn _fmpz_vec_scalar_mod_fmpz(
249 res: *mut fmpz,
250 vec: *const fmpz,
251 len: mp_limb_signed_t,
252 p: *const fmpz,
253 );
254 pub fn _fmpz_vec_scalar_smod_fmpz(
255 res: *mut fmpz,
256 vec: *const fmpz,
257 len: mp_limb_signed_t,
258 p: *const fmpz,
259 );
260 pub fn _fmpz_vec_content(res: *mut fmpz, vec: *const fmpz, len: mp_limb_signed_t);
261 pub fn _fmpz_vec_content_chained(res: *mut fmpz, vec: *const fmpz, len: mp_limb_signed_t);
262 pub fn _fmpz_vec_lcm(res: *mut fmpz, vec: *const fmpz, len: mp_limb_signed_t);
263 pub fn _fmpz_vec_dot(
264 res: *mut fmpz,
265 vec1: *const fmpz,
266 vec2: *const fmpz,
267 len2: mp_limb_signed_t,
268 );
269 pub fn _fmpz_vec_dot_ptr(
270 c: *mut fmpz,
271 vec1: *const fmpz,
272 vec2: *mut *mut fmpz,
273 offset: mp_limb_signed_t,
274 len: mp_limb_signed_t,
275 );
276}