1use crate::deps::*;
4use crate::flint::*;
5use crate::fmpq_types::*;
6use crate::fmpz_mod_types::*;
7use crate::fmpz_types::*;
8use crate::nf::*;
9use crate::nmod_types::*;
10
11
12#[repr(C)]
13pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
14impl<T> __BindgenUnionField<T> {
15 #[inline]
16 pub const fn new() -> Self {
17 __BindgenUnionField(::std::marker::PhantomData)
18 }
19 #[inline]
20 pub unsafe fn as_ref(&self) -> &T {
21 ::std::mem::transmute(self)
22 }
23 #[inline]
24 pub unsafe fn as_mut(&mut self) -> &mut T {
25 ::std::mem::transmute(self)
26 }
27}
28impl<T> ::std::default::Default for __BindgenUnionField<T> {
29 #[inline]
30 fn default() -> Self {
31 Self::new()
32 }
33}
34impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
35 #[inline]
36 fn clone(&self) -> Self {
37 *self
38 }
39}
40impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
41impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
42 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
43 fmt.write_str("__BindgenUnionField")
44 }
45}
46impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
47 fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
48}
49impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
50 fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
51 true
52 }
53}
54impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
55#[repr(C)]
56pub struct lnf_elem_struct {
57 pub num: fmpz_t,
58 pub den: fmpz_t,
59}
60#[allow(clippy::unnecessary_operation, clippy::identity_op)]
61const _: () = {
62 ["Size of lnf_elem_struct"][::std::mem::size_of::<lnf_elem_struct>() - 16usize];
63 ["Alignment of lnf_elem_struct"][::std::mem::align_of::<lnf_elem_struct>() - 8usize];
64 ["Offset of field: lnf_elem_struct::num"]
65 [::std::mem::offset_of!(lnf_elem_struct, num) - 0usize];
66 ["Offset of field: lnf_elem_struct::den"]
67 [::std::mem::offset_of!(lnf_elem_struct, den) - 8usize];
68};
69impl Default for lnf_elem_struct {
70 fn default() -> Self {
71 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
72 unsafe {
73 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
74 s.assume_init()
75 }
76 }
77}
78pub type lnf_elem_t = [lnf_elem_struct; 1usize];
79#[repr(C)]
80pub struct qnf_elem_struct {
81 pub num: [fmpz; 3usize],
82 pub den: fmpz_t,
83}
84#[allow(clippy::unnecessary_operation, clippy::identity_op)]
85const _: () = {
86 ["Size of qnf_elem_struct"][::std::mem::size_of::<qnf_elem_struct>() - 32usize];
87 ["Alignment of qnf_elem_struct"][::std::mem::align_of::<qnf_elem_struct>() - 8usize];
88 ["Offset of field: qnf_elem_struct::num"]
89 [::std::mem::offset_of!(qnf_elem_struct, num) - 0usize];
90 ["Offset of field: qnf_elem_struct::den"]
91 [::std::mem::offset_of!(qnf_elem_struct, den) - 24usize];
92};
93impl Default for qnf_elem_struct {
94 fn default() -> Self {
95 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
96 unsafe {
97 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
98 s.assume_init()
99 }
100 }
101}
102pub type qnf_elem_t = [qnf_elem_struct; 1usize];
103#[repr(C)]
104pub struct nf_elem_struct {
105 pub elem: __BindgenUnionField<fmpq_poly_t>,
106 pub lelem: __BindgenUnionField<lnf_elem_t>,
107 pub qelem: __BindgenUnionField<qnf_elem_t>,
108 pub bindgen_union_field: [u64; 4usize],
109}
110#[allow(clippy::unnecessary_operation, clippy::identity_op)]
111const _: () = {
112 ["Size of nf_elem_struct"][::std::mem::size_of::<nf_elem_struct>() - 32usize];
113 ["Alignment of nf_elem_struct"][::std::mem::align_of::<nf_elem_struct>() - 8usize];
114 ["Offset of field: nf_elem_struct::elem"]
115 [::std::mem::offset_of!(nf_elem_struct, elem) - 0usize];
116 ["Offset of field: nf_elem_struct::lelem"]
117 [::std::mem::offset_of!(nf_elem_struct, lelem) - 0usize];
118 ["Offset of field: nf_elem_struct::qelem"]
119 [::std::mem::offset_of!(nf_elem_struct, qelem) - 0usize];
120};
121impl Default for nf_elem_struct {
122 fn default() -> Self {
123 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
124 unsafe {
125 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
126 s.assume_init()
127 }
128 }
129}
130pub type nf_elem_t = [nf_elem_struct; 1usize];
131extern "C" {
132 pub fn nf_elem_init(a: *mut nf_elem_struct, nf: *const nf_struct);
133 pub fn nf_elem_clear(a: *mut nf_elem_struct, nf: *const nf_struct);
134 pub fn nf_elem_swap(a: *mut nf_elem_struct, b: *mut nf_elem_struct, nf: *const nf_struct);
135 pub fn nf_elem_randtest(
136 a: *mut nf_elem_struct,
137 state: *mut flint_rand_struct,
138 bits: flint_bitcnt_t,
139 nf: *const nf_struct,
140 );
141 pub fn nf_elem_randtest_not_zero(
142 a: *mut nf_elem_struct,
143 state: *mut flint_rand_struct,
144 bits: flint_bitcnt_t,
145 nf: *const nf_struct,
146 );
147 #[link_name = "nf_elem_canonicalise__extern"]
148 pub fn nf_elem_canonicalise(a: *mut nf_elem_struct, nf: *const nf_struct);
149 pub fn _nf_elem_reduce(a: *mut nf_elem_struct, nf: *const nf_struct);
150 pub fn nf_elem_reduce(a: *mut nf_elem_struct, nf: *const nf_struct);
151 pub fn _nf_elem_invertible_check(a: *mut nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
152 pub fn _nf_elem_equal(
153 a: *const nf_elem_struct,
154 b: *const nf_elem_struct,
155 nf: *const nf_struct,
156 ) -> libc::c_int;
157 pub fn nf_elem_equal(
158 a: *const nf_elem_struct,
159 b: *const nf_elem_struct,
160 nf: *const nf_struct,
161 ) -> libc::c_int;
162 #[link_name = "nf_elem_is_zero__extern"]
163 pub fn nf_elem_is_zero(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
164 #[link_name = "nf_elem_is_one__extern"]
165 pub fn nf_elem_is_one(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
166 pub fn nf_elem_is_gen(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
167 #[link_name = "nf_elem_is_integer__extern"]
168 pub fn nf_elem_is_integer(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
169 #[link_name = "nf_elem_is_rational__extern"]
170 pub fn nf_elem_is_rational(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
171 pub fn nf_elem_equal_si(
172 a: *const nf_elem_struct,
173 b: slong,
174 nf: *const nf_struct,
175 ) -> libc::c_int;
176 pub fn nf_elem_equal_ui(
177 a: *const nf_elem_struct,
178 b: ulong,
179 nf: *const nf_struct,
180 ) -> libc::c_int;
181 pub fn nf_elem_equal_fmpz(
182 a: *const nf_elem_struct,
183 b: *const fmpz,
184 nf: *const nf_struct,
185 ) -> libc::c_int;
186 pub fn nf_elem_equal_fmpq(
187 a: *const nf_elem_struct,
188 b: *const fmpq,
189 nf: *const nf_struct,
190 ) -> libc::c_int;
191 pub fn nf_elem_print_pretty(
192 a: *const nf_elem_struct,
193 nf: *const nf_struct,
194 var: *const libc::c_char,
195 );
196 pub fn nf_elem_get_str_pretty(
197 a: *const nf_elem_struct,
198 var: *const libc::c_char,
199 nf: *const nf_struct,
200 ) -> *mut libc::c_char;
201 pub fn nf_elem_zero(a: *mut nf_elem_struct, nf: *const nf_struct);
202 pub fn nf_elem_one(a: *mut nf_elem_struct, nf: *const nf_struct);
203 pub fn nf_elem_gen(a: *mut nf_elem_struct, nf: *const nf_struct);
204 pub fn nf_elem_set(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
205 pub fn nf_elem_set_si(a: *mut nf_elem_struct, c: slong, nf: *const nf_struct);
206 pub fn nf_elem_set_ui(a: *mut nf_elem_struct, c: ulong, nf: *const nf_struct);
207 pub fn nf_elem_set_fmpz(a: *mut nf_elem_struct, c: *const fmpz, nf: *const nf_struct);
208 pub fn nf_elem_set_fmpq(a: *mut nf_elem_struct, c: *const fmpq, nf: *const nf_struct);
209 pub fn nf_elem_set_fmpq_poly(
210 a: *mut nf_elem_struct,
211 pol: *const fmpq_poly_struct,
212 nf: *const nf_struct,
213 );
214 pub fn nf_elem_set_fmpz_mat_row(
215 b: *mut nf_elem_struct,
216 M: *const fmpz_mat_struct,
217 i: slong,
218 den: *mut fmpz,
219 nf: *const nf_struct,
220 );
221 pub fn nf_elem_get_fmpz_mat_row(
222 M: *mut fmpz_mat_struct,
223 i: slong,
224 den: *mut fmpz,
225 b: *const nf_elem_struct,
226 nf: *const nf_struct,
227 );
228 pub fn nf_elem_get_fmpq_poly(
229 pol: *mut fmpq_poly_struct,
230 a: *const nf_elem_struct,
231 nf: *const nf_struct,
232 );
233 pub fn nf_elem_get_nmod_poly_den(
234 pol: *mut nmod_poly_struct,
235 a: *const nf_elem_struct,
236 nf: *const nf_struct,
237 den: libc::c_int,
238 );
239 pub fn _nf_elem_get_nmod_poly(
240 pol: *mut nmod_poly_struct,
241 a: *const nf_elem_struct,
242 nf: *const nf_struct,
243 );
244 pub fn nf_elem_get_nmod_poly(
245 pol: *mut nmod_poly_struct,
246 a: *const nf_elem_struct,
247 nf: *const nf_struct,
248 );
249 pub fn nf_elem_get_fmpz_mod_poly_den(
250 pol: *mut fmpz_mod_poly_struct,
251 a: *const nf_elem_struct,
252 nf: *const nf_struct,
253 den: libc::c_int,
254 ctx: *const fmpz_mod_ctx_struct,
255 );
256 pub fn _nf_elem_get_fmpz_mod_poly(
257 pol: *mut fmpz_mod_poly_struct,
258 a: *const nf_elem_struct,
259 nf: *const nf_struct,
260 ctx: *const fmpz_mod_ctx_struct,
261 );
262 pub fn nf_elem_get_fmpz_mod_poly(
263 pol: *mut fmpz_mod_poly_struct,
264 a: *const nf_elem_struct,
265 nf: *const nf_struct,
266 ctx: *const fmpz_mod_ctx_struct,
267 );
268 #[link_name = "nf_elem_get_den__extern"]
269 pub fn nf_elem_get_den(d: *mut fmpz, b: *const nf_elem_struct, nf: *const nf_struct);
270 #[link_name = "nf_elem_set_den__extern"]
271 pub fn nf_elem_set_den(b: *mut nf_elem_struct, d: *mut fmpz, nf: *const nf_struct);
272 pub fn nf_elem_get_coeff_fmpq(
273 a: *mut fmpq,
274 b: *const nf_elem_struct,
275 i: slong,
276 nf: *const nf_struct,
277 );
278 pub fn nf_elem_get_coeff_fmpz(
279 a: *mut fmpz,
280 b: *const nf_elem_struct,
281 i: slong,
282 nf: *const nf_struct,
283 );
284 #[link_name = "nf_elem_den_is_one__extern"]
285 pub fn nf_elem_den_is_one(a: *const nf_elem_struct, nf: *const nf_struct) -> libc::c_int;
286 pub fn _nf_elem_set_coeff_num_fmpz(
287 a: *mut nf_elem_struct,
288 i: slong,
289 b: *const fmpz,
290 nf: *const nf_struct,
291 );
292 pub fn nf_elem_neg(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
293 pub fn nf_elem_add_si(
294 a: *mut nf_elem_struct,
295 b: *const nf_elem_struct,
296 c: slong,
297 nf: *const nf_struct,
298 );
299 pub fn nf_elem_add_fmpz(
300 a: *mut nf_elem_struct,
301 b: *const nf_elem_struct,
302 c: *const fmpz,
303 nf: *const nf_struct,
304 );
305 pub fn nf_elem_add_fmpq(
306 a: *mut nf_elem_struct,
307 b: *const nf_elem_struct,
308 c: *const fmpq,
309 nf: *const nf_struct,
310 );
311 pub fn nf_elem_sub_si(
312 a: *mut nf_elem_struct,
313 b: *const nf_elem_struct,
314 c: slong,
315 nf: *const nf_struct,
316 );
317 pub fn nf_elem_sub_fmpz(
318 a: *mut nf_elem_struct,
319 b: *const nf_elem_struct,
320 c: *const fmpz,
321 nf: *const nf_struct,
322 );
323 pub fn nf_elem_sub_fmpq(
324 a: *mut nf_elem_struct,
325 b: *const nf_elem_struct,
326 c: *const fmpq,
327 nf: *const nf_struct,
328 );
329 pub fn nf_elem_si_sub(
330 a: *mut nf_elem_struct,
331 c: slong,
332 b: *const nf_elem_struct,
333 nf: *const nf_struct,
334 );
335 pub fn nf_elem_fmpz_sub(
336 a: *mut nf_elem_struct,
337 c: *const fmpz,
338 b: *const nf_elem_struct,
339 nf: *const nf_struct,
340 );
341 pub fn nf_elem_fmpq_sub(
342 a: *mut nf_elem_struct,
343 c: *const fmpq,
344 b: *const nf_elem_struct,
345 nf: *const nf_struct,
346 );
347 pub fn nf_elem_scalar_mul_si(
348 a: *mut nf_elem_struct,
349 b: *const nf_elem_struct,
350 c: slong,
351 nf: *const nf_struct,
352 );
353 pub fn nf_elem_scalar_mul_fmpz(
354 a: *mut nf_elem_struct,
355 b: *const nf_elem_struct,
356 c: *const fmpz,
357 nf: *const nf_struct,
358 );
359 pub fn nf_elem_scalar_mul_fmpq(
360 a: *mut nf_elem_struct,
361 b: *const nf_elem_struct,
362 c: *const fmpq,
363 nf: *const nf_struct,
364 );
365 pub fn nf_elem_scalar_div_si(
366 a: *mut nf_elem_struct,
367 b: *const nf_elem_struct,
368 c: slong,
369 nf: *const nf_struct,
370 );
371 pub fn nf_elem_scalar_div_fmpz(
372 a: *mut nf_elem_struct,
373 b: *const nf_elem_struct,
374 c: *const fmpz,
375 nf: *const nf_struct,
376 );
377 pub fn nf_elem_scalar_div_fmpq(
378 a: *mut nf_elem_struct,
379 b: *const nf_elem_struct,
380 c: *const fmpq,
381 nf: *const nf_struct,
382 );
383 pub fn _nf_elem_add_lf(
384 a: *mut nf_elem_struct,
385 b: *const nf_elem_struct,
386 c: *const nf_elem_struct,
387 nf: *const nf_struct,
388 can: libc::c_int,
389 );
390 pub fn _nf_elem_sub_lf(
391 a: *mut nf_elem_struct,
392 b: *const nf_elem_struct,
393 c: *const nf_elem_struct,
394 nf: *const nf_struct,
395 can: libc::c_int,
396 );
397 pub fn _nf_elem_add_qf(
398 a: *mut nf_elem_struct,
399 b: *const nf_elem_struct,
400 c: *const nf_elem_struct,
401 nf: *const nf_struct,
402 can: libc::c_int,
403 );
404 pub fn nf_elem_add_qf(
405 a: *mut nf_elem_struct,
406 b: *const nf_elem_struct,
407 c: *const nf_elem_struct,
408 nf: *const nf_struct,
409 );
410 pub fn _nf_elem_sub_qf(
411 a: *mut nf_elem_struct,
412 b: *const nf_elem_struct,
413 c: *const nf_elem_struct,
414 nf: *const nf_struct,
415 can: libc::c_int,
416 );
417 pub fn nf_elem_sub_qf(
418 a: *mut nf_elem_struct,
419 b: *const nf_elem_struct,
420 c: *const nf_elem_struct,
421 nf: *const nf_struct,
422 );
423 pub fn _nf_elem_add(
424 a: *mut nf_elem_struct,
425 b: *const nf_elem_struct,
426 c: *const nf_elem_struct,
427 nf: *const nf_struct,
428 );
429 pub fn nf_elem_add(
430 a: *mut nf_elem_struct,
431 b: *const nf_elem_struct,
432 c: *const nf_elem_struct,
433 nf: *const nf_struct,
434 );
435 pub fn _nf_elem_sub(
436 a: *mut nf_elem_struct,
437 b: *const nf_elem_struct,
438 c: *const nf_elem_struct,
439 nf: *const nf_struct,
440 );
441 pub fn nf_elem_sub(
442 a: *mut nf_elem_struct,
443 b: *const nf_elem_struct,
444 c: *const nf_elem_struct,
445 nf: *const nf_struct,
446 );
447 pub fn nf_elem_mul_gen(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
448 pub fn _nf_elem_mul(
449 a: *mut nf_elem_struct,
450 b: *const nf_elem_struct,
451 c: *const nf_elem_struct,
452 nf: *const nf_struct,
453 );
454 pub fn nf_elem_mul(
455 a: *mut nf_elem_struct,
456 b: *const nf_elem_struct,
457 c: *const nf_elem_struct,
458 nf: *const nf_struct,
459 );
460 pub fn _nf_elem_mul_red(
461 a: *mut nf_elem_struct,
462 b: *const nf_elem_struct,
463 c: *const nf_elem_struct,
464 nf: *const nf_struct,
465 red: libc::c_int,
466 );
467 pub fn nf_elem_mul_red(
468 a: *mut nf_elem_struct,
469 b: *const nf_elem_struct,
470 c: *const nf_elem_struct,
471 nf: *const nf_struct,
472 red: libc::c_int,
473 );
474 pub fn _nf_elem_inv(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
475 pub fn nf_elem_inv(a: *mut nf_elem_struct, b: *const nf_elem_struct, nf: *const nf_struct);
476 pub fn _nf_elem_div(
477 a: *mut nf_elem_struct,
478 b: *const nf_elem_struct,
479 c: *const nf_elem_struct,
480 nf: *const nf_struct,
481 );
482 pub fn nf_elem_div(
483 a: *mut nf_elem_struct,
484 b: *const nf_elem_struct,
485 c: *const nf_elem_struct,
486 nf: *const nf_struct,
487 );
488 pub fn _nf_elem_pow(
489 res: *mut nf_elem_struct,
490 b: *const nf_elem_struct,
491 e: ulong,
492 nf: *const nf_struct,
493 );
494 pub fn nf_elem_pow(
495 res: *mut nf_elem_struct,
496 a: *const nf_elem_struct,
497 e: ulong,
498 nf: *const nf_struct,
499 );
500 pub fn _nf_elem_norm(
501 rnum: *mut fmpz,
502 rden: *mut fmpz,
503 a: *const nf_elem_struct,
504 nf: *const nf_struct,
505 );
506 pub fn nf_elem_norm(res: *mut fmpq, a: *const nf_elem_struct, nf: *const nf_struct);
507 pub fn _nf_elem_norm_div(
508 rnum: *mut fmpz,
509 rden: *mut fmpz,
510 a: *const nf_elem_struct,
511 nf: *const nf_struct,
512 divisor: *const fmpz,
513 nbits: slong,
514 );
515 pub fn nf_elem_norm_div(
516 res: *mut fmpq,
517 a: *const nf_elem_struct,
518 nf: *const nf_struct,
519 divisor: *const fmpz,
520 nbits: slong,
521 );
522 pub fn _nf_elem_trace(
523 rnum: *mut fmpz,
524 rden: *mut fmpz,
525 a: *const nf_elem_struct,
526 nf: *const nf_struct,
527 );
528 pub fn nf_elem_trace(res: *mut fmpq, a: *const nf_elem_struct, nf: *const nf_struct);
529 pub fn nf_elem_rep_mat(
530 res: *mut fmpq_mat_struct,
531 a: *const nf_elem_struct,
532 nf: *const nf_struct,
533 );
534 pub fn nf_elem_rep_mat_fmpz_mat_den(
535 res: *mut fmpz_mat_struct,
536 den: *mut fmpz,
537 a: *const nf_elem_struct,
538 nf: *const nf_struct,
539 );
540 pub fn nf_elem_mod_fmpz_den(
541 res: *mut nf_elem_struct,
542 a: *const nf_elem_struct,
543 mod_: *const fmpz,
544 nf: *const nf_struct,
545 den: libc::c_int,
546 );
547 pub fn _nf_elem_mod_fmpz(
548 res: *mut nf_elem_struct,
549 a: *const nf_elem_struct,
550 mod_: *const fmpz,
551 nf: *const nf_struct,
552 sign: libc::c_int,
553 );
554 pub fn nf_elem_mod_fmpz(
555 res: *mut nf_elem_struct,
556 a: *const nf_elem_struct,
557 mod_: *const fmpz,
558 nf: *const nf_struct,
559 );
560 pub fn nf_elem_smod_fmpz_den(
561 res: *mut nf_elem_struct,
562 a: *const nf_elem_struct,
563 mod_: *const fmpz,
564 nf: *const nf_struct,
565 den: libc::c_int,
566 );
567 pub fn nf_elem_smod_fmpz(
568 res: *mut nf_elem_struct,
569 a: *const nf_elem_struct,
570 mod_: *const fmpz,
571 nf: *const nf_struct,
572 );
573 pub fn nf_elem_coprime_den(
574 res: *mut nf_elem_struct,
575 a: *const nf_elem_struct,
576 mod_: *const fmpz,
577 nf: *const nf_struct,
578 );
579 pub fn nf_elem_coprime_den_signed(
580 res: *mut nf_elem_struct,
581 a: *const nf_elem_struct,
582 mod_: *const fmpz,
583 nf: *const nf_struct,
584 );
585}