Skip to main content

flint_sys/
dlog.rs

1/* automatically generated by rust-bindgen 0.70.1 */
2
3use 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}