1 #include "cado.h"
2 /* MPFQ generated file -- do not edit */
3
4 #include "mpfq_p_5_t.h"
5
6 /* Active handler: simd_gfp */
7 /* Automatically generated code */
8 /* Active handler: Mpfq::defaults */
9 /* Active handler: Mpfq::defaults::vec */
10 /* Active handler: Mpfq::defaults::poly */
11 /* Active handler: Mpfq::gfp::field */
12 /* Active handler: Mpfq::gfp::elt */
13 /* Options used:{
14 family=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
15 fieldtype=prime,
16 n=5,
17 nn=11,
18 opthw=,
19 tag=p_5,
20 type=plain,
21 vbase_stuff={
22 choose_byfeatures=<code>,
23 families=[
24 [
25 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
26 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
27 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
28 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
29 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
30 ],
31 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_1, tag=p_1, }, ],
32 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_10, tag=p_10, }, ],
33 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_11, tag=p_11, }, ],
34 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_12, tag=p_12, }, ],
35 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_13, tag=p_13, }, ],
36 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_14, tag=p_14, }, ],
37 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_15, tag=p_15, }, ],
38 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_2, tag=p_2, }, ],
39 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_3, tag=p_3, }, ],
40 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_4, tag=p_4, }, ],
41 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
42 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_6, tag=p_6, }, ],
43 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_7, tag=p_7, }, ],
44 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_8, tag=p_8, }, ],
45 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_9, tag=p_9, }, ],
46 [ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_pz, tag=pz, }, ],
47 ],
48 member_templates_restrict={
49 m128=[
50 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
51 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
52 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
53 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
54 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
55 ],
56 p_1=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_1, tag=p_1, }, ],
57 p_10=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_10, tag=p_10, }, ],
58 p_11=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_11, tag=p_11, }, ],
59 p_12=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_12, tag=p_12, }, ],
60 p_13=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_13, tag=p_13, }, ],
61 p_14=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_14, tag=p_14, }, ],
62 p_15=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_15, tag=p_15, }, ],
63 p_2=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_2, tag=p_2, }, ],
64 p_3=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_3, tag=p_3, }, ],
65 p_4=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_4, tag=p_4, }, ],
66 p_5=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_5, tag=p_5, }, ],
67 p_6=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_6, tag=p_6, }, ],
68 p_7=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_7, tag=p_7, }, ],
69 p_8=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_8, tag=p_8, }, ],
70 p_9=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_p_9, tag=p_9, }, ],
71 pz=[ { cpp_ifdef=COMPILE_MPFQ_PRIME_FIELD_pz, tag=pz, }, ],
72 u64k1=[
73 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
74 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
75 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
76 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
77 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
78 ],
79 u64k2=[
80 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
81 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
82 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
83 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
84 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
85 ],
86 u64k3=[
87 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
88 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
89 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
90 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
91 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
92 ],
93 u64k4=[
94 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_m128, tag=m128, },
95 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k1, tag=u64k1, },
96 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k2, tag=u64k2, },
97 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k3, tag=u64k3, },
98 { cpp_ifdef=COMPILE_MPFQ_BINARY_FIELD_u64k4, tag=u64k4, },
99 ],
100 },
101 vc:includes=[ <stdarg.h>, ],
102 },
103 virtual_base={
104 filebase=mpfq_vbase,
105 global_prefix=mpfq_,
106 name=mpfq_vbase,
107 substitutions=[
108 [ (?^:mpfq_p_5_elt \*), void *, ],
109 [ (?^:mpfq_p_5_src_elt\b), const void *, ],
110 [ (?^:mpfq_p_5_elt\b), void *, ],
111 [ (?^:mpfq_p_5_dst_elt\b), void *, ],
112 [ (?^:mpfq_p_5_elt_ur \*), void *, ],
113 [ (?^:mpfq_p_5_src_elt_ur\b), const void *, ],
114 [ (?^:mpfq_p_5_elt_ur\b), void *, ],
115 [ (?^:mpfq_p_5_dst_elt_ur\b), void *, ],
116 [ (?^:mpfq_p_5_vec \*), void *, ],
117 [ (?^:mpfq_p_5_src_vec\b), const void *, ],
118 [ (?^:mpfq_p_5_vec\b), void *, ],
119 [ (?^:mpfq_p_5_dst_vec\b), void *, ],
120 [ (?^:mpfq_p_5_vec_ur \*), void *, ],
121 [ (?^:mpfq_p_5_src_vec_ur\b), const void *, ],
122 [ (?^:mpfq_p_5_vec_ur\b), void *, ],
123 [ (?^:mpfq_p_5_dst_vec_ur\b), void *, ],
124 [ (?^:mpfq_p_5_poly \*), void *, ],
125 [ (?^:mpfq_p_5_src_poly\b), const void *, ],
126 [ (?^:mpfq_p_5_poly\b), void *, ],
127 [ (?^:mpfq_p_5_dst_poly\b), void *, ],
128 ],
129 },
130 w=64,
131 } */
132
133
134 /* Functions operating on the field structure */
135
136 /* Element allocation functions */
137
138 /* Elementary assignment functions */
139
140 /* Assignment of random values */
141
142 /* Arithmetic operations on elements */
143
144 /* Operations involving unreduced elements */
145
146 /* Comparison functions */
147
148 /* Input/output functions */
149
150 /* Vector functions */
151
152 /* Polynomial functions */
153
154 /* Functions related to SIMD operation */
155
156 /* Member templates related to SIMD operation */
157
158 /* Object-oriented interface */
159 #ifdef COMPILE_MPFQ_PRIME_FIELD_p_5
160 /* Mpfq::engine::handler::create_code */
mpfq_p_5_p_5_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED,mpfq_vbase_ptr K1 MAYBE_UNUSED,mpfq_p_5_dst_vec xw,mpfq_p_5_src_vec xu1,mpfq_p_5_src_vec xu0,unsigned int n)161 void mpfq_p_5_p_5_wrapper_add_dotprod(mpfq_vbase_ptr K0 MAYBE_UNUSED, mpfq_vbase_ptr K1 MAYBE_UNUSED, mpfq_p_5_dst_vec xw, mpfq_p_5_src_vec xu1, mpfq_p_5_src_vec xu0, unsigned int n)
162 {
163 mpfq_p_5_p_5_add_dotprod(K0->obj, K1->obj, xw, xu1, xu0, n);
164 }
165 #endif /* COMPILE_MPFQ_PRIME_FIELD_p_5 */
166
167 #ifdef COMPILE_MPFQ_PRIME_FIELD_p_5
168 /* *simd_gfp::code_for_member_template_add_dotprod */
mpfq_p_5_p_5_add_dotprod(mpfq_p_5_dst_field K0 MAYBE_UNUSED,mpfq_p_5_dst_field K1 MAYBE_UNUSED,mpfq_p_5_dst_vec xw,mpfq_p_5_src_vec xu1,mpfq_p_5_src_vec xu0,unsigned int n)169 void mpfq_p_5_p_5_add_dotprod(mpfq_p_5_dst_field K0 MAYBE_UNUSED, mpfq_p_5_dst_field K1 MAYBE_UNUSED, mpfq_p_5_dst_vec xw, mpfq_p_5_src_vec xu1, mpfq_p_5_src_vec xu0, unsigned int n)
170 {
171 mpfq_p_5_elt_ur s,t;
172 mpfq_p_5_elt_ur_init(K0, &s);
173 mpfq_p_5_elt_ur_init(K0, &t);
174 mpfq_p_5_elt_ur_set_elt(K0, s, xw[0]);
175 for(unsigned int i = 0 ; i < n ; i++) {
176 mpfq_p_5_mul_ur(K0, t, xu0[i], xu1[i]);
177 mpfq_p_5_elt_ur_add(K0, s, s, t);
178 }
179 mpfq_p_5_reduce(K0, xw[0], s);
180 mpfq_p_5_elt_ur_clear(K0, &s);
181 mpfq_p_5_elt_ur_clear(K0, &t);
182 }
183 #endif /* COMPILE_MPFQ_PRIME_FIELD_p_5 */
184
185 #ifdef COMPILE_MPFQ_PRIME_FIELD_p_5
186 /* Mpfq::engine::handler::create_code */
mpfq_p_5_p_5_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_p_5_dst_vec w,mpfq_p_5_src_vec u,mpfq_p_5_src_vec v,unsigned int n)187 void mpfq_p_5_p_5_wrapper_addmul_tiny(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_p_5_dst_vec w, mpfq_p_5_src_vec u, mpfq_p_5_src_vec v, unsigned int n)
188 {
189 mpfq_p_5_p_5_addmul_tiny(K->obj, L->obj, w, u, v, n);
190 }
191 #endif /* COMPILE_MPFQ_PRIME_FIELD_p_5 */
192
193 #ifdef COMPILE_MPFQ_PRIME_FIELD_p_5
194 /* *simd_gfp::code_for_member_template_addmul_tiny */
mpfq_p_5_p_5_addmul_tiny(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_field L MAYBE_UNUSED,mpfq_p_5_dst_vec w,mpfq_p_5_src_vec u,mpfq_p_5_src_vec v,unsigned int n)195 void mpfq_p_5_p_5_addmul_tiny(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_field L MAYBE_UNUSED, mpfq_p_5_dst_vec w, mpfq_p_5_src_vec u, mpfq_p_5_src_vec v, unsigned int n)
196 {
197 mpfq_p_5_elt s;
198 mpfq_p_5_init(K, &s);
199 for(unsigned int i = 0 ; i < n ; i++) {
200 mpfq_p_5_mul(K, s, u[i], v[0]);
201 mpfq_p_5_add(K, w[i], w[i], s);
202 }
203 mpfq_p_5_clear(K, &s);
204 }
205 #endif /* COMPILE_MPFQ_PRIME_FIELD_p_5 */
206
207 #ifdef COMPILE_MPFQ_PRIME_FIELD_p_5
208 /* Mpfq::engine::handler::create_code */
mpfq_p_5_p_5_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED,mpfq_vbase_ptr L MAYBE_UNUSED,mpfq_p_5_dst_vec w,mpfq_p_5_src_vec u)209 void mpfq_p_5_p_5_wrapper_transpose(mpfq_vbase_ptr K MAYBE_UNUSED, mpfq_vbase_ptr L MAYBE_UNUSED, mpfq_p_5_dst_vec w, mpfq_p_5_src_vec u)
210 {
211 mpfq_p_5_p_5_transpose(K->obj, L->obj, w, u);
212 }
213 #endif /* COMPILE_MPFQ_PRIME_FIELD_p_5 */
214
215 #ifdef COMPILE_MPFQ_PRIME_FIELD_p_5
216 /* *simd_gfp::code_for_member_template_transpose */
mpfq_p_5_p_5_transpose(mpfq_p_5_dst_field K MAYBE_UNUSED,mpfq_p_5_dst_field L MAYBE_UNUSED,mpfq_p_5_dst_vec w,mpfq_p_5_src_vec u)217 void mpfq_p_5_p_5_transpose(mpfq_p_5_dst_field K MAYBE_UNUSED, mpfq_p_5_dst_field L MAYBE_UNUSED, mpfq_p_5_dst_vec w, mpfq_p_5_src_vec u)
218 {
219 mpfq_p_5_set(K, w[0], u[0]);
220 }
221 #endif /* COMPILE_MPFQ_PRIME_FIELD_p_5 */
222
223
224 /* vim:set ft=cpp: */
225