Skip to main content

flint_sys/
acb_dirichlet.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use crate::deps::*;
4use crate::acb_types::*;
5use crate::arb_types::*;
6use crate::arf_types::*;
7use crate::dirichlet::*;
8use crate::flint::*;
9
10
11#[repr(C)]
12pub struct acb_dirichlet_hurwitz_precomp_struct {
13    pub s: acb_struct,
14    pub err: mag_struct,
15    pub coeffs: acb_ptr,
16    pub deflate: libc::c_int,
17    pub A: slong,
18    pub N: slong,
19    pub K: slong,
20}
21#[allow(clippy::unnecessary_operation, clippy::identity_op)]
22const _: () = {
23    ["Size of acb_dirichlet_hurwitz_precomp_struct"]
24        [::std::mem::size_of::<acb_dirichlet_hurwitz_precomp_struct>() - 152usize];
25    ["Alignment of acb_dirichlet_hurwitz_precomp_struct"]
26        [::std::mem::align_of::<acb_dirichlet_hurwitz_precomp_struct>() - 8usize];
27    ["Offset of field: acb_dirichlet_hurwitz_precomp_struct::s"]
28        [::std::mem::offset_of!(acb_dirichlet_hurwitz_precomp_struct, s) - 0usize];
29    ["Offset of field: acb_dirichlet_hurwitz_precomp_struct::err"]
30        [::std::mem::offset_of!(acb_dirichlet_hurwitz_precomp_struct, err) - 96usize];
31    ["Offset of field: acb_dirichlet_hurwitz_precomp_struct::coeffs"]
32        [::std::mem::offset_of!(acb_dirichlet_hurwitz_precomp_struct, coeffs) - 112usize];
33    ["Offset of field: acb_dirichlet_hurwitz_precomp_struct::deflate"]
34        [::std::mem::offset_of!(acb_dirichlet_hurwitz_precomp_struct, deflate) - 120usize];
35    ["Offset of field: acb_dirichlet_hurwitz_precomp_struct::A"]
36        [::std::mem::offset_of!(acb_dirichlet_hurwitz_precomp_struct, A) - 128usize];
37    ["Offset of field: acb_dirichlet_hurwitz_precomp_struct::N"]
38        [::std::mem::offset_of!(acb_dirichlet_hurwitz_precomp_struct, N) - 136usize];
39    ["Offset of field: acb_dirichlet_hurwitz_precomp_struct::K"]
40        [::std::mem::offset_of!(acb_dirichlet_hurwitz_precomp_struct, K) - 144usize];
41};
42impl Default for acb_dirichlet_hurwitz_precomp_struct {
43    fn default() -> Self {
44        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
45        unsafe {
46            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
47            s.assume_init()
48        }
49    }
50}
51pub type acb_dirichlet_hurwitz_precomp_t = [acb_dirichlet_hurwitz_precomp_struct; 1usize];
52#[repr(C)]
53pub struct acb_dirichlet_roots_struct {
54    pub order: ulong,
55    pub reduced_order: ulong,
56    pub z: acb_t,
57    pub size: slong,
58    pub depth: slong,
59    pub Z: *mut acb_ptr,
60    pub use_pow: libc::c_int,
61}
62#[allow(clippy::unnecessary_operation, clippy::identity_op)]
63const _: () = {
64    ["Size of acb_dirichlet_roots_struct"]
65        [::std::mem::size_of::<acb_dirichlet_roots_struct>() - 144usize];
66    ["Alignment of acb_dirichlet_roots_struct"]
67        [::std::mem::align_of::<acb_dirichlet_roots_struct>() - 8usize];
68    ["Offset of field: acb_dirichlet_roots_struct::order"]
69        [::std::mem::offset_of!(acb_dirichlet_roots_struct, order) - 0usize];
70    ["Offset of field: acb_dirichlet_roots_struct::reduced_order"]
71        [::std::mem::offset_of!(acb_dirichlet_roots_struct, reduced_order) - 8usize];
72    ["Offset of field: acb_dirichlet_roots_struct::z"]
73        [::std::mem::offset_of!(acb_dirichlet_roots_struct, z) - 16usize];
74    ["Offset of field: acb_dirichlet_roots_struct::size"]
75        [::std::mem::offset_of!(acb_dirichlet_roots_struct, size) - 112usize];
76    ["Offset of field: acb_dirichlet_roots_struct::depth"]
77        [::std::mem::offset_of!(acb_dirichlet_roots_struct, depth) - 120usize];
78    ["Offset of field: acb_dirichlet_roots_struct::Z"]
79        [::std::mem::offset_of!(acb_dirichlet_roots_struct, Z) - 128usize];
80    ["Offset of field: acb_dirichlet_roots_struct::use_pow"]
81        [::std::mem::offset_of!(acb_dirichlet_roots_struct, use_pow) - 136usize];
82};
83impl Default for acb_dirichlet_roots_struct {
84    fn default() -> Self {
85        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
86        unsafe {
87            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
88            s.assume_init()
89        }
90    }
91}
92pub type acb_dirichlet_roots_t = [acb_dirichlet_roots_struct; 1usize];
93#[repr(C)]
94pub struct acb_dirichlet_platt_c_precomp_struct {
95    pub len: slong,
96    pub p: arb_ptr,
97    pub Xa: arb_struct,
98    pub Xb: arb_struct,
99}
100#[allow(clippy::unnecessary_operation, clippy::identity_op)]
101const _: () = {
102    ["Size of acb_dirichlet_platt_c_precomp_struct"]
103        [::std::mem::size_of::<acb_dirichlet_platt_c_precomp_struct>() - 112usize];
104    ["Alignment of acb_dirichlet_platt_c_precomp_struct"]
105        [::std::mem::align_of::<acb_dirichlet_platt_c_precomp_struct>() - 8usize];
106    ["Offset of field: acb_dirichlet_platt_c_precomp_struct::len"]
107        [::std::mem::offset_of!(acb_dirichlet_platt_c_precomp_struct, len) - 0usize];
108    ["Offset of field: acb_dirichlet_platt_c_precomp_struct::p"]
109        [::std::mem::offset_of!(acb_dirichlet_platt_c_precomp_struct, p) - 8usize];
110    ["Offset of field: acb_dirichlet_platt_c_precomp_struct::Xa"]
111        [::std::mem::offset_of!(acb_dirichlet_platt_c_precomp_struct, Xa) - 16usize];
112    ["Offset of field: acb_dirichlet_platt_c_precomp_struct::Xb"]
113        [::std::mem::offset_of!(acb_dirichlet_platt_c_precomp_struct, Xb) - 64usize];
114};
115impl Default for acb_dirichlet_platt_c_precomp_struct {
116    fn default() -> Self {
117        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
118        unsafe {
119            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
120            s.assume_init()
121        }
122    }
123}
124pub type acb_dirichlet_platt_c_precomp_t = [acb_dirichlet_platt_c_precomp_struct; 1usize];
125#[repr(C)]
126pub struct acb_dirichlet_platt_i_precomp_struct {
127    pub c1: arb_struct,
128    pub c2: arb_struct,
129}
130#[allow(clippy::unnecessary_operation, clippy::identity_op)]
131const _: () = {
132    ["Size of acb_dirichlet_platt_i_precomp_struct"]
133        [::std::mem::size_of::<acb_dirichlet_platt_i_precomp_struct>() - 96usize];
134    ["Alignment of acb_dirichlet_platt_i_precomp_struct"]
135        [::std::mem::align_of::<acb_dirichlet_platt_i_precomp_struct>() - 8usize];
136    ["Offset of field: acb_dirichlet_platt_i_precomp_struct::c1"]
137        [::std::mem::offset_of!(acb_dirichlet_platt_i_precomp_struct, c1) - 0usize];
138    ["Offset of field: acb_dirichlet_platt_i_precomp_struct::c2"]
139        [::std::mem::offset_of!(acb_dirichlet_platt_i_precomp_struct, c2) - 48usize];
140};
141impl Default for acb_dirichlet_platt_i_precomp_struct {
142    fn default() -> Self {
143        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
144        unsafe {
145            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
146            s.assume_init()
147        }
148    }
149}
150pub type acb_dirichlet_platt_i_precomp_t = [acb_dirichlet_platt_i_precomp_struct; 1usize];
151#[repr(C)]
152pub struct acb_dirichlet_platt_ws_precomp_struct {
153    pub pre_c: acb_dirichlet_platt_c_precomp_struct,
154    pub pre_i: acb_dirichlet_platt_i_precomp_struct,
155}
156#[allow(clippy::unnecessary_operation, clippy::identity_op)]
157const _: () = {
158    ["Size of acb_dirichlet_platt_ws_precomp_struct"]
159        [::std::mem::size_of::<acb_dirichlet_platt_ws_precomp_struct>() - 208usize];
160    ["Alignment of acb_dirichlet_platt_ws_precomp_struct"]
161        [::std::mem::align_of::<acb_dirichlet_platt_ws_precomp_struct>() - 8usize];
162    ["Offset of field: acb_dirichlet_platt_ws_precomp_struct::pre_c"]
163        [::std::mem::offset_of!(acb_dirichlet_platt_ws_precomp_struct, pre_c) - 0usize];
164    ["Offset of field: acb_dirichlet_platt_ws_precomp_struct::pre_i"]
165        [::std::mem::offset_of!(acb_dirichlet_platt_ws_precomp_struct, pre_i) - 112usize];
166};
167impl Default for acb_dirichlet_platt_ws_precomp_struct {
168    fn default() -> Self {
169        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
170        unsafe {
171            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
172            s.assume_init()
173        }
174    }
175}
176pub type acb_dirichlet_platt_ws_precomp_t = [acb_dirichlet_platt_ws_precomp_struct; 1usize];
177extern "C" {
178    pub fn acb_dirichlet_powsum_term(
179        res: acb_ptr,
180        log_prev: *mut arb_struct,
181        prev: *mut ulong,
182        s: *const acb_struct,
183        k: ulong,
184        integer: libc::c_int,
185        critical_line: libc::c_int,
186        len: slong,
187        prec: slong,
188    );
189    pub fn acb_dirichlet_powsum_sieved(
190        z: acb_ptr,
191        s: *const acb_struct,
192        n: ulong,
193        len: slong,
194        prec: slong,
195    );
196    pub fn acb_dirichlet_powsum_smooth(
197        z: acb_ptr,
198        s: *const acb_struct,
199        n: ulong,
200        len: slong,
201        prec: slong,
202    );
203    pub fn acb_dirichlet_zeta_bound(res: *mut mag_struct, s: *const acb_struct);
204    pub fn acb_dirichlet_zeta_deriv_bound(
205        der1: *mut mag_struct,
206        der2: *mut mag_struct,
207        s: *const acb_struct,
208    );
209    pub fn acb_dirichlet_zeta_rs_f_coeffs(c: acb_ptr, p: *const arb_struct, N: slong, prec: slong);
210    pub fn acb_dirichlet_zeta_rs_d_coeffs(
211        d: arb_ptr,
212        sigma: *const arb_struct,
213        k: slong,
214        prec: slong,
215    );
216    pub fn acb_dirichlet_zeta_rs_bound(err: *mut mag_struct, s: *const acb_struct, K: slong);
217    pub fn acb_dirichlet_zeta_rs_r(
218        res: *mut acb_struct,
219        s: *const acb_struct,
220        K: slong,
221        prec: slong,
222    );
223    pub fn acb_dirichlet_zeta_rs(res: *mut acb_struct, s: *const acb_struct, K: slong, prec: slong);
224    pub fn acb_dirichlet_zeta(res: *mut acb_struct, s: *const acb_struct, prec: slong);
225    pub fn acb_dirichlet_zeta_jet_rs(res: acb_ptr, s: *const acb_struct, len: slong, prec: slong);
226    pub fn acb_dirichlet_zeta_jet(
227        res: *mut acb_struct,
228        s: *const acb_struct,
229        deflate: libc::c_int,
230        len: slong,
231        prec: slong,
232    );
233    pub fn acb_dirichlet_hurwitz(
234        res: *mut acb_struct,
235        s: *const acb_struct,
236        a: *const acb_struct,
237        prec: slong,
238    );
239    pub fn acb_dirichlet_lerch_phi_integral(
240        res: *mut acb_struct,
241        z: *const acb_struct,
242        s: *const acb_struct,
243        a: *const acb_struct,
244        prec: slong,
245    );
246    pub fn acb_dirichlet_lerch_phi_direct(
247        res: *mut acb_struct,
248        z: *const acb_struct,
249        s: *const acb_struct,
250        a: *const acb_struct,
251        prec: slong,
252    );
253    pub fn acb_dirichlet_lerch_phi(
254        res: *mut acb_struct,
255        z: *const acb_struct,
256        s: *const acb_struct,
257        a: *const acb_struct,
258        prec: slong,
259    );
260    pub fn acb_dirichlet_stieltjes(
261        res: *mut acb_struct,
262        n: *const fmpz,
263        a: *const acb_struct,
264        prec: slong,
265    );
266    pub fn acb_dirichlet_hurwitz_precomp_init(
267        pre: *mut acb_dirichlet_hurwitz_precomp_struct,
268        s: *const acb_struct,
269        deflate: libc::c_int,
270        A: slong,
271        K: slong,
272        N: slong,
273        prec: slong,
274    );
275    pub fn acb_dirichlet_hurwitz_precomp_init_num(
276        pre: *mut acb_dirichlet_hurwitz_precomp_struct,
277        s: *const acb_struct,
278        deflate: libc::c_int,
279        num_eval: f64,
280        prec: slong,
281    );
282    pub fn acb_dirichlet_hurwitz_precomp_clear(pre: *mut acb_dirichlet_hurwitz_precomp_struct);
283    pub fn acb_dirichlet_hurwitz_precomp_bound(
284        res: *mut mag_struct,
285        s: *const acb_struct,
286        A: slong,
287        K: slong,
288        N: slong,
289    );
290    pub fn acb_dirichlet_hurwitz_precomp_eval(
291        res: *mut acb_struct,
292        pre: *const acb_dirichlet_hurwitz_precomp_struct,
293        p: ulong,
294        q: ulong,
295        prec: slong,
296    );
297    pub fn acb_dirichlet_hurwitz_precomp_choose_param(
298        A: *mut ulong,
299        K: *mut ulong,
300        N: *mut ulong,
301        s: *const acb_struct,
302        num_eval: f64,
303        prec: slong,
304    );
305    pub fn _acb_dirichlet_euler_product_real_ui(
306        res: *mut arb_struct,
307        s: ulong,
308        chi: *const libc::c_schar,
309        mod_: libc::c_int,
310        reciprocal: libc::c_int,
311        prec: slong,
312    );
313    pub fn acb_dirichlet_eta(res: *mut acb_struct, s: *const acb_struct, prec: slong);
314    pub fn acb_dirichlet_xi(res: *mut acb_struct, s: *const acb_struct, prec: slong);
315    pub fn acb_dirichlet_pairing(
316        res: *mut acb_struct,
317        G: *const dirichlet_group_struct,
318        m: ulong,
319        n: ulong,
320        prec: slong,
321    );
322    pub fn acb_dirichlet_pairing_char(
323        res: *mut acb_struct,
324        G: *const dirichlet_group_struct,
325        a: *const dirichlet_char_struct,
326        b: *const dirichlet_char_struct,
327        prec: slong,
328    );
329    pub fn acb_dirichlet_roots_init(
330        t: *mut acb_dirichlet_roots_struct,
331        order: ulong,
332        num: slong,
333        prec: slong,
334    );
335    pub fn acb_dirichlet_roots_clear(t: *mut acb_dirichlet_roots_struct);
336    pub fn acb_dirichlet_root(
337        z: *mut acb_struct,
338        t: *const acb_dirichlet_roots_struct,
339        n: ulong,
340        prec: slong,
341    );
342    pub fn acb_dirichlet_chi(
343        res: *mut acb_struct,
344        G: *const dirichlet_group_struct,
345        chi: *const dirichlet_char_struct,
346        n: ulong,
347        prec: slong,
348    );
349    pub fn acb_dirichlet_chi_vec(
350        v: acb_ptr,
351        G: *const dirichlet_group_struct,
352        chi: *const dirichlet_char_struct,
353        nv: slong,
354        prec: slong,
355    );
356    pub fn acb_dirichlet_arb_quadratic_powers(
357        v: arb_ptr,
358        nv: slong,
359        x: *const arb_struct,
360        prec: slong,
361    );
362    pub fn acb_dirichlet_qseries_arb(
363        res: *mut acb_struct,
364        a: acb_srcptr,
365        x: *const arb_struct,
366        len: slong,
367        prec: slong,
368    );
369    pub fn acb_dirichlet_qseries_arb_powers_naive(
370        res: *mut acb_struct,
371        x: *const arb_struct,
372        parity: libc::c_int,
373        a: *const ulong,
374        z: *const acb_dirichlet_roots_struct,
375        len: slong,
376        prec: slong,
377    );
378    pub fn acb_dirichlet_qseries_arb_powers_smallorder(
379        res: *mut acb_struct,
380        x: *const arb_struct,
381        parity: libc::c_int,
382        a: *const ulong,
383        z: *const acb_dirichlet_roots_struct,
384        len: slong,
385        prec: slong,
386    );
387    pub fn acb_dirichlet_theta_length_d(q: ulong, x: f64, prec: slong) -> ulong;
388    pub fn acb_dirichlet_theta_length(q: ulong, x: *const arb_struct, prec: slong) -> ulong;
389    pub fn mag_tail_kexpk2_arb(res: *mut mag_struct, a: *const arb_struct, n: ulong);
390    pub fn _acb_dirichlet_theta_argument_at_arb(
391        xt: *mut arb_struct,
392        q: ulong,
393        t: *const arb_struct,
394        prec: slong,
395    );
396    pub fn _acb_dirichlet_theta_arb_series(
397        res: *mut acb_struct,
398        G: *const dirichlet_group_struct,
399        chi: *const dirichlet_char_struct,
400        xt: *const arb_struct,
401        len: slong,
402        prec: slong,
403    );
404    pub fn acb_dirichlet_theta_arb(
405        res: *mut acb_struct,
406        G: *const dirichlet_group_struct,
407        chi: *const dirichlet_char_struct,
408        t: *const arb_struct,
409        prec: slong,
410    );
411    pub fn acb_dirichlet_ui_theta_arb(
412        res: *mut acb_struct,
413        G: *const dirichlet_group_struct,
414        a: ulong,
415        t: *const arb_struct,
416        prec: slong,
417    );
418    pub fn acb_dirichlet_gauss_sum_naive(
419        res: *mut acb_struct,
420        G: *const dirichlet_group_struct,
421        chi: *const dirichlet_char_struct,
422        prec: slong,
423    );
424    pub fn acb_dirichlet_gauss_sum_factor(
425        res: *mut acb_struct,
426        G: *const dirichlet_group_struct,
427        chi: *const dirichlet_char_struct,
428        prec: slong,
429    );
430    pub fn acb_dirichlet_gauss_sum_order2(
431        res: *mut acb_struct,
432        G: *const dirichlet_group_struct,
433        chi: *const dirichlet_char_struct,
434        prec: slong,
435    );
436    pub fn acb_dirichlet_gauss_sum_theta(
437        res: *mut acb_struct,
438        G: *const dirichlet_group_struct,
439        chi: *const dirichlet_char_struct,
440        prec: slong,
441    );
442    pub fn acb_dirichlet_gauss_sum(
443        res: *mut acb_struct,
444        G: *const dirichlet_group_struct,
445        chi: *const dirichlet_char_struct,
446        prec: slong,
447    );
448    pub fn acb_dirichlet_root_number_theta(
449        res: *mut acb_struct,
450        G: *const dirichlet_group_struct,
451        chi: *const dirichlet_char_struct,
452        prec: slong,
453    );
454    pub fn acb_dirichlet_root_number(
455        res: *mut acb_struct,
456        G: *const dirichlet_group_struct,
457        chi: *const dirichlet_char_struct,
458        prec: slong,
459    );
460    pub fn acb_dirichlet_si_poly_evaluate(
461        res: *mut acb_struct,
462        v: *mut slong,
463        len: slong,
464        z: *const acb_struct,
465        prec: slong,
466    );
467    pub fn acb_dirichlet_jacobi_sum_naive(
468        res: *mut acb_struct,
469        G: *const dirichlet_group_struct,
470        chi1: *const dirichlet_char_struct,
471        chi2: *const dirichlet_char_struct,
472        prec: slong,
473    );
474    pub fn jacobi_one_prime(p: ulong, e: ulong, pe: ulong, cond: ulong) -> ulong;
475    pub fn acb_dirichlet_jacobi_sum_factor(
476        res: *mut acb_struct,
477        G: *const dirichlet_group_struct,
478        chi1: *const dirichlet_char_struct,
479        chi2: *const dirichlet_char_struct,
480        prec: slong,
481    );
482    pub fn acb_dirichlet_jacobi_sum_gauss(
483        res: *mut acb_struct,
484        G: *const dirichlet_group_struct,
485        chi1: *const dirichlet_char_struct,
486        chi2: *const dirichlet_char_struct,
487        prec: slong,
488    );
489    pub fn acb_dirichlet_jacobi_sum(
490        res: *mut acb_struct,
491        G: *const dirichlet_group_struct,
492        chi1: *const dirichlet_char_struct,
493        chi2: *const dirichlet_char_struct,
494        prec: slong,
495    );
496    pub fn acb_dirichlet_jacobi_sum_ui(
497        res: *mut acb_struct,
498        G: *const dirichlet_group_struct,
499        a: ulong,
500        b: ulong,
501        prec: slong,
502    );
503    pub fn acb_dirichlet_l_euler_product(
504        res: *mut acb_struct,
505        s: *const acb_struct,
506        G: *const dirichlet_group_struct,
507        chi: *const dirichlet_char_struct,
508        prec: slong,
509    );
510    pub fn acb_dirichlet_l_hurwitz(
511        res: *mut acb_struct,
512        s: *const acb_struct,
513        precomp: *const acb_dirichlet_hurwitz_precomp_struct,
514        G: *const dirichlet_group_struct,
515        chi: *const dirichlet_char_struct,
516        prec: slong,
517    );
518    pub fn acb_dirichlet_l(
519        res: *mut acb_struct,
520        s: *const acb_struct,
521        G: *const dirichlet_group_struct,
522        chi: *const dirichlet_char_struct,
523        prec: slong,
524    );
525    pub fn acb_dirichlet_l_vec_hurwitz(
526        res: acb_ptr,
527        s: *const acb_struct,
528        precomp: *const acb_dirichlet_hurwitz_precomp_struct,
529        G: *const dirichlet_group_struct,
530        prec: slong,
531    );
532    pub fn acb_dirichlet_l_jet(
533        res: acb_ptr,
534        s: *const acb_struct,
535        G: *const dirichlet_group_struct,
536        chi: *const dirichlet_char_struct,
537        deflate: libc::c_int,
538        len: slong,
539        prec: slong,
540    );
541    pub fn acb_dirichlet_l_fmpq_afe(
542        res: *mut acb_struct,
543        s: *const fmpq,
544        G: *const dirichlet_group_struct,
545        chi: *const dirichlet_char_struct,
546        prec: slong,
547    );
548    pub fn acb_dirichlet_l_fmpq(
549        res: *mut acb_struct,
550        s: *const fmpq,
551        G: *const dirichlet_group_struct,
552        chi: *const dirichlet_char_struct,
553        prec: slong,
554    );
555    pub fn _acb_dirichlet_l_series(
556        res: acb_ptr,
557        s: acb_srcptr,
558        slen: slong,
559        G: *const dirichlet_group_struct,
560        chi: *const dirichlet_char_struct,
561        deflate: libc::c_int,
562        len: slong,
563        prec: slong,
564    );
565    pub fn acb_dirichlet_l_series(
566        res: *mut acb_poly_struct,
567        s: *const acb_poly_struct,
568        G: *const dirichlet_group_struct,
569        chi: *const dirichlet_char_struct,
570        deflate: libc::c_int,
571        len: slong,
572        prec: slong,
573    );
574    pub fn acb_dirichlet_hardy_theta(
575        res: acb_ptr,
576        t: *const acb_struct,
577        G: *const dirichlet_group_struct,
578        chi: *const dirichlet_char_struct,
579        len: slong,
580        prec: slong,
581    );
582    pub fn acb_dirichlet_hardy_z(
583        res: acb_ptr,
584        t: *const acb_struct,
585        G: *const dirichlet_group_struct,
586        chi: *const dirichlet_char_struct,
587        len: slong,
588        prec: slong,
589    );
590    pub fn _acb_dirichlet_hardy_theta_series(
591        res: acb_ptr,
592        s: acb_srcptr,
593        slen: slong,
594        G: *const dirichlet_group_struct,
595        chi: *const dirichlet_char_struct,
596        len: slong,
597        prec: slong,
598    );
599    pub fn acb_dirichlet_hardy_theta_series(
600        res: *mut acb_poly_struct,
601        s: *const acb_poly_struct,
602        G: *const dirichlet_group_struct,
603        chi: *const dirichlet_char_struct,
604        len: slong,
605        prec: slong,
606    );
607    pub fn _acb_dirichlet_hardy_z_series(
608        res: acb_ptr,
609        s: acb_srcptr,
610        slen: slong,
611        G: *const dirichlet_group_struct,
612        chi: *const dirichlet_char_struct,
613        len: slong,
614        prec: slong,
615    );
616    pub fn acb_dirichlet_hardy_z_series(
617        res: *mut acb_poly_struct,
618        s: *const acb_poly_struct,
619        G: *const dirichlet_group_struct,
620        chi: *const dirichlet_char_struct,
621        len: slong,
622        prec: slong,
623    );
624    pub fn acb_dirichlet_gram_point(
625        res: *mut arb_struct,
626        n: *const fmpz,
627        G: *const dirichlet_group_struct,
628        chi: *const dirichlet_char_struct,
629        prec: slong,
630    );
631    pub fn acb_dirichlet_turing_method_bound(p: *const fmpz) -> ulong;
632    pub fn _acb_dirichlet_definite_hardy_z(
633        res: *mut arb_struct,
634        t: *const arf_struct,
635        pprec: *mut slong,
636    ) -> libc::c_int;
637    pub fn _acb_dirichlet_isolate_gram_hardy_z_zero(
638        a: *mut arf_struct,
639        b: *mut arf_struct,
640        n: *const fmpz,
641    );
642    pub fn _acb_dirichlet_isolate_rosser_hardy_z_zero(
643        a: *mut arf_struct,
644        b: *mut arf_struct,
645        n: *const fmpz,
646    );
647    pub fn _acb_dirichlet_isolate_turing_hardy_z_zero(
648        a: *mut arf_struct,
649        b: *mut arf_struct,
650        n: *const fmpz,
651    );
652    pub fn acb_dirichlet_isolate_hardy_z_zero(
653        a: *mut arf_struct,
654        b: *mut arf_struct,
655        n: *const fmpz,
656    );
657    pub fn _acb_dirichlet_refine_hardy_z_zero(
658        res: *mut arb_struct,
659        a: *const arf_struct,
660        b: *const arf_struct,
661        prec: slong,
662    );
663    pub fn acb_dirichlet_hardy_z_zeros(res: arb_ptr, n: *const fmpz, len: slong, prec: slong);
664    pub fn acb_dirichlet_zeta_zeros(res: acb_ptr, n: *const fmpz, len: slong, prec: slong);
665    pub fn acb_dirichlet_platt_zeta_zeros(
666        res: acb_ptr,
667        n: *const fmpz,
668        len: slong,
669        prec: slong,
670    ) -> slong;
671    pub fn _acb_dirichlet_exact_zeta_nzeros(res: *mut fmpz, t: *const arf_struct);
672    pub fn acb_dirichlet_zeta_nzeros(res: *mut arb_struct, t: *const arb_struct, prec: slong);
673    pub fn acb_dirichlet_backlund_s(res: *mut arb_struct, t: *const arb_struct, prec: slong);
674    pub fn acb_dirichlet_backlund_s_bound(res: *mut mag_struct, t: *const arb_struct);
675    pub fn acb_dirichlet_zeta_nzeros_gram(res: *mut fmpz, n: *const fmpz);
676    pub fn acb_dirichlet_backlund_s_gram(n: *const fmpz) -> slong;
677    #[link_name = "acb_dirichlet_hardy_z_zero__extern"]
678    pub fn acb_dirichlet_hardy_z_zero(res: *mut arb_struct, n: *const fmpz, prec: slong);
679    #[link_name = "acb_dirichlet_zeta_zero__extern"]
680    pub fn acb_dirichlet_zeta_zero(res: *mut acb_struct, n: *const fmpz, prec: slong);
681    pub fn acb_dirichlet_vec_mellin_arb(
682        res: acb_ptr,
683        G: *const dirichlet_group_struct,
684        chi: *const dirichlet_char_struct,
685        len: slong,
686        t: *const arb_struct,
687        n: slong,
688        prec: slong,
689    );
690    pub fn acb_dirichlet_platt_c_precomp_init(
691        pre: *mut acb_dirichlet_platt_c_precomp_struct,
692        sigma: slong,
693        h: *const arb_struct,
694        k: ulong,
695        prec: slong,
696    );
697    pub fn acb_dirichlet_platt_c_precomp_clear(pre: *mut acb_dirichlet_platt_c_precomp_struct);
698    pub fn acb_dirichlet_platt_c_bound_precomp(
699        res: *mut arb_struct,
700        pre: *const acb_dirichlet_platt_c_precomp_struct,
701        sigma: slong,
702        t0: *const arb_struct,
703        h: *const arb_struct,
704        k: slong,
705        prec: slong,
706    );
707    pub fn acb_dirichlet_platt_c_bound(
708        res: *mut arb_struct,
709        sigma: slong,
710        t0: *const arb_struct,
711        h: *const arb_struct,
712        k: slong,
713        prec: slong,
714    );
715    pub fn acb_dirichlet_platt_i_precomp_init(
716        pre: *mut acb_dirichlet_platt_i_precomp_struct,
717        A: slong,
718        H: *const arb_struct,
719        sigma: slong,
720        prec: slong,
721    );
722    pub fn acb_dirichlet_platt_i_precomp_clear(pre: *mut acb_dirichlet_platt_i_precomp_struct);
723    pub fn acb_dirichlet_platt_i_bound_precomp(
724        res: *mut arb_struct,
725        pre_i: *const acb_dirichlet_platt_i_precomp_struct,
726        pre_c: *const acb_dirichlet_platt_c_precomp_struct,
727        t0: *const arb_struct,
728        A: slong,
729        H: *const arb_struct,
730        sigma: slong,
731        prec: slong,
732    );
733    pub fn acb_dirichlet_platt_i_bound(
734        res: *mut arb_struct,
735        t0: *const arb_struct,
736        A: slong,
737        H: *const arb_struct,
738        sigma: slong,
739        prec: slong,
740    );
741    pub fn acb_dirichlet_platt_ws_precomp_init(
742        pre: *mut acb_dirichlet_platt_ws_precomp_struct,
743        A: slong,
744        H: *const arb_struct,
745        sigma: slong,
746        prec: slong,
747    );
748    pub fn acb_dirichlet_platt_ws_precomp_clear(pre: *mut acb_dirichlet_platt_ws_precomp_struct);
749    pub fn acb_dirichlet_platt_ws_interpolation_precomp(
750        res: *mut arb_struct,
751        deriv: *mut arf_struct,
752        pre: *const acb_dirichlet_platt_ws_precomp_struct,
753        t0: *const arb_struct,
754        p: arb_srcptr,
755        T: *const fmpz,
756        A: slong,
757        B: slong,
758        Ns_max: slong,
759        H: *const arb_struct,
760        sigma: slong,
761        prec: slong,
762    );
763    pub fn acb_dirichlet_platt_ws_interpolation(
764        res: *mut arb_struct,
765        deriv: *mut arf_struct,
766        t0: *const arb_struct,
767        p: arb_srcptr,
768        T: *const fmpz,
769        A: slong,
770        B: slong,
771        Ns_max: slong,
772        H: *const arb_struct,
773        sigma: slong,
774        prec: slong,
775    );
776    pub fn acb_dirichlet_platt_bound_C3(
777        res: *mut arb_struct,
778        t0: *const arb_struct,
779        A: slong,
780        H: *const arb_struct,
781        Ns: slong,
782        prec: slong,
783    );
784    pub fn acb_dirichlet_platt_scaled_lambda(
785        res: *mut arb_struct,
786        t: *const arb_struct,
787        prec: slong,
788    );
789    pub fn acb_dirichlet_platt_scaled_lambda_vec(
790        res: arb_ptr,
791        T: *const fmpz,
792        A: slong,
793        B: slong,
794        prec: slong,
795    );
796    pub fn acb_dirichlet_platt_beta(res: *mut arb_struct, t: *const arb_struct, prec: slong);
797    pub fn acb_dirichlet_platt_lemma_32(
798        out: *mut arb_struct,
799        h: *const arb_struct,
800        t0: *const arb_struct,
801        x: *const arb_struct,
802        prec: slong,
803    );
804    pub fn acb_dirichlet_platt_lemma_A5(
805        out: *mut arb_struct,
806        B: slong,
807        h: *const arb_struct,
808        k: slong,
809        prec: slong,
810    );
811    pub fn acb_dirichlet_platt_lemma_A7(
812        out: *mut arb_struct,
813        sigma: slong,
814        t0: *const arb_struct,
815        h: *const arb_struct,
816        k: slong,
817        A: slong,
818        prec: slong,
819    );
820    pub fn acb_dirichlet_platt_lemma_A9(
821        out: *mut arb_struct,
822        sigma: slong,
823        t0: *const arb_struct,
824        h: *const arb_struct,
825        A: slong,
826        prec: slong,
827    );
828    pub fn acb_dirichlet_platt_lemma_A11(
829        out: *mut arb_struct,
830        t0: *const arb_struct,
831        h: *const arb_struct,
832        B: slong,
833        prec: slong,
834    );
835    pub fn acb_dirichlet_platt_lemma_B1(
836        out: *mut arb_struct,
837        sigma: slong,
838        t0: *const arb_struct,
839        h: *const arb_struct,
840        J: *const fmpz,
841        prec: slong,
842    );
843    pub fn acb_dirichlet_platt_lemma_B2(
844        out: *mut arb_struct,
845        K: slong,
846        h: *const arb_struct,
847        xi: *const arb_struct,
848        prec: slong,
849    );
850    pub fn acb_dirichlet_platt_multieval(
851        out: arb_ptr,
852        T: *const fmpz,
853        A: slong,
854        B: slong,
855        h: *const arb_struct,
856        J: *const fmpz,
857        K: slong,
858        sigma: slong,
859        prec: slong,
860    );
861    pub fn acb_dirichlet_platt_multieval_threaded(
862        out: arb_ptr,
863        T: *const fmpz,
864        A: slong,
865        B: slong,
866        h: *const arb_struct,
867        J: *const fmpz,
868        K: slong,
869        sigma: slong,
870        prec: slong,
871    );
872    pub fn _acb_dirichlet_platt_isolate_local_hardy_z_zeros(
873        res: arf_interval_ptr,
874        n: *const fmpz,
875        len: slong,
876        T: *const fmpz,
877        A: slong,
878        B: slong,
879        h: *const arb_struct,
880        J: *const fmpz,
881        K: slong,
882        sigma_grid: slong,
883        Ns_max: slong,
884        H: *const arb_struct,
885        sigma_interp: slong,
886        prec: slong,
887    ) -> slong;
888    pub fn acb_dirichlet_platt_isolate_local_hardy_z_zeros(
889        res: arf_interval_ptr,
890        n: *const fmpz,
891        len: slong,
892        prec: slong,
893    ) -> slong;
894    pub fn _acb_dirichlet_platt_local_hardy_z_zeros(
895        res: arb_ptr,
896        n: *const fmpz,
897        len: slong,
898        T: *const fmpz,
899        A: slong,
900        B: slong,
901        h: *const arb_struct,
902        J: *const fmpz,
903        K: slong,
904        sigma_grid: slong,
905        Ns_max: slong,
906        H: *const arb_struct,
907        sigma_interp: slong,
908        prec: slong,
909    ) -> slong;
910    pub fn acb_dirichlet_platt_local_hardy_z_zeros(
911        res: arb_ptr,
912        n: *const fmpz,
913        len: slong,
914        prec: slong,
915    ) -> slong;
916    pub fn acb_dirichlet_platt_hardy_z_zeros(
917        res: arb_ptr,
918        n: *const fmpz,
919        len: slong,
920        prec: slong,
921    ) -> slong;
922    pub fn acb_dirichlet_dft_index(
923        w: acb_ptr,
924        v: acb_srcptr,
925        G: *const dirichlet_group_struct,
926        prec: slong,
927    );
928    pub fn acb_dirichlet_dft(
929        w: acb_ptr,
930        v: acb_srcptr,
931        G: *const dirichlet_group_struct,
932        prec: slong,
933    );
934}