1use 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}