1use crate::deps::*;
4use crate::flint::*;
5use crate::gr_types::*;
6
7
8pub const GR_GENERIC_DEBUG_RINGS: u32 = 0;
9pub const GR_PARSE_BALANCE_ADDITIONS: u32 = 1;
10pub const GR_PARSE_RING_EXPONENTS: u32 = 2;
11extern "C" {
12 pub fn gr_generic_ctx_predicate(ctx: *mut gr_ctx_struct) -> truth_t;
13 pub fn gr_generic_ctx_predicate_true(ctx: *mut gr_ctx_struct) -> truth_t;
14 pub fn gr_generic_ctx_predicate_false(ctx: *mut gr_ctx_struct) -> truth_t;
15 pub fn gr_generic_ctx_clear(ctx: *mut gr_ctx_struct);
16 pub fn gr_generic_ctx_ngens_0(ngens: *mut slong, ctx: *mut gr_ctx_struct) -> slong;
17 pub fn gr_generic_ctx_ngens_1(ngens: *mut slong, ctx: *mut gr_ctx_struct) -> slong;
18 pub fn gr_generic_ctx_base(ctx: *mut gr_ctx_struct) -> gr_ptr;
19 pub fn gr_generic_set_shallow(res: gr_ptr, x: gr_srcptr, ctx: *const gr_ctx_struct);
20 pub fn gr_generic_write_n(
21 out: *mut gr_stream_struct,
22 x: gr_srcptr,
23 n: slong,
24 ctx: *mut gr_ctx_struct,
25 ) -> libc::c_int;
26 pub fn gr_generic_randtest_not_zero(
27 x: gr_ptr,
28 state: *mut flint_rand_struct,
29 ctx: *mut gr_ctx_struct,
30 ) -> libc::c_int;
31 pub fn gr_generic_randtest_small(
32 x: gr_ptr,
33 state: *mut flint_rand_struct,
34 ctx: *mut gr_ctx_struct,
35 ) -> libc::c_int;
36 pub fn gr_generic_gens(vec: *mut gr_vec_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
37 pub fn gr_generic_gens_single(vec: *mut gr_vec_struct, ctx: *mut gr_ctx_struct) -> libc::c_int;
38 pub fn gr_generic_gens_recursive(
39 vec: *mut gr_vec_struct,
40 ctx: *mut gr_ctx_struct,
41 ) -> libc::c_int;
42 pub fn gr_generic_is_zero(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
43 pub fn gr_generic_is_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
44 pub fn gr_generic_is_neg_one(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
45 pub fn gr_generic_neg_one(res: gr_ptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
46 pub fn gr_generic_set_other(
47 res: gr_ptr,
48 x: gr_srcptr,
49 xctx: *mut gr_ctx_struct,
50 ctx: *mut gr_ctx_struct,
51 ) -> libc::c_int;
52 pub fn gr_generic_set_fmpq(res: gr_ptr, y: *const fmpq, ctx: *mut gr_ctx_struct)
53 -> libc::c_int;
54 pub fn gr_generic_set_str_expr(
55 res: gr_ptr,
56 s: *const libc::c_char,
57 flags: libc::c_int,
58 ctx: *mut gr_ctx_struct,
59 ) -> libc::c_int;
60 pub fn gr_generic_set_str(
61 res: gr_ptr,
62 s: *const libc::c_char,
63 ctx: *mut gr_ctx_struct,
64 ) -> libc::c_int;
65 pub fn gr_generic_set_str_balance_additions(
66 res: gr_ptr,
67 s: *const libc::c_char,
68 ctx: *mut gr_ctx_struct,
69 ) -> libc::c_int;
70 pub fn gr_generic_set_str_ring_exponents(
71 res: gr_ptr,
72 s: *const libc::c_char,
73 ctx: *mut gr_ctx_struct,
74 ) -> libc::c_int;
75 pub fn gr_generic_add_fmpz(
76 res: gr_ptr,
77 x: gr_srcptr,
78 y: *const fmpz,
79 ctx: *mut gr_ctx_struct,
80 ) -> libc::c_int;
81 pub fn gr_generic_add_ui(
82 res: gr_ptr,
83 x: gr_srcptr,
84 y: ulong,
85 ctx: *mut gr_ctx_struct,
86 ) -> libc::c_int;
87 pub fn gr_generic_add_si(
88 res: gr_ptr,
89 x: gr_srcptr,
90 y: slong,
91 ctx: *mut gr_ctx_struct,
92 ) -> libc::c_int;
93 pub fn gr_generic_add_fmpq(
94 res: gr_ptr,
95 x: gr_srcptr,
96 y: *const fmpq,
97 ctx: *mut gr_ctx_struct,
98 ) -> libc::c_int;
99 pub fn gr_generic_add_other(
100 res: gr_ptr,
101 x: gr_srcptr,
102 y: gr_srcptr,
103 y_ctx: *mut gr_ctx_struct,
104 ctx: *mut gr_ctx_struct,
105 ) -> libc::c_int;
106 pub fn gr_generic_other_add(
107 res: gr_ptr,
108 x: gr_srcptr,
109 x_ctx: *mut gr_ctx_struct,
110 y: gr_srcptr,
111 ctx: *mut gr_ctx_struct,
112 ) -> libc::c_int;
113 pub fn gr_generic_sub_ui(
114 res: gr_ptr,
115 x: gr_srcptr,
116 y: ulong,
117 ctx: *mut gr_ctx_struct,
118 ) -> libc::c_int;
119 pub fn gr_generic_sub_si(
120 res: gr_ptr,
121 x: gr_srcptr,
122 y: slong,
123 ctx: *mut gr_ctx_struct,
124 ) -> libc::c_int;
125 pub fn gr_generic_sub_fmpz(
126 res: gr_ptr,
127 x: gr_srcptr,
128 y: *const fmpz,
129 ctx: *mut gr_ctx_struct,
130 ) -> libc::c_int;
131 pub fn gr_generic_sub_fmpq(
132 res: gr_ptr,
133 x: gr_srcptr,
134 y: *const fmpq,
135 ctx: *mut gr_ctx_struct,
136 ) -> libc::c_int;
137 pub fn gr_generic_sub_other(
138 res: gr_ptr,
139 x: gr_srcptr,
140 y: gr_srcptr,
141 y_ctx: *mut gr_ctx_struct,
142 ctx: *mut gr_ctx_struct,
143 ) -> libc::c_int;
144 pub fn gr_generic_other_sub(
145 res: gr_ptr,
146 x: gr_srcptr,
147 x_ctx: *mut gr_ctx_struct,
148 y: gr_srcptr,
149 ctx: *mut gr_ctx_struct,
150 ) -> libc::c_int;
151 pub fn gr_generic_mul_fmpz(
152 res: gr_ptr,
153 x: gr_srcptr,
154 y: *const fmpz,
155 ctx: *mut gr_ctx_struct,
156 ) -> libc::c_int;
157 pub fn gr_generic_mul_ui(
158 res: gr_ptr,
159 x: gr_srcptr,
160 y: ulong,
161 ctx: *mut gr_ctx_struct,
162 ) -> libc::c_int;
163 pub fn gr_generic_mul_si(
164 res: gr_ptr,
165 x: gr_srcptr,
166 y: slong,
167 ctx: *mut gr_ctx_struct,
168 ) -> libc::c_int;
169 pub fn gr_generic_mul_fmpq(
170 res: gr_ptr,
171 x: gr_srcptr,
172 y: *const fmpq,
173 ctx: *mut gr_ctx_struct,
174 ) -> libc::c_int;
175 pub fn gr_generic_mul_other(
176 res: gr_ptr,
177 x: gr_srcptr,
178 y: gr_srcptr,
179 y_ctx: *mut gr_ctx_struct,
180 ctx: *mut gr_ctx_struct,
181 ) -> libc::c_int;
182 pub fn gr_generic_other_mul(
183 res: gr_ptr,
184 x: gr_srcptr,
185 x_ctx: *mut gr_ctx_struct,
186 y: gr_srcptr,
187 ctx: *mut gr_ctx_struct,
188 ) -> libc::c_int;
189 pub fn gr_generic_addmul(
190 res: gr_ptr,
191 x: gr_srcptr,
192 y: gr_srcptr,
193 ctx: *mut gr_ctx_struct,
194 ) -> libc::c_int;
195 pub fn gr_generic_addmul_ui(
196 res: gr_ptr,
197 x: gr_srcptr,
198 y: ulong,
199 ctx: *mut gr_ctx_struct,
200 ) -> libc::c_int;
201 pub fn gr_generic_addmul_si(
202 res: gr_ptr,
203 x: gr_srcptr,
204 y: slong,
205 ctx: *mut gr_ctx_struct,
206 ) -> libc::c_int;
207 pub fn gr_generic_addmul_fmpz(
208 res: gr_ptr,
209 x: gr_srcptr,
210 y: *const fmpz,
211 ctx: *mut gr_ctx_struct,
212 ) -> libc::c_int;
213 pub fn gr_generic_addmul_fmpq(
214 res: gr_ptr,
215 x: gr_srcptr,
216 y: *const fmpq,
217 ctx: *mut gr_ctx_struct,
218 ) -> libc::c_int;
219 pub fn gr_generic_addmul_other(
220 res: gr_ptr,
221 x: gr_srcptr,
222 y: gr_srcptr,
223 y_ctx: *mut gr_ctx_struct,
224 ctx: *mut gr_ctx_struct,
225 ) -> libc::c_int;
226 pub fn gr_generic_submul(
227 res: gr_ptr,
228 x: gr_srcptr,
229 y: gr_srcptr,
230 ctx: *mut gr_ctx_struct,
231 ) -> libc::c_int;
232 pub fn gr_generic_submul_ui(
233 res: gr_ptr,
234 x: gr_srcptr,
235 y: ulong,
236 ctx: *mut gr_ctx_struct,
237 ) -> libc::c_int;
238 pub fn gr_generic_submul_si(
239 res: gr_ptr,
240 x: gr_srcptr,
241 y: slong,
242 ctx: *mut gr_ctx_struct,
243 ) -> libc::c_int;
244 pub fn gr_generic_submul_fmpz(
245 res: gr_ptr,
246 x: gr_srcptr,
247 y: *const fmpz,
248 ctx: *mut gr_ctx_struct,
249 ) -> libc::c_int;
250 pub fn gr_generic_submul_fmpq(
251 res: gr_ptr,
252 x: gr_srcptr,
253 y: *const fmpq,
254 ctx: *mut gr_ctx_struct,
255 ) -> libc::c_int;
256 pub fn gr_generic_submul_other(
257 res: gr_ptr,
258 x: gr_srcptr,
259 y: gr_srcptr,
260 y_ctx: *mut gr_ctx_struct,
261 ctx: *mut gr_ctx_struct,
262 ) -> libc::c_int;
263 pub fn gr_generic_mul_two(res: gr_ptr, x: gr_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
264 pub fn gr_generic_sqr(res: gr_ptr, x: gr_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
265 pub fn gr_generic_mul_2exp_si(
266 res: gr_ptr,
267 x: gr_srcptr,
268 y: slong,
269 ctx: *mut gr_ctx_struct,
270 ) -> libc::c_int;
271 pub fn gr_generic_mul_2exp_fmpz(
272 res: gr_ptr,
273 x: gr_srcptr,
274 y: *const fmpz,
275 ctx: *mut gr_ctx_struct,
276 ) -> libc::c_int;
277 pub fn gr_generic_set_fmpz_2exp_fmpz(
278 res: gr_ptr,
279 x: *const fmpz,
280 y: *const fmpz,
281 ctx: *mut gr_ctx_struct,
282 ) -> libc::c_int;
283 pub fn gr_generic_get_fmpz_2exp_fmpz(
284 res1: *mut fmpz,
285 res2: *mut fmpz,
286 x: gr_ptr,
287 ctx: *mut gr_ctx_struct,
288 ) -> libc::c_int;
289 pub fn gr_generic_set_fmpz_10exp_fmpz(
290 res: gr_ptr,
291 x: *const fmpz,
292 y: *const fmpz,
293 ctx: *mut gr_ctx_struct,
294 ) -> libc::c_int;
295 pub fn gr_generic_inv(res: gr_ptr, x: gr_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
296 pub fn gr_generic_is_invertible(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
297 pub fn gr_generic_div_fmpz(
298 res: gr_ptr,
299 x: gr_srcptr,
300 y: *const fmpz,
301 ctx: *mut gr_ctx_struct,
302 ) -> libc::c_int;
303 pub fn gr_generic_div_ui(
304 res: gr_ptr,
305 x: gr_srcptr,
306 y: ulong,
307 ctx: *mut gr_ctx_struct,
308 ) -> libc::c_int;
309 pub fn gr_generic_div_si(
310 res: gr_ptr,
311 x: gr_srcptr,
312 y: slong,
313 ctx: *mut gr_ctx_struct,
314 ) -> libc::c_int;
315 pub fn gr_generic_div_fmpq(
316 res: gr_ptr,
317 x: gr_srcptr,
318 y: *const fmpq,
319 ctx: *mut gr_ctx_struct,
320 ) -> libc::c_int;
321 pub fn gr_generic_div_other(
322 res: gr_ptr,
323 x: gr_srcptr,
324 y: gr_srcptr,
325 y_ctx: *mut gr_ctx_struct,
326 ctx: *mut gr_ctx_struct,
327 ) -> libc::c_int;
328 pub fn gr_generic_other_div(
329 res: gr_ptr,
330 x: gr_srcptr,
331 x_ctx: *mut gr_ctx_struct,
332 y: gr_srcptr,
333 ctx: *mut gr_ctx_struct,
334 ) -> libc::c_int;
335 pub fn gr_generic_divexact(
336 res: gr_ptr,
337 x: gr_srcptr,
338 y: gr_srcptr,
339 ctx: *mut gr_ctx_struct,
340 ) -> libc::c_int;
341 pub fn gr_generic_pow_fmpz_sliding(
342 f: gr_ptr,
343 g: gr_srcptr,
344 pow: *const fmpz,
345 ctx: *mut gr_ctx_struct,
346 ) -> libc::c_int;
347 pub fn gr_generic_pow_ui_sliding(
348 f: gr_ptr,
349 g: gr_srcptr,
350 pow: ulong,
351 ctx: *mut gr_ctx_struct,
352 ) -> libc::c_int;
353 pub fn gr_generic_pow_fmpz_binexp(
354 res: gr_ptr,
355 x: gr_srcptr,
356 exp: *const fmpz,
357 ctx: *mut gr_ctx_struct,
358 ) -> libc::c_int;
359 pub fn gr_generic_pow_ui_binexp(
360 res: gr_ptr,
361 x: gr_srcptr,
362 e: ulong,
363 ctx: *mut gr_ctx_struct,
364 ) -> libc::c_int;
365 pub fn gr_generic_pow_fmpz(
366 res: gr_ptr,
367 x: gr_srcptr,
368 e: *const fmpz,
369 ctx: *mut gr_ctx_struct,
370 ) -> libc::c_int;
371 pub fn gr_generic_pow_si(
372 res: gr_ptr,
373 x: gr_srcptr,
374 e: slong,
375 ctx: *mut gr_ctx_struct,
376 ) -> libc::c_int;
377 pub fn gr_generic_pow_ui(
378 res: gr_ptr,
379 x: gr_srcptr,
380 e: ulong,
381 ctx: *mut gr_ctx_struct,
382 ) -> libc::c_int;
383 pub fn gr_generic_pow_fmpq(
384 res: gr_ptr,
385 x: gr_srcptr,
386 y: *const fmpq,
387 ctx: *mut gr_ctx_struct,
388 ) -> libc::c_int;
389 pub fn gr_generic_pow_other(
390 res: gr_ptr,
391 x: gr_srcptr,
392 y: gr_srcptr,
393 y_ctx: *mut gr_ctx_struct,
394 ctx: *mut gr_ctx_struct,
395 ) -> libc::c_int;
396 pub fn gr_generic_other_pow(
397 res: gr_ptr,
398 x: gr_srcptr,
399 x_ctx: *mut gr_ctx_struct,
400 y: gr_srcptr,
401 ctx: *mut gr_ctx_struct,
402 ) -> libc::c_int;
403 pub fn gr_generic_numerator(res: gr_ptr, x: gr_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
404 pub fn gr_generic_denominator(
405 res: gr_ptr,
406 x: gr_srcptr,
407 ctx: *mut gr_ctx_struct,
408 ) -> libc::c_int;
409 pub fn gr_generic_is_square(x: gr_srcptr, ctx: *mut gr_ctx_struct) -> truth_t;
410 pub fn gr_generic_sqrt(res: gr_ptr, x: gr_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
411 pub fn gr_generic_rsqrt(res: gr_ptr, x: gr_srcptr, ctx: *mut gr_ctx_struct) -> libc::c_int;
412 pub fn gr_generic_cmp(
413 res: *mut libc::c_int,
414 x: gr_srcptr,
415 y: gr_srcptr,
416 ctx: *mut gr_ctx_struct,
417 ) -> libc::c_int;
418 pub fn gr_generic_cmpabs(
419 res: *mut libc::c_int,
420 x: gr_srcptr,
421 y: gr_srcptr,
422 ctx: *mut gr_ctx_struct,
423 ) -> libc::c_int;
424 pub fn gr_generic_cmp_other(
425 res: *mut libc::c_int,
426 x: gr_srcptr,
427 y: gr_srcptr,
428 y_ctx: *mut gr_ctx_struct,
429 ctx: *mut gr_ctx_struct,
430 ) -> libc::c_int;
431 pub fn gr_generic_cmpabs_other(
432 res: *mut libc::c_int,
433 x: gr_srcptr,
434 y: gr_srcptr,
435 y_ctx: *mut gr_ctx_struct,
436 ctx: *mut gr_ctx_struct,
437 ) -> libc::c_int;
438 pub fn gr_generic_poly_factor_roots(
439 c: gr_ptr,
440 fac: *mut gr_vec_struct,
441 mult: *mut gr_vec_struct,
442 elt: gr_srcptr,
443 flags: libc::c_int,
444 ctx: *mut gr_ctx_struct,
445 ) -> libc::c_int;
446 pub fn gr_generic_bernoulli_ui(res: gr_ptr, n: ulong, ctx: *mut gr_ctx_struct) -> libc::c_int;
447 pub fn gr_generic_bernoulli_fmpz(
448 res: gr_ptr,
449 n: *const fmpz,
450 ctx: *mut gr_ctx_struct,
451 ) -> libc::c_int;
452 pub fn gr_generic_bernoulli_vec(
453 res: gr_ptr,
454 len: slong,
455 ctx: *mut gr_ctx_struct,
456 ) -> libc::c_int;
457 pub fn gr_generic_eulernum_ui(res: gr_ptr, n: ulong, ctx: *mut gr_ctx_struct) -> libc::c_int;
458 pub fn gr_generic_eulernum_fmpz(
459 res: gr_ptr,
460 n: *const fmpz,
461 ctx: *mut gr_ctx_struct,
462 ) -> libc::c_int;
463 pub fn gr_generic_eulernum_vec(res: gr_ptr, len: slong, ctx: *mut gr_ctx_struct)
464 -> libc::c_int;
465 pub fn gr_generic_stirling_s1u_uiui(
466 res: gr_ptr,
467 x: ulong,
468 y: ulong,
469 ctx: *mut gr_ctx_struct,
470 ) -> libc::c_int;
471 pub fn gr_generic_stirling_s1_uiui(
472 res: gr_ptr,
473 x: ulong,
474 y: ulong,
475 ctx: *mut gr_ctx_struct,
476 ) -> libc::c_int;
477 pub fn gr_generic_stirling_s2_uiui(
478 res: gr_ptr,
479 x: ulong,
480 y: ulong,
481 ctx: *mut gr_ctx_struct,
482 ) -> libc::c_int;
483 pub fn gr_generic_stirling_s1u_ui_vec(
484 res: gr_ptr,
485 x: ulong,
486 len: slong,
487 ctx: *mut gr_ctx_struct,
488 ) -> libc::c_int;
489 pub fn gr_generic_stirling_s1_ui_vec(
490 res: gr_ptr,
491 x: ulong,
492 len: slong,
493 ctx: *mut gr_ctx_struct,
494 ) -> libc::c_int;
495 pub fn gr_generic_stirling_s2_ui_vec(
496 res: gr_ptr,
497 x: ulong,
498 len: slong,
499 ctx: *mut gr_ctx_struct,
500 ) -> libc::c_int;
501 pub fn gr_generic_vec_init(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
502 pub fn gr_generic_vec_clear(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
503 pub fn gr_generic_vec_swap(vec1: gr_ptr, vec2: gr_ptr, len: slong, ctx: *mut gr_ctx_struct);
504 pub fn gr_generic_vec_zero(vec: gr_ptr, len: slong, ctx: *mut gr_ctx_struct) -> libc::c_int;
505 pub fn gr_generic_vec_set(
506 res: gr_ptr,
507 src: gr_srcptr,
508 len: slong,
509 ctx: *mut gr_ctx_struct,
510 ) -> libc::c_int;
511 pub fn gr_generic_vec_neg(
512 res: gr_ptr,
513 src: gr_srcptr,
514 len: slong,
515 ctx: *mut gr_ctx_struct,
516 ) -> libc::c_int;
517 pub fn gr_generic_vec_normalise(
518 res: *mut slong,
519 vec: gr_srcptr,
520 len: slong,
521 ctx: *mut gr_ctx_struct,
522 ) -> libc::c_int;
523 pub fn gr_generic_vec_normalise_weak(
524 vec: gr_srcptr,
525 len: slong,
526 ctx: *mut gr_ctx_struct,
527 ) -> slong;
528 pub fn gr_generic_vec_mul_scalar_2exp_si(
529 vec1: gr_ptr,
530 vec2: gr_srcptr,
531 len: slong,
532 c: slong,
533 ctx: *mut gr_ctx_struct,
534 ) -> libc::c_int;
535 pub fn gr_generic_vec_addmul_scalar(
536 vec1: gr_ptr,
537 vec2: gr_srcptr,
538 len: slong,
539 c: gr_srcptr,
540 ctx: *mut gr_ctx_struct,
541 ) -> libc::c_int;
542 pub fn gr_generic_vec_submul_scalar(
543 vec1: gr_ptr,
544 vec2: gr_srcptr,
545 len: slong,
546 c: gr_srcptr,
547 ctx: *mut gr_ctx_struct,
548 ) -> libc::c_int;
549 pub fn gr_generic_vec_addmul_scalar_si(
550 vec1: gr_ptr,
551 vec2: gr_srcptr,
552 len: slong,
553 c: slong,
554 ctx: *mut gr_ctx_struct,
555 ) -> libc::c_int;
556 pub fn gr_generic_vec_submul_scalar_si(
557 vec1: gr_ptr,
558 vec2: gr_srcptr,
559 len: slong,
560 c: slong,
561 ctx: *mut gr_ctx_struct,
562 ) -> libc::c_int;
563 pub fn gr_generic_vec_addmul_scalar_fmpz(
564 vec1: gr_ptr,
565 vec2: gr_srcptr,
566 len: slong,
567 c: *const fmpz,
568 ctx: *mut gr_ctx_struct,
569 ) -> libc::c_int;
570 pub fn gr_generic_vec_equal(
571 vec1: gr_srcptr,
572 vec2: gr_srcptr,
573 len: slong,
574 ctx: *mut gr_ctx_struct,
575 ) -> truth_t;
576 pub fn gr_generic_vec_is_zero(
577 vec: gr_srcptr,
578 len: slong,
579 ctx: *mut gr_ctx_struct,
580 ) -> libc::c_int;
581 pub fn gr_generic_vec_dot(
582 res: gr_ptr,
583 initial: gr_srcptr,
584 subtract: libc::c_int,
585 vec1: gr_srcptr,
586 vec2: gr_srcptr,
587 len: slong,
588 ctx: *mut gr_ctx_struct,
589 ) -> libc::c_int;
590 pub fn gr_generic_vec_dot_rev(
591 res: gr_ptr,
592 initial: gr_srcptr,
593 subtract: libc::c_int,
594 vec1: gr_srcptr,
595 vec2: gr_srcptr,
596 len: slong,
597 ctx: *mut gr_ctx_struct,
598 ) -> libc::c_int;
599 pub fn gr_generic_vec_dot_ui(
600 res: gr_ptr,
601 initial: gr_srcptr,
602 subtract: libc::c_int,
603 vec1: gr_srcptr,
604 vec2: *const ulong,
605 len: slong,
606 ctx: *mut gr_ctx_struct,
607 ) -> libc::c_int;
608 pub fn gr_generic_vec_dot_si(
609 res: gr_ptr,
610 initial: gr_srcptr,
611 subtract: libc::c_int,
612 vec1: gr_srcptr,
613 vec2: *const slong,
614 len: slong,
615 ctx: *mut gr_ctx_struct,
616 ) -> libc::c_int;
617 pub fn gr_generic_vec_dot_fmpz(
618 res: gr_ptr,
619 initial: gr_srcptr,
620 subtract: libc::c_int,
621 vec1: gr_srcptr,
622 vec2: *const fmpz,
623 len: slong,
624 ctx: *mut gr_ctx_struct,
625 ) -> libc::c_int;
626 pub fn gr_generic_vec_set_powers(
627 res: gr_ptr,
628 x: gr_srcptr,
629 len: slong,
630 ctx: *mut gr_ctx_struct,
631 ) -> libc::c_int;
632 pub fn gr_generic_vec_reciprocals(
633 res: gr_ptr,
634 len: slong,
635 ctx: *mut gr_ctx_struct,
636 ) -> libc::c_int;
637 pub fn gr_generic_vec_add(
638 res: gr_ptr,
639 src1: gr_srcptr,
640 src2: gr_srcptr,
641 len: slong,
642 ctx: *mut gr_ctx_struct,
643 ) -> libc::c_int;
644 pub fn gr_generic_vec_sub(
645 res: gr_ptr,
646 src1: gr_srcptr,
647 src2: gr_srcptr,
648 len: slong,
649 ctx: *mut gr_ctx_struct,
650 ) -> libc::c_int;
651 pub fn gr_generic_vec_mul(
652 res: gr_ptr,
653 src1: gr_srcptr,
654 src2: gr_srcptr,
655 len: slong,
656 ctx: *mut gr_ctx_struct,
657 ) -> libc::c_int;
658 pub fn gr_generic_vec_div(
659 res: gr_ptr,
660 src1: gr_srcptr,
661 src2: gr_srcptr,
662 len: slong,
663 ctx: *mut gr_ctx_struct,
664 ) -> libc::c_int;
665 pub fn gr_generic_vec_divexact(
666 res: gr_ptr,
667 src1: gr_srcptr,
668 src2: gr_srcptr,
669 len: slong,
670 ctx: *mut gr_ctx_struct,
671 ) -> libc::c_int;
672 pub fn gr_generic_vec_pow(
673 res: gr_ptr,
674 src1: gr_srcptr,
675 src2: gr_srcptr,
676 len: slong,
677 ctx: *mut gr_ctx_struct,
678 ) -> libc::c_int;
679 pub fn gr_generic_vec_add_scalar(
680 vec1: gr_ptr,
681 vec2: gr_srcptr,
682 len: slong,
683 c: gr_srcptr,
684 ctx: *mut gr_ctx_struct,
685 ) -> libc::c_int;
686 pub fn gr_generic_vec_sub_scalar(
687 vec1: gr_ptr,
688 vec2: gr_srcptr,
689 len: slong,
690 c: gr_srcptr,
691 ctx: *mut gr_ctx_struct,
692 ) -> libc::c_int;
693 pub fn gr_generic_vec_mul_scalar(
694 vec1: gr_ptr,
695 vec2: gr_srcptr,
696 len: slong,
697 c: gr_srcptr,
698 ctx: *mut gr_ctx_struct,
699 ) -> libc::c_int;
700 pub fn gr_generic_vec_div_scalar(
701 vec1: gr_ptr,
702 vec2: gr_srcptr,
703 len: slong,
704 c: gr_srcptr,
705 ctx: *mut gr_ctx_struct,
706 ) -> libc::c_int;
707 pub fn gr_generic_vec_divexact_scalar(
708 vec1: gr_ptr,
709 vec2: gr_srcptr,
710 len: slong,
711 c: gr_srcptr,
712 ctx: *mut gr_ctx_struct,
713 ) -> libc::c_int;
714 pub fn gr_generic_vec_pow_scalar(
715 vec1: gr_ptr,
716 vec2: gr_srcptr,
717 len: slong,
718 c: gr_srcptr,
719 ctx: *mut gr_ctx_struct,
720 ) -> libc::c_int;
721 pub fn gr_generic_vec_add_scalar_si(
722 vec1: gr_ptr,
723 vec2: gr_srcptr,
724 len: slong,
725 c: slong,
726 ctx: *mut gr_ctx_struct,
727 ) -> libc::c_int;
728 pub fn gr_generic_vec_sub_scalar_si(
729 vec1: gr_ptr,
730 vec2: gr_srcptr,
731 len: slong,
732 c: slong,
733 ctx: *mut gr_ctx_struct,
734 ) -> libc::c_int;
735 pub fn gr_generic_vec_mul_scalar_si(
736 vec1: gr_ptr,
737 vec2: gr_srcptr,
738 len: slong,
739 c: slong,
740 ctx: *mut gr_ctx_struct,
741 ) -> libc::c_int;
742 pub fn gr_generic_vec_div_scalar_si(
743 vec1: gr_ptr,
744 vec2: gr_srcptr,
745 len: slong,
746 c: slong,
747 ctx: *mut gr_ctx_struct,
748 ) -> libc::c_int;
749 pub fn gr_generic_vec_divexact_scalar_si(
750 vec1: gr_ptr,
751 vec2: gr_srcptr,
752 len: slong,
753 c: slong,
754 ctx: *mut gr_ctx_struct,
755 ) -> libc::c_int;
756 pub fn gr_generic_vec_pow_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 pub fn gr_generic_vec_add_scalar_ui(
764 vec1: gr_ptr,
765 vec2: gr_srcptr,
766 len: slong,
767 c: ulong,
768 ctx: *mut gr_ctx_struct,
769 ) -> libc::c_int;
770 pub fn gr_generic_vec_sub_scalar_ui(
771 vec1: gr_ptr,
772 vec2: gr_srcptr,
773 len: slong,
774 c: ulong,
775 ctx: *mut gr_ctx_struct,
776 ) -> libc::c_int;
777 pub fn gr_generic_vec_mul_scalar_ui(
778 vec1: gr_ptr,
779 vec2: gr_srcptr,
780 len: slong,
781 c: ulong,
782 ctx: *mut gr_ctx_struct,
783 ) -> libc::c_int;
784 pub fn gr_generic_vec_div_scalar_ui(
785 vec1: gr_ptr,
786 vec2: gr_srcptr,
787 len: slong,
788 c: ulong,
789 ctx: *mut gr_ctx_struct,
790 ) -> libc::c_int;
791 pub fn gr_generic_vec_divexact_scalar_ui(
792 vec1: gr_ptr,
793 vec2: gr_srcptr,
794 len: slong,
795 c: ulong,
796 ctx: *mut gr_ctx_struct,
797 ) -> libc::c_int;
798 pub fn gr_generic_vec_pow_scalar_ui(
799 vec1: gr_ptr,
800 vec2: gr_srcptr,
801 len: slong,
802 c: ulong,
803 ctx: *mut gr_ctx_struct,
804 ) -> libc::c_int;
805 pub fn gr_generic_vec_add_scalar_fmpz(
806 vec1: gr_ptr,
807 vec2: gr_srcptr,
808 len: slong,
809 c: *const fmpz,
810 ctx: *mut gr_ctx_struct,
811 ) -> libc::c_int;
812 pub fn gr_generic_vec_sub_scalar_fmpz(
813 vec1: gr_ptr,
814 vec2: gr_srcptr,
815 len: slong,
816 c: *const fmpz,
817 ctx: *mut gr_ctx_struct,
818 ) -> libc::c_int;
819 pub fn gr_generic_vec_mul_scalar_fmpz(
820 vec1: gr_ptr,
821 vec2: gr_srcptr,
822 len: slong,
823 c: *const fmpz,
824 ctx: *mut gr_ctx_struct,
825 ) -> libc::c_int;
826 pub fn gr_generic_vec_div_scalar_fmpz(
827 vec1: gr_ptr,
828 vec2: gr_srcptr,
829 len: slong,
830 c: *const fmpz,
831 ctx: *mut gr_ctx_struct,
832 ) -> libc::c_int;
833 pub fn gr_generic_vec_divexact_scalar_fmpz(
834 vec1: gr_ptr,
835 vec2: gr_srcptr,
836 len: slong,
837 c: *const fmpz,
838 ctx: *mut gr_ctx_struct,
839 ) -> libc::c_int;
840 pub fn gr_generic_vec_pow_scalar_fmpz(
841 vec1: gr_ptr,
842 vec2: gr_srcptr,
843 len: slong,
844 c: *const fmpz,
845 ctx: *mut gr_ctx_struct,
846 ) -> libc::c_int;
847 pub fn gr_generic_vec_add_scalar_fmpq(
848 vec1: gr_ptr,
849 vec2: gr_srcptr,
850 len: slong,
851 c: *const fmpq,
852 ctx: *mut gr_ctx_struct,
853 ) -> libc::c_int;
854 pub fn gr_generic_vec_sub_scalar_fmpq(
855 vec1: gr_ptr,
856 vec2: gr_srcptr,
857 len: slong,
858 c: *const fmpq,
859 ctx: *mut gr_ctx_struct,
860 ) -> libc::c_int;
861 pub fn gr_generic_vec_mul_scalar_fmpq(
862 vec1: gr_ptr,
863 vec2: gr_srcptr,
864 len: slong,
865 c: *const fmpq,
866 ctx: *mut gr_ctx_struct,
867 ) -> libc::c_int;
868 pub fn gr_generic_vec_div_scalar_fmpq(
869 vec1: gr_ptr,
870 vec2: gr_srcptr,
871 len: slong,
872 c: *const fmpq,
873 ctx: *mut gr_ctx_struct,
874 ) -> libc::c_int;
875 pub fn gr_generic_vec_divexact_scalar_fmpq(
876 vec1: gr_ptr,
877 vec2: gr_srcptr,
878 len: slong,
879 c: *const fmpq,
880 ctx: *mut gr_ctx_struct,
881 ) -> libc::c_int;
882 pub fn gr_generic_vec_pow_scalar_fmpq(
883 vec1: gr_ptr,
884 vec2: gr_srcptr,
885 len: slong,
886 c: *const fmpq,
887 ctx: *mut gr_ctx_struct,
888 ) -> libc::c_int;
889 pub fn gr_generic_scalar_add_vec(
890 vec1: gr_ptr,
891 c: gr_srcptr,
892 vec2: gr_srcptr,
893 len: slong,
894 ctx: *mut gr_ctx_struct,
895 ) -> libc::c_int;
896 pub fn gr_generic_scalar_sub_vec(
897 vec1: gr_ptr,
898 c: gr_srcptr,
899 vec2: gr_srcptr,
900 len: slong,
901 ctx: *mut gr_ctx_struct,
902 ) -> libc::c_int;
903 pub fn gr_generic_scalar_mul_vec(
904 vec1: gr_ptr,
905 c: gr_srcptr,
906 vec2: gr_srcptr,
907 len: slong,
908 ctx: *mut gr_ctx_struct,
909 ) -> libc::c_int;
910 pub fn gr_generic_scalar_div_vec(
911 vec1: gr_ptr,
912 c: gr_srcptr,
913 vec2: gr_srcptr,
914 len: slong,
915 ctx: *mut gr_ctx_struct,
916 ) -> libc::c_int;
917 pub fn gr_generic_scalar_divexact_vec(
918 vec1: gr_ptr,
919 c: gr_srcptr,
920 vec2: gr_srcptr,
921 len: slong,
922 ctx: *mut gr_ctx_struct,
923 ) -> libc::c_int;
924 pub fn gr_generic_scalar_pow_vec(
925 vec1: gr_ptr,
926 c: gr_srcptr,
927 vec2: gr_srcptr,
928 len: slong,
929 ctx: *mut gr_ctx_struct,
930 ) -> libc::c_int;
931 pub fn gr_generic_vec_add_other(
932 vec1: gr_ptr,
933 vec2: gr_srcptr,
934 vec3: gr_srcptr,
935 ctx3: *mut gr_ctx_struct,
936 len: slong,
937 ctx: *mut gr_ctx_struct,
938 ) -> libc::c_int;
939 pub fn gr_generic_vec_sub_other(
940 vec1: gr_ptr,
941 vec2: gr_srcptr,
942 vec3: gr_srcptr,
943 ctx3: *mut gr_ctx_struct,
944 len: slong,
945 ctx: *mut gr_ctx_struct,
946 ) -> libc::c_int;
947 pub fn gr_generic_vec_mul_other(
948 vec1: gr_ptr,
949 vec2: gr_srcptr,
950 vec3: gr_srcptr,
951 ctx3: *mut gr_ctx_struct,
952 len: slong,
953 ctx: *mut gr_ctx_struct,
954 ) -> libc::c_int;
955 pub fn gr_generic_vec_div_other(
956 vec1: gr_ptr,
957 vec2: gr_srcptr,
958 vec3: gr_srcptr,
959 ctx3: *mut gr_ctx_struct,
960 len: slong,
961 ctx: *mut gr_ctx_struct,
962 ) -> libc::c_int;
963 pub fn gr_generic_vec_divexact_other(
964 vec1: gr_ptr,
965 vec2: gr_srcptr,
966 vec3: gr_srcptr,
967 ctx3: *mut gr_ctx_struct,
968 len: slong,
969 ctx: *mut gr_ctx_struct,
970 ) -> libc::c_int;
971 pub fn gr_generic_vec_pow_other(
972 vec1: gr_ptr,
973 vec2: gr_srcptr,
974 vec3: gr_srcptr,
975 ctx3: *mut gr_ctx_struct,
976 len: slong,
977 ctx: *mut gr_ctx_struct,
978 ) -> libc::c_int;
979 pub fn gr_generic_other_add_vec(
980 vec1: gr_ptr,
981 vec2: gr_srcptr,
982 ctx2: *mut gr_ctx_struct,
983 vec3: gr_srcptr,
984 len: slong,
985 ctx: *mut gr_ctx_struct,
986 ) -> libc::c_int;
987 pub fn gr_generic_other_sub_vec(
988 vec1: gr_ptr,
989 vec2: gr_srcptr,
990 ctx2: *mut gr_ctx_struct,
991 vec3: gr_srcptr,
992 len: slong,
993 ctx: *mut gr_ctx_struct,
994 ) -> libc::c_int;
995 pub fn gr_generic_other_mul_vec(
996 vec1: gr_ptr,
997 vec2: gr_srcptr,
998 ctx2: *mut gr_ctx_struct,
999 vec3: gr_srcptr,
1000 len: slong,
1001 ctx: *mut gr_ctx_struct,
1002 ) -> libc::c_int;
1003 pub fn gr_generic_other_div_vec(
1004 vec1: gr_ptr,
1005 vec2: gr_srcptr,
1006 ctx2: *mut gr_ctx_struct,
1007 vec3: gr_srcptr,
1008 len: slong,
1009 ctx: *mut gr_ctx_struct,
1010 ) -> libc::c_int;
1011 pub fn gr_generic_other_divexact_vec(
1012 vec1: gr_ptr,
1013 vec2: gr_srcptr,
1014 ctx2: *mut gr_ctx_struct,
1015 vec3: gr_srcptr,
1016 len: slong,
1017 ctx: *mut gr_ctx_struct,
1018 ) -> libc::c_int;
1019 pub fn gr_generic_other_pow_vec(
1020 vec1: gr_ptr,
1021 vec2: gr_srcptr,
1022 ctx2: *mut gr_ctx_struct,
1023 vec3: gr_srcptr,
1024 len: slong,
1025 ctx: *mut gr_ctx_struct,
1026 ) -> libc::c_int;
1027 pub fn gr_generic_vec_add_scalar_other(
1028 vec1: gr_ptr,
1029 vec2: gr_srcptr,
1030 len: slong,
1031 c: gr_srcptr,
1032 cctx: *mut gr_ctx_struct,
1033 ctx: *mut gr_ctx_struct,
1034 ) -> libc::c_int;
1035 pub fn gr_generic_vec_sub_scalar_other(
1036 vec1: gr_ptr,
1037 vec2: gr_srcptr,
1038 len: slong,
1039 c: gr_srcptr,
1040 cctx: *mut gr_ctx_struct,
1041 ctx: *mut gr_ctx_struct,
1042 ) -> libc::c_int;
1043 pub fn gr_generic_vec_mul_scalar_other(
1044 vec1: gr_ptr,
1045 vec2: gr_srcptr,
1046 len: slong,
1047 c: gr_srcptr,
1048 cctx: *mut gr_ctx_struct,
1049 ctx: *mut gr_ctx_struct,
1050 ) -> libc::c_int;
1051 pub fn gr_generic_vec_div_scalar_other(
1052 vec1: gr_ptr,
1053 vec2: gr_srcptr,
1054 len: slong,
1055 c: gr_srcptr,
1056 cctx: *mut gr_ctx_struct,
1057 ctx: *mut gr_ctx_struct,
1058 ) -> libc::c_int;
1059 pub fn gr_generic_vec_divexact_scalar_other(
1060 vec1: gr_ptr,
1061 vec2: gr_srcptr,
1062 len: slong,
1063 c: gr_srcptr,
1064 cctx: *mut gr_ctx_struct,
1065 ctx: *mut gr_ctx_struct,
1066 ) -> libc::c_int;
1067 pub fn gr_generic_vec_pow_scalar_other(
1068 vec1: gr_ptr,
1069 vec2: gr_srcptr,
1070 len: slong,
1071 c: gr_srcptr,
1072 cctx: *mut gr_ctx_struct,
1073 ctx: *mut gr_ctx_struct,
1074 ) -> libc::c_int;
1075 pub fn gr_generic_scalar_other_add_vec(
1076 vec1: gr_ptr,
1077 c: gr_srcptr,
1078 cctx: *mut gr_ctx_struct,
1079 vec2: gr_srcptr,
1080 len: slong,
1081 ctx: *mut gr_ctx_struct,
1082 ) -> libc::c_int;
1083 pub fn gr_generic_scalar_other_sub_vec(
1084 vec1: gr_ptr,
1085 c: gr_srcptr,
1086 cctx: *mut gr_ctx_struct,
1087 vec2: gr_srcptr,
1088 len: slong,
1089 ctx: *mut gr_ctx_struct,
1090 ) -> libc::c_int;
1091 pub fn gr_generic_scalar_other_mul_vec(
1092 vec1: gr_ptr,
1093 c: gr_srcptr,
1094 cctx: *mut gr_ctx_struct,
1095 vec2: gr_srcptr,
1096 len: slong,
1097 ctx: *mut gr_ctx_struct,
1098 ) -> libc::c_int;
1099 pub fn gr_generic_scalar_other_div_vec(
1100 vec1: gr_ptr,
1101 c: gr_srcptr,
1102 cctx: *mut gr_ctx_struct,
1103 vec2: gr_srcptr,
1104 len: slong,
1105 ctx: *mut gr_ctx_struct,
1106 ) -> libc::c_int;
1107 pub fn gr_generic_scalar_other_divexact_vec(
1108 vec1: gr_ptr,
1109 c: gr_srcptr,
1110 cctx: *mut gr_ctx_struct,
1111 vec2: gr_srcptr,
1112 len: slong,
1113 ctx: *mut gr_ctx_struct,
1114 ) -> libc::c_int;
1115 pub fn gr_generic_scalar_other_pow_vec(
1116 vec1: gr_ptr,
1117 c: gr_srcptr,
1118 cctx: *mut gr_ctx_struct,
1119 vec2: gr_srcptr,
1120 len: slong,
1121 ctx: *mut gr_ctx_struct,
1122 ) -> libc::c_int;
1123}