flint_sys/
fq_default_poly_factor.rs1#![allow(non_camel_case_types)]
2
3use crate::deps::*;
6use crate::fq_default::{fq_default_ctx_struct, fq_default_struct};
7use crate::fq_default_poly::fq_default_poly_struct;
8use crate::fq_nmod_poly_factor::fq_nmod_poly_factor_t;
9use crate::fq_poly_factor::fq_poly_factor_t;
10use crate::fq_zech_poly_factor::fq_zech_poly_factor_t;
11use libc::{c_char, c_int};
12
13#[repr(C)]
14#[derive(Copy, Clone)]
15pub union fq_default_poly_factor_struct {
16 pub fq: fq_poly_factor_t,
17 pub fq_nmod: fq_nmod_poly_factor_t,
18 pub fq_zech: fq_zech_poly_factor_t,
19}
20
21pub type fq_default_poly_factor_t = [fq_default_poly_factor_struct; 1usize];
22
23extern "C" {
24 pub fn fq_default_poly_factor_init(
25 fac: *mut fq_default_poly_factor_struct,
26 ctx: *mut fq_default_ctx_struct,
27 );
28 pub fn fq_default_poly_factor_clear(
29 fac: *mut fq_default_poly_factor_struct,
30 ctx: *mut fq_default_ctx_struct,
31 );
32 pub fn fq_default_poly_factor_realloc(
33 fac: *mut fq_default_poly_factor_struct,
34 alloc: mp_limb_signed_t,
35 ctx: *mut fq_default_ctx_struct,
36 );
37 pub fn fq_default_poly_factor_fit_length(
38 fac: *mut fq_default_poly_factor_struct,
39 len: mp_limb_signed_t,
40 ctx: *mut fq_default_ctx_struct,
41 );
42 pub fn fq_default_poly_factor_length(
43 fac: *mut fq_default_poly_factor_struct,
44 ctx: *mut fq_default_ctx_struct,
45 ) -> mp_limb_signed_t;
46 pub fn fq_default_poly_factor_exp(
47 fac: *mut fq_default_poly_factor_struct,
48 i: mp_limb_signed_t,
49 ctx: *mut fq_default_ctx_struct,
50 ) -> mp_limb_signed_t;
51 pub fn fq_default_poly_factor_set(
52 res: *mut fq_default_poly_factor_struct,
53 fac: *mut fq_default_poly_factor_struct,
54 ctx: *mut fq_default_ctx_struct,
55 );
56 pub fn fq_default_poly_factor_insert(
57 fac: *mut fq_default_poly_factor_struct,
58 poly: *mut fq_default_poly_struct,
59 exp: mp_limb_signed_t,
60 ctx: *mut fq_default_ctx_struct,
61 );
62 pub fn fq_default_poly_factor_get_poly(
63 poly: *mut fq_default_poly_struct,
64 fac: *mut fq_default_poly_factor_struct,
65 i: mp_limb_signed_t,
66 ctx: *mut fq_default_ctx_struct,
67 );
68 pub fn fq_default_poly_factor_print(
69 fac: *mut fq_default_poly_factor_struct,
70 ctx: *mut fq_default_ctx_struct,
71 );
72 pub fn fq_default_poly_factor_print_pretty(
73 fac: *mut fq_default_poly_factor_struct,
74 var: *const c_char,
75 ctx: *mut fq_default_ctx_struct,
76 );
77 pub fn fq_default_poly_factor_concat(
78 res: *mut fq_default_poly_factor_struct,
79 fac: *mut fq_default_poly_factor_struct,
80 ctx: *mut fq_default_ctx_struct,
81 );
82 pub fn fq_default_poly_factor_pow(
83 fac: *mut fq_default_poly_factor_struct,
84 exp: mp_limb_signed_t,
85 ctx: *mut fq_default_ctx_struct,
86 );
87 pub fn fq_default_poly_is_squarefree(
88 f: *mut fq_default_poly_struct,
89 ctx: *mut fq_default_ctx_struct,
90 ) -> c_int;
91 pub fn fq_default_poly_factor_squarefree(
92 res: *mut fq_default_poly_factor_struct,
93 f: *mut fq_default_poly_struct,
94 ctx: *mut fq_default_ctx_struct,
95 );
96 pub fn fq_default_poly_is_irreducible(
97 f: *mut fq_default_poly_struct,
98 ctx: *mut fq_default_ctx_struct,
99 ) -> c_int;
100 pub fn fq_default_poly_factor_distinct_deg(
101 res: *mut fq_default_poly_factor_struct,
102 poly: *mut fq_default_poly_struct,
103 degs: *const *mut mp_limb_signed_t,
104 ctx: *mut fq_default_ctx_struct,
105 );
106 pub fn fq_default_poly_factor_equal_deg(
107 factors: *mut fq_default_poly_factor_struct,
108 pol: *mut fq_default_poly_struct,
109 d: mp_limb_signed_t,
110 ctx: *mut fq_default_ctx_struct,
111 );
112 pub fn fq_default_poly_factor(
113 result: *mut fq_default_poly_factor_struct,
114 leading_coeff: *mut fq_default_struct,
115 input: *mut fq_default_poly_struct,
116 ctx: *mut fq_default_ctx_struct,
117 );
118 pub fn fq_default_poly_factor_split_single(
119 linfactor: *mut fq_default_poly_struct,
120 input: *mut fq_default_poly_struct,
121 ctx: *mut fq_default_ctx_struct,
122 );
123 pub fn fq_default_poly_roots(
124 r: *mut fq_default_poly_factor_struct,
125 f: *mut fq_default_poly_struct,
126 with_multiplicity: c_int,
127 ctx: *mut fq_default_ctx_struct,
128 );
129}