flint_sys/
fmpq_mpoly_factor.rs1#![allow(non_camel_case_types)]
2#![allow(non_snake_case)]
3
4use crate::deps::*;
7use crate::fmpq::{fmpq, fmpq_t};
8use crate::fmpq_mpoly::*;
9use crate::fmpz::fmpz;
10use crate::fmpz_mpoly_factor::fmpz_mpoly_factor_struct;
11
12#[repr(C)]
13#[derive(Debug, Copy, Clone)]
14pub struct fmpq_mpoly_factor_struct {
15 pub constant: fmpq_t,
16 pub poly: *mut fmpq_mpoly_struct,
17 pub exp: *mut fmpz,
18 pub num: mp_limb_signed_t,
19 pub alloc: mp_limb_signed_t,
20}
21pub type fmpq_mpoly_factor_t = [fmpq_mpoly_factor_struct; 1usize];
22extern "C" {
23 pub fn fmpq_mpoly_factor_init(
24 f: *mut fmpq_mpoly_factor_struct,
25 ctx: *mut fmpq_mpoly_ctx_struct,
26 );
27}
28extern "C" {
29 pub fn fmpq_mpoly_factor_realloc(
30 f: *mut fmpq_mpoly_factor_struct,
31 alloc: mp_limb_signed_t,
32 ctx: *mut fmpq_mpoly_ctx_struct,
33 );
34}
35extern "C" {
36 pub fn fmpq_mpoly_factor_fit_length(
37 f: *mut fmpq_mpoly_factor_struct,
38 len: mp_limb_signed_t,
39 ctx: *mut fmpq_mpoly_ctx_struct,
40 );
41}
42extern "C" {
43 pub fn fmpq_mpoly_factor_clear(
44 f: *mut fmpq_mpoly_factor_struct,
45 ctx: *mut fmpq_mpoly_ctx_struct,
46 );
47}
48extern "C" {
49 pub fn fmpq_mpoly_factor_length(
50 f: *mut fmpq_mpoly_factor_struct,
51 ctx: *mut fmpq_mpoly_ctx_struct,
52 ) -> mp_limb_signed_t;
53}
54extern "C" {
55 pub fn fmpq_mpoly_factor_get_constant_fmpq(
56 c: *mut fmpq,
57 f: *mut fmpq_mpoly_factor_struct,
58 ctx: *mut fmpq_mpoly_ctx_struct,
59 );
60}
61extern "C" {
62 pub fn fmpq_mpoly_factor_get_base(
63 p: *mut fmpq_mpoly_struct,
64 f: *mut fmpq_mpoly_factor_struct,
65 i: mp_limb_signed_t,
66 ctx: *mut fmpq_mpoly_ctx_struct,
67 );
68}
69extern "C" {
70 pub fn fmpq_mpoly_factor_swap_base(
71 p: *mut fmpq_mpoly_struct,
72 f: *mut fmpq_mpoly_factor_struct,
73 i: mp_limb_signed_t,
74 ctx: *mut fmpq_mpoly_ctx_struct,
75 );
76}
77extern "C" {
78 pub fn fmpq_mpoly_factor_get_exp_si(
79 f: *mut fmpq_mpoly_factor_struct,
80 i: mp_limb_signed_t,
81 ctx: *mut fmpq_mpoly_ctx_struct,
82 ) -> mp_limb_signed_t;
83}
84extern "C" {
85 pub fn fmpq_mpoly_factor_sort(
86 f: *mut fmpq_mpoly_factor_struct,
87 ctx: *mut fmpq_mpoly_ctx_struct,
88 );
89}
90extern "C" {
91 pub fn fmpq_mpoly_factor_make_monic(
92 f: *mut fmpq_mpoly_factor_struct,
93 ctx: *mut fmpq_mpoly_ctx_struct,
94 ) -> ::std::os::raw::c_int;
95}
96extern "C" {
97 pub fn fmpq_mpoly_factor_make_integral(
98 f: *mut fmpq_mpoly_factor_struct,
99 ctx: *mut fmpq_mpoly_ctx_struct,
100 ) -> ::std::os::raw::c_int;
101}
102extern "C" {
103 pub fn fmpq_mpoly_factor_squarefree(
104 f: *mut fmpq_mpoly_factor_struct,
105 A: *mut fmpq_mpoly_struct,
106 ctx: *mut fmpq_mpoly_ctx_struct,
107 ) -> ::std::os::raw::c_int;
108}
109extern "C" {
110 pub fn fmpq_mpoly_factor(
111 f: *mut fmpq_mpoly_factor_struct,
112 A: *mut fmpq_mpoly_struct,
113 ctx: *mut fmpq_mpoly_ctx_struct,
114 ) -> ::std::os::raw::c_int;
115}
116extern "C" {
117 pub fn _fmpq_mpoly_factor_swap_fmpz_mpoly_factor(
118 f: *mut fmpq_mpoly_factor_struct,
119 g: *mut fmpz_mpoly_factor_struct,
120 c: *mut fmpq,
121 ctx: *mut fmpq_mpoly_ctx_struct,
122 );
123}
124extern "C" {
125 pub fn fmpq_mpoly_factor_expand(
126 A: *mut fmpq_mpoly_struct,
127 f: *mut fmpq_mpoly_factor_struct,
128 ctx: *mut fmpq_mpoly_ctx_struct,
129 ) -> ::std::os::raw::c_int;
130}