Skip to main content

flint_sys/
gr_vec.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::flint::*;
5use crate::gr_types::*;
6
7
8pub type gr_method_vec_normalise_op = ::std::option::Option<
9    unsafe extern "C" fn(
10        arg1: *mut slong,
11        arg2: gr_srcptr,
12        arg3: slong,
13        arg4: gr_ctx_ptr,
14    ) -> libc::c_int,
15>;
16pub type gr_method_vec_normalise_weak_op = ::std::option::Option<
17    unsafe extern "C" fn(arg1: gr_srcptr, arg2: slong, arg3: gr_ctx_ptr) -> slong,
18>;
19pub type gr_method_vec_reduce_op = ::std::option::Option<
20    unsafe extern "C" fn(
21        arg1: gr_ptr,
22        arg2: gr_srcptr,
23        arg3: slong,
24        arg4: gr_ctx_ptr,
25    ) -> libc::c_int,
26>;
27pub type gr_method_vec_dot_op = ::std::option::Option<
28    unsafe extern "C" fn(
29        arg1: gr_ptr,
30        arg2: gr_srcptr,
31        arg3: libc::c_int,
32        arg4: gr_srcptr,
33        arg5: gr_srcptr,
34        arg6: slong,
35        arg7: gr_ctx_ptr,
36    ) -> libc::c_int,
37>;
38pub type gr_method_vec_dot_si_op = ::std::option::Option<
39    unsafe extern "C" fn(
40        arg1: gr_ptr,
41        arg2: gr_srcptr,
42        arg3: libc::c_int,
43        arg4: gr_srcptr,
44        arg5: *const slong,
45        arg6: slong,
46        arg7: gr_ctx_ptr,
47    ) -> libc::c_int,
48>;
49pub type gr_method_vec_dot_ui_op = ::std::option::Option<
50    unsafe extern "C" fn(
51        arg1: gr_ptr,
52        arg2: gr_srcptr,
53        arg3: libc::c_int,
54        arg4: gr_srcptr,
55        arg5: *const ulong,
56        arg6: slong,
57        arg7: gr_ctx_ptr,
58    ) -> libc::c_int,
59>;
60pub type gr_method_vec_dot_fmpz_op = ::std::option::Option<
61    unsafe extern "C" fn(
62        arg1: gr_ptr,
63        arg2: gr_srcptr,
64        arg3: libc::c_int,
65        arg4: gr_srcptr,
66        arg5: *const fmpz,
67        arg6: slong,
68        arg7: gr_ctx_ptr,
69    ) -> libc::c_int,
70>;
71extern "C" {
72    pub fn gr_vec_init(vec: *mut gr_vec_struct, len: slong, ctx: *mut gr_ctx_struct);
73    pub fn gr_vec_clear(vec: *mut gr_vec_struct, ctx: *mut gr_ctx_struct);
74    pub fn _gr_vec_check_resize(
75        res: *mut gr_vec_struct,
76        n: slong,
77        ctx: *mut gr_ctx_struct,
78    ) -> libc::c_int;
79    #[link_name = "gr_vec_entry_ptr__extern"]
80    pub fn gr_vec_entry_ptr(vec: *mut gr_vec_struct, i: slong, ctx: *mut gr_ctx_struct) -> gr_ptr;
81    #[link_name = "gr_vec_entry_srcptr__extern"]
82    pub fn gr_vec_entry_srcptr(
83        vec: *const gr_vec_struct,
84        i: slong,
85        ctx: *mut gr_ctx_struct,
86    ) -> gr_srcptr;
87    #[link_name = "gr_vec_length__extern"]
88    pub fn gr_vec_length(vec: *const gr_vec_struct, UNUSED_ctx: *mut gr_ctx_struct) -> slong;
89    pub fn gr_vec_fit_length(vec: *mut gr_vec_struct, len: slong, ctx: *mut gr_ctx_struct);
90    pub fn gr_vec_set_length(vec: *mut gr_vec_struct, len: slong, ctx: *mut gr_ctx_struct);
91    pub fn gr_vec_set(
92        res: *mut gr_vec_struct,
93        src: *const gr_vec_struct,
94        ctx: *mut gr_ctx_struct,
95    ) -> libc::c_int;
96    pub fn gr_vec_append(
97        vec: *mut gr_vec_struct,
98        f: gr_srcptr,
99        ctx: *mut gr_ctx_struct,
100    ) -> libc::c_int;
101    pub fn gr_vec_append_swap(vec: *mut gr_vec_struct, f: gr_ptr, ctx: *mut gr_ctx_struct);
102    pub fn _gr_vec_contains(
103        vec: gr_srcptr,
104        len: slong,
105        x: gr_srcptr,
106        ctx: *mut gr_ctx_struct,
107    ) -> truth_t;
108    #[link_name = "gr_vec_contains__extern"]
109    pub fn gr_vec_contains(
110        vec: *const gr_vec_struct,
111        x: gr_srcptr,
112        ctx: *mut gr_ctx_struct,
113    ) -> truth_t;
114    pub fn _gr_vec_sort(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
115    pub fn gr_vec_sort(
116        dest: *mut gr_vec_struct,
117        src: *const gr_vec_struct,
118        ctx: *mut gr_ctx_struct,
119    ) -> libc::c_int;
120    pub fn _gr_vec_permute(vec: gr_ptr, perm: *mut slong, len: slong, ctx: *mut gr_ctx_struct);
121    pub fn gr_vec_permute(
122        dest: *mut gr_vec_struct,
123        src: *mut gr_vec_struct,
124        perm: *mut slong,
125        ctx: *mut gr_ctx_struct,
126    ) -> libc::c_int;
127    pub fn _gr_vec_shuffle(
128        vec: gr_ptr,
129        state: *mut flint_rand_struct,
130        len: slong,
131        ctx: *mut gr_ctx_struct,
132    );
133    pub fn _gr_vec_write(
134        out: *mut gr_stream_struct,
135        vec: gr_srcptr,
136        len: slong,
137        ctx: *mut gr_ctx_struct,
138    ) -> libc::c_int;
139    pub fn gr_vec_write(
140        out: *mut gr_stream_struct,
141        vec: *const gr_vec_struct,
142        ctx: *mut gr_ctx_struct,
143    ) -> libc::c_int;
144    pub fn _gr_vec_print(vec: gr_srcptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
145    pub fn gr_vec_print(vec: *const gr_vec_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
146    #[link_name = "_gr_vec_zero__extern"]
147    pub fn _gr_vec_zero(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
148    #[link_name = "_gr_vec_set__extern"]
149    pub fn _gr_vec_set(
150        res: gr_ptr,
151        src: gr_srcptr,
152        len: slong,
153        ctx: *mut gr_ctx_struct,
154    ) -> libc::c_int;
155    #[link_name = "_gr_vec_neg__extern"]
156    pub fn _gr_vec_neg(
157        res: gr_ptr,
158        src: gr_srcptr,
159        len: slong,
160        ctx: *mut gr_ctx_struct,
161    ) -> libc::c_int;
162    #[link_name = "_gr_vec_normalise__extern"]
163    pub fn _gr_vec_normalise(
164        res: *mut slong,
165        vec: gr_srcptr,
166        len: slong,
167        ctx: *mut gr_ctx_struct,
168    ) -> libc::c_int;
169    #[link_name = "_gr_vec_normalise_weak__extern"]
170    pub fn _gr_vec_normalise_weak(vec: gr_srcptr, len: slong, ctx: *mut gr_ctx_struct) -> slong;
171    #[link_name = "_gr_vec_add__extern"]
172    pub fn _gr_vec_add(
173        res: gr_ptr,
174        src1: gr_srcptr,
175        src2: gr_srcptr,
176        len: slong,
177        ctx: *mut gr_ctx_struct,
178    ) -> libc::c_int;
179    #[link_name = "_gr_vec_sub__extern"]
180    pub fn _gr_vec_sub(
181        res: gr_ptr,
182        src1: gr_srcptr,
183        src2: gr_srcptr,
184        len: slong,
185        ctx: *mut gr_ctx_struct,
186    ) -> libc::c_int;
187    #[link_name = "_gr_vec_mul__extern"]
188    pub fn _gr_vec_mul(
189        res: gr_ptr,
190        src1: gr_srcptr,
191        src2: gr_srcptr,
192        len: slong,
193        ctx: *mut gr_ctx_struct,
194    ) -> libc::c_int;
195    #[link_name = "_gr_vec_div__extern"]
196    pub fn _gr_vec_div(
197        res: gr_ptr,
198        src1: gr_srcptr,
199        src2: gr_srcptr,
200        len: slong,
201        ctx: *mut gr_ctx_struct,
202    ) -> libc::c_int;
203    #[link_name = "_gr_vec_divexact__extern"]
204    pub fn _gr_vec_divexact(
205        res: gr_ptr,
206        src1: gr_srcptr,
207        src2: gr_srcptr,
208        len: slong,
209        ctx: *mut gr_ctx_struct,
210    ) -> libc::c_int;
211    #[link_name = "_gr_vec_pow__extern"]
212    pub fn _gr_vec_pow(
213        res: gr_ptr,
214        src1: gr_srcptr,
215        src2: gr_srcptr,
216        len: slong,
217        ctx: *mut gr_ctx_struct,
218    ) -> libc::c_int;
219    #[link_name = "_gr_vec_add_scalar__extern"]
220    pub fn _gr_vec_add_scalar(
221        vec1: gr_ptr,
222        vec2: gr_srcptr,
223        len: slong,
224        c: gr_srcptr,
225        ctx: *mut gr_ctx_struct,
226    ) -> libc::c_int;
227    #[link_name = "_gr_vec_sub_scalar__extern"]
228    pub fn _gr_vec_sub_scalar(
229        vec1: gr_ptr,
230        vec2: gr_srcptr,
231        len: slong,
232        c: gr_srcptr,
233        ctx: *mut gr_ctx_struct,
234    ) -> libc::c_int;
235    #[link_name = "_gr_vec_mul_scalar__extern"]
236    pub fn _gr_vec_mul_scalar(
237        vec1: gr_ptr,
238        vec2: gr_srcptr,
239        len: slong,
240        c: gr_srcptr,
241        ctx: *mut gr_ctx_struct,
242    ) -> libc::c_int;
243    #[link_name = "_gr_vec_div_scalar__extern"]
244    pub fn _gr_vec_div_scalar(
245        vec1: gr_ptr,
246        vec2: gr_srcptr,
247        len: slong,
248        c: gr_srcptr,
249        ctx: *mut gr_ctx_struct,
250    ) -> libc::c_int;
251    #[link_name = "_gr_vec_divexact_scalar__extern"]
252    pub fn _gr_vec_divexact_scalar(
253        vec1: gr_ptr,
254        vec2: gr_srcptr,
255        len: slong,
256        c: gr_srcptr,
257        ctx: *mut gr_ctx_struct,
258    ) -> libc::c_int;
259    #[link_name = "_gr_vec_pow_scalar__extern"]
260    pub fn _gr_vec_pow_scalar(
261        vec1: gr_ptr,
262        vec2: gr_srcptr,
263        len: slong,
264        c: gr_srcptr,
265        ctx: *mut gr_ctx_struct,
266    ) -> libc::c_int;
267    #[link_name = "_gr_vec_add_scalar_si__extern"]
268    pub fn _gr_vec_add_scalar_si(
269        vec1: gr_ptr,
270        vec2: gr_srcptr,
271        len: slong,
272        c: slong,
273        ctx: *mut gr_ctx_struct,
274    ) -> libc::c_int;
275    #[link_name = "_gr_vec_sub_scalar_si__extern"]
276    pub fn _gr_vec_sub_scalar_si(
277        vec1: gr_ptr,
278        vec2: gr_srcptr,
279        len: slong,
280        c: slong,
281        ctx: *mut gr_ctx_struct,
282    ) -> libc::c_int;
283    #[link_name = "_gr_vec_mul_scalar_si__extern"]
284    pub fn _gr_vec_mul_scalar_si(
285        vec1: gr_ptr,
286        vec2: gr_srcptr,
287        len: slong,
288        c: slong,
289        ctx: *mut gr_ctx_struct,
290    ) -> libc::c_int;
291    #[link_name = "_gr_vec_div_scalar_si__extern"]
292    pub fn _gr_vec_div_scalar_si(
293        vec1: gr_ptr,
294        vec2: gr_srcptr,
295        len: slong,
296        c: slong,
297        ctx: *mut gr_ctx_struct,
298    ) -> libc::c_int;
299    #[link_name = "_gr_vec_divexact_scalar_si__extern"]
300    pub fn _gr_vec_divexact_scalar_si(
301        vec1: gr_ptr,
302        vec2: gr_srcptr,
303        len: slong,
304        c: slong,
305        ctx: *mut gr_ctx_struct,
306    ) -> libc::c_int;
307    #[link_name = "_gr_vec_pow_scalar_si__extern"]
308    pub fn _gr_vec_pow_scalar_si(
309        vec1: gr_ptr,
310        vec2: gr_srcptr,
311        len: slong,
312        c: slong,
313        ctx: *mut gr_ctx_struct,
314    ) -> libc::c_int;
315    #[link_name = "_gr_vec_add_scalar_ui__extern"]
316    pub fn _gr_vec_add_scalar_ui(
317        vec1: gr_ptr,
318        vec2: gr_srcptr,
319        len: slong,
320        c: ulong,
321        ctx: *mut gr_ctx_struct,
322    ) -> libc::c_int;
323    #[link_name = "_gr_vec_sub_scalar_ui__extern"]
324    pub fn _gr_vec_sub_scalar_ui(
325        vec1: gr_ptr,
326        vec2: gr_srcptr,
327        len: slong,
328        c: ulong,
329        ctx: *mut gr_ctx_struct,
330    ) -> libc::c_int;
331    #[link_name = "_gr_vec_mul_scalar_ui__extern"]
332    pub fn _gr_vec_mul_scalar_ui(
333        vec1: gr_ptr,
334        vec2: gr_srcptr,
335        len: slong,
336        c: ulong,
337        ctx: *mut gr_ctx_struct,
338    ) -> libc::c_int;
339    #[link_name = "_gr_vec_div_scalar_ui__extern"]
340    pub fn _gr_vec_div_scalar_ui(
341        vec1: gr_ptr,
342        vec2: gr_srcptr,
343        len: slong,
344        c: ulong,
345        ctx: *mut gr_ctx_struct,
346    ) -> libc::c_int;
347    #[link_name = "_gr_vec_divexact_scalar_ui__extern"]
348    pub fn _gr_vec_divexact_scalar_ui(
349        vec1: gr_ptr,
350        vec2: gr_srcptr,
351        len: slong,
352        c: ulong,
353        ctx: *mut gr_ctx_struct,
354    ) -> libc::c_int;
355    #[link_name = "_gr_vec_pow_scalar_ui__extern"]
356    pub fn _gr_vec_pow_scalar_ui(
357        vec1: gr_ptr,
358        vec2: gr_srcptr,
359        len: slong,
360        c: ulong,
361        ctx: *mut gr_ctx_struct,
362    ) -> libc::c_int;
363    #[link_name = "_gr_vec_add_scalar_fmpz__extern"]
364    pub fn _gr_vec_add_scalar_fmpz(
365        vec1: gr_ptr,
366        vec2: gr_srcptr,
367        len: slong,
368        c: *const fmpz,
369        ctx: *mut gr_ctx_struct,
370    ) -> libc::c_int;
371    #[link_name = "_gr_vec_sub_scalar_fmpz__extern"]
372    pub fn _gr_vec_sub_scalar_fmpz(
373        vec1: gr_ptr,
374        vec2: gr_srcptr,
375        len: slong,
376        c: *const fmpz,
377        ctx: *mut gr_ctx_struct,
378    ) -> libc::c_int;
379    #[link_name = "_gr_vec_mul_scalar_fmpz__extern"]
380    pub fn _gr_vec_mul_scalar_fmpz(
381        vec1: gr_ptr,
382        vec2: gr_srcptr,
383        len: slong,
384        c: *const fmpz,
385        ctx: *mut gr_ctx_struct,
386    ) -> libc::c_int;
387    #[link_name = "_gr_vec_div_scalar_fmpz__extern"]
388    pub fn _gr_vec_div_scalar_fmpz(
389        vec1: gr_ptr,
390        vec2: gr_srcptr,
391        len: slong,
392        c: *const fmpz,
393        ctx: *mut gr_ctx_struct,
394    ) -> libc::c_int;
395    #[link_name = "_gr_vec_divexact_scalar_fmpz__extern"]
396    pub fn _gr_vec_divexact_scalar_fmpz(
397        vec1: gr_ptr,
398        vec2: gr_srcptr,
399        len: slong,
400        c: *const fmpz,
401        ctx: *mut gr_ctx_struct,
402    ) -> libc::c_int;
403    #[link_name = "_gr_vec_pow_scalar_fmpz__extern"]
404    pub fn _gr_vec_pow_scalar_fmpz(
405        vec1: gr_ptr,
406        vec2: gr_srcptr,
407        len: slong,
408        c: *const fmpz,
409        ctx: *mut gr_ctx_struct,
410    ) -> libc::c_int;
411    #[link_name = "_gr_vec_add_scalar_fmpq__extern"]
412    pub fn _gr_vec_add_scalar_fmpq(
413        vec1: gr_ptr,
414        vec2: gr_srcptr,
415        len: slong,
416        c: *const fmpq,
417        ctx: *mut gr_ctx_struct,
418    ) -> libc::c_int;
419    #[link_name = "_gr_vec_sub_scalar_fmpq__extern"]
420    pub fn _gr_vec_sub_scalar_fmpq(
421        vec1: gr_ptr,
422        vec2: gr_srcptr,
423        len: slong,
424        c: *const fmpq,
425        ctx: *mut gr_ctx_struct,
426    ) -> libc::c_int;
427    #[link_name = "_gr_vec_mul_scalar_fmpq__extern"]
428    pub fn _gr_vec_mul_scalar_fmpq(
429        vec1: gr_ptr,
430        vec2: gr_srcptr,
431        len: slong,
432        c: *const fmpq,
433        ctx: *mut gr_ctx_struct,
434    ) -> libc::c_int;
435    #[link_name = "_gr_vec_div_scalar_fmpq__extern"]
436    pub fn _gr_vec_div_scalar_fmpq(
437        vec1: gr_ptr,
438        vec2: gr_srcptr,
439        len: slong,
440        c: *const fmpq,
441        ctx: *mut gr_ctx_struct,
442    ) -> libc::c_int;
443    #[link_name = "_gr_vec_divexact_scalar_fmpq__extern"]
444    pub fn _gr_vec_divexact_scalar_fmpq(
445        vec1: gr_ptr,
446        vec2: gr_srcptr,
447        len: slong,
448        c: *const fmpq,
449        ctx: *mut gr_ctx_struct,
450    ) -> libc::c_int;
451    #[link_name = "_gr_vec_pow_scalar_fmpq__extern"]
452    pub fn _gr_vec_pow_scalar_fmpq(
453        vec1: gr_ptr,
454        vec2: gr_srcptr,
455        len: slong,
456        c: *const fmpq,
457        ctx: *mut gr_ctx_struct,
458    ) -> libc::c_int;
459    #[link_name = "_gr_scalar_add_vec__extern"]
460    pub fn _gr_scalar_add_vec(
461        vec1: gr_ptr,
462        c: gr_srcptr,
463        vec2: gr_srcptr,
464        len: slong,
465        ctx: *mut gr_ctx_struct,
466    ) -> libc::c_int;
467    #[link_name = "_gr_scalar_sub_vec__extern"]
468    pub fn _gr_scalar_sub_vec(
469        vec1: gr_ptr,
470        c: gr_srcptr,
471        vec2: gr_srcptr,
472        len: slong,
473        ctx: *mut gr_ctx_struct,
474    ) -> libc::c_int;
475    #[link_name = "_gr_scalar_mul_vec__extern"]
476    pub fn _gr_scalar_mul_vec(
477        vec1: gr_ptr,
478        c: gr_srcptr,
479        vec2: gr_srcptr,
480        len: slong,
481        ctx: *mut gr_ctx_struct,
482    ) -> libc::c_int;
483    #[link_name = "_gr_scalar_div_vec__extern"]
484    pub fn _gr_scalar_div_vec(
485        vec1: gr_ptr,
486        c: gr_srcptr,
487        vec2: gr_srcptr,
488        len: slong,
489        ctx: *mut gr_ctx_struct,
490    ) -> libc::c_int;
491    #[link_name = "_gr_scalar_divexact_vec__extern"]
492    pub fn _gr_scalar_divexact_vec(
493        vec1: gr_ptr,
494        c: gr_srcptr,
495        vec2: gr_srcptr,
496        len: slong,
497        ctx: *mut gr_ctx_struct,
498    ) -> libc::c_int;
499    #[link_name = "_gr_scalar_pow_vec__extern"]
500    pub fn _gr_scalar_pow_vec(
501        vec1: gr_ptr,
502        c: gr_srcptr,
503        vec2: gr_srcptr,
504        len: slong,
505        ctx: *mut gr_ctx_struct,
506    ) -> libc::c_int;
507    #[link_name = "_gr_vec_add_other__extern"]
508    pub fn _gr_vec_add_other(
509        vec1: gr_ptr,
510        vec2: gr_srcptr,
511        vec3: gr_srcptr,
512        ctx3: *mut gr_ctx_struct,
513        len: slong,
514        ctx: *mut gr_ctx_struct,
515    ) -> libc::c_int;
516    #[link_name = "_gr_vec_sub_other__extern"]
517    pub fn _gr_vec_sub_other(
518        vec1: gr_ptr,
519        vec2: gr_srcptr,
520        vec3: gr_srcptr,
521        ctx3: *mut gr_ctx_struct,
522        len: slong,
523        ctx: *mut gr_ctx_struct,
524    ) -> libc::c_int;
525    #[link_name = "_gr_vec_mul_other__extern"]
526    pub fn _gr_vec_mul_other(
527        vec1: gr_ptr,
528        vec2: gr_srcptr,
529        vec3: gr_srcptr,
530        ctx3: *mut gr_ctx_struct,
531        len: slong,
532        ctx: *mut gr_ctx_struct,
533    ) -> libc::c_int;
534    #[link_name = "_gr_vec_div_other__extern"]
535    pub fn _gr_vec_div_other(
536        vec1: gr_ptr,
537        vec2: gr_srcptr,
538        vec3: gr_srcptr,
539        ctx3: *mut gr_ctx_struct,
540        len: slong,
541        ctx: *mut gr_ctx_struct,
542    ) -> libc::c_int;
543    #[link_name = "_gr_vec_divexact_other__extern"]
544    pub fn _gr_vec_divexact_other(
545        vec1: gr_ptr,
546        vec2: gr_srcptr,
547        vec3: gr_srcptr,
548        ctx3: *mut gr_ctx_struct,
549        len: slong,
550        ctx: *mut gr_ctx_struct,
551    ) -> libc::c_int;
552    #[link_name = "_gr_vec_pow_other__extern"]
553    pub fn _gr_vec_pow_other(
554        vec1: gr_ptr,
555        vec2: gr_srcptr,
556        vec3: gr_srcptr,
557        ctx3: *mut gr_ctx_struct,
558        len: slong,
559        ctx: *mut gr_ctx_struct,
560    ) -> libc::c_int;
561    #[link_name = "_gr_other_add_vec__extern"]
562    pub fn _gr_other_add_vec(
563        vec1: gr_ptr,
564        vec2: gr_srcptr,
565        ctx2: *mut gr_ctx_struct,
566        vec3: gr_srcptr,
567        len: slong,
568        ctx: *mut gr_ctx_struct,
569    ) -> libc::c_int;
570    #[link_name = "_gr_other_sub_vec__extern"]
571    pub fn _gr_other_sub_vec(
572        vec1: gr_ptr,
573        vec2: gr_srcptr,
574        ctx2: *mut gr_ctx_struct,
575        vec3: gr_srcptr,
576        len: slong,
577        ctx: *mut gr_ctx_struct,
578    ) -> libc::c_int;
579    #[link_name = "_gr_other_mul_vec__extern"]
580    pub fn _gr_other_mul_vec(
581        vec1: gr_ptr,
582        vec2: gr_srcptr,
583        ctx2: *mut gr_ctx_struct,
584        vec3: gr_srcptr,
585        len: slong,
586        ctx: *mut gr_ctx_struct,
587    ) -> libc::c_int;
588    #[link_name = "_gr_other_div_vec__extern"]
589    pub fn _gr_other_div_vec(
590        vec1: gr_ptr,
591        vec2: gr_srcptr,
592        ctx2: *mut gr_ctx_struct,
593        vec3: gr_srcptr,
594        len: slong,
595        ctx: *mut gr_ctx_struct,
596    ) -> libc::c_int;
597    #[link_name = "_gr_other_divexact_vec__extern"]
598    pub fn _gr_other_divexact_vec(
599        vec1: gr_ptr,
600        vec2: gr_srcptr,
601        ctx2: *mut gr_ctx_struct,
602        vec3: gr_srcptr,
603        len: slong,
604        ctx: *mut gr_ctx_struct,
605    ) -> libc::c_int;
606    #[link_name = "_gr_other_pow_vec__extern"]
607    pub fn _gr_other_pow_vec(
608        vec1: gr_ptr,
609        vec2: gr_srcptr,
610        ctx2: *mut gr_ctx_struct,
611        vec3: gr_srcptr,
612        len: slong,
613        ctx: *mut gr_ctx_struct,
614    ) -> libc::c_int;
615    #[link_name = "_gr_vec_add_scalar_other__extern"]
616    pub fn _gr_vec_add_scalar_other(
617        vec1: gr_ptr,
618        vec2: gr_srcptr,
619        len: slong,
620        c: gr_srcptr,
621        cctx: *mut gr_ctx_struct,
622        ctx: *mut gr_ctx_struct,
623    ) -> libc::c_int;
624    #[link_name = "_gr_vec_sub_scalar_other__extern"]
625    pub fn _gr_vec_sub_scalar_other(
626        vec1: gr_ptr,
627        vec2: gr_srcptr,
628        len: slong,
629        c: gr_srcptr,
630        cctx: *mut gr_ctx_struct,
631        ctx: *mut gr_ctx_struct,
632    ) -> libc::c_int;
633    #[link_name = "_gr_vec_mul_scalar_other__extern"]
634    pub fn _gr_vec_mul_scalar_other(
635        vec1: gr_ptr,
636        vec2: gr_srcptr,
637        len: slong,
638        c: gr_srcptr,
639        cctx: *mut gr_ctx_struct,
640        ctx: *mut gr_ctx_struct,
641    ) -> libc::c_int;
642    #[link_name = "_gr_vec_div_scalar_other__extern"]
643    pub fn _gr_vec_div_scalar_other(
644        vec1: gr_ptr,
645        vec2: gr_srcptr,
646        len: slong,
647        c: gr_srcptr,
648        cctx: *mut gr_ctx_struct,
649        ctx: *mut gr_ctx_struct,
650    ) -> libc::c_int;
651    #[link_name = "_gr_vec_divexact_scalar_other__extern"]
652    pub fn _gr_vec_divexact_scalar_other(
653        vec1: gr_ptr,
654        vec2: gr_srcptr,
655        len: slong,
656        c: gr_srcptr,
657        cctx: *mut gr_ctx_struct,
658        ctx: *mut gr_ctx_struct,
659    ) -> libc::c_int;
660    #[link_name = "_gr_vec_pow_scalar_other__extern"]
661    pub fn _gr_vec_pow_scalar_other(
662        vec1: gr_ptr,
663        vec2: gr_srcptr,
664        len: slong,
665        c: gr_srcptr,
666        cctx: *mut gr_ctx_struct,
667        ctx: *mut gr_ctx_struct,
668    ) -> libc::c_int;
669    #[link_name = "_gr_scalar_other_add_vec__extern"]
670    pub fn _gr_scalar_other_add_vec(
671        vec1: gr_ptr,
672        c: gr_srcptr,
673        cctx: *mut gr_ctx_struct,
674        vec2: gr_srcptr,
675        len: slong,
676        ctx: *mut gr_ctx_struct,
677    ) -> libc::c_int;
678    #[link_name = "_gr_scalar_other_sub_vec__extern"]
679    pub fn _gr_scalar_other_sub_vec(
680        vec1: gr_ptr,
681        c: gr_srcptr,
682        cctx: *mut gr_ctx_struct,
683        vec2: gr_srcptr,
684        len: slong,
685        ctx: *mut gr_ctx_struct,
686    ) -> libc::c_int;
687    #[link_name = "_gr_scalar_other_mul_vec__extern"]
688    pub fn _gr_scalar_other_mul_vec(
689        vec1: gr_ptr,
690        c: gr_srcptr,
691        cctx: *mut gr_ctx_struct,
692        vec2: gr_srcptr,
693        len: slong,
694        ctx: *mut gr_ctx_struct,
695    ) -> libc::c_int;
696    #[link_name = "_gr_scalar_other_div_vec__extern"]
697    pub fn _gr_scalar_other_div_vec(
698        vec1: gr_ptr,
699        c: gr_srcptr,
700        cctx: *mut gr_ctx_struct,
701        vec2: gr_srcptr,
702        len: slong,
703        ctx: *mut gr_ctx_struct,
704    ) -> libc::c_int;
705    #[link_name = "_gr_scalar_other_divexact_vec__extern"]
706    pub fn _gr_scalar_other_divexact_vec(
707        vec1: gr_ptr,
708        c: gr_srcptr,
709        cctx: *mut gr_ctx_struct,
710        vec2: gr_srcptr,
711        len: slong,
712        ctx: *mut gr_ctx_struct,
713    ) -> libc::c_int;
714    #[link_name = "_gr_scalar_other_pow_vec__extern"]
715    pub fn _gr_scalar_other_pow_vec(
716        vec1: gr_ptr,
717        c: gr_srcptr,
718        cctx: *mut gr_ctx_struct,
719        vec2: gr_srcptr,
720        len: slong,
721        ctx: *mut gr_ctx_struct,
722    ) -> libc::c_int;
723    #[link_name = "_gr_vec_mul_scalar_2exp_si__extern"]
724    pub fn _gr_vec_mul_scalar_2exp_si(
725        vec1: gr_ptr,
726        vec2: gr_srcptr,
727        len: slong,
728        c: slong,
729        ctx: *mut gr_ctx_struct,
730    ) -> libc::c_int;
731    #[link_name = "_gr_vec_addmul_scalar__extern"]
732    pub fn _gr_vec_addmul_scalar(
733        vec1: gr_ptr,
734        vec2: gr_srcptr,
735        len: slong,
736        c: gr_srcptr,
737        ctx: *mut gr_ctx_struct,
738    ) -> libc::c_int;
739    #[link_name = "_gr_vec_submul_scalar__extern"]
740    pub fn _gr_vec_submul_scalar(
741        vec1: gr_ptr,
742        vec2: gr_srcptr,
743        len: slong,
744        c: gr_srcptr,
745        ctx: *mut gr_ctx_struct,
746    ) -> libc::c_int;
747    #[link_name = "_gr_vec_addmul_scalar_si__extern"]
748    pub fn _gr_vec_addmul_scalar_si(
749        vec1: gr_ptr,
750        vec2: gr_srcptr,
751        len: slong,
752        c: slong,
753        ctx: *mut gr_ctx_struct,
754    ) -> libc::c_int;
755    #[link_name = "_gr_vec_submul_scalar_si__extern"]
756    pub fn _gr_vec_submul_scalar_si(
757        vec1: gr_ptr,
758        vec2: gr_srcptr,
759        len: slong,
760        c: slong,
761        ctx: *mut gr_ctx_struct,
762    ) -> libc::c_int;
763    #[link_name = "_gr_vec_addmul_scalar_fmpz__extern"]
764    pub fn _gr_vec_addmul_scalar_fmpz(
765        vec1: gr_ptr,
766        vec2: gr_srcptr,
767        len: slong,
768        c: *const fmpz,
769        ctx: *mut gr_ctx_struct,
770    ) -> libc::c_int;
771    #[link_name = "_gr_vec_equal__extern"]
772    pub fn _gr_vec_equal(
773        vec1: gr_srcptr,
774        vec2: gr_srcptr,
775        len: slong,
776        ctx: *mut gr_ctx_struct,
777    ) -> truth_t;
778    #[link_name = "_gr_vec_is_zero__extern"]
779    pub fn _gr_vec_is_zero(vec: gr_srcptr, len: slong, ctx: *mut gr_ctx_struct) -> truth_t;
780    #[link_name = "_gr_vec_sum__extern"]
781    pub fn _gr_vec_sum(
782        res: gr_ptr,
783        vec: gr_srcptr,
784        len: slong,
785        ctx: *mut gr_ctx_struct,
786    ) -> libc::c_int;
787    #[link_name = "_gr_vec_product__extern"]
788    pub fn _gr_vec_product(
789        res: gr_ptr,
790        vec: gr_srcptr,
791        len: slong,
792        ctx: *mut gr_ctx_struct,
793    ) -> libc::c_int;
794    #[link_name = "_gr_vec_dot__extern"]
795    pub fn _gr_vec_dot(
796        res: gr_ptr,
797        initial: gr_srcptr,
798        subtract: libc::c_int,
799        vec1: gr_srcptr,
800        vec2: gr_srcptr,
801        len: slong,
802        ctx: *mut gr_ctx_struct,
803    ) -> libc::c_int;
804    #[link_name = "_gr_vec_dot_rev__extern"]
805    pub fn _gr_vec_dot_rev(
806        res: gr_ptr,
807        initial: gr_srcptr,
808        subtract: libc::c_int,
809        vec1: gr_srcptr,
810        vec2: gr_srcptr,
811        len: slong,
812        ctx: *mut gr_ctx_struct,
813    ) -> libc::c_int;
814    #[link_name = "_gr_vec_dot_si__extern"]
815    pub fn _gr_vec_dot_si(
816        res: gr_ptr,
817        initial: gr_srcptr,
818        subtract: libc::c_int,
819        vec1: gr_srcptr,
820        vec2: *const slong,
821        len: slong,
822        ctx: *mut gr_ctx_struct,
823    ) -> libc::c_int;
824    #[link_name = "_gr_vec_dot_ui__extern"]
825    pub fn _gr_vec_dot_ui(
826        res: gr_ptr,
827        initial: gr_srcptr,
828        subtract: libc::c_int,
829        vec1: gr_srcptr,
830        vec2: *const ulong,
831        len: slong,
832        ctx: *mut gr_ctx_struct,
833    ) -> libc::c_int;
834    #[link_name = "_gr_vec_dot_fmpz__extern"]
835    pub fn _gr_vec_dot_fmpz(
836        res: gr_ptr,
837        initial: gr_srcptr,
838        subtract: libc::c_int,
839        vec1: gr_srcptr,
840        vec2: *const fmpz,
841        len: slong,
842        ctx: *mut gr_ctx_struct,
843    ) -> libc::c_int;
844    #[link_name = "_gr_vec_reciprocals__extern"]
845    pub fn _gr_vec_reciprocals(res: gr_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
846    #[link_name = "_gr_vec_set_powers__extern"]
847    pub fn _gr_vec_set_powers(
848        res: gr_ptr,
849        x: gr_srcptr,
850        len: slong,
851        ctx: *mut gr_ctx_struct,
852    ) -> libc::c_int;
853    pub fn _gr_vec_randtest(
854        res: gr_ptr,
855        state: *mut flint_rand_struct,
856        len: slong,
857        ctx: *mut gr_ctx_struct,
858    ) -> libc::c_int;
859    pub fn _gr_vec_sum_bsplit_parallel(
860        res: gr_ptr,
861        vec: gr_srcptr,
862        len: slong,
863        basecase_cutoff: slong,
864        ctx: *mut gr_ctx_struct,
865    ) -> libc::c_int;
866    pub fn _gr_vec_sum_bsplit(
867        res: gr_ptr,
868        vec: gr_srcptr,
869        len: slong,
870        basecase_cutoff: slong,
871        ctx: *mut gr_ctx_struct,
872    ) -> libc::c_int;
873    pub fn _gr_vec_sum_parallel(
874        res: gr_ptr,
875        vec: gr_srcptr,
876        len: slong,
877        ctx: *mut gr_ctx_struct,
878    ) -> libc::c_int;
879    pub fn _gr_vec_sum_serial(
880        res: gr_ptr,
881        vec: gr_srcptr,
882        len: slong,
883        ctx: *mut gr_ctx_struct,
884    ) -> libc::c_int;
885    pub fn _gr_vec_sum_generic(
886        res: gr_ptr,
887        vec: gr_srcptr,
888        len: slong,
889        ctx: *mut gr_ctx_struct,
890    ) -> libc::c_int;
891    pub fn _gr_vec_product_bsplit_parallel(
892        res: gr_ptr,
893        vec: gr_srcptr,
894        len: slong,
895        basecase_cutoff: slong,
896        ctx: *mut gr_ctx_struct,
897    ) -> libc::c_int;
898    pub fn _gr_vec_product_bsplit(
899        res: gr_ptr,
900        vec: gr_srcptr,
901        len: slong,
902        basecase_cutoff: slong,
903        ctx: *mut gr_ctx_struct,
904    ) -> libc::c_int;
905    pub fn _gr_vec_product_parallel(
906        res: gr_ptr,
907        vec: gr_srcptr,
908        len: slong,
909        ctx: *mut gr_ctx_struct,
910    ) -> libc::c_int;
911    pub fn _gr_vec_product_serial(
912        res: gr_ptr,
913        vec: gr_srcptr,
914        len: slong,
915        ctx: *mut gr_ctx_struct,
916    ) -> libc::c_int;
917    pub fn _gr_vec_product_generic(
918        res: gr_ptr,
919        vec: gr_srcptr,
920        len: slong,
921        ctx: *mut gr_ctx_struct,
922    ) -> libc::c_int;
923    pub fn _gr_vec_step(
924        vec: gr_ptr,
925        start: gr_srcptr,
926        step: gr_srcptr,
927        len: slong,
928        ctx: *mut gr_ctx_struct,
929    ) -> libc::c_int;
930}