flint_sys/
fmpq_mpoly_factor.rs

1#![allow(non_camel_case_types)]
2#![allow(non_snake_case)]
3
4//! *See the [FLINT documentation](http://flintlib.org/doc/fmpq_mpoly_factor.html).
5
6use 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}