1#![allow(non_camel_case_types)]
2#![allow(non_snake_case)]
3
4use 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}