1use crate::deps::*;
4use crate::flint::*;
5use crate::fmpz_mod_types::*;
6use crate::fmpz_mpoly::*;
7use crate::fmpz_poly_factor::*;
8use crate::fmpz_types::*;
9use crate::mpoly_types::*;
10use crate::nmod_types::*;
11
12
13#[repr(C)]
14pub struct fmpz_mpolyv_struct {
15 pub coeffs: *mut fmpz_mpoly_struct,
16 pub alloc: slong,
17 pub length: slong,
18}
19#[allow(clippy::unnecessary_operation, clippy::identity_op)]
20const _: () = {
21 ["Size of fmpz_mpolyv_struct"][::std::mem::size_of::<fmpz_mpolyv_struct>() - 24usize];
22 ["Alignment of fmpz_mpolyv_struct"][::std::mem::align_of::<fmpz_mpolyv_struct>() - 8usize];
23 ["Offset of field: fmpz_mpolyv_struct::coeffs"]
24 [::std::mem::offset_of!(fmpz_mpolyv_struct, coeffs) - 0usize];
25 ["Offset of field: fmpz_mpolyv_struct::alloc"]
26 [::std::mem::offset_of!(fmpz_mpolyv_struct, alloc) - 8usize];
27 ["Offset of field: fmpz_mpolyv_struct::length"]
28 [::std::mem::offset_of!(fmpz_mpolyv_struct, length) - 16usize];
29};
30impl Default for fmpz_mpolyv_struct {
31 fn default() -> Self {
32 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
33 unsafe {
34 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
35 s.assume_init()
36 }
37 }
38}
39pub type fmpz_mpolyv_t = [fmpz_mpolyv_struct; 1usize];
40#[repr(C)]
41pub struct fmpz_poly_pfrac_struct {
42 pub r: slong,
43 pub bits: *mut flint_bitcnt_t,
44 pub a: fmpz_poly_t,
45 pub newa: fmpz_poly_t,
46 pub t: fmpz_poly_t,
47 pub b: *mut fmpz_poly_struct,
48 pub bprod: *mut fmpz_poly_struct,
49 pub old_pk: fmpz_t,
50 pub pk: fmpz_t,
51 pub p: fmpz_t,
52 pub halfpks: *mut fmpz,
53 pub ctxp: fmpz_mod_ctx_t,
54 pub ctxs: *mut fmpz_mod_ctx_struct,
55 pub T: fmpz_mod_poly_t,
56 pub R: fmpz_mod_poly_t,
57 pub Q: fmpz_mod_poly_t,
58 pub B: *mut fmpz_mod_poly_struct,
59 pub invBprod: *mut fmpz_mod_poly_struct,
60 pub inwBprod: *mut fmpz_mod_poly_struct,
61 pub B_inv: *mut fmpz_mod_poly_struct,
62}
63#[allow(clippy::unnecessary_operation, clippy::identity_op)]
64const _: () = {
65 ["Size of fmpz_poly_pfrac_struct"][::std::mem::size_of::<fmpz_poly_pfrac_struct>() - 360usize];
66 ["Alignment of fmpz_poly_pfrac_struct"]
67 [::std::mem::align_of::<fmpz_poly_pfrac_struct>() - 8usize];
68 ["Offset of field: fmpz_poly_pfrac_struct::r"]
69 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, r) - 0usize];
70 ["Offset of field: fmpz_poly_pfrac_struct::bits"]
71 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, bits) - 8usize];
72 ["Offset of field: fmpz_poly_pfrac_struct::a"]
73 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, a) - 16usize];
74 ["Offset of field: fmpz_poly_pfrac_struct::newa"]
75 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, newa) - 40usize];
76 ["Offset of field: fmpz_poly_pfrac_struct::t"]
77 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, t) - 64usize];
78 ["Offset of field: fmpz_poly_pfrac_struct::b"]
79 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, b) - 88usize];
80 ["Offset of field: fmpz_poly_pfrac_struct::bprod"]
81 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, bprod) - 96usize];
82 ["Offset of field: fmpz_poly_pfrac_struct::old_pk"]
83 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, old_pk) - 104usize];
84 ["Offset of field: fmpz_poly_pfrac_struct::pk"]
85 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, pk) - 112usize];
86 ["Offset of field: fmpz_poly_pfrac_struct::p"]
87 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, p) - 120usize];
88 ["Offset of field: fmpz_poly_pfrac_struct::halfpks"]
89 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, halfpks) - 128usize];
90 ["Offset of field: fmpz_poly_pfrac_struct::ctxp"]
91 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, ctxp) - 136usize];
92 ["Offset of field: fmpz_poly_pfrac_struct::ctxs"]
93 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, ctxs) - 248usize];
94 ["Offset of field: fmpz_poly_pfrac_struct::T"]
95 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, T) - 256usize];
96 ["Offset of field: fmpz_poly_pfrac_struct::R"]
97 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, R) - 280usize];
98 ["Offset of field: fmpz_poly_pfrac_struct::Q"]
99 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, Q) - 304usize];
100 ["Offset of field: fmpz_poly_pfrac_struct::B"]
101 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, B) - 328usize];
102 ["Offset of field: fmpz_poly_pfrac_struct::invBprod"]
103 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, invBprod) - 336usize];
104 ["Offset of field: fmpz_poly_pfrac_struct::inwBprod"]
105 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, inwBprod) - 344usize];
106 ["Offset of field: fmpz_poly_pfrac_struct::B_inv"]
107 [::std::mem::offset_of!(fmpz_poly_pfrac_struct, B_inv) - 352usize];
108};
109impl Default for fmpz_poly_pfrac_struct {
110 fn default() -> Self {
111 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
112 unsafe {
113 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
114 s.assume_init()
115 }
116 }
117}
118pub type fmpz_poly_pfrac_t = [fmpz_poly_pfrac_struct; 1usize];
119#[repr(C)]
120pub struct fmpz_mpoly_pfrac_struct {
121 pub bits: flint_bitcnt_t,
122 pub w: slong,
123 pub r: slong,
124 pub prod_mbetas: *mut fmpz_mpoly_struct,
125 pub prod_mbetas_coeffs: *mut fmpz_mpolyv_struct,
126 pub mbetas: *mut fmpz_mpoly_struct,
127 pub deltas: *mut fmpz_mpoly_struct,
128 pub xalpha: *mut fmpz_mpoly_struct,
129 pub q: *mut fmpz_mpoly_struct,
130 pub U: *mut fmpz_mpoly_univar_struct,
131 pub G: *mut fmpz_mpoly_geobucket_struct,
132 pub qt: *mut fmpz_mpoly_struct,
133 pub newt: *mut fmpz_mpoly_struct,
134 pub delta_coeffs: *mut fmpz_mpolyv_struct,
135 pub uni_pfrac: fmpz_poly_pfrac_t,
136 pub uni_a: fmpz_poly_t,
137 pub uni_c: *mut fmpz_poly_struct,
138}
139#[allow(clippy::unnecessary_operation, clippy::identity_op)]
140const _: () = {
141 ["Size of fmpz_mpoly_pfrac_struct"]
142 [::std::mem::size_of::<fmpz_mpoly_pfrac_struct>() - 504usize];
143 ["Alignment of fmpz_mpoly_pfrac_struct"]
144 [::std::mem::align_of::<fmpz_mpoly_pfrac_struct>() - 8usize];
145 ["Offset of field: fmpz_mpoly_pfrac_struct::bits"]
146 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, bits) - 0usize];
147 ["Offset of field: fmpz_mpoly_pfrac_struct::w"]
148 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, w) - 8usize];
149 ["Offset of field: fmpz_mpoly_pfrac_struct::r"]
150 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, r) - 16usize];
151 ["Offset of field: fmpz_mpoly_pfrac_struct::prod_mbetas"]
152 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, prod_mbetas) - 24usize];
153 ["Offset of field: fmpz_mpoly_pfrac_struct::prod_mbetas_coeffs"]
154 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, prod_mbetas_coeffs) - 32usize];
155 ["Offset of field: fmpz_mpoly_pfrac_struct::mbetas"]
156 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, mbetas) - 40usize];
157 ["Offset of field: fmpz_mpoly_pfrac_struct::deltas"]
158 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, deltas) - 48usize];
159 ["Offset of field: fmpz_mpoly_pfrac_struct::xalpha"]
160 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, xalpha) - 56usize];
161 ["Offset of field: fmpz_mpoly_pfrac_struct::q"]
162 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, q) - 64usize];
163 ["Offset of field: fmpz_mpoly_pfrac_struct::U"]
164 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, U) - 72usize];
165 ["Offset of field: fmpz_mpoly_pfrac_struct::G"]
166 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, G) - 80usize];
167 ["Offset of field: fmpz_mpoly_pfrac_struct::qt"]
168 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, qt) - 88usize];
169 ["Offset of field: fmpz_mpoly_pfrac_struct::newt"]
170 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, newt) - 96usize];
171 ["Offset of field: fmpz_mpoly_pfrac_struct::delta_coeffs"]
172 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, delta_coeffs) - 104usize];
173 ["Offset of field: fmpz_mpoly_pfrac_struct::uni_pfrac"]
174 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_pfrac) - 112usize];
175 ["Offset of field: fmpz_mpoly_pfrac_struct::uni_a"]
176 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_a) - 472usize];
177 ["Offset of field: fmpz_mpoly_pfrac_struct::uni_c"]
178 [::std::mem::offset_of!(fmpz_mpoly_pfrac_struct, uni_c) - 496usize];
179};
180impl Default for fmpz_mpoly_pfrac_struct {
181 fn default() -> Self {
182 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
183 unsafe {
184 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
185 s.assume_init()
186 }
187 }
188}
189pub type fmpz_mpoly_pfrac_t = [fmpz_mpoly_pfrac_struct; 1usize];
190#[repr(C)]
191pub struct fmpz_bpoly_struct {
192 pub coeffs: *mut fmpz_poly_struct,
193 pub alloc: slong,
194 pub length: slong,
195}
196#[allow(clippy::unnecessary_operation, clippy::identity_op)]
197const _: () = {
198 ["Size of fmpz_bpoly_struct"][::std::mem::size_of::<fmpz_bpoly_struct>() - 24usize];
199 ["Alignment of fmpz_bpoly_struct"][::std::mem::align_of::<fmpz_bpoly_struct>() - 8usize];
200 ["Offset of field: fmpz_bpoly_struct::coeffs"]
201 [::std::mem::offset_of!(fmpz_bpoly_struct, coeffs) - 0usize];
202 ["Offset of field: fmpz_bpoly_struct::alloc"]
203 [::std::mem::offset_of!(fmpz_bpoly_struct, alloc) - 8usize];
204 ["Offset of field: fmpz_bpoly_struct::length"]
205 [::std::mem::offset_of!(fmpz_bpoly_struct, length) - 16usize];
206};
207impl Default for fmpz_bpoly_struct {
208 fn default() -> Self {
209 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
210 unsafe {
211 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
212 s.assume_init()
213 }
214 }
215}
216pub type fmpz_bpoly_t = [fmpz_bpoly_struct; 1usize];
217#[repr(C)]
218pub struct fmpz_tpoly_struct {
219 pub coeffs: *mut fmpz_bpoly_struct,
220 pub alloc: slong,
221 pub length: slong,
222}
223#[allow(clippy::unnecessary_operation, clippy::identity_op)]
224const _: () = {
225 ["Size of fmpz_tpoly_struct"][::std::mem::size_of::<fmpz_tpoly_struct>() - 24usize];
226 ["Alignment of fmpz_tpoly_struct"][::std::mem::align_of::<fmpz_tpoly_struct>() - 8usize];
227 ["Offset of field: fmpz_tpoly_struct::coeffs"]
228 [::std::mem::offset_of!(fmpz_tpoly_struct, coeffs) - 0usize];
229 ["Offset of field: fmpz_tpoly_struct::alloc"]
230 [::std::mem::offset_of!(fmpz_tpoly_struct, alloc) - 8usize];
231 ["Offset of field: fmpz_tpoly_struct::length"]
232 [::std::mem::offset_of!(fmpz_tpoly_struct, length) - 16usize];
233};
234impl Default for fmpz_tpoly_struct {
235 fn default() -> Self {
236 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
237 unsafe {
238 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
239 s.assume_init()
240 }
241 }
242}
243pub type fmpz_tpoly_t = [fmpz_tpoly_struct; 1usize];
244extern "C" {
245 pub fn tuple_print(alpha: *mut fmpz, n: slong);
246 pub fn tuple_saturate(alpha: *mut fmpz, n: slong, m: slong);
247 pub fn tuple_next(alpha: *mut fmpz, n: slong);
248 #[link_name = "fmpz_mpoly_factor_init__extern"]
249 pub fn fmpz_mpoly_factor_init(
250 f: *mut fmpz_mpoly_factor_struct,
251 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
252 );
253 pub fn fmpz_mpoly_factor_init2(
254 f: *mut fmpz_mpoly_factor_struct,
255 alloc: slong,
256 ctx: *const fmpz_mpoly_ctx_struct,
257 );
258 pub fn fmpz_mpoly_factor_realloc(
259 f: *mut fmpz_mpoly_factor_struct,
260 alloc: slong,
261 ctx: *const fmpz_mpoly_ctx_struct,
262 );
263 pub fn fmpz_mpoly_factor_fit_length(
264 f: *mut fmpz_mpoly_factor_struct,
265 len: slong,
266 ctx: *const fmpz_mpoly_ctx_struct,
267 );
268 pub fn fmpz_mpoly_factor_clear(
269 f: *mut fmpz_mpoly_factor_struct,
270 ctx: *const fmpz_mpoly_ctx_struct,
271 );
272 #[link_name = "fmpz_mpoly_factor_length__extern"]
273 pub fn fmpz_mpoly_factor_length(
274 f: *const fmpz_mpoly_factor_struct,
275 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
276 ) -> slong;
277 pub fn fmpz_mpoly_factor_get_constant_fmpz(
278 c: *mut fmpz,
279 f: *const fmpz_mpoly_factor_struct,
280 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
281 );
282 pub fn fmpz_mpoly_factor_get_constant_fmpq(
283 c: *mut fmpq,
284 f: *const fmpz_mpoly_factor_struct,
285 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
286 );
287 #[link_name = "fmpz_mpoly_factor_get_base__extern"]
288 pub fn fmpz_mpoly_factor_get_base(
289 p: *mut fmpz_mpoly_struct,
290 f: *const fmpz_mpoly_factor_struct,
291 i: slong,
292 ctx: *const fmpz_mpoly_ctx_struct,
293 );
294 #[link_name = "fmpz_mpoly_factor_swap_base__extern"]
295 pub fn fmpz_mpoly_factor_swap_base(
296 p: *mut fmpz_mpoly_struct,
297 f: *mut fmpz_mpoly_factor_struct,
298 i: slong,
299 ctx: *const fmpz_mpoly_ctx_struct,
300 );
301 pub fn fmpz_mpoly_factor_get_exp_si(
302 f: *mut fmpz_mpoly_factor_struct,
303 i: slong,
304 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
305 ) -> slong;
306 pub fn fmpz_mpoly_factor_set(
307 f: *mut fmpz_mpoly_factor_struct,
308 g: *const fmpz_mpoly_factor_struct,
309 ctx: *const fmpz_mpoly_ctx_struct,
310 );
311 pub fn fmpz_mpoly_factor_cmp(
312 f: *const fmpz_mpoly_factor_struct,
313 g: *const fmpz_mpoly_factor_struct,
314 ctx: *const fmpz_mpoly_ctx_struct,
315 ) -> libc::c_int;
316 pub fn fmpz_mpoly_factor_print_pretty(
317 f: *const fmpz_mpoly_factor_struct,
318 vars: *mut *const libc::c_char,
319 ctx: *const fmpz_mpoly_ctx_struct,
320 );
321 pub fn fmpz_mpoly_factor_content(
322 f: *mut fmpz_mpoly_factor_struct,
323 A: *const fmpz_mpoly_struct,
324 ctx: *const fmpz_mpoly_ctx_struct,
325 ) -> libc::c_int;
326 pub fn fmpz_mpoly_factor_squarefree(
327 f: *mut fmpz_mpoly_factor_struct,
328 A: *const fmpz_mpoly_struct,
329 ctx: *const fmpz_mpoly_ctx_struct,
330 ) -> libc::c_int;
331 pub fn fmpz_mpoly_factor(
332 f: *mut fmpz_mpoly_factor_struct,
333 A: *const fmpz_mpoly_struct,
334 ctx: *const fmpz_mpoly_ctx_struct,
335 ) -> libc::c_int;
336 #[link_name = "fmpz_mpoly_factor_swap__extern"]
337 pub fn fmpz_mpoly_factor_swap(
338 f: *mut fmpz_mpoly_factor_struct,
339 g: *mut fmpz_mpoly_factor_struct,
340 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
341 );
342 pub fn fmpz_mpoly_factor_set_fmpz(
343 f: *mut fmpz_mpoly_factor_struct,
344 a: *const fmpz,
345 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
346 );
347 pub fn fmpz_mpoly_factor_zero(
348 f: *mut fmpz_mpoly_factor_struct,
349 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
350 );
351 pub fn fmpz_mpoly_factor_one(
352 f: *mut fmpz_mpoly_factor_struct,
353 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
354 );
355 pub fn fmpz_mpoly_factor_sort(
356 f: *mut fmpz_mpoly_factor_struct,
357 ctx: *const fmpz_mpoly_ctx_struct,
358 );
359 pub fn fmpz_mpoly_factor_expand(
360 A: *mut fmpz_mpoly_struct,
361 f: *const fmpz_mpoly_factor_struct,
362 ctx: *const fmpz_mpoly_ctx_struct,
363 ) -> libc::c_int;
364 pub fn fmpz_mpoly_factor_bound_si(
365 B: *mut fmpz,
366 A: *const fmpz,
367 degs: *const slong,
368 nvars: slong,
369 ) -> libc::c_int;
370 #[link_name = "fmpz_mpoly_factor_matches__extern"]
371 pub fn fmpz_mpoly_factor_matches(
372 A: *const fmpz_mpoly_struct,
373 f: *const fmpz_mpoly_factor_struct,
374 ctx: *const fmpz_mpoly_ctx_struct,
375 ) -> libc::c_int;
376 pub fn fmpz_mpoly_factor_append_fmpz_swap(
377 f: *mut fmpz_mpoly_factor_struct,
378 A: *mut fmpz_mpoly_struct,
379 e: *const fmpz,
380 ctx: *const fmpz_mpoly_ctx_struct,
381 );
382 pub fn fmpz_mpoly_factor_append_ui(
383 f: *mut fmpz_mpoly_factor_struct,
384 A: *const fmpz_mpoly_struct,
385 e: ulong,
386 ctx: *const fmpz_mpoly_ctx_struct,
387 );
388 pub fn fmpz_mpoly_interp_lift_p(
389 A: *mut fmpz_mpoly_struct,
390 ctx: *const fmpz_mpoly_ctx_struct,
391 Ap: *mut nmod_mpoly_struct,
392 ctxp: *const nmod_mpoly_ctx_struct,
393 );
394 pub fn fmpz_mpoly_interp_reduce_p(
395 Ap: *mut nmod_mpoly_struct,
396 ctxp: *const nmod_mpoly_ctx_struct,
397 A: *const fmpz_mpoly_struct,
398 ctx: *const fmpz_mpoly_ctx_struct,
399 );
400 pub fn fmpz_mpoly_interp_mcrt_p(
401 coeffbits: *mut flint_bitcnt_t,
402 H: *mut fmpz_mpoly_struct,
403 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
404 m: *const fmpz,
405 A: *const nmod_mpoly_struct,
406 ctxp: *const nmod_mpoly_ctx_struct,
407 ) -> libc::c_int;
408 pub fn fmpz_mpoly_interp_reduce_p_mpolyn(
409 E: *mut nmod_mpolyn_struct,
410 pctx: *const nmod_mpoly_ctx_struct,
411 A: *const fmpz_mpoly_struct,
412 ctx: *const fmpz_mpoly_ctx_struct,
413 );
414 pub fn fmpz_mpoly_interp_lift_p_mpolyn(
415 A: *mut fmpz_mpoly_struct,
416 ctx: *const fmpz_mpoly_ctx_struct,
417 B: *const nmod_mpolyn_struct,
418 pctx: *const nmod_mpoly_ctx_struct,
419 );
420 pub fn fmpz_mpoly_interp_crt_p_mpolyn(
421 F: *mut fmpz_mpoly_struct,
422 T: *mut fmpz_mpoly_struct,
423 ctx: *const fmpz_mpoly_ctx_struct,
424 modulus: *mut fmpz,
425 A: *const nmod_mpolyn_struct,
426 pctx: *const nmod_mpoly_ctx_struct,
427 ) -> libc::c_int;
428 #[link_name = "fmpz_mpolyv_init__extern"]
429 pub fn fmpz_mpolyv_init(A: *mut fmpz_mpolyv_struct, UNUSED_ctx: *const fmpz_mpoly_ctx_struct);
430 #[link_name = "fmpz_mpolyv_swap__extern"]
431 pub fn fmpz_mpolyv_swap(
432 A: *mut fmpz_mpolyv_struct,
433 B: *mut fmpz_mpolyv_struct,
434 UNUSED_ctx: *const fmpz_mpoly_ctx_struct,
435 );
436 pub fn fmpz_mpolyv_clear(A: *mut fmpz_mpolyv_struct, ctx: *const fmpz_mpoly_ctx_struct);
437 pub fn fmpz_mpolyv_print_pretty(
438 poly: *const fmpz_mpolyv_struct,
439 x: *mut *const libc::c_char,
440 ctx: *const fmpz_mpoly_ctx_struct,
441 );
442 pub fn fmpz_mpolyv_fit_length(
443 A: *mut fmpz_mpolyv_struct,
444 length: slong,
445 ctx: *const fmpz_mpoly_ctx_struct,
446 );
447 pub fn fmpz_mpolyv_set_coeff(
448 A: *mut fmpz_mpolyv_struct,
449 i: slong,
450 c: *mut fmpz_mpoly_struct,
451 ctx: *const fmpz_mpoly_ctx_struct,
452 );
453 pub fn fmpz_mpoly_to_mpolyv(
454 A: *mut fmpz_mpolyv_struct,
455 B: *const fmpz_mpoly_struct,
456 xalpha: *const fmpz_mpoly_struct,
457 ctx: *const fmpz_mpoly_ctx_struct,
458 );
459 pub fn fmpz_mpoly_from_mpolyv(
460 A: *mut fmpz_mpoly_struct,
461 Abits: flint_bitcnt_t,
462 B: *const fmpz_mpolyv_struct,
463 xalpha: *const fmpz_mpoly_struct,
464 ctx: *const fmpz_mpoly_ctx_struct,
465 );
466 pub fn _fmpz_mpoly_vec_content_mpoly(
467 g: *mut fmpz_mpoly_struct,
468 A: *const fmpz_mpoly_struct,
469 Alen: slong,
470 ctx: *const fmpz_mpoly_ctx_struct,
471 ) -> libc::c_int;
472 pub fn _fmpz_mpoly_vec_divexact_mpoly(
473 A: *mut fmpz_mpoly_struct,
474 Alen: slong,
475 c: *const fmpz_mpoly_struct,
476 ctx: *const fmpz_mpoly_ctx_struct,
477 );
478 pub fn _fmpz_mpoly_vec_mul_mpoly(
479 A: *mut fmpz_mpoly_struct,
480 Alen: slong,
481 c: *const fmpz_mpoly_struct,
482 ctx: *const fmpz_mpoly_ctx_struct,
483 );
484 pub fn _fmpz_mpoly_gcd_algo(
485 G: *mut fmpz_mpoly_struct,
486 Abar: *mut fmpz_mpoly_struct,
487 Bbar: *mut fmpz_mpoly_struct,
488 A: *const fmpz_mpoly_struct,
489 B: *const fmpz_mpoly_struct,
490 ctx: *const fmpz_mpoly_ctx_struct,
491 algo: libc::c_uint,
492 ) -> libc::c_int;
493 pub fn fmpz_mpoly_to_mpolyl_perm_deflate(
494 A: *mut fmpz_mpoly_struct,
495 lctx: *const fmpz_mpoly_ctx_struct,
496 B: *const fmpz_mpoly_struct,
497 ctx: *const fmpz_mpoly_ctx_struct,
498 perm: *const slong,
499 shift: *const ulong,
500 stride: *const ulong,
501 );
502 pub fn fmpz_mpoly_from_mpolyl_perm_inflate(
503 A: *mut fmpz_mpoly_struct,
504 Abits: flint_bitcnt_t,
505 ctx: *const fmpz_mpoly_ctx_struct,
506 B: *const fmpz_mpoly_struct,
507 lctx: *const fmpz_mpoly_ctx_struct,
508 perm: *const slong,
509 shift: *const ulong,
510 stride: *const ulong,
511 );
512 pub fn fmpz_mpolyl_gcd_brown(
513 G: *mut fmpz_mpoly_struct,
514 Abar: *mut fmpz_mpoly_struct,
515 Bbar: *mut fmpz_mpoly_struct,
516 A: *mut fmpz_mpoly_struct,
517 B: *mut fmpz_mpoly_struct,
518 ctx: *const fmpz_mpoly_ctx_struct,
519 Iv: *const mpoly_gcd_info_struct,
520 ) -> libc::c_int;
521 pub fn fmpz_mpolyl_gcd_brown_threaded_pool(
522 G: *mut fmpz_mpoly_struct,
523 Abar: *mut fmpz_mpoly_struct,
524 Bbar: *mut fmpz_mpoly_struct,
525 A: *mut fmpz_mpoly_struct,
526 B: *mut fmpz_mpoly_struct,
527 ctx: *const fmpz_mpoly_ctx_struct,
528 Iv: *const mpoly_gcd_info_struct,
529 handles: *const thread_pool_handle,
530 num_handles: slong,
531 ) -> libc::c_int;
532 pub fn fmpz_mpolyl_gcd_zippel(
533 G: *mut fmpz_mpoly_struct,
534 Abar: *mut fmpz_mpoly_struct,
535 Bbar: *mut fmpz_mpoly_struct,
536 A: *const fmpz_mpoly_struct,
537 B: *const fmpz_mpoly_struct,
538 ctx: *const fmpz_mpoly_ctx_struct,
539 randstate: *mut flint_rand_struct,
540 ) -> libc::c_int;
541 pub fn fmpz_mpolyl_gcd_zippel2(
542 G: *mut fmpz_mpoly_struct,
543 Abar: *mut fmpz_mpoly_struct,
544 Bbar: *mut fmpz_mpoly_struct,
545 A: *const fmpz_mpoly_struct,
546 B: *const fmpz_mpoly_struct,
547 Gamma: *const fmpz_mpoly_struct,
548 ctx: *const fmpz_mpoly_ctx_struct,
549 ) -> libc::c_int;
550 pub fn fmpz_mpolyl_gcd_hensel(
551 G: *mut fmpz_mpoly_struct,
552 Gdeg: slong,
553 Abar: *mut fmpz_mpoly_struct,
554 Bbar: *mut fmpz_mpoly_struct,
555 A: *const fmpz_mpoly_struct,
556 B: *const fmpz_mpoly_struct,
557 ctx: *const fmpz_mpoly_ctx_struct,
558 ) -> libc::c_int;
559 pub fn fmpz_poly_pfrac_init(Iv: *mut fmpz_poly_pfrac_struct);
560 pub fn fmpz_poly_pfrac_clear(Iv: *mut fmpz_poly_pfrac_struct);
561 pub fn fmpz_poly_pfrac_precompute(
562 Iv: *mut fmpz_poly_pfrac_struct,
563 b: *const fmpz_poly_struct,
564 r: slong,
565 ) -> libc::c_int;
566 pub fn fmpz_poly_pfrac_precomp(
567 c: *mut fmpz_poly_struct,
568 A: *const fmpz_poly_struct,
569 Iv: *mut fmpz_poly_pfrac_struct,
570 ) -> libc::c_int;
571 pub fn fmpz_mpoly_pfrac_init(
572 Iv: *mut fmpz_mpoly_pfrac_struct,
573 bits: flint_bitcnt_t,
574 r: slong,
575 w: slong,
576 betas: *const fmpz_mpoly_struct,
577 alpha: *const fmpz,
578 ctx: *const fmpz_mpoly_ctx_struct,
579 ) -> libc::c_int;
580 pub fn fmpz_mpoly_pfrac_clear(
581 Iv: *mut fmpz_mpoly_pfrac_struct,
582 ctx: *const fmpz_mpoly_ctx_struct,
583 );
584 pub fn fmpz_mpoly_pfrac(
585 l: slong,
586 t: *mut fmpz_mpoly_struct,
587 degs: *const slong,
588 Iv: *mut fmpz_mpoly_pfrac_struct,
589 ctx: *const fmpz_mpoly_ctx_struct,
590 ) -> libc::c_int;
591 pub fn fmpz_mpoly_hlift(
592 m: slong,
593 f: *mut fmpz_mpoly_struct,
594 r: slong,
595 alpha: *const fmpz,
596 A: *const fmpz_mpoly_struct,
597 degs: *const slong,
598 ctx: *const fmpz_mpoly_ctx_struct,
599 ) -> libc::c_int;
600 pub fn _fmpz_mpoly_get_lead0(
601 c: *mut fmpz_mpoly_struct,
602 A: *const fmpz_mpoly_struct,
603 ctx: *const fmpz_mpoly_ctx_struct,
604 );
605 pub fn _fmpz_mpoly_set_lead0(
606 A: *mut fmpz_mpoly_struct,
607 B: *const fmpz_mpoly_struct,
608 c: *const fmpz_mpoly_struct,
609 ctx: *const fmpz_mpoly_ctx_struct,
610 );
611 #[link_name = "fmpz_bpoly_init__extern"]
612 pub fn fmpz_bpoly_init(A: *mut fmpz_bpoly_struct);
613 #[link_name = "fmpz_bpoly_swap__extern"]
614 pub fn fmpz_bpoly_swap(A: *mut fmpz_bpoly_struct, B: *mut fmpz_bpoly_struct);
615 pub fn fmpz_bpoly_clear(A: *mut fmpz_bpoly_struct);
616 pub fn fmpz_bpoly_realloc(A: *mut fmpz_bpoly_struct, len: slong);
617 #[link_name = "fmpz_bpoly_fit_length__extern"]
618 pub fn fmpz_bpoly_fit_length(A: *mut fmpz_bpoly_struct, len: slong);
619 pub fn fmpz_bpoly_print_pretty(
620 A: *mut fmpz_bpoly_struct,
621 var0: *const libc::c_char,
622 var1: *const libc::c_char,
623 );
624 #[link_name = "fmpz_bpoly_lead__extern"]
625 pub fn fmpz_bpoly_lead(A: *mut fmpz_bpoly_struct) -> *mut fmpz_poly_struct;
626 #[link_name = "fmpz_bpoly_zero__extern"]
627 pub fn fmpz_bpoly_zero(A: *mut fmpz_bpoly_struct);
628 #[link_name = "fmpz_bpoly_degree0__extern"]
629 pub fn fmpz_bpoly_degree0(A: *const fmpz_bpoly_struct) -> slong;
630 pub fn fmpz_bpoly_degree1(A: *const fmpz_bpoly_struct) -> slong;
631 pub fn fmpz_bpoly_set_coeff(
632 A: *mut fmpz_bpoly_struct,
633 exp0: slong,
634 exp1: slong,
635 c: *const fmpz,
636 );
637 pub fn fmpz_mpoly_set_fmpz_bpoly(
638 A: *mut fmpz_mpoly_struct,
639 Abits: flint_bitcnt_t,
640 B: *const fmpz_bpoly_struct,
641 var0: slong,
642 var1: slong,
643 ctx: *const fmpz_mpoly_ctx_struct,
644 );
645 pub fn fmpz_mpoly_get_bpoly(
646 A: *mut fmpz_bpoly_struct,
647 B: *const fmpz_mpoly_struct,
648 var0: slong,
649 var1: slong,
650 ctx: *const fmpz_mpoly_ctx_struct,
651 );
652 #[link_name = "fmpz_tpoly_init__extern"]
653 pub fn fmpz_tpoly_init(A: *mut fmpz_tpoly_struct);
654 #[link_name = "fmpz_tpoly_swap__extern"]
655 pub fn fmpz_tpoly_swap(A: *mut fmpz_tpoly_struct, B: *mut fmpz_tpoly_struct);
656 pub fn fmpz_tpoly_fit_length(A: *mut fmpz_tpoly_struct, len: slong);
657 pub fn fmpz_tpoly_clear(A: *mut fmpz_tpoly_struct);
658 pub fn fmpz_bpoly_factor(
659 c: *mut fmpz_poly_struct,
660 F: *mut fmpz_tpoly_struct,
661 B: *mut fmpz_bpoly_struct,
662 );
663 pub fn fmpz_bpoly_factor_ordered(
664 c: *mut fmpz_poly_struct,
665 F: *mut fmpz_tpoly_struct,
666 B: *mut fmpz_bpoly_struct,
667 alpha: *const fmpz,
668 Bevalf: *const fmpz_poly_factor_struct,
669 ) -> libc::c_int;
670 pub fn fmpz_mpoly_unit_normalize(A: *mut fmpz_mpoly_struct, ctx: *const fmpz_mpoly_ctx_struct);
671 pub fn _fmpz_mpoly_factor_squarefree(
672 f: *mut fmpz_mpoly_factor_struct,
673 A: *mut fmpz_mpoly_struct,
674 e: *const fmpz,
675 ctx: *const fmpz_mpoly_ctx_struct,
676 ) -> libc::c_int;
677 pub fn fmpz_mpoly_factor_lcc_wang(
678 lc_divs: *mut fmpz_mpoly_struct,
679 lcAfac: *const fmpz_mpoly_factor_struct,
680 Auc: *const fmpz,
681 Auf: *const fmpz_poly_struct,
682 r: slong,
683 alpha: *const fmpz,
684 ctx: *const fmpz_mpoly_ctx_struct,
685 ) -> libc::c_int;
686 pub fn fmpz_mpoly_factor_irred_zassenhaus(
687 fac: *mut fmpz_mpolyv_struct,
688 A: *const fmpz_mpoly_struct,
689 ctx: *const fmpz_mpoly_ctx_struct,
690 UNUSED_Z: *mut zassenhaus_prune_struct,
691 ) -> libc::c_int;
692 pub fn fmpz_mpoly_factor_irred_wang(
693 fac: *mut fmpz_mpolyv_struct,
694 A: *const fmpz_mpoly_struct,
695 lcAfac: *const fmpz_mpoly_factor_struct,
696 lcAfac_irred: libc::c_int,
697 lcA: *const fmpz_mpoly_struct,
698 ctx: *const fmpz_mpoly_ctx_struct,
699 state: *mut flint_rand_struct,
700 Z: *mut zassenhaus_prune_struct,
701 allow_shift: libc::c_int,
702 ) -> libc::c_int;
703 pub fn fmpz_mpoly_factor_irred_zippel(
704 fac: *mut fmpz_mpolyv_struct,
705 A: *const fmpz_mpoly_struct,
706 lcAfac: *const fmpz_mpoly_factor_struct,
707 lcAfac_irred: libc::c_int,
708 lcA: *const fmpz_mpoly_struct,
709 ctx: *const fmpz_mpoly_ctx_struct,
710 state: *mut flint_rand_struct,
711 Z: *mut zassenhaus_prune_struct,
712 ) -> libc::c_int;
713 pub fn fmpz_mpoly_factor_irred(
714 f: *mut fmpz_mpoly_factor_struct,
715 ctx: *const fmpz_mpoly_ctx_struct,
716 algo: libc::c_uint,
717 ) -> libc::c_int;
718 pub fn fmpz_mpoly_factor_zassenhaus(
719 f: *mut fmpz_mpoly_factor_struct,
720 A: *const fmpz_mpoly_struct,
721 ctx: *const fmpz_mpoly_ctx_struct,
722 ) -> libc::c_int;
723 pub fn fmpz_mpoly_factor_wang(
724 f: *mut fmpz_mpoly_factor_struct,
725 A: *const fmpz_mpoly_struct,
726 ctx: *const fmpz_mpoly_ctx_struct,
727 ) -> libc::c_int;
728 pub fn fmpz_mpoly_factor_zippel(
729 f: *mut fmpz_mpoly_factor_struct,
730 A: *const fmpz_mpoly_struct,
731 ctx: *const fmpz_mpoly_ctx_struct,
732 ) -> libc::c_int;
733 pub fn _fmpz_mpoly_evaluate_rest_fmpz(
734 E: *mut fmpz,
735 starts: *mut slong,
736 ends: *mut slong,
737 stops: *mut slong,
738 es: *mut ulong,
739 Acoeffs: *const fmpz,
740 Aexps: *const ulong,
741 Alen: slong,
742 var: slong,
743 alphas: *const fmpz,
744 offsets: *const slong,
745 shifts: *const slong,
746 N: slong,
747 mask: ulong,
748 nvars: slong,
749 ) -> libc::c_int;
750 pub fn _fmpz_mpoly_eval_rest_to_poly(
751 E: *mut fmpz_poly_struct,
752 A: *const fmpz_mpoly_struct,
753 alphas: *const fmpz,
754 ctx: *const fmpz_mpoly_ctx_struct,
755 );
756 pub fn fmpz_mpoly_factor_lcc_kaltofen_step(
757 divs: *mut fmpz_mpoly_struct,
758 r: slong,
759 Af: *mut fmpz_mpoly_factor_struct,
760 Au: *const fmpz_poly_struct,
761 v: slong,
762 alphas: *const fmpz,
763 ctx: *const fmpz_mpoly_ctx_struct,
764 ) -> libc::c_int;
765 pub fn fmpz_mpoly_factor_lcc_kaltofen(
766 divs: *mut fmpz_mpoly_struct,
767 lcAf_: *const fmpz_mpoly_factor_struct,
768 A: *const fmpz_mpoly_struct,
769 r: slong,
770 alpha: *const fmpz,
771 degs: *mut slong,
772 uf: *const fmpz_poly_factor_struct,
773 ctx: *const fmpz_mpoly_ctx_struct,
774 ) -> libc::c_int;
775 pub fn fmpz_mpoly_evaluate_rest_except_one(
776 e: *mut fmpz_poly_struct,
777 A: *const fmpz_mpoly_struct,
778 alphas: *const fmpz,
779 v: slong,
780 ctx: *const fmpz_mpoly_ctx_struct,
781 ) -> libc::c_int;
782 pub fn fmpz_mpoly_compression_do(
783 L: *mut fmpz_mpoly_struct,
784 Lctx: *const fmpz_mpoly_ctx_struct,
785 Acoeffs: *mut fmpz,
786 Alen: slong,
787 M: *mut mpoly_compression_struct,
788 );
789 pub fn fmpz_mpoly_compression_undo(
790 A: *mut fmpz_mpoly_struct,
791 Abits: flint_bitcnt_t,
792 Actx: *const fmpz_mpoly_ctx_struct,
793 L: *mut fmpz_mpoly_struct,
794 Lctx: *const fmpz_mpoly_ctx_struct,
795 M: *mut mpoly_compression_struct,
796 );
797}