1use libc::*;
4use crate::deps::*;
5use crate::flint::*;
6use crate::fmpz_mod_types::*;
7use crate::fmpz_types::*;
8use crate::fq_types::*;
9
10
11extern "C" {
12 pub fn fq_ctx_init(ctx: *mut fq_ctx_struct, p: *const fmpz, d: slong, var: *const libc::c_char);
13 pub fn _fq_ctx_init_conway_ui(
14 ctx: *mut fq_ctx_struct,
15 p: ulong,
16 d: slong,
17 var: *const libc::c_char,
18 ) -> libc::c_int;
19 pub fn fq_ctx_init_conway_ui(
20 ctx: *mut fq_ctx_struct,
21 p: ulong,
22 d: slong,
23 var: *const libc::c_char,
24 );
25 pub fn _fq_ctx_init_conway(
26 ctx: *mut fq_ctx_struct,
27 p: *const fmpz,
28 d: slong,
29 var: *const libc::c_char,
30 ) -> libc::c_int;
31 pub fn fq_ctx_init_conway(
32 ctx: *mut fq_ctx_struct,
33 p: *const fmpz,
34 d: slong,
35 var: *const libc::c_char,
36 );
37 pub fn fq_ctx_init_modulus(
38 ctx: *mut fq_ctx_struct,
39 modulus: *const fmpz_mod_poly_struct,
40 ctxp: *const fmpz_mod_ctx_struct,
41 var: *const libc::c_char,
42 );
43 pub fn fq_ctx_init_randtest(
44 ctx: *mut fq_ctx_struct,
45 state: *mut flint_rand_struct,
46 type_: libc::c_int,
47 );
48 pub fn fq_ctx_init_randtest_reducible(
49 ctx: *mut fq_ctx_struct,
50 state: *mut flint_rand_struct,
51 type_: libc::c_int,
52 );
53 pub fn fq_ctx_clear(ctx: *mut fq_ctx_struct);
54 #[link_name = "fq_ctx_modulus__extern"]
55 pub fn fq_ctx_modulus(ctx: *const fq_ctx_struct) -> *const fmpz_mod_poly_struct;
56 #[link_name = "fq_ctx_degree__extern"]
57 pub fn fq_ctx_degree(ctx: *const fq_ctx_struct) -> slong;
58 #[link_name = "fq_ctx_prime__extern"]
59 pub fn fq_ctx_prime(ctx: *const fq_ctx_struct) -> *const fmpz;
60 pub fn fq_ctx_order(f: *mut fmpz, ctx: *const fq_ctx_struct);
61 pub fn fq_ctx_fprint(file: *mut FILE, ctx: *const fq_ctx_struct) -> libc::c_int;
62 pub fn fq_ctx_print(ctx: *const fq_ctx_struct);
63 pub fn fq_init(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
64 pub fn fq_init2(rop: *mut fmpz_poly_struct, ctx: *const fq_ctx_struct);
65 pub fn fq_clear(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
66 pub fn _fq_sparse_reduce(R: *mut fmpz, lenR: slong, ctx: *const fq_ctx_struct);
67 pub fn _fq_dense_reduce(R: *mut fmpz, lenR: slong, ctx: *const fq_ctx_struct);
68 pub fn _fq_reduce(R: *mut fmpz, lenR: slong, ctx: *const fq_ctx_struct);
69 pub fn fq_reduce(rop: *mut fmpz_poly_struct, ctx: *const fq_ctx_struct);
70 pub fn fq_add(
71 rop: *mut fmpz_poly_struct,
72 op1: *const fmpz_poly_struct,
73 op2: *const fmpz_poly_struct,
74 ctx: *const fq_ctx_struct,
75 );
76 pub fn fq_sub(
77 rop: *mut fmpz_poly_struct,
78 op1: *const fmpz_poly_struct,
79 op2: *const fmpz_poly_struct,
80 ctx: *const fq_ctx_struct,
81 );
82 pub fn fq_sub_one(
83 rop: *mut fmpz_poly_struct,
84 op1: *const fmpz_poly_struct,
85 ctx: *const fq_ctx_struct,
86 );
87 pub fn fq_neg(
88 rop: *mut fmpz_poly_struct,
89 op1: *const fmpz_poly_struct,
90 ctx: *const fq_ctx_struct,
91 );
92 pub fn fq_mul(
93 rop: *mut fmpz_poly_struct,
94 op1: *const fmpz_poly_struct,
95 op2: *const fmpz_poly_struct,
96 ctx: *const fq_ctx_struct,
97 );
98 pub fn fq_mul_fmpz(
99 rop: *mut fmpz_poly_struct,
100 op: *const fmpz_poly_struct,
101 x: *const fmpz,
102 ctx: *const fq_ctx_struct,
103 );
104 pub fn fq_mul_si(
105 rop: *mut fmpz_poly_struct,
106 op: *const fmpz_poly_struct,
107 x: slong,
108 ctx: *const fq_ctx_struct,
109 );
110 pub fn fq_mul_ui(
111 rop: *mut fmpz_poly_struct,
112 op: *const fmpz_poly_struct,
113 x: ulong,
114 ctx: *const fq_ctx_struct,
115 );
116 pub fn fq_sqr(
117 rop: *mut fmpz_poly_struct,
118 op: *const fmpz_poly_struct,
119 ctx: *const fq_ctx_struct,
120 );
121 pub fn fq_inv(
122 rop: *mut fmpz_poly_struct,
123 op1: *const fmpz_poly_struct,
124 ctx: *const fq_ctx_struct,
125 );
126 pub fn _fq_pow(
127 rop: *mut fmpz,
128 op: *const fmpz,
129 len: slong,
130 e: *const fmpz,
131 ctx: *const fq_ctx_struct,
132 );
133 pub fn fq_pow(
134 rop: *mut fmpz_poly_struct,
135 op1: *const fmpz_poly_struct,
136 e: *const fmpz,
137 ctx: *const fq_ctx_struct,
138 );
139 pub fn fq_pow_ui(
140 rop: *mut fmpz_poly_struct,
141 op: *const fmpz_poly_struct,
142 e: ulong,
143 ctx: *const fq_ctx_struct,
144 );
145 pub fn fq_sqrt(
146 rop: *mut fmpz_poly_struct,
147 op: *const fmpz_poly_struct,
148 ctx: *const fq_ctx_struct,
149 ) -> libc::c_int;
150 pub fn fq_pth_root(
151 rop: *mut fmpz_poly_struct,
152 op1: *const fmpz_poly_struct,
153 ctx: *const fq_ctx_struct,
154 );
155 pub fn fq_is_square(op: *const fmpz_poly_struct, ctx: *const fq_ctx_struct) -> libc::c_int;
156 pub fn fq_randtest(
157 rop: *mut fmpz_poly_struct,
158 state: *mut flint_rand_struct,
159 ctx: *const fq_ctx_struct,
160 );
161 pub fn fq_randtest_dense(
162 rop: *mut fmpz_poly_struct,
163 state: *mut flint_rand_struct,
164 ctx: *const fq_ctx_struct,
165 );
166 pub fn fq_randtest_not_zero(
167 rop: *mut fmpz_poly_struct,
168 state: *mut flint_rand_struct,
169 ctx: *const fq_ctx_struct,
170 );
171 pub fn fq_rand(
172 rop: *mut fmpz_poly_struct,
173 state: *mut flint_rand_struct,
174 ctx: *const fq_ctx_struct,
175 );
176 pub fn fq_rand_not_zero(
177 rop: *mut fmpz_poly_struct,
178 state: *mut flint_rand_struct,
179 ctx: *const fq_ctx_struct,
180 );
181 pub fn fq_equal(
182 op1: *const fmpz_poly_struct,
183 op2: *const fmpz_poly_struct,
184 UNUSED_ctx: *const fq_ctx_struct,
185 ) -> libc::c_int;
186 pub fn fq_is_zero(op: *const fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct)
187 -> libc::c_int;
188 pub fn fq_is_one(op: *const fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct) -> libc::c_int;
189 pub fn fq_set(
190 rop: *mut fmpz_poly_struct,
191 op: *const fmpz_poly_struct,
192 UNUSED_ctx: *const fq_ctx_struct,
193 );
194 pub fn fq_set_ui(rop: *mut fmpz_poly_struct, x: ulong, ctx: *const fq_ctx_struct);
195 pub fn fq_set_si(rop: *mut fmpz_poly_struct, x: slong, ctx: *const fq_ctx_struct);
196 pub fn fq_set_fmpz(rop: *mut fmpz_poly_struct, x: *const fmpz, ctx: *const fq_ctx_struct);
197 pub fn fq_set_fmpz_poly(
198 a: *mut fmpz_poly_struct,
199 b: *const fmpz_poly_struct,
200 ctx: *const fq_ctx_struct,
201 );
202 pub fn fq_set_fmpz_mod_poly(
203 a: *mut fmpz_poly_struct,
204 b: *const fmpz_mod_poly_struct,
205 ctx: *const fq_ctx_struct,
206 );
207 pub fn fq_get_fmpz(
208 a: *mut fmpz,
209 b: *const fmpz_poly_struct,
210 UNUSED_ctx: *const fq_ctx_struct,
211 ) -> libc::c_int;
212 pub fn fq_get_fmpz_poly(
213 a: *mut fmpz_poly_struct,
214 b: *const fmpz_poly_struct,
215 UNUSED_ctx: *const fq_ctx_struct,
216 );
217 pub fn fq_get_fmpz_mod_poly(
218 a: *mut fmpz_mod_poly_struct,
219 b: *const fmpz_poly_struct,
220 ctx: *const fq_ctx_struct,
221 );
222 pub fn fq_zero(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
223 pub fn fq_one(rop: *mut fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
224 pub fn fq_swap(
225 op1: *mut fmpz_poly_struct,
226 op2: *mut fmpz_poly_struct,
227 UNUSED_ctx: *const fq_ctx_struct,
228 );
229 pub fn fq_gen(rop: *mut fmpz_poly_struct, ctx: *const fq_ctx_struct);
230 pub fn fq_fprint(
231 file: *mut FILE,
232 op: *const fmpz_poly_struct,
233 UNUSED_ctx: *const fq_ctx_struct,
234 ) -> libc::c_int;
235 pub fn fq_print(op: *const fmpz_poly_struct, UNUSED_ctx: *const fq_ctx_struct);
236 pub fn fq_fprint_pretty(
237 file: *mut FILE,
238 op: *const fmpz_poly_struct,
239 ctx: *const fq_ctx_struct,
240 ) -> libc::c_int;
241 pub fn fq_print_pretty(op: *const fmpz_poly_struct, ctx: *const fq_ctx_struct) -> libc::c_int;
242 pub fn fq_get_str(
243 op: *const fmpz_poly_struct,
244 UNUSED_ctx: *const fq_ctx_struct,
245 ) -> *mut libc::c_char;
246 pub fn fq_get_str_pretty(
247 op: *const fmpz_poly_struct,
248 ctx: *const fq_ctx_struct,
249 ) -> *mut libc::c_char;
250 pub fn _fq_trace(rop: *mut fmpz, op: *const fmpz, len: slong, ctx: *const fq_ctx_struct);
251 pub fn fq_trace(rop: *mut fmpz, op: *const fmpz_poly_struct, ctx: *const fq_ctx_struct);
252 pub fn _fq_frobenius(
253 rop: *mut fmpz,
254 op: *const fmpz,
255 len: slong,
256 e: slong,
257 ctx: *const fq_ctx_struct,
258 );
259 pub fn fq_frobenius(
260 rop: *mut fmpz_poly_struct,
261 op: *const fmpz_poly_struct,
262 e: slong,
263 ctx: *const fq_ctx_struct,
264 );
265 pub fn _fq_norm(rop: *mut fmpz, op: *const fmpz, len: slong, ctx: *const fq_ctx_struct);
266 pub fn fq_norm(rop: *mut fmpz, op: *const fmpz_poly_struct, ctx: *const fq_ctx_struct);
267 pub fn fq_bit_pack(
268 f: *mut fmpz,
269 op: *const fmpz_poly_struct,
270 bit_size: flint_bitcnt_t,
271 UNUSED_ctx: *const fq_ctx_struct,
272 );
273 pub fn fq_bit_unpack(
274 rop: *mut fmpz_poly_struct,
275 f: *const fmpz,
276 bit_size: flint_bitcnt_t,
277 ctx: *const fq_ctx_struct,
278 );
279 pub fn __fq_ctx_prime(p: *mut fmpz, ctx: *mut fq_ctx_struct);
280}