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