arb_sys/
acb_dirichlet.rs

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