1use crate::deps::*;
4use crate::flint::*;
5use crate::limb_types::*;
6
7
8#[repr(C)]
9pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
10impl<T> __BindgenUnionField<T> {
11 #[inline]
12 pub const fn new() -> Self {
13 __BindgenUnionField(::std::marker::PhantomData)
14 }
15 #[inline]
16 pub unsafe fn as_ref(&self) -> &T {
17 ::std::mem::transmute(self)
18 }
19 #[inline]
20 pub unsafe fn as_mut(&mut self) -> &mut T {
21 ::std::mem::transmute(self)
22 }
23}
24impl<T> ::std::default::Default for __BindgenUnionField<T> {
25 #[inline]
26 fn default() -> Self {
27 Self::new()
28 }
29}
30impl<T> ::std::clone::Clone for __BindgenUnionField<T> {
31 #[inline]
32 fn clone(&self) -> Self {
33 *self
34 }
35}
36impl<T> ::std::marker::Copy for __BindgenUnionField<T> {}
37impl<T> ::std::fmt::Debug for __BindgenUnionField<T> {
38 fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
39 fmt.write_str("__BindgenUnionField")
40 }
41}
42impl<T> ::std::hash::Hash for __BindgenUnionField<T> {
43 fn hash<H: ::std::hash::Hasher>(&self, _state: &mut H) {}
44}
45impl<T> ::std::cmp::PartialEq for __BindgenUnionField<T> {
46 fn eq(&self, _other: &__BindgenUnionField<T>) -> bool {
47 true
48 }
49}
50impl<T> ::std::cmp::Eq for __BindgenUnionField<T> {}
51pub const DLOG_SMALL_LIM: u32 = 50;
52pub const DLOG_TABLE_LIM: u32 = 50;
53pub const DLOG_TABLE_P_LIM: u32 = 50;
54pub const DLOG_TABLE_MODPE_LIM: u32 = 50;
55pub const DLOG_TABLE_PE_LIM: u32 = 50;
56pub const DLOG_TABLE_N_LIM: u32 = 50;
57pub const DLOG_BSGS_LIM: u32 = 500;
58pub const DLOG_LOOP_MAX_FACTOR: u32 = 6;
59pub const DLOG_G_SMALL: u32 = 0;
60pub const DLOG_G_BIG: u32 = 1;
61pub const DLOG_MODPE: _bindgen_ty_2 = 0;
62pub const DLOG_CRT: _bindgen_ty_2 = 1;
63pub const DLOG_POWER: _bindgen_ty_2 = 2;
64pub const DLOG_BSGS: _bindgen_ty_2 = 3;
65pub const DLOG_TABLE: _bindgen_ty_2 = 4;
66pub const DLOG_23: _bindgen_ty_2 = 5;
67pub type _bindgen_ty_2 = libc::c_uint;
68pub type dlog_preconn_ptr = *mut dlog_precomp_struct;
69#[repr(C)]
70pub struct dlog_1modpe_struct {
71 pub inv1p: ulong,
72 pub invloga1: ulong,
73}
74#[allow(clippy::unnecessary_operation, clippy::identity_op)]
75const _: () = {
76 ["Size of dlog_1modpe_struct"][::std::mem::size_of::<dlog_1modpe_struct>() - 16usize];
77 ["Alignment of dlog_1modpe_struct"][::std::mem::align_of::<dlog_1modpe_struct>() - 8usize];
78 ["Offset of field: dlog_1modpe_struct::inv1p"]
79 [::std::mem::offset_of!(dlog_1modpe_struct, inv1p) - 0usize];
80 ["Offset of field: dlog_1modpe_struct::invloga1"]
81 [::std::mem::offset_of!(dlog_1modpe_struct, invloga1) - 8usize];
82};
83impl Default for dlog_1modpe_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 dlog_1modpe_t = [dlog_1modpe_struct; 1usize];
93#[repr(C)]
94pub struct dlog_modpe_struct {
95 pub p: ulong,
96 pub e: ulong,
97 pub pe1: ulong,
98 pub inva: ulong,
99 pub pe: nmod_t,
100 pub modp: *mut dlog_precomp_struct,
101 pub modpe: dlog_1modpe_t,
102}
103#[allow(clippy::unnecessary_operation, clippy::identity_op)]
104const _: () = {
105 ["Size of dlog_modpe_struct"][::std::mem::size_of::<dlog_modpe_struct>() - 80usize];
106 ["Alignment of dlog_modpe_struct"][::std::mem::align_of::<dlog_modpe_struct>() - 8usize];
107 ["Offset of field: dlog_modpe_struct::p"]
108 [::std::mem::offset_of!(dlog_modpe_struct, p) - 0usize];
109 ["Offset of field: dlog_modpe_struct::e"]
110 [::std::mem::offset_of!(dlog_modpe_struct, e) - 8usize];
111 ["Offset of field: dlog_modpe_struct::pe1"]
112 [::std::mem::offset_of!(dlog_modpe_struct, pe1) - 16usize];
113 ["Offset of field: dlog_modpe_struct::inva"]
114 [::std::mem::offset_of!(dlog_modpe_struct, inva) - 24usize];
115 ["Offset of field: dlog_modpe_struct::pe"]
116 [::std::mem::offset_of!(dlog_modpe_struct, pe) - 32usize];
117 ["Offset of field: dlog_modpe_struct::modp"]
118 [::std::mem::offset_of!(dlog_modpe_struct, modp) - 56usize];
119 ["Offset of field: dlog_modpe_struct::modpe"]
120 [::std::mem::offset_of!(dlog_modpe_struct, modpe) - 64usize];
121};
122impl Default for dlog_modpe_struct {
123 fn default() -> Self {
124 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
125 unsafe {
126 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
127 s.assume_init()
128 }
129 }
130}
131pub type dlog_modpe_t = [dlog_modpe_struct; 1usize];
132#[repr(C)]
133pub struct dlog_table_struct {
134 pub mod_: ulong,
135 pub table: *mut ulong,
136}
137#[allow(clippy::unnecessary_operation, clippy::identity_op)]
138const _: () = {
139 ["Size of dlog_table_struct"][::std::mem::size_of::<dlog_table_struct>() - 16usize];
140 ["Alignment of dlog_table_struct"][::std::mem::align_of::<dlog_table_struct>() - 8usize];
141 ["Offset of field: dlog_table_struct::mod_"]
142 [::std::mem::offset_of!(dlog_table_struct, mod_) - 0usize];
143 ["Offset of field: dlog_table_struct::table"]
144 [::std::mem::offset_of!(dlog_table_struct, table) - 8usize];
145};
146impl Default for dlog_table_struct {
147 fn default() -> Self {
148 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
149 unsafe {
150 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
151 s.assume_init()
152 }
153 }
154}
155pub type dlog_table_t = [dlog_table_struct; 1usize];
156#[repr(C)]
157pub struct apow {
158 pub k: ulong,
159 pub ak: ulong,
160}
161#[allow(clippy::unnecessary_operation, clippy::identity_op)]
162const _: () = {
163 ["Size of apow"][::std::mem::size_of::<apow>() - 16usize];
164 ["Alignment of apow"][::std::mem::align_of::<apow>() - 8usize];
165 ["Offset of field: apow::k"][::std::mem::offset_of!(apow, k) - 0usize];
166 ["Offset of field: apow::ak"][::std::mem::offset_of!(apow, ak) - 8usize];
167};
168impl Default for apow {
169 fn default() -> Self {
170 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
171 unsafe {
172 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
173 s.assume_init()
174 }
175 }
176}
177pub type apow_t = apow;
178#[repr(C)]
179pub struct dlog_bsgs_struct {
180 pub mod_: nmod_t,
181 pub m: ulong,
182 pub am: ulong,
183 pub g: ulong,
184 pub table: *mut apow_t,
185}
186#[allow(clippy::unnecessary_operation, clippy::identity_op)]
187const _: () = {
188 ["Size of dlog_bsgs_struct"][::std::mem::size_of::<dlog_bsgs_struct>() - 56usize];
189 ["Alignment of dlog_bsgs_struct"][::std::mem::align_of::<dlog_bsgs_struct>() - 8usize];
190 ["Offset of field: dlog_bsgs_struct::mod_"]
191 [::std::mem::offset_of!(dlog_bsgs_struct, mod_) - 0usize];
192 ["Offset of field: dlog_bsgs_struct::m"][::std::mem::offset_of!(dlog_bsgs_struct, m) - 24usize];
193 ["Offset of field: dlog_bsgs_struct::am"]
194 [::std::mem::offset_of!(dlog_bsgs_struct, am) - 32usize];
195 ["Offset of field: dlog_bsgs_struct::g"][::std::mem::offset_of!(dlog_bsgs_struct, g) - 40usize];
196 ["Offset of field: dlog_bsgs_struct::table"]
197 [::std::mem::offset_of!(dlog_bsgs_struct, table) - 48usize];
198};
199impl Default for dlog_bsgs_struct {
200 fn default() -> Self {
201 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
202 unsafe {
203 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
204 s.assume_init()
205 }
206 }
207}
208pub type dlog_bsgs_t = [dlog_bsgs_struct; 1usize];
209#[repr(C)]
210pub struct dlog_rho_struct {
211 pub a: ulong,
212 pub n: nmod_t,
213 pub mod_: nmod_t,
214 pub nisprime: libc::c_int,
215}
216#[allow(clippy::unnecessary_operation, clippy::identity_op)]
217const _: () = {
218 ["Size of dlog_rho_struct"][::std::mem::size_of::<dlog_rho_struct>() - 64usize];
219 ["Alignment of dlog_rho_struct"][::std::mem::align_of::<dlog_rho_struct>() - 8usize];
220 ["Offset of field: dlog_rho_struct::a"][::std::mem::offset_of!(dlog_rho_struct, a) - 0usize];
221 ["Offset of field: dlog_rho_struct::n"][::std::mem::offset_of!(dlog_rho_struct, n) - 8usize];
222 ["Offset of field: dlog_rho_struct::mod_"]
223 [::std::mem::offset_of!(dlog_rho_struct, mod_) - 32usize];
224 ["Offset of field: dlog_rho_struct::nisprime"]
225 [::std::mem::offset_of!(dlog_rho_struct, nisprime) - 56usize];
226};
227impl Default for dlog_rho_struct {
228 fn default() -> Self {
229 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
230 unsafe {
231 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
232 s.assume_init()
233 }
234 }
235}
236pub type dlog_rho_t = [dlog_rho_struct; 1usize];
237#[repr(C)]
238pub struct dlog_crt_struct {
239 pub mod_: nmod_t,
240 pub n: nmod_t,
241 pub num: ulong,
242 pub expo: *mut ulong,
243 pub crt_coeffs: *mut ulong,
244 pub pre: dlog_preconn_ptr,
245}
246#[allow(clippy::unnecessary_operation, clippy::identity_op)]
247const _: () = {
248 ["Size of dlog_crt_struct"][::std::mem::size_of::<dlog_crt_struct>() - 80usize];
249 ["Alignment of dlog_crt_struct"][::std::mem::align_of::<dlog_crt_struct>() - 8usize];
250 ["Offset of field: dlog_crt_struct::mod_"]
251 [::std::mem::offset_of!(dlog_crt_struct, mod_) - 0usize];
252 ["Offset of field: dlog_crt_struct::n"][::std::mem::offset_of!(dlog_crt_struct, n) - 24usize];
253 ["Offset of field: dlog_crt_struct::num"]
254 [::std::mem::offset_of!(dlog_crt_struct, num) - 48usize];
255 ["Offset of field: dlog_crt_struct::expo"]
256 [::std::mem::offset_of!(dlog_crt_struct, expo) - 56usize];
257 ["Offset of field: dlog_crt_struct::crt_coeffs"]
258 [::std::mem::offset_of!(dlog_crt_struct, crt_coeffs) - 64usize];
259 ["Offset of field: dlog_crt_struct::pre"]
260 [::std::mem::offset_of!(dlog_crt_struct, pre) - 72usize];
261};
262impl Default for dlog_crt_struct {
263 fn default() -> Self {
264 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
265 unsafe {
266 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
267 s.assume_init()
268 }
269 }
270}
271pub type dlog_crt_t = [dlog_crt_struct; 1usize];
272#[repr(C)]
273pub struct dlog_power_struct {
274 pub mod_: nmod_t,
275 pub p: ulong,
276 pub e: ulong,
277 pub apk: *mut ulong,
278 pub pre: *mut dlog_precomp_struct,
279}
280#[allow(clippy::unnecessary_operation, clippy::identity_op)]
281const _: () = {
282 ["Size of dlog_power_struct"][::std::mem::size_of::<dlog_power_struct>() - 56usize];
283 ["Alignment of dlog_power_struct"][::std::mem::align_of::<dlog_power_struct>() - 8usize];
284 ["Offset of field: dlog_power_struct::mod_"]
285 [::std::mem::offset_of!(dlog_power_struct, mod_) - 0usize];
286 ["Offset of field: dlog_power_struct::p"]
287 [::std::mem::offset_of!(dlog_power_struct, p) - 24usize];
288 ["Offset of field: dlog_power_struct::e"]
289 [::std::mem::offset_of!(dlog_power_struct, e) - 32usize];
290 ["Offset of field: dlog_power_struct::apk"]
291 [::std::mem::offset_of!(dlog_power_struct, apk) - 40usize];
292 ["Offset of field: dlog_power_struct::pre"]
293 [::std::mem::offset_of!(dlog_power_struct, pre) - 48usize];
294};
295impl Default for dlog_power_struct {
296 fn default() -> Self {
297 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
298 unsafe {
299 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
300 s.assume_init()
301 }
302 }
303}
304pub type dlog_power_t = [dlog_power_struct; 1usize];
305pub type dlog_order23_t = [ulong; 1usize];
306#[repr(C)]
307pub struct dlog_precomp_struct {
308 pub type_: libc::c_int,
309 pub cost: ulong,
310 pub t: dlog_precomp_struct__bindgen_ty_1,
311}
312#[repr(C)]
313pub struct dlog_precomp_struct__bindgen_ty_1 {
314 pub table: __BindgenUnionField<dlog_table_t>,
315 pub bsgs: __BindgenUnionField<dlog_bsgs_t>,
316 pub crt: __BindgenUnionField<dlog_crt_t>,
317 pub power: __BindgenUnionField<dlog_power_t>,
318 pub modpe: __BindgenUnionField<dlog_modpe_t>,
319 pub order23: __BindgenUnionField<dlog_order23_t>,
320 pub bindgen_union_field: [u64; 10usize],
321}
322#[allow(clippy::unnecessary_operation, clippy::identity_op)]
323const _: () = {
324 ["Size of dlog_precomp_struct__bindgen_ty_1"]
325 [::std::mem::size_of::<dlog_precomp_struct__bindgen_ty_1>() - 80usize];
326 ["Alignment of dlog_precomp_struct__bindgen_ty_1"]
327 [::std::mem::align_of::<dlog_precomp_struct__bindgen_ty_1>() - 8usize];
328 ["Offset of field: dlog_precomp_struct__bindgen_ty_1::table"]
329 [::std::mem::offset_of!(dlog_precomp_struct__bindgen_ty_1, table) - 0usize];
330 ["Offset of field: dlog_precomp_struct__bindgen_ty_1::bsgs"]
331 [::std::mem::offset_of!(dlog_precomp_struct__bindgen_ty_1, bsgs) - 0usize];
332 ["Offset of field: dlog_precomp_struct__bindgen_ty_1::crt"]
333 [::std::mem::offset_of!(dlog_precomp_struct__bindgen_ty_1, crt) - 0usize];
334 ["Offset of field: dlog_precomp_struct__bindgen_ty_1::power"]
335 [::std::mem::offset_of!(dlog_precomp_struct__bindgen_ty_1, power) - 0usize];
336 ["Offset of field: dlog_precomp_struct__bindgen_ty_1::modpe"]
337 [::std::mem::offset_of!(dlog_precomp_struct__bindgen_ty_1, modpe) - 0usize];
338 ["Offset of field: dlog_precomp_struct__bindgen_ty_1::order23"]
339 [::std::mem::offset_of!(dlog_precomp_struct__bindgen_ty_1, order23) - 0usize];
340};
341impl Default for dlog_precomp_struct__bindgen_ty_1 {
342 fn default() -> Self {
343 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
344 unsafe {
345 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
346 s.assume_init()
347 }
348 }
349}
350#[allow(clippy::unnecessary_operation, clippy::identity_op)]
351const _: () = {
352 ["Size of dlog_precomp_struct"][::std::mem::size_of::<dlog_precomp_struct>() - 96usize];
353 ["Alignment of dlog_precomp_struct"][::std::mem::align_of::<dlog_precomp_struct>() - 8usize];
354 ["Offset of field: dlog_precomp_struct::type_"]
355 [::std::mem::offset_of!(dlog_precomp_struct, type_) - 0usize];
356 ["Offset of field: dlog_precomp_struct::cost"]
357 [::std::mem::offset_of!(dlog_precomp_struct, cost) - 8usize];
358 ["Offset of field: dlog_precomp_struct::t"]
359 [::std::mem::offset_of!(dlog_precomp_struct, t) - 16usize];
360};
361impl Default for dlog_precomp_struct {
362 fn default() -> Self {
363 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
364 unsafe {
365 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
366 s.assume_init()
367 }
368 }
369}
370pub type dlog_precomp_t = [dlog_precomp_struct; 1usize];
371extern "C" {
372 pub fn apow_cmp(x: *const apow_t, y: *const apow_t) -> libc::c_int;
373 pub fn dlog_precomp_modpe_init(
374 pre: *mut dlog_precomp_struct,
375 a: ulong,
376 p: ulong,
377 e: ulong,
378 pe: ulong,
379 num: ulong,
380 );
381 pub fn dlog_precomp_small_init(
382 pre: *mut dlog_precomp_struct,
383 a: ulong,
384 mod_: ulong,
385 n: ulong,
386 num: ulong,
387 );
388 pub fn dlog_precomp_n_init(
389 pre: *mut dlog_precomp_struct,
390 a: ulong,
391 mod_: ulong,
392 n: ulong,
393 num: ulong,
394 );
395 pub fn dlog_precomp_p_init(
396 pre: *mut dlog_precomp_struct,
397 a: ulong,
398 mod_: ulong,
399 p: ulong,
400 num: ulong,
401 );
402 pub fn dlog_precomp_pe_init(
403 pre: *mut dlog_precomp_struct,
404 a: ulong,
405 mod_: ulong,
406 p: ulong,
407 e: ulong,
408 pe: ulong,
409 num: ulong,
410 );
411 pub fn dlog_precomp_clear(pre: *mut dlog_precomp_struct);
412 pub fn dlog_precomp(pre: *const dlog_precomp_struct, b: ulong) -> ulong;
413 pub fn dlog_order23_init(t: *mut ulong, a: ulong) -> ulong;
414 pub fn dlog_table_init(t: *mut dlog_table_struct, a: ulong, mod_: ulong) -> ulong;
415 pub fn dlog_crt_init(
416 t: *mut dlog_crt_struct,
417 a: ulong,
418 mod_: ulong,
419 n: ulong,
420 num: ulong,
421 ) -> ulong;
422 pub fn dlog_power_init(
423 t: *mut dlog_power_struct,
424 a: ulong,
425 mod_: ulong,
426 p: ulong,
427 e: ulong,
428 num: ulong,
429 ) -> ulong;
430 pub fn dlog_modpe_init(
431 t: *mut dlog_modpe_struct,
432 a: ulong,
433 p: ulong,
434 e: ulong,
435 pe: ulong,
436 num: ulong,
437 ) -> ulong;
438 pub fn dlog_bsgs_init(
439 t: *mut dlog_bsgs_struct,
440 a: ulong,
441 mod_: ulong,
442 n: ulong,
443 m: ulong,
444 ) -> ulong;
445 pub fn dlog_1modpe_init(t: *mut dlog_1modpe_struct, a1: ulong, p: ulong, e: ulong, pe: nmod_t);
446 pub fn dlog_rho_init(t: *mut dlog_rho_struct, a: ulong, mod_: ulong, n: ulong);
447 pub fn dlog_once(b: ulong, a: ulong, mod_: nmod_t, n: ulong) -> ulong;
448 #[link_name = "dlog_order23_clear__extern"]
449 pub fn dlog_order23_clear(t: *mut ulong);
450 #[link_name = "dlog_table_clear__extern"]
451 pub fn dlog_table_clear(t: *mut dlog_table_struct);
452 pub fn dlog_crt_clear(t: *mut dlog_crt_struct);
453 #[link_name = "dlog_power_clear__extern"]
454 pub fn dlog_power_clear(t: *mut dlog_power_struct);
455 #[link_name = "dlog_modpe_clear__extern"]
456 pub fn dlog_modpe_clear(t: *mut dlog_modpe_struct);
457 #[link_name = "dlog_bsgs_clear__extern"]
458 pub fn dlog_bsgs_clear(t: *mut dlog_bsgs_struct);
459 #[link_name = "dlog_rho_clear__extern"]
460 pub fn dlog_rho_clear(t: *mut dlog_rho_struct);
461 #[link_name = "dlog_bsgs_size__extern"]
462 pub fn dlog_bsgs_size(n: ulong, num: ulong) -> ulong;
463 pub fn dlog_order23(t: *const ulong, b: ulong) -> ulong;
464 pub fn dlog_table(t: *const dlog_table_struct, b: ulong) -> ulong;
465 pub fn dlog_crt(t: *const dlog_crt_struct, b: ulong) -> ulong;
466 pub fn dlog_power(t: *const dlog_power_struct, b: ulong) -> ulong;
467 pub fn dlog_modpe(t: *const dlog_modpe_struct, b: ulong) -> ulong;
468 pub fn dlog_bsgs(t: *const dlog_bsgs_struct, b: ulong) -> ulong;
469 pub fn dlog_rho(t: *const dlog_rho_struct, b: ulong) -> ulong;
470 pub fn dlog_1modpe_1modp(b1: ulong, p: ulong, e: ulong, inv1p: ulong, pe: nmod_t) -> ulong;
471 pub fn dlog_1modpe(
472 t: *const dlog_1modpe_struct,
473 b1: ulong,
474 p: ulong,
475 e: ulong,
476 pe: nmod_t,
477 ) -> ulong;
478 pub fn dlog_mod2e_1mod4(b1: ulong, e: ulong, inva: ulong, pe: nmod_t) -> ulong;
479 pub fn dlog_mod2e(t: *const dlog_modpe_struct, b: ulong) -> ulong;
480 pub fn dlog_n_factor_group(fac: *mut n_factor_t, bound: ulong);
481 pub fn dlog_vec_pindex_factorgcd(
482 v: *mut ulong,
483 nv: ulong,
484 p: ulong,
485 mod_: nmod_t,
486 a: ulong,
487 na: ulong,
488 loga: ulong,
489 logm1: ulong,
490 order: nmod_t,
491 maxtry: libc::c_int,
492 ) -> ulong;
493 pub fn dlog_vec_fill(v: *mut ulong, nv: ulong, x: ulong);
494 pub fn dlog_vec_set_not_found(v: *mut ulong, nv: ulong, mod_: nmod_t);
495 pub fn dlog_vec_loop(
496 v: *mut ulong,
497 nv: ulong,
498 a: ulong,
499 va: ulong,
500 mod_: nmod_t,
501 na: ulong,
502 order: nmod_t,
503 );
504 pub fn dlog_vec_loop_add(
505 v: *mut ulong,
506 nv: ulong,
507 a: ulong,
508 va: ulong,
509 mod_: nmod_t,
510 na: ulong,
511 order: nmod_t,
512 );
513 pub fn dlog_vec_eratos_add(
514 v: *mut ulong,
515 nv: ulong,
516 a: ulong,
517 va: ulong,
518 mod_: nmod_t,
519 na: ulong,
520 order: nmod_t,
521 );
522 pub fn dlog_vec_eratos(
523 v: *mut ulong,
524 nv: ulong,
525 a: ulong,
526 va: ulong,
527 mod_: nmod_t,
528 na: ulong,
529 order: nmod_t,
530 );
531 pub fn dlog_vec_sieve_add(
532 v: *mut ulong,
533 nv: ulong,
534 a: ulong,
535 va: ulong,
536 mod_: nmod_t,
537 na: ulong,
538 order: nmod_t,
539 );
540 pub fn dlog_vec_sieve(
541 v: *mut ulong,
542 nv: ulong,
543 a: ulong,
544 va: ulong,
545 mod_: nmod_t,
546 na: ulong,
547 order: nmod_t,
548 );
549 pub fn dlog_vec_add(
550 v: *mut ulong,
551 nv: ulong,
552 a: ulong,
553 va: ulong,
554 mod_: nmod_t,
555 na: ulong,
556 order: nmod_t,
557 );
558 pub fn dlog_vec(
559 v: *mut ulong,
560 nv: ulong,
561 a: ulong,
562 va: ulong,
563 mod_: nmod_t,
564 na: ulong,
565 order: nmod_t,
566 );
567 pub fn dlog_vec_sieve_precomp(
568 v: *mut ulong,
569 nv: ulong,
570 pre: *mut dlog_precomp_struct,
571 a: ulong,
572 va: ulong,
573 mod_: nmod_t,
574 na: ulong,
575 order: nmod_t,
576 );
577 pub fn dlog_vec_sieve_add_precomp(
578 v: *mut ulong,
579 nv: ulong,
580 pre: *mut dlog_precomp_struct,
581 a: ulong,
582 va: ulong,
583 mod_: nmod_t,
584 na: ulong,
585 order: nmod_t,
586 );
587 pub fn dlog_vec_add_precomp(
588 v: *mut ulong,
589 nv: ulong,
590 pre: *mut dlog_precomp_struct,
591 a: ulong,
592 va: ulong,
593 mod_: nmod_t,
594 na: ulong,
595 order: nmod_t,
596 );
597}