1use crate::deps::*;
4use crate::acb_types::*;
5use crate::flint::*;
6use crate::limb_types::*;
7
8
9#[repr(C)]
10pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
11impl<T> __BindgenUnionField<T> {
12 #[inline]
13 pub const fn new() -> Self {
14 __BindgenUnionField(::std::marker::PhantomData)
15 }
16 #[inline]
17 pub unsafe fn as_ref(&self) -> &T {
18 ::std::mem::transmute(self)
19 }
20 #[inline]
21 pub unsafe fn as_mut(&mut self) -> &mut T {
22 ::std::mem::transmute(self)
23 }
24}
25impl<T> ::std::default::Default for __BindgenUnionField<T> {
26 #[inline]
27 fn default() -> Self {
28 Self::new()
29 }
30}
31impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
32 #[inline]
33 fn clone(&self) -> Self {
34 *self
35 }
36}
37impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
38impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
39 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
40 fmt.write_str("__BindgenUnionField")
41 }
42}
43impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
44 fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
45}
46impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
47 fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
48 true
49 }
50}
51impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
52pub const CRT_MAX: u32 = 15;
53pub const DFT_VERB: u32 = 0;
54#[repr(C)]
55pub struct crt_struct {
56 pub num: libc::c_int,
57 pub n: nmod_t,
58 pub m: [slong; 15usize],
59 pub M: [ulong; 15usize],
60 pub vM: [ulong; 15usize],
61}
62#[allow(clippy::unnecessary_operation, clippy::identity_op)]
63const _: () = {
64 ["Size of crt_struct"][::std::mem::size_of::<crt_struct>() - 392usize];
65 ["Alignment of crt_struct"][::std::mem::align_of::<crt_struct>() - 8usize];
66 ["Offset of field: crt_struct::num"][::std::mem::offset_of!(crt_struct, num) - 0usize];
67 ["Offset of field: crt_struct::n"][::std::mem::offset_of!(crt_struct, n) - 8usize];
68 ["Offset of field: crt_struct::m"][::std::mem::offset_of!(crt_struct, m) - 32usize];
69 ["Offset of field: crt_struct::M"][::std::mem::offset_of!(crt_struct, M) - 152usize];
70 ["Offset of field: crt_struct::vM"][::std::mem::offset_of!(crt_struct, vM) - 272usize];
71};
72impl Default for crt_struct {
73 fn default() -> Self {
74 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
75 unsafe {
76 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
77 s.assume_init()
78 }
79 }
80}
81pub type crt_t = [crt_struct; 1usize];
82pub type acb_dft_step_ptr = *mut acb_dft_step_struct;
83#[repr(C)]
84pub struct acb_dft_cyc_struct {
85 pub n: slong,
86 pub z: acb_ptr,
87 pub zclear: libc::c_int,
88 pub num: slong,
89 pub cyc: acb_dft_step_ptr,
90}
91#[allow(clippy::unnecessary_operation, clippy::identity_op)]
92const _: () = {
93 ["Size of acb_dft_cyc_struct"][::std::mem::size_of::<acb_dft_cyc_struct>() - 40usize];
94 ["Alignment of acb_dft_cyc_struct"][::std::mem::align_of::<acb_dft_cyc_struct>() - 8usize];
95 ["Offset of field: acb_dft_cyc_struct::n"]
96 [::std::mem::offset_of!(acb_dft_cyc_struct, n) - 0usize];
97 ["Offset of field: acb_dft_cyc_struct::z"]
98 [::std::mem::offset_of!(acb_dft_cyc_struct, z) - 8usize];
99 ["Offset of field: acb_dft_cyc_struct::zclear"]
100 [::std::mem::offset_of!(acb_dft_cyc_struct, zclear) - 16usize];
101 ["Offset of field: acb_dft_cyc_struct::num"]
102 [::std::mem::offset_of!(acb_dft_cyc_struct, num) - 24usize];
103 ["Offset of field: acb_dft_cyc_struct::cyc"]
104 [::std::mem::offset_of!(acb_dft_cyc_struct, cyc) - 32usize];
105};
106impl Default for acb_dft_cyc_struct {
107 fn default() -> Self {
108 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
109 unsafe {
110 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
111 s.assume_init()
112 }
113 }
114}
115pub type acb_dft_cyc_t = [acb_dft_cyc_struct; 1usize];
116#[repr(C)]
117pub struct acb_dft_rad2_struct {
118 pub e: libc::c_int,
119 pub n: slong,
120 pub dv: slong,
121 pub nz: slong,
122 pub z: acb_ptr,
123}
124#[allow(clippy::unnecessary_operation, clippy::identity_op)]
125const _: () = {
126 ["Size of acb_dft_rad2_struct"][::std::mem::size_of::<acb_dft_rad2_struct>() - 40usize];
127 ["Alignment of acb_dft_rad2_struct"][::std::mem::align_of::<acb_dft_rad2_struct>() - 8usize];
128 ["Offset of field: acb_dft_rad2_struct::e"]
129 [::std::mem::offset_of!(acb_dft_rad2_struct, e) - 0usize];
130 ["Offset of field: acb_dft_rad2_struct::n"]
131 [::std::mem::offset_of!(acb_dft_rad2_struct, n) - 8usize];
132 ["Offset of field: acb_dft_rad2_struct::dv"]
133 [::std::mem::offset_of!(acb_dft_rad2_struct, dv) - 16usize];
134 ["Offset of field: acb_dft_rad2_struct::nz"]
135 [::std::mem::offset_of!(acb_dft_rad2_struct, nz) - 24usize];
136 ["Offset of field: acb_dft_rad2_struct::z"]
137 [::std::mem::offset_of!(acb_dft_rad2_struct, z) - 32usize];
138};
139impl Default for acb_dft_rad2_struct {
140 fn default() -> Self {
141 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
142 unsafe {
143 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
144 s.assume_init()
145 }
146 }
147}
148pub type acb_dft_rad2_t = [acb_dft_rad2_struct; 1usize];
149#[repr(C)]
150pub struct acb_dft_bluestein_struct {
151 pub n: slong,
152 pub dv: slong,
153 pub z: acb_ptr,
154 pub g: acb_ptr,
155 pub rad2: acb_dft_rad2_t,
156}
157#[allow(clippy::unnecessary_operation, clippy::identity_op)]
158const _: () = {
159 ["Size of acb_dft_bluestein_struct"]
160 [::std::mem::size_of::<acb_dft_bluestein_struct>() - 72usize];
161 ["Alignment of acb_dft_bluestein_struct"]
162 [::std::mem::align_of::<acb_dft_bluestein_struct>() - 8usize];
163 ["Offset of field: acb_dft_bluestein_struct::n"]
164 [::std::mem::offset_of!(acb_dft_bluestein_struct, n) - 0usize];
165 ["Offset of field: acb_dft_bluestein_struct::dv"]
166 [::std::mem::offset_of!(acb_dft_bluestein_struct, dv) - 8usize];
167 ["Offset of field: acb_dft_bluestein_struct::z"]
168 [::std::mem::offset_of!(acb_dft_bluestein_struct, z) - 16usize];
169 ["Offset of field: acb_dft_bluestein_struct::g"]
170 [::std::mem::offset_of!(acb_dft_bluestein_struct, g) - 24usize];
171 ["Offset of field: acb_dft_bluestein_struct::rad2"]
172 [::std::mem::offset_of!(acb_dft_bluestein_struct, rad2) - 32usize];
173};
174impl Default for acb_dft_bluestein_struct {
175 fn default() -> Self {
176 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
177 unsafe {
178 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
179 s.assume_init()
180 }
181 }
182}
183pub type acb_dft_bluestein_t = [acb_dft_bluestein_struct; 1usize];
184#[repr(C)]
185pub struct acb_dft_prod_struct {
186 pub n: slong,
187 pub num: slong,
188 pub cyc: acb_dft_step_ptr,
189}
190#[allow(clippy::unnecessary_operation, clippy::identity_op)]
191const _: () = {
192 ["Size of acb_dft_prod_struct"][::std::mem::size_of::<acb_dft_prod_struct>() - 24usize];
193 ["Alignment of acb_dft_prod_struct"][::std::mem::align_of::<acb_dft_prod_struct>() - 8usize];
194 ["Offset of field: acb_dft_prod_struct::n"]
195 [::std::mem::offset_of!(acb_dft_prod_struct, n) - 0usize];
196 ["Offset of field: acb_dft_prod_struct::num"]
197 [::std::mem::offset_of!(acb_dft_prod_struct, num) - 8usize];
198 ["Offset of field: acb_dft_prod_struct::cyc"]
199 [::std::mem::offset_of!(acb_dft_prod_struct, cyc) - 16usize];
200};
201impl Default for acb_dft_prod_struct {
202 fn default() -> Self {
203 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
204 unsafe {
205 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
206 s.assume_init()
207 }
208 }
209}
210pub type acb_dft_prod_t = [acb_dft_prod_struct; 1usize];
211#[repr(C)]
212pub struct acb_dft_crt_struct {
213 pub n: slong,
214 pub c: crt_t,
215 pub dv: slong,
216 pub cyc: acb_dft_step_ptr,
217}
218#[allow(clippy::unnecessary_operation, clippy::identity_op)]
219const _: () = {
220 ["Size of acb_dft_crt_struct"][::std::mem::size_of::<acb_dft_crt_struct>() - 416usize];
221 ["Alignment of acb_dft_crt_struct"][::std::mem::align_of::<acb_dft_crt_struct>() - 8usize];
222 ["Offset of field: acb_dft_crt_struct::n"]
223 [::std::mem::offset_of!(acb_dft_crt_struct, n) - 0usize];
224 ["Offset of field: acb_dft_crt_struct::c"]
225 [::std::mem::offset_of!(acb_dft_crt_struct, c) - 8usize];
226 ["Offset of field: acb_dft_crt_struct::dv"]
227 [::std::mem::offset_of!(acb_dft_crt_struct, dv) - 400usize];
228 ["Offset of field: acb_dft_crt_struct::cyc"]
229 [::std::mem::offset_of!(acb_dft_crt_struct, cyc) - 408usize];
230};
231impl Default for acb_dft_crt_struct {
232 fn default() -> Self {
233 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
234 unsafe {
235 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
236 s.assume_init()
237 }
238 }
239}
240pub type acb_dft_crt_t = [acb_dft_crt_struct; 1usize];
241#[repr(C)]
242pub struct acb_dft_naive_struct {
243 pub n: slong,
244 pub dv: slong,
245 pub zclear: libc::c_int,
246 pub z: acb_ptr,
247 pub dz: slong,
248}
249#[allow(clippy::unnecessary_operation, clippy::identity_op)]
250const _: () = {
251 ["Size of acb_dft_naive_struct"][::std::mem::size_of::<acb_dft_naive_struct>() - 40usize];
252 ["Alignment of acb_dft_naive_struct"][::std::mem::align_of::<acb_dft_naive_struct>() - 8usize];
253 ["Offset of field: acb_dft_naive_struct::n"]
254 [::std::mem::offset_of!(acb_dft_naive_struct, n) - 0usize];
255 ["Offset of field: acb_dft_naive_struct::dv"]
256 [::std::mem::offset_of!(acb_dft_naive_struct, dv) - 8usize];
257 ["Offset of field: acb_dft_naive_struct::zclear"]
258 [::std::mem::offset_of!(acb_dft_naive_struct, zclear) - 16usize];
259 ["Offset of field: acb_dft_naive_struct::z"]
260 [::std::mem::offset_of!(acb_dft_naive_struct, z) - 24usize];
261 ["Offset of field: acb_dft_naive_struct::dz"]
262 [::std::mem::offset_of!(acb_dft_naive_struct, dz) - 32usize];
263};
264impl Default for acb_dft_naive_struct {
265 fn default() -> Self {
266 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
267 unsafe {
268 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
269 s.assume_init()
270 }
271 }
272}
273pub type acb_dft_naive_t = [acb_dft_naive_struct; 1usize];
274#[repr(C)]
275pub struct acb_dft_pre_struct {
276 pub n: slong,
277 pub type_: libc::c_int,
278 pub t: acb_dft_pre_struct__bindgen_ty_1,
279}
280#[repr(C)]
281pub struct acb_dft_pre_struct__bindgen_ty_1 {
282 pub rad2: __BindgenUnionField<acb_dft_rad2_t>,
283 pub cyc: __BindgenUnionField<acb_dft_cyc_t>,
284 pub prod: __BindgenUnionField<acb_dft_prod_t>,
285 pub crt: __BindgenUnionField<acb_dft_crt_t>,
286 pub naive: __BindgenUnionField<acb_dft_naive_t>,
287 pub bluestein: __BindgenUnionField<acb_dft_bluestein_t>,
288 pub bindgen_union_field: [u64; 52usize],
289}
290#[allow(clippy::unnecessary_operation, clippy::identity_op)]
291const _: () = {
292 ["Size of acb_dft_pre_struct__bindgen_ty_1"]
293 [::std::mem::size_of::<acb_dft_pre_struct__bindgen_ty_1>() - 416usize];
294 ["Alignment of acb_dft_pre_struct__bindgen_ty_1"]
295 [::std::mem::align_of::<acb_dft_pre_struct__bindgen_ty_1>() - 8usize];
296 ["Offset of field: acb_dft_pre_struct__bindgen_ty_1::rad2"]
297 [::std::mem::offset_of!(acb_dft_pre_struct__bindgen_ty_1, rad2) - 0usize];
298 ["Offset of field: acb_dft_pre_struct__bindgen_ty_1::cyc"]
299 [::std::mem::offset_of!(acb_dft_pre_struct__bindgen_ty_1, cyc) - 0usize];
300 ["Offset of field: acb_dft_pre_struct__bindgen_ty_1::prod"]
301 [::std::mem::offset_of!(acb_dft_pre_struct__bindgen_ty_1, prod) - 0usize];
302 ["Offset of field: acb_dft_pre_struct__bindgen_ty_1::crt"]
303 [::std::mem::offset_of!(acb_dft_pre_struct__bindgen_ty_1, crt) - 0usize];
304 ["Offset of field: acb_dft_pre_struct__bindgen_ty_1::naive"]
305 [::std::mem::offset_of!(acb_dft_pre_struct__bindgen_ty_1, naive) - 0usize];
306 ["Offset of field: acb_dft_pre_struct__bindgen_ty_1::bluestein"]
307 [::std::mem::offset_of!(acb_dft_pre_struct__bindgen_ty_1, bluestein) - 0usize];
308};
309impl Default for acb_dft_pre_struct__bindgen_ty_1 {
310 fn default() -> Self {
311 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
312 unsafe {
313 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
314 s.assume_init()
315 }
316 }
317}
318#[allow(clippy::unnecessary_operation, clippy::identity_op)]
319const _: () = {
320 ["Size of acb_dft_pre_struct"][::std::mem::size_of::<acb_dft_pre_struct>() - 432usize];
321 ["Alignment of acb_dft_pre_struct"][::std::mem::align_of::<acb_dft_pre_struct>() - 8usize];
322 ["Offset of field: acb_dft_pre_struct::n"]
323 [::std::mem::offset_of!(acb_dft_pre_struct, n) - 0usize];
324 ["Offset of field: acb_dft_pre_struct::type_"]
325 [::std::mem::offset_of!(acb_dft_pre_struct, type_) - 8usize];
326 ["Offset of field: acb_dft_pre_struct::t"]
327 [::std::mem::offset_of!(acb_dft_pre_struct, t) - 16usize];
328};
329impl Default for acb_dft_pre_struct {
330 fn default() -> Self {
331 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
332 unsafe {
333 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
334 s.assume_init()
335 }
336 }
337}
338pub type acb_dft_pre_t = [acb_dft_pre_struct; 1usize];
339#[repr(C)]
340pub struct acb_dft_step_struct {
341 pub m: slong,
342 pub M: slong,
343 pub dv: slong,
344 pub z: acb_srcptr,
345 pub dz: slong,
346 pub pre: acb_dft_pre_t,
347}
348#[allow(clippy::unnecessary_operation, clippy::identity_op)]
349const _: () = {
350 ["Size of acb_dft_step_struct"][::std::mem::size_of::<acb_dft_step_struct>() - 472usize];
351 ["Alignment of acb_dft_step_struct"][::std::mem::align_of::<acb_dft_step_struct>() - 8usize];
352 ["Offset of field: acb_dft_step_struct::m"]
353 [::std::mem::offset_of!(acb_dft_step_struct, m) - 0usize];
354 ["Offset of field: acb_dft_step_struct::M"]
355 [::std::mem::offset_of!(acb_dft_step_struct, M) - 8usize];
356 ["Offset of field: acb_dft_step_struct::dv"]
357 [::std::mem::offset_of!(acb_dft_step_struct, dv) - 16usize];
358 ["Offset of field: acb_dft_step_struct::z"]
359 [::std::mem::offset_of!(acb_dft_step_struct, z) - 24usize];
360 ["Offset of field: acb_dft_step_struct::dz"]
361 [::std::mem::offset_of!(acb_dft_step_struct, dz) - 32usize];
362 ["Offset of field: acb_dft_step_struct::pre"]
363 [::std::mem::offset_of!(acb_dft_step_struct, pre) - 40usize];
364};
365impl Default for acb_dft_step_struct {
366 fn default() -> Self {
367 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
368 unsafe {
369 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
370 s.assume_init()
371 }
372 }
373}
374pub const DFT_NAIVE: _bindgen_ty_2 = 0;
375pub const DFT_CYC: _bindgen_ty_2 = 1;
376pub const DFT_PROD: _bindgen_ty_2 = 2;
377pub const DFT_CRT: _bindgen_ty_2 = 3;
378pub const DFT_RAD2: _bindgen_ty_2 = 4;
379pub const DFT_CONV: _bindgen_ty_2 = 5;
380pub type _bindgen_ty_2 = libc::c_uint;
381extern "C" {
382 pub fn _acb_dft_naive(
383 w: acb_ptr,
384 v: acb_srcptr,
385 dv: slong,
386 z: acb_srcptr,
387 dz: slong,
388 len: slong,
389 prec: slong,
390 );
391 pub fn acb_dft_naive(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
392 pub fn acb_dft_crt(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
393 pub fn acb_dft_cyc(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
394 pub fn acb_dft_inverse_cyc(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
395 pub fn acb_dft_rad2_inplace(v: acb_ptr, e: libc::c_int, prec: slong);
396 pub fn acb_dft_rad2(w: acb_ptr, v: acb_srcptr, e: libc::c_int, prec: slong);
397 pub fn acb_dft_bluestein(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
398 pub fn acb_dft_prod(w: acb_ptr, v: acb_srcptr, cyc: *mut slong, num: slong, prec: slong);
399 pub fn acb_dft_rad2_inplace_threaded(v: acb_ptr, e: libc::c_int, prec: slong);
400 pub fn acb_dft_convol_naive(w: acb_ptr, f: acb_srcptr, g: acb_srcptr, len: slong, prec: slong);
401 pub fn acb_dft_convol_dft(w: acb_ptr, f: acb_srcptr, g: acb_srcptr, len: slong, prec: slong);
402 pub fn acb_dft_convol_rad2(w: acb_ptr, f: acb_srcptr, g: acb_srcptr, len: slong, prec: slong);
403 pub fn acb_dft_convol_mullow(w: acb_ptr, f: acb_srcptr, g: acb_srcptr, len: slong, prec: slong);
404 pub fn acb_dft_convol(w: acb_ptr, f: acb_srcptr, g: acb_srcptr, len: slong, prec: slong);
405 pub fn crt_init(c: *mut crt_struct, n: ulong);
406 pub fn crt_decomp(y: acb_ptr, x: acb_srcptr, dx: slong, c: *const crt_struct, len: ulong);
407 pub fn crt_recomp(y: acb_ptr, x: acb_srcptr, c: *const crt_struct, len: ulong);
408 pub fn acb_dft_step(w: acb_ptr, v: acb_srcptr, cyc: acb_dft_step_ptr, num: slong, prec: slong);
409 pub fn acb_dft_precomp(w: acb_ptr, v: acb_srcptr, pre: *const acb_dft_pre_struct, prec: slong);
410 pub fn acb_dft_inverse_precomp(
411 w: acb_ptr,
412 v: acb_srcptr,
413 pre: *const acb_dft_pre_struct,
414 prec: slong,
415 );
416 pub fn acb_dft_naive_precomp(
417 w: acb_ptr,
418 v: acb_srcptr,
419 pol: *const acb_dft_naive_struct,
420 prec: slong,
421 );
422 pub fn acb_dft_cyc_precomp(
423 w: acb_ptr,
424 v: acb_srcptr,
425 cyc: *const acb_dft_cyc_struct,
426 prec: slong,
427 );
428 pub fn acb_dft_rad2_precomp_inplace(v: acb_ptr, rad2: *const acb_dft_rad2_struct, prec: slong);
429 pub fn acb_dft_rad2_precomp(
430 w: acb_ptr,
431 v: acb_srcptr,
432 rad2: *const acb_dft_rad2_struct,
433 prec: slong,
434 );
435 pub fn acb_dft_crt_precomp(
436 w: acb_ptr,
437 v: acb_srcptr,
438 crt: *const acb_dft_crt_struct,
439 prec: slong,
440 );
441 pub fn acb_dft_prod_precomp(
442 w: acb_ptr,
443 v: acb_srcptr,
444 prod: *const acb_dft_prod_struct,
445 prec: slong,
446 );
447 pub fn acb_dft_bluestein_precomp(
448 w: acb_ptr,
449 v: acb_srcptr,
450 t: *const acb_dft_bluestein_struct,
451 prec: slong,
452 );
453 pub fn acb_dft_rad2_precomp_inplace_threaded(
454 v: acb_ptr,
455 rad2: *const acb_dft_rad2_struct,
456 prec: slong,
457 );
458 pub fn acb_dft_inverse_rad2_precomp_inplace(
459 v: acb_ptr,
460 rad2: *const acb_dft_rad2_struct,
461 prec: slong,
462 );
463 pub fn acb_dft_inverse_rad2_precomp(
464 w: acb_ptr,
465 v: acb_srcptr,
466 rad2: *const acb_dft_rad2_struct,
467 prec: slong,
468 );
469 pub fn acb_dft_convol_rad2_precomp(
470 w: acb_ptr,
471 f: acb_srcptr,
472 g: acb_srcptr,
473 len: slong,
474 rad2: *const acb_dft_rad2_struct,
475 prec: slong,
476 );
477 pub fn _acb_dft_precomp_init(
478 pre: *mut acb_dft_pre_struct,
479 dv: slong,
480 z: acb_ptr,
481 dz: slong,
482 len: slong,
483 prec: slong,
484 );
485 pub fn acb_dft_precomp_init(pre: *mut acb_dft_pre_struct, len: slong, prec: slong);
486 pub fn acb_dft_precomp_clear(pre: *mut acb_dft_pre_struct);
487 pub fn acb_dft(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
488 pub fn acb_dft_inverse(w: acb_ptr, v: acb_srcptr, len: slong, prec: slong);
489 pub fn _acb_dft_steps_prod(m: *mut slong, num: slong, prec: slong) -> acb_dft_step_ptr;
490 #[link_name = "acb_dft_prod_init__extern"]
491 pub fn acb_dft_prod_init(t: *mut acb_dft_prod_struct, cyc: *mut slong, num: slong, prec: slong);
492 pub fn acb_dft_prod_clear(t: *mut acb_dft_prod_struct);
493 pub fn _acb_dft_cyc_init_z_fac(
494 t: *mut acb_dft_cyc_struct,
495 fac: n_factor_t,
496 dv: slong,
497 z: acb_ptr,
498 dz: slong,
499 len: slong,
500 prec: slong,
501 );
502 pub fn _acb_dft_cyc_init(t: *mut acb_dft_cyc_struct, dv: slong, len: slong, prec: slong);
503 #[link_name = "acb_dft_cyc_init__extern"]
504 pub fn acb_dft_cyc_init(t: *mut acb_dft_cyc_struct, len: slong, prec: slong);
505 pub fn acb_dft_cyc_clear(t: *mut acb_dft_cyc_struct);
506 pub fn _acb_dft_naive_init(
507 pol: *mut acb_dft_naive_struct,
508 dv: slong,
509 z: acb_ptr,
510 dz: slong,
511 len: slong,
512 prec: slong,
513 );
514 #[link_name = "acb_dft_naive_init__extern"]
515 pub fn acb_dft_naive_init(pol: *mut acb_dft_naive_struct, len: slong, prec: slong);
516 #[link_name = "acb_dft_naive_clear__extern"]
517 pub fn acb_dft_naive_clear(pol: *mut acb_dft_naive_struct);
518 pub fn _acb_dft_rad2_init(t: *mut acb_dft_rad2_struct, dv: slong, e: libc::c_int, prec: slong);
519 #[link_name = "acb_dft_rad2_init__extern"]
520 pub fn acb_dft_rad2_init(t: *mut acb_dft_rad2_struct, e: libc::c_int, prec: slong);
521 #[link_name = "acb_dft_rad2_clear__extern"]
522 pub fn acb_dft_rad2_clear(t: *mut acb_dft_rad2_struct);
523 pub fn _acb_dft_bluestein_init(
524 t: *mut acb_dft_bluestein_struct,
525 dv: slong,
526 n: slong,
527 prec: slong,
528 );
529 #[link_name = "acb_dft_bluestein_init__extern"]
530 pub fn acb_dft_bluestein_init(t: *mut acb_dft_bluestein_struct, n: slong, prec: slong);
531 #[link_name = "acb_dft_bluestein_clear__extern"]
532 pub fn acb_dft_bluestein_clear(t: *mut acb_dft_bluestein_struct);
533 pub fn _acb_dft_crt_init(crt: *mut acb_dft_crt_struct, dv: slong, len: slong, prec: slong);
534 pub fn acb_dft_crt_init(crt: *mut acb_dft_crt_struct, len: slong, prec: slong);
535 pub fn acb_dft_crt_clear(crt: *mut acb_dft_crt_struct);
536 #[link_name = "acb_swap_ri__extern"]
537 pub fn acb_swap_ri(x: *mut acb_struct);
538 #[link_name = "acb_vec_swap_ri__extern"]
539 pub fn acb_vec_swap_ri(v: acb_ptr, len: slong);
540 #[link_name = "_acb_vec_kronecker_mul__extern"]
541 pub fn _acb_vec_kronecker_mul(
542 z: acb_ptr,
543 x: acb_srcptr,
544 y: acb_srcptr,
545 len: slong,
546 prec: slong,
547 );
548 #[link_name = "_acb_vec_kronecker_mul_step__extern"]
549 pub fn _acb_vec_kronecker_mul_step(
550 z: acb_ptr,
551 x: acb_srcptr,
552 y: acb_srcptr,
553 step: slong,
554 len: slong,
555 prec: slong,
556 );
557}