1use libc::*;
4use crate::deps::*;
5use crate::flint::*;
6
7
8extern "C" {
9 #[link_name = "_fmpz_vec_init__extern"]
10 pub fn _fmpz_vec_init(len: slong) -> *mut fmpz;
11 pub fn _fmpz_vec_clear(vec: *mut fmpz, len: slong);
12 pub fn _fmpz_vec_randtest(
13 f: *mut fmpz,
14 state: *mut flint_rand_struct,
15 len: slong,
16 bits: flint_bitcnt_t,
17 );
18 pub fn _fmpz_vec_randtest_unsigned(
19 f: *mut fmpz,
20 state: *mut flint_rand_struct,
21 len: slong,
22 bits: flint_bitcnt_t,
23 );
24 pub fn _fmpz_vec_max_bits(vec: *const fmpz, len: slong) -> slong;
25 pub fn _fmpz_vec_max_bits_ref(vec: *const fmpz, len: slong) -> slong;
26 pub fn _fmpz_vec_sum_max_bits(
27 sumabs: *mut slong,
28 maxabs: *mut slong,
29 coeffs: *const fmpz,
30 length: slong,
31 );
32 pub fn _fmpz_vec_max_limbs(vec: *const fmpz, len: slong) -> slong;
33 pub fn _fmpz_vec_height(height: *mut fmpz, vec: *const fmpz, len: slong);
34 pub fn _fmpz_vec_height_index(vec: *const fmpz, len: slong) -> slong;
35 pub fn _fmpz_vec_fprint(file: *mut FILE, vec: *const fmpz, len: slong) -> libc::c_int;
36 pub fn _fmpz_vec_fread(file: *mut FILE, vec: *mut *mut fmpz, len: *mut slong) -> libc::c_int;
37 pub fn _fmpz_vec_print(vec: *const fmpz, len: slong) -> libc::c_int;
38 pub fn _fmpz_vec_read(vec: *mut *mut fmpz, len: *mut slong) -> libc::c_int;
39 pub fn _fmpz_vec_get_nmod_vec(res: nn_ptr, poly: *const fmpz, len: slong, mod_: nmod_t);
40 pub fn _fmpz_vec_set_nmod_vec(res: *mut fmpz, poly: nn_srcptr, len: slong, mod_: nmod_t);
41 pub fn _fmpz_vec_get_fft(
42 coeffs_f: *mut *mut ulong,
43 coeffs_m: *const fmpz,
44 l: slong,
45 length: slong,
46 );
47 pub fn _fmpz_vec_set_fft(
48 coeffs_m: *mut fmpz,
49 length: slong,
50 coeffs_f: *const nn_ptr,
51 limbs: slong,
52 sign: slong,
53 );
54 pub fn _fmpz_vec_get_d_vec_2exp(appv: *mut f64, vec: *const fmpz, len: slong) -> slong;
55 pub fn _fmpz_vec_set(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
56 pub fn _fmpz_vec_swap(vec1: *mut fmpz, vec2: *mut fmpz, len2: slong);
57 pub fn _fmpz_vec_zero(vec: *mut fmpz, len: slong);
58 pub fn _fmpz_vec_scalar_abs(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
59 pub fn _fmpz_vec_equal(vec1: *const fmpz, vec2: *const fmpz, len: slong) -> libc::c_int;
60 pub fn _fmpz_vec_is_zero(vec: *const fmpz, len: slong) -> libc::c_int;
61 pub fn _fmpz_vec_min(vec1: *mut fmpz, vec2: *const fmpz, vec3: *const fmpz, len: slong);
62 pub fn _fmpz_vec_max(vec1: *mut fmpz, vec2: *const fmpz, vec3: *const fmpz, len: slong);
63 pub fn _fmpz_vec_min_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: slong);
64 pub fn _fmpz_vec_max_inplace(vec1: *mut fmpz, vec2: *const fmpz, len: slong);
65 pub fn _fmpz_vec_sort(vec: *mut fmpz, len: slong);
66 pub fn _fmpz_vec_add(res: *mut fmpz, vec1: *const fmpz, vec2: *const fmpz, len2: slong);
67 pub fn _fmpz_vec_sub(res: *mut fmpz, vec1: *const fmpz, vec2: *const fmpz, len2: slong);
68 pub fn _fmpz_vec_neg(vec1: *mut fmpz, vec2: *const fmpz, len2: slong);
69 pub fn _fmpz_vec_scalar_mul_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
70 pub fn _fmpz_vec_scalar_mul_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
71 pub fn _fmpz_vec_scalar_mul_fmpz(
72 vec1: *mut fmpz,
73 vec2: *const fmpz,
74 len2: slong,
75 x: *const fmpz,
76 );
77 pub fn _fmpz_vec_scalar_mul_2exp(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, exp: ulong);
78 pub fn _fmpz_vec_scalar_divexact_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
79 pub fn _fmpz_vec_scalar_divexact_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
80 pub fn _fmpz_vec_scalar_divexact_fmpz(
81 vec1: *mut fmpz,
82 vec2: *const fmpz,
83 len2: slong,
84 x: *const fmpz,
85 );
86 pub fn _fmpz_vec_scalar_fdiv_q_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
87 pub fn _fmpz_vec_scalar_fdiv_q_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
88 pub fn _fmpz_vec_scalar_fdiv_q_fmpz(
89 vec1: *mut fmpz,
90 vec2: *const fmpz,
91 len2: slong,
92 c: *const fmpz,
93 );
94 pub fn _fmpz_vec_scalar_fdiv_q_2exp(
95 vec1: *mut fmpz,
96 vec2: *const fmpz,
97 len2: slong,
98 exp: ulong,
99 );
100 pub fn _fmpz_vec_scalar_fdiv_r_2exp(
101 vec1: *mut fmpz,
102 vec2: *const fmpz,
103 len2: slong,
104 exp: ulong,
105 );
106 pub fn _fmpz_vec_scalar_tdiv_q_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
107 pub fn _fmpz_vec_scalar_tdiv_q_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
108 pub fn _fmpz_vec_scalar_tdiv_q_fmpz(
109 vec1: *mut fmpz,
110 vec2: *const fmpz,
111 len2: slong,
112 c: *const fmpz,
113 );
114 pub fn _fmpz_vec_scalar_tdiv_q_2exp(
115 vec1: *mut fmpz,
116 vec2: *const fmpz,
117 len2: slong,
118 exp: ulong,
119 );
120 pub fn _fmpz_vec_scalar_addmul_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
121 pub fn _fmpz_vec_scalar_addmul_ui(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: ulong);
122 pub fn _fmpz_vec_scalar_addmul_fmpz(
123 poly1: *mut fmpz,
124 poly2: *const fmpz,
125 len2: slong,
126 x: *const fmpz,
127 );
128 pub fn _fmpz_vec_scalar_addmul_si_2exp(
129 vec1: *mut fmpz,
130 vec2: *const fmpz,
131 len2: slong,
132 c: slong,
133 exp: ulong,
134 );
135 pub fn _fmpz_vec_scalar_submul_si(vec1: *mut fmpz, vec2: *const fmpz, len2: slong, c: slong);
136 pub fn _fmpz_vec_scalar_submul_fmpz(
137 vec1: *mut fmpz,
138 vec2: *const fmpz,
139 len2: slong,
140 x: *const fmpz,
141 );
142 pub fn _fmpz_vec_scalar_submul_si_2exp(
143 vec1: *mut fmpz,
144 vec2: *const fmpz,
145 len2: slong,
146 c: slong,
147 exp: ulong,
148 );
149 pub fn _fmpz_vec_sum(res: *mut fmpz, vec: *const fmpz, len: slong);
150 pub fn _fmpz_vec_prod(res: *mut fmpz, vec: *const fmpz, len: slong);
151 pub fn _fmpz_ui_vec_prod(res: *mut fmpz, vec: nn_srcptr, len: slong);
152 pub fn _fmpz_vec_scalar_mod_fmpz(res: *mut fmpz, vec: *const fmpz, len: slong, p: *const fmpz);
153 pub fn _fmpz_vec_scalar_smod_fmpz(res: *mut fmpz, vec: *const fmpz, len: slong, p: *const fmpz);
154 pub fn _fmpz_vec_content(res: *mut fmpz, vec: *const fmpz, len: slong);
155 pub fn _fmpz_vec_content_chained(
156 res: *mut fmpz,
157 vec: *const fmpz,
158 len: slong,
159 inp: *const fmpz,
160 );
161 pub fn _fmpz_vec_lcm(res: *mut fmpz, vec: *const fmpz, len: slong);
162 pub fn _fmpz_vec_dot_general_naive(
163 res: *mut fmpz,
164 initial: *const fmpz,
165 subtract: libc::c_int,
166 a: *const fmpz,
167 b: *const fmpz,
168 reverse: libc::c_int,
169 len: slong,
170 );
171 pub fn _fmpz_vec_dot_general(
172 res: *mut fmpz,
173 initial: *const fmpz,
174 subtract: libc::c_int,
175 a: *const fmpz,
176 b: *const fmpz,
177 reverse: libc::c_int,
178 len: slong,
179 );
180 #[link_name = "_fmpz_vec_dot__extern"]
181 pub fn _fmpz_vec_dot(res: *mut fmpz, vec1: *const fmpz, vec2: *const fmpz, len2: slong);
182}