Line data Source code
1 : /* Note: This file is auto generated. */
2 : #ifndef HEADER_fd_src_ballet_reedsol_fd_reedsol_ppt_h
3 : #define HEADER_fd_src_ballet_reedsol_fd_reedsol_ppt_h
4 :
5 : #include "fd_reedsol_fft.h"
6 :
7 : /* This file implements the Principal Pivot Transform for the Reed
8 : Solomon FFT operator as described in:
9 : S. -J. Lin, A. Alloum and T. Al-Naffouri, "Principal pivot
10 : transforms on radix-2 DFT-type matrices," 2017 IEEE International
11 : Symposium on Information Theory (ISIT), Aachen, Germany, 2017, pp.
12 : 2358-2362, doi: 10.1109/ISIT.2017.8006951
13 :
14 : The main macro this file provides is FD_REEDSOL_GENERATE_PPT. The
15 : rest of this file is auto-generated implementation details.
16 :
17 : When the number of data shreds we have is not a power of 2, the
18 : approach used in the 32-32 case doesn't apply. I found the paper
19 : extending it to the general case uninterpretable. So we use the
20 : principal pivot transform as an alternative with similar
21 : computational complexity.
22 :
23 : The goal of the first step of the 32-32 case is to find a polynomial
24 : of degree < 32 that interpolates the data shreds. If we only have k
25 : data shreds, where k<32, then instead we need a polynomial P of
26 : degree <k that passes through the k data shreds that we have. If we
27 : could somehow determine P(k), P(k+1), ... P(31), then we could just
28 : use the 32-32 fast case. The principal pivot transform gives us a
29 : way to do exactly that.
30 :
31 : In the 32-32 case, we have:
32 : ( m_0 ) ( y_0 )
33 : ( m_1 ) ( y_1 )
34 : F^{-1} * ( ... ) = ( ... )
35 : ( m_30 ) ( y_30 )
36 : ( m_31 ) ( y_31 )
37 :
38 : where m is in the evaluation domain (i.e. P(i) = m_i) and y is in the
39 : coefficient domain (coefficients of the special basis elements).
40 : Now, we don't know the last 32-k elements of the m vector, i.e.
41 :
42 : ( m_0 ) ( y_0 )
43 : ( m_1 ) ( y_1 )
44 : F^{-1} * ( ... ) = ( ... )
45 : ( ??? ) ( y_30 )
46 : ( ??? ) ( y_31 )
47 :
48 : but what we do know is that the last 32-k elements of the y vector
49 : must be 0 in order for P to have the right order. I.e.
50 :
51 : ( m_0 ) ( y_0 )
52 : ( m_1 ) ( y_1 )
53 : F^{-1} * ( ... ) = ( ... )
54 : ( ??? ) ( 0 )
55 : ( ??? ) ( 0 )
56 :
57 : The principal pivot transform solves this type of problem, and for
58 : certain operators F (including the one we care about here) has a
59 : complexity of O(n log n), where F is an nxn matrix. To keep
60 : consistent with the paper, we multiply through by F and name the
61 : unknowns, actually solving
62 :
63 : ( y_0 ) ( m_0 )
64 : ( y_1 ) ( m_1 )
65 : F * ( ... ) = ( ... )
66 : ( 0 ) ( x_30 )
67 : ( 0 ) ( x_31 )
68 :
69 : Once we've solved this, x_k gives us P(k), i.e. the first parity
70 : shred. If we need more than 32-k parity shreds, then we can just use
71 : the same strategy as the 32-32 case and use the shifted FFT operation
72 : to go back from the coefficient domain to the evaluation domain with
73 : an offset of 32, giving us P(32), P(33), ... P(63) cheaply.
74 :
75 : The paper describes a more general case than what we need, since we
76 : always know the first k elements of the product vector, and not an
77 : arbitrary subset of them. This file only implements the specific
78 : case. */
79 :
80 : /* FD_REEDSOL_GENERATE_PPT: Inserts code to compute the principal pivot
81 : transform of size n (must be a power of 2, currently 16, 32, 64, and
82 : 128 are emitted by the code generator) and when you have k known
83 : elements of the evaluation domain (i.e. k data shreds). k must be
84 : less than n, but the code generator adds the additional restrictions
85 : that k<=67 and only the smallest n is chosen for each k.
86 : Additionally, The remaining n arguments should be vector variables of
87 : type gf_t (which is a typedef for wb_t in the AVX case). These are
88 : used as input and output, since there's no other good way to return n
89 : vector values. As such, this macro is not robust.
90 :
91 : As explained above, the PPT computes the k non-zero elements of the
92 : coefficient domain, followed by the first n-k parity elements. If
93 : the last n-k return values are replaced with zero, they can then be
94 : used with FD_REEDSOL_GENERATE_FFT and the appropriate shift to
95 : compute many more parity elements. The PPT is computed in a
96 : vectorized fashion, i.e. the PPT of the ith byte is computed and
97 : stored in the ith byte of the output for each i independently. */
98 :
99 9252915 : #define FD_REEDSOL_GENERATE_PPT(n, k, ...) FD_REEDSOL_PPT_IMPL_##n##_##k( __VA_ARGS__ )
100 :
101 : /* For n>=32, this header also declares
102 : void fd_reedsol_ppt_n_k( gf_t *, ... )
103 : that takes n gf_t elements by reference. The arguments are used for
104 : input and output, and it performs the same operation as the similarly
105 : named macro, but this signature allows the function to be defined in
106 : a different compilation unit to speed up compile times. */
107 :
108 : #define GF_MUL22( inout0, inout1, c00, c01, c10, c11) \
109 232790871 : do { \
110 232790871 : gf_t temp = GF_ADD( GF_MUL( inout0, c00 ), GF_MUL( inout1, c01 ) ); \
111 232790871 : inout1 = GF_ADD( GF_MUL( inout0, c10 ), GF_MUL( inout1, c11 ) ); \
112 232790871 : inout0 = temp; \
113 232790871 : } while( 0 )
114 :
115 : #define FD_REEDSOL_PPT_IMPL_16_1( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09 , \
116 : in10, in11, in12, in13, in14, in15) \
117 100485 : do { \
118 100485 : gf_t scratch_2, scratch_4, scratch_8; \
119 100485 : scratch_8 = in08; \
120 100485 : in08 = GF_MUL( in08, 1 ); \
121 100485 : GF_MUL22( in01, in09, 1, 0, 1, 1 ); \
122 100485 : GF_MUL22( in02, in10, 1, 0, 1, 1 ); \
123 100485 : GF_MUL22( in03, in11, 1, 0, 1, 1 ); \
124 100485 : GF_MUL22( in04, in12, 1, 0, 1, 1 ); \
125 100485 : GF_MUL22( in05, in13, 1, 0, 1, 1 ); \
126 100485 : GF_MUL22( in06, in14, 1, 0, 1, 1 ); \
127 100485 : GF_MUL22( in07, in15, 1, 0, 1, 1 ); \
128 100485 : scratch_4 = in04; \
129 100485 : in04 = GF_MUL( in04, 1 ); \
130 100485 : GF_MUL22( in01, in05, 1, 0, 1, 1 ); \
131 100485 : GF_MUL22( in02, in06, 1, 0, 1, 1 ); \
132 100485 : GF_MUL22( in03, in07, 1, 0, 1, 1 ); \
133 100485 : scratch_2 = in02; \
134 100485 : in02 = GF_MUL( in02, 1 ); \
135 100485 : GF_MUL22( in01, in03, 1, 0, 1, 1 ); \
136 100485 : GF_MUL22( in00, in01, 1, 0, 1, 1 ); \
137 100485 : in02 = GF_ADD( GF_MUL( in00, 1 ), in02 ); \
138 100485 : GF_MUL22( in02, in03, 1, 2, 1, 3 ); \
139 100485 : in00 = GF_MUL( in00, 1 ); \
140 100485 : in00 = GF_ADD( GF_MUL( scratch_2, 0 ), in00 ); \
141 100485 : in04 = GF_ADD( GF_MUL( in00, 1 ), in04 ); \
142 100485 : FD_REEDSOL_GENERATE_FFT( 4, 4, in04, in05, in06, in07 ); \
143 100485 : in00 = GF_MUL( in00, 1 ); \
144 100485 : in00 = GF_ADD( GF_MUL( scratch_4, 0 ), in00 ); \
145 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
146 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
147 100485 : in00 = GF_MUL( in00, 1 ); \
148 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
149 100485 : } while( 0 )
150 :
151 : #define FD_REEDSOL_PPT_IMPL_16_2( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09 , \
152 : in10, in11, in12, in13, in14, in15) \
153 100485 : do { \
154 100485 : gf_t scratch_2, scratch_3, scratch_4, scratch_5, scratch_8, scratch_9; \
155 100485 : scratch_8 = in08; \
156 100485 : in08 = GF_MUL( in08, 1 ); \
157 100485 : scratch_9 = in09; \
158 100485 : in09 = GF_MUL( in09, 1 ); \
159 100485 : GF_MUL22( in02, in10, 1, 0, 1, 1 ); \
160 100485 : GF_MUL22( in03, in11, 1, 0, 1, 1 ); \
161 100485 : GF_MUL22( in04, in12, 1, 0, 1, 1 ); \
162 100485 : GF_MUL22( in05, in13, 1, 0, 1, 1 ); \
163 100485 : GF_MUL22( in06, in14, 1, 0, 1, 1 ); \
164 100485 : GF_MUL22( in07, in15, 1, 0, 1, 1 ); \
165 100485 : scratch_4 = in04; \
166 100485 : in04 = GF_MUL( in04, 1 ); \
167 100485 : scratch_5 = in05; \
168 100485 : in05 = GF_MUL( in05, 1 ); \
169 100485 : GF_MUL22( in02, in06, 1, 0, 1, 1 ); \
170 100485 : GF_MUL22( in03, in07, 1, 0, 1, 1 ); \
171 100485 : scratch_2 = in02; \
172 100485 : in02 = GF_MUL( in02, 1 ); \
173 100485 : scratch_3 = in03; \
174 100485 : in03 = GF_MUL( in03, 1 ); \
175 100485 : GF_MUL22( in00, in01, 1, 0, 1, 1 ); \
176 100485 : in02 = GF_ADD( GF_MUL( in00, 1 ), in02 ); \
177 100485 : in03 = GF_ADD( GF_MUL( in01, 1 ), in03 ); \
178 100485 : GF_MUL22( in02, in03, 1, 2, 1, 3 ); \
179 100485 : in00 = GF_MUL( in00, 1 ); \
180 100485 : in00 = GF_ADD( GF_MUL( scratch_2, 0 ), in00 ); \
181 100485 : in01 = GF_MUL( in01, 1 ); \
182 100485 : in01 = GF_ADD( GF_MUL( scratch_3, 0 ), in01 ); \
183 100485 : in04 = GF_ADD( GF_MUL( in00, 1 ), in04 ); \
184 100485 : in05 = GF_ADD( GF_MUL( in01, 1 ), in05 ); \
185 100485 : FD_REEDSOL_GENERATE_FFT( 4, 4, in04, in05, in06, in07 ); \
186 100485 : in00 = GF_MUL( in00, 1 ); \
187 100485 : in00 = GF_ADD( GF_MUL( scratch_4, 0 ), in00 ); \
188 100485 : in01 = GF_MUL( in01, 1 ); \
189 100485 : in01 = GF_ADD( GF_MUL( scratch_5, 0 ), in01 ); \
190 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
191 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
192 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
193 100485 : in00 = GF_MUL( in00, 1 ); \
194 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
195 100485 : in01 = GF_MUL( in01, 1 ); \
196 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
197 100485 : } while( 0 )
198 :
199 : #define FD_REEDSOL_PPT_IMPL_16_3( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, \
200 : in11, in12, in13, in14, in15) \
201 100485 : do { \
202 100485 : gf_t scratch_10, scratch_3, scratch_4, scratch_5, scratch_6, scratch_8, scratch_9; \
203 100485 : scratch_8 = in08; \
204 100485 : in08 = GF_MUL( in08, 1 ); \
205 100485 : scratch_9 = in09; \
206 100485 : in09 = GF_MUL( in09, 1 ); \
207 100485 : scratch_10 = in10; \
208 100485 : in10 = GF_MUL( in10, 1 ); \
209 100485 : GF_MUL22( in03, in11, 1, 0, 1, 1 ); \
210 100485 : GF_MUL22( in04, in12, 1, 0, 1, 1 ); \
211 100485 : GF_MUL22( in05, in13, 1, 0, 1, 1 ); \
212 100485 : GF_MUL22( in06, in14, 1, 0, 1, 1 ); \
213 100485 : GF_MUL22( in07, in15, 1, 0, 1, 1 ); \
214 100485 : scratch_4 = in04; \
215 100485 : in04 = GF_MUL( in04, 1 ); \
216 100485 : scratch_5 = in05; \
217 100485 : in05 = GF_MUL( in05, 1 ); \
218 100485 : scratch_6 = in06; \
219 100485 : in06 = GF_MUL( in06, 1 ); \
220 100485 : GF_MUL22( in03, in07, 1, 0, 1, 1 ); \
221 100485 : scratch_3 = in03; \
222 100485 : in03 = GF_MUL( in03, 1 ); \
223 100485 : GF_MUL22( in00, in01, 1, 0, 1, 1 ); \
224 100485 : in03 = GF_ADD( GF_MUL( in01, 1 ), in03 ); \
225 100485 : GF_MUL22( in02, in03, 1, 2, 1, 1 ); \
226 100485 : GF_MUL22( in00, in02, 1, 0, 1, 1 ); \
227 100485 : in01 = GF_MUL( in01, 1 ); \
228 100485 : in01 = GF_ADD( GF_MUL( scratch_3, 0 ), in01 ); \
229 100485 : in04 = GF_ADD( GF_MUL( in00, 1 ), in04 ); \
230 100485 : in05 = GF_ADD( GF_MUL( in01, 1 ), in05 ); \
231 100485 : in06 = GF_ADD( GF_MUL( in02, 1 ), in06 ); \
232 100485 : FD_REEDSOL_GENERATE_FFT( 4, 4, in04, in05, in06, in07 ); \
233 100485 : in00 = GF_MUL( in00, 1 ); \
234 100485 : in00 = GF_ADD( GF_MUL( scratch_4, 0 ), in00 ); \
235 100485 : in01 = GF_MUL( in01, 1 ); \
236 100485 : in01 = GF_ADD( GF_MUL( scratch_5, 0 ), in01 ); \
237 100485 : in02 = GF_MUL( in02, 1 ); \
238 100485 : in02 = GF_ADD( GF_MUL( scratch_6, 0 ), in02 ); \
239 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
240 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
241 100485 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
242 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
243 100485 : in00 = GF_MUL( in00, 1 ); \
244 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
245 100485 : in01 = GF_MUL( in01, 1 ); \
246 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
247 100485 : in02 = GF_MUL( in02, 1 ); \
248 100485 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
249 100485 : } while( 0 )
250 :
251 : #define FD_REEDSOL_PPT_IMPL_16_4( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, \
252 : in13, in14, in15) \
253 100485 : do { \
254 100485 : gf_t scratch_10, scratch_11, scratch_4, scratch_5, scratch_6, scratch_7, scratch_8, scratch_9; \
255 100485 : scratch_8 = in08; \
256 100485 : in08 = GF_MUL( in08, 1 ); \
257 100485 : scratch_9 = in09; \
258 100485 : in09 = GF_MUL( in09, 1 ); \
259 100485 : scratch_10 = in10; \
260 100485 : in10 = GF_MUL( in10, 1 ); \
261 100485 : scratch_11 = in11; \
262 100485 : in11 = GF_MUL( in11, 1 ); \
263 100485 : GF_MUL22( in04, in12, 1, 0, 1, 1 ); \
264 100485 : GF_MUL22( in05, in13, 1, 0, 1, 1 ); \
265 100485 : GF_MUL22( in06, in14, 1, 0, 1, 1 ); \
266 100485 : GF_MUL22( in07, in15, 1, 0, 1, 1 ); \
267 100485 : scratch_4 = in04; \
268 100485 : in04 = GF_MUL( in04, 1 ); \
269 100485 : scratch_5 = in05; \
270 100485 : in05 = GF_MUL( in05, 1 ); \
271 100485 : scratch_6 = in06; \
272 100485 : in06 = GF_MUL( in06, 1 ); \
273 100485 : scratch_7 = in07; \
274 100485 : in07 = GF_MUL( in07, 1 ); \
275 100485 : FD_REEDSOL_GENERATE_IFFT( 4, 0, in00, in01, in02, in03 ); \
276 100485 : in04 = GF_ADD( GF_MUL( in00, 1 ), in04 ); \
277 100485 : in05 = GF_ADD( GF_MUL( in01, 1 ), in05 ); \
278 100485 : in06 = GF_ADD( GF_MUL( in02, 1 ), in06 ); \
279 100485 : in07 = GF_ADD( GF_MUL( in03, 1 ), in07 ); \
280 100485 : FD_REEDSOL_GENERATE_FFT( 4, 4, in04, in05, in06, in07 ); \
281 100485 : in00 = GF_MUL( in00, 1 ); \
282 100485 : in00 = GF_ADD( GF_MUL( scratch_4, 0 ), in00 ); \
283 100485 : in01 = GF_MUL( in01, 1 ); \
284 100485 : in01 = GF_ADD( GF_MUL( scratch_5, 0 ), in01 ); \
285 100485 : in02 = GF_MUL( in02, 1 ); \
286 100485 : in02 = GF_ADD( GF_MUL( scratch_6, 0 ), in02 ); \
287 100485 : in03 = GF_MUL( in03, 1 ); \
288 100485 : in03 = GF_ADD( GF_MUL( scratch_7, 0 ), in03 ); \
289 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
290 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
291 100485 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
292 100485 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
293 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
294 100485 : in00 = GF_MUL( in00, 1 ); \
295 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
296 100485 : in01 = GF_MUL( in01, 1 ); \
297 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
298 100485 : in02 = GF_MUL( in02, 1 ); \
299 100485 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
300 100485 : in03 = GF_MUL( in03, 1 ); \
301 100485 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
302 100485 : } while( 0 )
303 :
304 : #define FD_REEDSOL_PPT_IMPL_16_5( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, \
305 : in15) \
306 100485 : do { \
307 100485 : gf_t scratch_10, scratch_11, scratch_12, scratch_2, scratch_5, scratch_6, scratch_7, scratch_8, scratch_9; \
308 100485 : scratch_8 = in08; \
309 100485 : in08 = GF_MUL( in08, 1 ); \
310 100485 : scratch_9 = in09; \
311 100485 : in09 = GF_MUL( in09, 1 ); \
312 100485 : scratch_10 = in10; \
313 100485 : in10 = GF_MUL( in10, 1 ); \
314 100485 : scratch_11 = in11; \
315 100485 : in11 = GF_MUL( in11, 1 ); \
316 100485 : scratch_12 = in12; \
317 100485 : in12 = GF_MUL( in12, 1 ); \
318 100485 : GF_MUL22( in05, in13, 1, 0, 1, 1 ); \
319 100485 : GF_MUL22( in06, in14, 1, 0, 1, 1 ); \
320 100485 : GF_MUL22( in07, in15, 1, 0, 1, 1 ); \
321 100485 : scratch_5 = in05; \
322 100485 : in05 = GF_MUL( in05, 1 ); \
323 100485 : scratch_6 = in06; \
324 100485 : in06 = GF_MUL( in06, 1 ); \
325 100485 : scratch_7 = in07; \
326 100485 : in07 = GF_MUL( in07, 1 ); \
327 100485 : FD_REEDSOL_GENERATE_IFFT( 4, 0, in00, in01, in02, in03 ); \
328 100485 : in05 = GF_ADD( GF_MUL( in01, 1 ), in05 ); \
329 100485 : in06 = GF_ADD( GF_MUL( in02, 1 ), in06 ); \
330 100485 : in07 = GF_ADD( GF_MUL( in03, 1 ), in07 ); \
331 100485 : scratch_2 = in06; \
332 100485 : in06 = GF_MUL( in06, 1 ); \
333 100485 : GF_MUL22( in05, in07, 1, 6, 1, 7 ); \
334 100485 : GF_MUL22( in04, in05, 1, 4, 1, 1 ); \
335 100485 : in06 = GF_ADD( GF_MUL( in04, 1 ), in06 ); \
336 100485 : GF_MUL22( in06, in07, 1, 6, 1, 7 ); \
337 100485 : in04 = GF_MUL( in04, 1 ); \
338 100485 : in04 = GF_ADD( GF_MUL( scratch_2, 6 ), in04 ); \
339 100485 : GF_MUL22( in00, in04, 1, 0, 1, 1 ); \
340 100485 : in01 = GF_MUL( in01, 1 ); \
341 100485 : in01 = GF_ADD( GF_MUL( scratch_5, 0 ), in01 ); \
342 100485 : in02 = GF_MUL( in02, 1 ); \
343 100485 : in02 = GF_ADD( GF_MUL( scratch_6, 0 ), in02 ); \
344 100485 : in03 = GF_MUL( in03, 1 ); \
345 100485 : in03 = GF_ADD( GF_MUL( scratch_7, 0 ), in03 ); \
346 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
347 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
348 100485 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
349 100485 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
350 100485 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
351 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
352 100485 : in00 = GF_MUL( in00, 1 ); \
353 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
354 100485 : in01 = GF_MUL( in01, 1 ); \
355 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
356 100485 : in02 = GF_MUL( in02, 1 ); \
357 100485 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
358 100485 : in03 = GF_MUL( in03, 1 ); \
359 100485 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
360 100485 : in04 = GF_MUL( in04, 1 ); \
361 100485 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
362 100485 : } while( 0 )
363 :
364 : #define FD_REEDSOL_PPT_IMPL_16_6( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15) \
365 100485 : do { \
366 100485 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_2, scratch_3, scratch_6, scratch_7, scratch_8, scratch_9; \
367 100485 : scratch_8 = in08; \
368 100485 : in08 = GF_MUL( in08, 1 ); \
369 100485 : scratch_9 = in09; \
370 100485 : in09 = GF_MUL( in09, 1 ); \
371 100485 : scratch_10 = in10; \
372 100485 : in10 = GF_MUL( in10, 1 ); \
373 100485 : scratch_11 = in11; \
374 100485 : in11 = GF_MUL( in11, 1 ); \
375 100485 : scratch_12 = in12; \
376 100485 : in12 = GF_MUL( in12, 1 ); \
377 100485 : scratch_13 = in13; \
378 100485 : in13 = GF_MUL( in13, 1 ); \
379 100485 : GF_MUL22( in06, in14, 1, 0, 1, 1 ); \
380 100485 : GF_MUL22( in07, in15, 1, 0, 1, 1 ); \
381 100485 : scratch_6 = in06; \
382 100485 : in06 = GF_MUL( in06, 1 ); \
383 100485 : scratch_7 = in07; \
384 100485 : in07 = GF_MUL( in07, 1 ); \
385 100485 : FD_REEDSOL_GENERATE_IFFT( 4, 0, in00, in01, in02, in03 ); \
386 100485 : in06 = GF_ADD( GF_MUL( in02, 1 ), in06 ); \
387 100485 : in07 = GF_ADD( GF_MUL( in03, 1 ), in07 ); \
388 100485 : scratch_2 = in06; \
389 100485 : in06 = GF_MUL( in06, 1 ); \
390 100485 : scratch_3 = in07; \
391 100485 : in07 = GF_MUL( in07, 1 ); \
392 100485 : GF_MUL22( in04, in05, 5, 4, 1, 1 ); \
393 100485 : in06 = GF_ADD( GF_MUL( in04, 1 ), in06 ); \
394 100485 : in07 = GF_ADD( GF_MUL( in05, 1 ), in07 ); \
395 100485 : GF_MUL22( in06, in07, 1, 6, 1, 7 ); \
396 100485 : in04 = GF_MUL( in04, 1 ); \
397 100485 : in04 = GF_ADD( GF_MUL( scratch_2, 6 ), in04 ); \
398 100485 : in05 = GF_MUL( in05, 1 ); \
399 100485 : in05 = GF_ADD( GF_MUL( scratch_3, 6 ), in05 ); \
400 100485 : GF_MUL22( in00, in04, 1, 0, 1, 1 ); \
401 100485 : GF_MUL22( in01, in05, 1, 0, 1, 1 ); \
402 100485 : in02 = GF_MUL( in02, 1 ); \
403 100485 : in02 = GF_ADD( GF_MUL( scratch_6, 0 ), in02 ); \
404 100485 : in03 = GF_MUL( in03, 1 ); \
405 100485 : in03 = GF_ADD( GF_MUL( scratch_7, 0 ), in03 ); \
406 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
407 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
408 100485 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
409 100485 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
410 100485 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
411 100485 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
412 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
413 100485 : in00 = GF_MUL( in00, 1 ); \
414 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
415 100485 : in01 = GF_MUL( in01, 1 ); \
416 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
417 100485 : in02 = GF_MUL( in02, 1 ); \
418 100485 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
419 100485 : in03 = GF_MUL( in03, 1 ); \
420 100485 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
421 100485 : in04 = GF_MUL( in04, 1 ); \
422 100485 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
423 100485 : in05 = GF_MUL( in05, 1 ); \
424 100485 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
425 100485 : } while( 0 )
426 :
427 : #define FD_REEDSOL_PPT_IMPL_16_7( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14 , \
428 : in15) \
429 100485 : do { \
430 100485 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_3, scratch_7, scratch_8, scratch_9; \
431 100485 : scratch_8 = in08; \
432 100485 : in08 = GF_MUL( in08, 1 ); \
433 100485 : scratch_9 = in09; \
434 100485 : in09 = GF_MUL( in09, 1 ); \
435 100485 : scratch_10 = in10; \
436 100485 : in10 = GF_MUL( in10, 1 ); \
437 100485 : scratch_11 = in11; \
438 100485 : in11 = GF_MUL( in11, 1 ); \
439 100485 : scratch_12 = in12; \
440 100485 : in12 = GF_MUL( in12, 1 ); \
441 100485 : scratch_13 = in13; \
442 100485 : in13 = GF_MUL( in13, 1 ); \
443 100485 : scratch_14 = in14; \
444 100485 : in14 = GF_MUL( in14, 1 ); \
445 100485 : GF_MUL22( in07, in15, 1, 0, 1, 1 ); \
446 100485 : scratch_7 = in07; \
447 100485 : in07 = GF_MUL( in07, 1 ); \
448 100485 : FD_REEDSOL_GENERATE_IFFT( 4, 0, in00, in01, in02, in03 ); \
449 100485 : in07 = GF_ADD( GF_MUL( in03, 1 ), in07 ); \
450 100485 : scratch_3 = in07; \
451 100485 : in07 = GF_MUL( in07, 1 ); \
452 100485 : GF_MUL22( in04, in05, 5, 4, 1, 1 ); \
453 100485 : in07 = GF_ADD( GF_MUL( in05, 1 ), in07 ); \
454 100485 : GF_MUL22( in06, in07, 1, 6, 1, 1 ); \
455 100485 : GF_MUL22( in04, in06, 7, 6, 1, 1 ); \
456 100485 : in05 = GF_MUL( in05, 1 ); \
457 100485 : in05 = GF_ADD( GF_MUL( scratch_3, 6 ), in05 ); \
458 100485 : GF_MUL22( in00, in04, 1, 0, 1, 1 ); \
459 100485 : GF_MUL22( in01, in05, 1, 0, 1, 1 ); \
460 100485 : GF_MUL22( in02, in06, 1, 0, 1, 1 ); \
461 100485 : in03 = GF_MUL( in03, 1 ); \
462 100485 : in03 = GF_ADD( GF_MUL( scratch_7, 0 ), in03 ); \
463 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
464 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
465 100485 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
466 100485 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
467 100485 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
468 100485 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
469 100485 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
470 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
471 100485 : in00 = GF_MUL( in00, 1 ); \
472 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
473 100485 : in01 = GF_MUL( in01, 1 ); \
474 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
475 100485 : in02 = GF_MUL( in02, 1 ); \
476 100485 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
477 100485 : in03 = GF_MUL( in03, 1 ); \
478 100485 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
479 100485 : in04 = GF_MUL( in04, 1 ); \
480 100485 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
481 100485 : in05 = GF_MUL( in05, 1 ); \
482 100485 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
483 100485 : in06 = GF_MUL( in06, 1 ); \
484 100485 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
485 100485 : } while( 0 )
486 :
487 : #define FD_REEDSOL_PPT_IMPL_16_8( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12 , \
488 : in13, in14, in15) \
489 100485 : do { \
490 100485 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_8, scratch_9; \
491 100485 : scratch_8 = in08; \
492 100485 : in08 = GF_MUL( in08, 1 ); \
493 100485 : scratch_9 = in09; \
494 100485 : in09 = GF_MUL( in09, 1 ); \
495 100485 : scratch_10 = in10; \
496 100485 : in10 = GF_MUL( in10, 1 ); \
497 100485 : scratch_11 = in11; \
498 100485 : in11 = GF_MUL( in11, 1 ); \
499 100485 : scratch_12 = in12; \
500 100485 : in12 = GF_MUL( in12, 1 ); \
501 100485 : scratch_13 = in13; \
502 100485 : in13 = GF_MUL( in13, 1 ); \
503 100485 : scratch_14 = in14; \
504 100485 : in14 = GF_MUL( in14, 1 ); \
505 100485 : scratch_15 = in15; \
506 100485 : in15 = GF_MUL( in15, 1 ); \
507 100485 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
508 100485 : in08 = GF_ADD( GF_MUL( in00, 1 ), in08 ); \
509 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
510 100485 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
511 100485 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
512 100485 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
513 100485 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
514 100485 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
515 100485 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
516 100485 : FD_REEDSOL_GENERATE_FFT( 8, 8, in08, in09, in10, in11, in12, in13, in14, in15 ); \
517 100485 : in00 = GF_MUL( in00, 1 ); \
518 100485 : in00 = GF_ADD( GF_MUL( scratch_8, 0 ), in00 ); \
519 100485 : in01 = GF_MUL( in01, 1 ); \
520 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
521 100485 : in02 = GF_MUL( in02, 1 ); \
522 100485 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
523 100485 : in03 = GF_MUL( in03, 1 ); \
524 100485 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
525 100485 : in04 = GF_MUL( in04, 1 ); \
526 100485 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
527 100485 : in05 = GF_MUL( in05, 1 ); \
528 100485 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
529 100485 : in06 = GF_MUL( in06, 1 ); \
530 100485 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
531 100485 : in07 = GF_MUL( in07, 1 ); \
532 100485 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
533 100485 : } while( 0 )
534 :
535 : #define FD_REEDSOL_PPT_IMPL_16_9( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14 , \
536 : in15) \
537 100485 : do { \
538 100485 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_2, scratch_4, scratch_9; \
539 100485 : scratch_9 = in09; \
540 100485 : in09 = GF_MUL( in09, 1 ); \
541 100485 : scratch_10 = in10; \
542 100485 : in10 = GF_MUL( in10, 1 ); \
543 100485 : scratch_11 = in11; \
544 100485 : in11 = GF_MUL( in11, 1 ); \
545 100485 : scratch_12 = in12; \
546 100485 : in12 = GF_MUL( in12, 1 ); \
547 100485 : scratch_13 = in13; \
548 100485 : in13 = GF_MUL( in13, 1 ); \
549 100485 : scratch_14 = in14; \
550 100485 : in14 = GF_MUL( in14, 1 ); \
551 100485 : scratch_15 = in15; \
552 100485 : in15 = GF_MUL( in15, 1 ); \
553 100485 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
554 100485 : in09 = GF_ADD( GF_MUL( in01, 1 ), in09 ); \
555 100485 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
556 100485 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
557 100485 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
558 100485 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
559 100485 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
560 100485 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
561 100485 : scratch_4 = in12; \
562 100485 : in12 = GF_MUL( in12, 1 ); \
563 100485 : GF_MUL22( in09, in13, 1, 22, 1, 23 ); \
564 100485 : GF_MUL22( in10, in14, 1, 22, 1, 23 ); \
565 100485 : GF_MUL22( in11, in15, 1, 22, 1, 23 ); \
566 100485 : scratch_2 = in10; \
567 100485 : in10 = GF_MUL( in10, 1 ); \
568 100485 : GF_MUL22( in09, in11, 1, 28, 1, 29 ); \
569 100485 : GF_MUL22( in08, in09, 1, 8, 1, 1 ); \
570 100485 : in10 = GF_ADD( GF_MUL( in08, 1 ), in10 ); \
571 100485 : GF_MUL22( in10, in11, 1, 10, 1, 11 ); \
572 100485 : in08 = GF_MUL( in08, 1 ); \
573 100485 : in08 = GF_ADD( GF_MUL( scratch_2, 28 ), in08 ); \
574 100485 : in12 = GF_ADD( GF_MUL( in08, 1 ), in12 ); \
575 100485 : FD_REEDSOL_GENERATE_FFT( 4, 12, in12, in13, in14, in15 ); \
576 100485 : in08 = GF_MUL( in08, 1 ); \
577 100485 : in08 = GF_ADD( GF_MUL( scratch_4, 22 ), in08 ); \
578 100485 : GF_MUL22( in00, in08, 1, 0, 1, 1 ); \
579 100485 : in01 = GF_MUL( in01, 1 ); \
580 100485 : in01 = GF_ADD( GF_MUL( scratch_9, 0 ), in01 ); \
581 100485 : in02 = GF_MUL( in02, 1 ); \
582 100485 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
583 100485 : in03 = GF_MUL( in03, 1 ); \
584 100485 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
585 100485 : in04 = GF_MUL( in04, 1 ); \
586 100485 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
587 100485 : in05 = GF_MUL( in05, 1 ); \
588 100485 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
589 100485 : in06 = GF_MUL( in06, 1 ); \
590 100485 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
591 100485 : in07 = GF_MUL( in07, 1 ); \
592 100485 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
593 100485 : } while( 0 )
594 :
595 : #define FD_REEDSOL_PPT_IMPL_16_10( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15) \
596 78240 : do { \
597 78240 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_2, scratch_3, scratch_4, scratch_5; \
598 78240 : scratch_10 = in10; \
599 78240 : in10 = GF_MUL( in10, 1 ); \
600 78240 : scratch_11 = in11; \
601 78240 : in11 = GF_MUL( in11, 1 ); \
602 78240 : scratch_12 = in12; \
603 78240 : in12 = GF_MUL( in12, 1 ); \
604 78240 : scratch_13 = in13; \
605 78240 : in13 = GF_MUL( in13, 1 ); \
606 78240 : scratch_14 = in14; \
607 78240 : in14 = GF_MUL( in14, 1 ); \
608 78240 : scratch_15 = in15; \
609 78240 : in15 = GF_MUL( in15, 1 ); \
610 78240 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
611 78240 : in10 = GF_ADD( GF_MUL( in02, 1 ), in10 ); \
612 78240 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
613 78240 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
614 78240 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
615 78240 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
616 78240 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
617 78240 : scratch_4 = in12; \
618 78240 : in12 = GF_MUL( in12, 1 ); \
619 78240 : scratch_5 = in13; \
620 78240 : in13 = GF_MUL( in13, 1 ); \
621 78240 : GF_MUL22( in10, in14, 1, 22, 1, 23 ); \
622 78240 : GF_MUL22( in11, in15, 1, 22, 1, 23 ); \
623 78240 : scratch_2 = in10; \
624 78240 : in10 = GF_MUL( in10, 1 ); \
625 78240 : scratch_3 = in11; \
626 78240 : in11 = GF_MUL( in11, 1 ); \
627 78240 : GF_MUL22( in08, in09, 9, 8, 1, 1 ); \
628 78240 : in10 = GF_ADD( GF_MUL( in08, 1 ), in10 ); \
629 78240 : in11 = GF_ADD( GF_MUL( in09, 1 ), in11 ); \
630 78240 : GF_MUL22( in10, in11, 1, 10, 1, 11 ); \
631 78240 : in08 = GF_MUL( in08, 1 ); \
632 78240 : in08 = GF_ADD( GF_MUL( scratch_2, 28 ), in08 ); \
633 78240 : in09 = GF_MUL( in09, 1 ); \
634 78240 : in09 = GF_ADD( GF_MUL( scratch_3, 28 ), in09 ); \
635 78240 : in12 = GF_ADD( GF_MUL( in08, 1 ), in12 ); \
636 78240 : in13 = GF_ADD( GF_MUL( in09, 1 ), in13 ); \
637 78240 : FD_REEDSOL_GENERATE_FFT( 4, 12, in12, in13, in14, in15 ); \
638 78240 : in08 = GF_MUL( in08, 1 ); \
639 78240 : in08 = GF_ADD( GF_MUL( scratch_4, 22 ), in08 ); \
640 78240 : in09 = GF_MUL( in09, 1 ); \
641 78240 : in09 = GF_ADD( GF_MUL( scratch_5, 22 ), in09 ); \
642 78240 : GF_MUL22( in00, in08, 1, 0, 1, 1 ); \
643 78240 : GF_MUL22( in01, in09, 1, 0, 1, 1 ); \
644 78240 : in02 = GF_MUL( in02, 1 ); \
645 78240 : in02 = GF_ADD( GF_MUL( scratch_10, 0 ), in02 ); \
646 78240 : in03 = GF_MUL( in03, 1 ); \
647 78240 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
648 78240 : in04 = GF_MUL( in04, 1 ); \
649 78240 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
650 78240 : in05 = GF_MUL( in05, 1 ); \
651 78240 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
652 78240 : in06 = GF_MUL( in06, 1 ); \
653 78240 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
654 78240 : in07 = GF_MUL( in07, 1 ); \
655 78240 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
656 78240 : } while( 0 )
657 :
658 : #define FD_REEDSOL_PPT_IMPL_16_11( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, \
659 : in15) \
660 95520 : do { \
661 95520 : gf_t scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_3, scratch_4, scratch_5, scratch_6; \
662 95520 : scratch_11 = in11; \
663 95520 : in11 = GF_MUL( in11, 1 ); \
664 95520 : scratch_12 = in12; \
665 95520 : in12 = GF_MUL( in12, 1 ); \
666 95520 : scratch_13 = in13; \
667 95520 : in13 = GF_MUL( in13, 1 ); \
668 95520 : scratch_14 = in14; \
669 95520 : in14 = GF_MUL( in14, 1 ); \
670 95520 : scratch_15 = in15; \
671 95520 : in15 = GF_MUL( in15, 1 ); \
672 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
673 95520 : in11 = GF_ADD( GF_MUL( in03, 1 ), in11 ); \
674 95520 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
675 95520 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
676 95520 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
677 95520 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
678 95520 : scratch_4 = in12; \
679 95520 : in12 = GF_MUL( in12, 1 ); \
680 95520 : scratch_5 = in13; \
681 95520 : in13 = GF_MUL( in13, 1 ); \
682 95520 : scratch_6 = in14; \
683 95520 : in14 = GF_MUL( in14, 1 ); \
684 95520 : GF_MUL22( in11, in15, 1, 22, 1, 23 ); \
685 95520 : scratch_3 = in11; \
686 95520 : in11 = GF_MUL( in11, 1 ); \
687 95520 : GF_MUL22( in08, in09, 9, 8, 1, 1 ); \
688 95520 : in11 = GF_ADD( GF_MUL( in09, 1 ), in11 ); \
689 95520 : GF_MUL22( in10, in11, 1, 10, 1, 1 ); \
690 95520 : GF_MUL22( in08, in10, 29, 28, 1, 1 ); \
691 95520 : in09 = GF_MUL( in09, 1 ); \
692 95520 : in09 = GF_ADD( GF_MUL( scratch_3, 28 ), in09 ); \
693 95520 : in12 = GF_ADD( GF_MUL( in08, 1 ), in12 ); \
694 95520 : in13 = GF_ADD( GF_MUL( in09, 1 ), in13 ); \
695 95520 : in14 = GF_ADD( GF_MUL( in10, 1 ), in14 ); \
696 95520 : FD_REEDSOL_GENERATE_FFT( 4, 12, in12, in13, in14, in15 ); \
697 95520 : in08 = GF_MUL( in08, 1 ); \
698 95520 : in08 = GF_ADD( GF_MUL( scratch_4, 22 ), in08 ); \
699 95520 : in09 = GF_MUL( in09, 1 ); \
700 95520 : in09 = GF_ADD( GF_MUL( scratch_5, 22 ), in09 ); \
701 95520 : in10 = GF_MUL( in10, 1 ); \
702 95520 : in10 = GF_ADD( GF_MUL( scratch_6, 22 ), in10 ); \
703 95520 : GF_MUL22( in00, in08, 1, 0, 1, 1 ); \
704 95520 : GF_MUL22( in01, in09, 1, 0, 1, 1 ); \
705 95520 : GF_MUL22( in02, in10, 1, 0, 1, 1 ); \
706 95520 : in03 = GF_MUL( in03, 1 ); \
707 95520 : in03 = GF_ADD( GF_MUL( scratch_11, 0 ), in03 ); \
708 95520 : in04 = GF_MUL( in04, 1 ); \
709 95520 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
710 95520 : in05 = GF_MUL( in05, 1 ); \
711 95520 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
712 95520 : in06 = GF_MUL( in06, 1 ); \
713 95520 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
714 95520 : in07 = GF_MUL( in07, 1 ); \
715 95520 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
716 95520 : } while( 0 )
717 :
718 : #define FD_REEDSOL_PPT_IMPL_16_12( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, \
719 : in13, in14, in15) \
720 95520 : do { \
721 95520 : gf_t scratch_12, scratch_13, scratch_14, scratch_15, scratch_4, scratch_5, scratch_6, scratch_7; \
722 95520 : scratch_12 = in12; \
723 95520 : in12 = GF_MUL( in12, 1 ); \
724 95520 : scratch_13 = in13; \
725 95520 : in13 = GF_MUL( in13, 1 ); \
726 95520 : scratch_14 = in14; \
727 95520 : in14 = GF_MUL( in14, 1 ); \
728 95520 : scratch_15 = in15; \
729 95520 : in15 = GF_MUL( in15, 1 ); \
730 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
731 95520 : in12 = GF_ADD( GF_MUL( in04, 1 ), in12 ); \
732 95520 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
733 95520 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
734 95520 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
735 95520 : scratch_4 = in12; \
736 95520 : in12 = GF_MUL( in12, 1 ); \
737 95520 : scratch_5 = in13; \
738 95520 : in13 = GF_MUL( in13, 1 ); \
739 95520 : scratch_6 = in14; \
740 95520 : in14 = GF_MUL( in14, 1 ); \
741 95520 : scratch_7 = in15; \
742 95520 : in15 = GF_MUL( in15, 1 ); \
743 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 8, in08, in09, in10, in11 ); \
744 95520 : in12 = GF_ADD( GF_MUL( in08, 1 ), in12 ); \
745 95520 : in13 = GF_ADD( GF_MUL( in09, 1 ), in13 ); \
746 95520 : in14 = GF_ADD( GF_MUL( in10, 1 ), in14 ); \
747 95520 : in15 = GF_ADD( GF_MUL( in11, 1 ), in15 ); \
748 95520 : FD_REEDSOL_GENERATE_FFT( 4, 12, in12, in13, in14, in15 ); \
749 95520 : in08 = GF_MUL( in08, 1 ); \
750 95520 : in08 = GF_ADD( GF_MUL( scratch_4, 22 ), in08 ); \
751 95520 : in09 = GF_MUL( in09, 1 ); \
752 95520 : in09 = GF_ADD( GF_MUL( scratch_5, 22 ), in09 ); \
753 95520 : in10 = GF_MUL( in10, 1 ); \
754 95520 : in10 = GF_ADD( GF_MUL( scratch_6, 22 ), in10 ); \
755 95520 : in11 = GF_MUL( in11, 1 ); \
756 95520 : in11 = GF_ADD( GF_MUL( scratch_7, 22 ), in11 ); \
757 95520 : GF_MUL22( in00, in08, 1, 0, 1, 1 ); \
758 95520 : GF_MUL22( in01, in09, 1, 0, 1, 1 ); \
759 95520 : GF_MUL22( in02, in10, 1, 0, 1, 1 ); \
760 95520 : GF_MUL22( in03, in11, 1, 0, 1, 1 ); \
761 95520 : in04 = GF_MUL( in04, 1 ); \
762 95520 : in04 = GF_ADD( GF_MUL( scratch_12, 0 ), in04 ); \
763 95520 : in05 = GF_MUL( in05, 1 ); \
764 95520 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
765 95520 : in06 = GF_MUL( in06, 1 ); \
766 95520 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
767 95520 : in07 = GF_MUL( in07, 1 ); \
768 95520 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
769 95520 : } while( 0 )
770 :
771 : #define FD_REEDSOL_PPT_IMPL_16_13( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, \
772 : in11, in12, in13, in14, in15) \
773 95520 : do { \
774 95520 : gf_t scratch_13, scratch_14, scratch_15, scratch_2, scratch_5, scratch_6, scratch_7; \
775 95520 : scratch_13 = in13; \
776 95520 : in13 = GF_MUL( in13, 1 ); \
777 95520 : scratch_14 = in14; \
778 95520 : in14 = GF_MUL( in14, 1 ); \
779 95520 : scratch_15 = in15; \
780 95520 : in15 = GF_MUL( in15, 1 ); \
781 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
782 95520 : in13 = GF_ADD( GF_MUL( in05, 1 ), in13 ); \
783 95520 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
784 95520 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
785 95520 : scratch_5 = in13; \
786 95520 : in13 = GF_MUL( in13, 1 ); \
787 95520 : scratch_6 = in14; \
788 95520 : in14 = GF_MUL( in14, 1 ); \
789 95520 : scratch_7 = in15; \
790 95520 : in15 = GF_MUL( in15, 1 ); \
791 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 8, in08, in09, in10, in11 ); \
792 95520 : in13 = GF_ADD( GF_MUL( in09, 1 ), in13 ); \
793 95520 : in14 = GF_ADD( GF_MUL( in10, 1 ), in14 ); \
794 95520 : in15 = GF_ADD( GF_MUL( in11, 1 ), in15 ); \
795 95520 : scratch_2 = in14; \
796 95520 : in14 = GF_MUL( in14, 1 ); \
797 95520 : GF_MUL22( in13, in15, 1, 26, 1, 27 ); \
798 95520 : GF_MUL22( in12, in13, 1, 12, 1, 1 ); \
799 95520 : in14 = GF_ADD( GF_MUL( in12, 1 ), in14 ); \
800 95520 : GF_MUL22( in14, in15, 1, 14, 1, 15 ); \
801 95520 : in12 = GF_MUL( in12, 1 ); \
802 95520 : in12 = GF_ADD( GF_MUL( scratch_2, 26 ), in12 ); \
803 95520 : GF_MUL22( in08, in12, 23, 22, 1, 1 ); \
804 95520 : in09 = GF_MUL( in09, 1 ); \
805 95520 : in09 = GF_ADD( GF_MUL( scratch_5, 22 ), in09 ); \
806 95520 : in10 = GF_MUL( in10, 1 ); \
807 95520 : in10 = GF_ADD( GF_MUL( scratch_6, 22 ), in10 ); \
808 95520 : in11 = GF_MUL( in11, 1 ); \
809 95520 : in11 = GF_ADD( GF_MUL( scratch_7, 22 ), in11 ); \
810 95520 : GF_MUL22( in00, in08, 1, 0, 1, 1 ); \
811 95520 : GF_MUL22( in01, in09, 1, 0, 1, 1 ); \
812 95520 : GF_MUL22( in02, in10, 1, 0, 1, 1 ); \
813 95520 : GF_MUL22( in03, in11, 1, 0, 1, 1 ); \
814 95520 : GF_MUL22( in04, in12, 1, 0, 1, 1 ); \
815 95520 : in05 = GF_MUL( in05, 1 ); \
816 95520 : in05 = GF_ADD( GF_MUL( scratch_13, 0 ), in05 ); \
817 95520 : in06 = GF_MUL( in06, 1 ); \
818 95520 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
819 95520 : in07 = GF_MUL( in07, 1 ); \
820 95520 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
821 95520 : } while( 0 )
822 :
823 : #define FD_REEDSOL_PPT_IMPL_16_14( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09 , \
824 : in10, in11, in12, in13, in14, in15) \
825 95520 : do { \
826 95520 : gf_t scratch_14, scratch_15, scratch_2, scratch_3, scratch_6, scratch_7; \
827 95520 : scratch_14 = in14; \
828 95520 : in14 = GF_MUL( in14, 1 ); \
829 95520 : scratch_15 = in15; \
830 95520 : in15 = GF_MUL( in15, 1 ); \
831 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
832 95520 : in14 = GF_ADD( GF_MUL( in06, 1 ), in14 ); \
833 95520 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
834 95520 : scratch_6 = in14; \
835 95520 : in14 = GF_MUL( in14, 1 ); \
836 95520 : scratch_7 = in15; \
837 95520 : in15 = GF_MUL( in15, 1 ); \
838 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 8, in08, in09, in10, in11 ); \
839 95520 : in14 = GF_ADD( GF_MUL( in10, 1 ), in14 ); \
840 95520 : in15 = GF_ADD( GF_MUL( in11, 1 ), in15 ); \
841 95520 : scratch_2 = in14; \
842 95520 : in14 = GF_MUL( in14, 1 ); \
843 95520 : scratch_3 = in15; \
844 95520 : in15 = GF_MUL( in15, 1 ); \
845 95520 : GF_MUL22( in12, in13, 13, 12, 1, 1 ); \
846 95520 : in14 = GF_ADD( GF_MUL( in12, 1 ), in14 ); \
847 95520 : in15 = GF_ADD( GF_MUL( in13, 1 ), in15 ); \
848 95520 : GF_MUL22( in14, in15, 1, 14, 1, 15 ); \
849 95520 : in12 = GF_MUL( in12, 1 ); \
850 95520 : in12 = GF_ADD( GF_MUL( scratch_2, 26 ), in12 ); \
851 95520 : in13 = GF_MUL( in13, 1 ); \
852 95520 : in13 = GF_ADD( GF_MUL( scratch_3, 26 ), in13 ); \
853 95520 : GF_MUL22( in08, in12, 23, 22, 1, 1 ); \
854 95520 : GF_MUL22( in09, in13, 23, 22, 1, 1 ); \
855 95520 : in10 = GF_MUL( in10, 1 ); \
856 95520 : in10 = GF_ADD( GF_MUL( scratch_6, 22 ), in10 ); \
857 95520 : in11 = GF_MUL( in11, 1 ); \
858 95520 : in11 = GF_ADD( GF_MUL( scratch_7, 22 ), in11 ); \
859 95520 : GF_MUL22( in00, in08, 1, 0, 1, 1 ); \
860 95520 : GF_MUL22( in01, in09, 1, 0, 1, 1 ); \
861 95520 : GF_MUL22( in02, in10, 1, 0, 1, 1 ); \
862 95520 : GF_MUL22( in03, in11, 1, 0, 1, 1 ); \
863 95520 : GF_MUL22( in04, in12, 1, 0, 1, 1 ); \
864 95520 : GF_MUL22( in05, in13, 1, 0, 1, 1 ); \
865 95520 : in06 = GF_MUL( in06, 1 ); \
866 95520 : in06 = GF_ADD( GF_MUL( scratch_14, 0 ), in06 ); \
867 95520 : in07 = GF_MUL( in07, 1 ); \
868 95520 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
869 95520 : } while( 0 )
870 :
871 : #define FD_REEDSOL_PPT_IMPL_16_15( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09 , \
872 : in10, in11, in12, in13, in14, in15) \
873 95520 : do { \
874 95520 : gf_t scratch_15, scratch_3, scratch_7; \
875 95520 : scratch_15 = in15; \
876 95520 : in15 = GF_MUL( in15, 1 ); \
877 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 0, in00, in01, in02, in03, in04, in05, in06, in07 ); \
878 95520 : in15 = GF_ADD( GF_MUL( in07, 1 ), in15 ); \
879 95520 : scratch_7 = in15; \
880 95520 : in15 = GF_MUL( in15, 1 ); \
881 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 8, in08, in09, in10, in11 ); \
882 95520 : in15 = GF_ADD( GF_MUL( in11, 1 ), in15 ); \
883 95520 : scratch_3 = in15; \
884 95520 : in15 = GF_MUL( in15, 1 ); \
885 95520 : GF_MUL22( in12, in13, 13, 12, 1, 1 ); \
886 95520 : in15 = GF_ADD( GF_MUL( in13, 1 ), in15 ); \
887 95520 : GF_MUL22( in14, in15, 1, 14, 1, 1 ); \
888 95520 : GF_MUL22( in12, in14, 27, 26, 1, 1 ); \
889 95520 : in13 = GF_MUL( in13, 1 ); \
890 95520 : in13 = GF_ADD( GF_MUL( scratch_3, 26 ), in13 ); \
891 95520 : GF_MUL22( in08, in12, 23, 22, 1, 1 ); \
892 95520 : GF_MUL22( in09, in13, 23, 22, 1, 1 ); \
893 95520 : GF_MUL22( in10, in14, 23, 22, 1, 1 ); \
894 95520 : in11 = GF_MUL( in11, 1 ); \
895 95520 : in11 = GF_ADD( GF_MUL( scratch_7, 22 ), in11 ); \
896 95520 : GF_MUL22( in00, in08, 1, 0, 1, 1 ); \
897 95520 : GF_MUL22( in01, in09, 1, 0, 1, 1 ); \
898 95520 : GF_MUL22( in02, in10, 1, 0, 1, 1 ); \
899 95520 : GF_MUL22( in03, in11, 1, 0, 1, 1 ); \
900 95520 : GF_MUL22( in04, in12, 1, 0, 1, 1 ); \
901 95520 : GF_MUL22( in05, in13, 1, 0, 1, 1 ); \
902 95520 : GF_MUL22( in06, in14, 1, 0, 1, 1 ); \
903 95520 : in07 = GF_MUL( in07, 1 ); \
904 95520 : in07 = GF_ADD( GF_MUL( scratch_15, 0 ), in07 ); \
905 95520 : } while( 0 )
906 :
907 : void fd_reedsol_ppt_32_17( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
908 : #define FD_REEDSOL_PPT_IMPL_32_17( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
909 : in29, in30, in31) \
910 95520 : do { \
911 95520 : gf_t scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31; \
912 95520 : gf_t scratch_4, scratch_8; \
913 95520 : scratch_17 = in17; \
914 95520 : in17 = GF_MUL( in17, 1 ); \
915 95520 : scratch_18 = in18; \
916 95520 : in18 = GF_MUL( in18, 1 ); \
917 95520 : scratch_19 = in19; \
918 95520 : in19 = GF_MUL( in19, 1 ); \
919 95520 : scratch_20 = in20; \
920 95520 : in20 = GF_MUL( in20, 1 ); \
921 95520 : scratch_21 = in21; \
922 95520 : in21 = GF_MUL( in21, 1 ); \
923 95520 : scratch_22 = in22; \
924 95520 : in22 = GF_MUL( in22, 1 ); \
925 95520 : scratch_23 = in23; \
926 95520 : in23 = GF_MUL( in23, 1 ); \
927 95520 : scratch_24 = in24; \
928 95520 : in24 = GF_MUL( in24, 1 ); \
929 95520 : scratch_25 = in25; \
930 95520 : in25 = GF_MUL( in25, 1 ); \
931 95520 : scratch_26 = in26; \
932 95520 : in26 = GF_MUL( in26, 1 ); \
933 95520 : scratch_27 = in27; \
934 95520 : in27 = GF_MUL( in27, 1 ); \
935 95520 : scratch_28 = in28; \
936 95520 : in28 = GF_MUL( in28, 1 ); \
937 95520 : scratch_29 = in29; \
938 95520 : in29 = GF_MUL( in29, 1 ); \
939 95520 : scratch_30 = in30; \
940 95520 : in30 = GF_MUL( in30, 1 ); \
941 95520 : scratch_31 = in31; \
942 95520 : in31 = GF_MUL( in31, 1 ); \
943 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
944 95520 : in17 = GF_ADD( GF_MUL( in01, 1 ), in17 ); \
945 95520 : in18 = GF_ADD( GF_MUL( in02, 1 ), in18 ); \
946 95520 : in19 = GF_ADD( GF_MUL( in03, 1 ), in19 ); \
947 95520 : in20 = GF_ADD( GF_MUL( in04, 1 ), in20 ); \
948 95520 : in21 = GF_ADD( GF_MUL( in05, 1 ), in21 ); \
949 95520 : in22 = GF_ADD( GF_MUL( in06, 1 ), in22 ); \
950 95520 : in23 = GF_ADD( GF_MUL( in07, 1 ), in23 ); \
951 95520 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
952 95520 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
953 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
954 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
955 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
956 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
957 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
958 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
959 95520 : scratch_8 = in24; \
960 95520 : in24 = GF_MUL( in24, 1 ); \
961 95520 : GF_MUL22( in17, in25, 1, 11, 1, 10 ); \
962 95520 : GF_MUL22( in18, in26, 1, 11, 1, 10 ); \
963 95520 : GF_MUL22( in19, in27, 1, 11, 1, 10 ); \
964 95520 : GF_MUL22( in20, in28, 1, 11, 1, 10 ); \
965 95520 : GF_MUL22( in21, in29, 1, 11, 1, 10 ); \
966 95520 : GF_MUL22( in22, in30, 1, 11, 1, 10 ); \
967 95520 : GF_MUL22( in23, in31, 1, 11, 1, 10 ); \
968 95520 : scratch_4 = in20; \
969 95520 : in20 = GF_MUL( in20, 1 ); \
970 95520 : GF_MUL22( in17, in21, 1, 97, 1, 96 ); \
971 95520 : GF_MUL22( in18, in22, 1, 97, 1, 96 ); \
972 95520 : GF_MUL22( in19, in23, 1, 97, 1, 96 ); \
973 95520 : scratch_2 = in18; \
974 95520 : in18 = GF_MUL( in18, 1 ); \
975 95520 : GF_MUL22( in17, in19, 1, 120, 1, 121 ); \
976 95520 : GF_MUL22( in16, in17, 1, 16, 1, 1 ); \
977 95520 : in18 = GF_ADD( GF_MUL( in16, 1 ), in18 ); \
978 95520 : GF_MUL22( in18, in19, 1, 18, 1, 19 ); \
979 95520 : in16 = GF_MUL( in16, 1 ); \
980 95520 : in16 = GF_ADD( GF_MUL( scratch_2, 120 ), in16 ); \
981 95520 : in20 = GF_ADD( GF_MUL( in16, 1 ), in20 ); \
982 95520 : FD_REEDSOL_GENERATE_FFT( 4, 20, in20, in21, in22, in23 ); \
983 95520 : in16 = GF_MUL( in16, 1 ); \
984 95520 : in16 = GF_ADD( GF_MUL( scratch_4, 97 ), in16 ); \
985 95520 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
986 95520 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
987 95520 : in16 = GF_MUL( in16, 1 ); \
988 95520 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
989 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
990 95520 : in01 = GF_MUL( in01, 1 ); \
991 95520 : in01 = GF_ADD( GF_MUL( scratch_17, 0 ), in01 ); \
992 95520 : in02 = GF_MUL( in02, 1 ); \
993 95520 : in02 = GF_ADD( GF_MUL( scratch_18, 0 ), in02 ); \
994 95520 : in03 = GF_MUL( in03, 1 ); \
995 95520 : in03 = GF_ADD( GF_MUL( scratch_19, 0 ), in03 ); \
996 95520 : in04 = GF_MUL( in04, 1 ); \
997 95520 : in04 = GF_ADD( GF_MUL( scratch_20, 0 ), in04 ); \
998 95520 : in05 = GF_MUL( in05, 1 ); \
999 95520 : in05 = GF_ADD( GF_MUL( scratch_21, 0 ), in05 ); \
1000 95520 : in06 = GF_MUL( in06, 1 ); \
1001 95520 : in06 = GF_ADD( GF_MUL( scratch_22, 0 ), in06 ); \
1002 95520 : in07 = GF_MUL( in07, 1 ); \
1003 95520 : in07 = GF_ADD( GF_MUL( scratch_23, 0 ), in07 ); \
1004 95520 : in08 = GF_MUL( in08, 1 ); \
1005 95520 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1006 95520 : in09 = GF_MUL( in09, 1 ); \
1007 95520 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1008 95520 : in10 = GF_MUL( in10, 1 ); \
1009 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1010 95520 : in11 = GF_MUL( in11, 1 ); \
1011 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1012 95520 : in12 = GF_MUL( in12, 1 ); \
1013 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1014 95520 : in13 = GF_MUL( in13, 1 ); \
1015 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1016 95520 : in14 = GF_MUL( in14, 1 ); \
1017 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1018 95520 : in15 = GF_MUL( in15, 1 ); \
1019 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1020 95520 : } while( 0 )
1021 :
1022 : void fd_reedsol_ppt_32_18( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1023 : #define FD_REEDSOL_PPT_IMPL_32_18( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1024 : in29, in30, in31) \
1025 95616 : do { \
1026 95616 : gf_t scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31; \
1027 95616 : gf_t scratch_4, scratch_5, scratch_8, scratch_9; \
1028 95616 : scratch_18 = in18; \
1029 95616 : in18 = GF_MUL( in18, 1 ); \
1030 95616 : scratch_19 = in19; \
1031 95616 : in19 = GF_MUL( in19, 1 ); \
1032 95616 : scratch_20 = in20; \
1033 95616 : in20 = GF_MUL( in20, 1 ); \
1034 95616 : scratch_21 = in21; \
1035 95616 : in21 = GF_MUL( in21, 1 ); \
1036 95616 : scratch_22 = in22; \
1037 95616 : in22 = GF_MUL( in22, 1 ); \
1038 95616 : scratch_23 = in23; \
1039 95616 : in23 = GF_MUL( in23, 1 ); \
1040 95616 : scratch_24 = in24; \
1041 95616 : in24 = GF_MUL( in24, 1 ); \
1042 95616 : scratch_25 = in25; \
1043 95616 : in25 = GF_MUL( in25, 1 ); \
1044 95616 : scratch_26 = in26; \
1045 95616 : in26 = GF_MUL( in26, 1 ); \
1046 95616 : scratch_27 = in27; \
1047 95616 : in27 = GF_MUL( in27, 1 ); \
1048 95616 : scratch_28 = in28; \
1049 95616 : in28 = GF_MUL( in28, 1 ); \
1050 95616 : scratch_29 = in29; \
1051 95616 : in29 = GF_MUL( in29, 1 ); \
1052 95616 : scratch_30 = in30; \
1053 95616 : in30 = GF_MUL( in30, 1 ); \
1054 95616 : scratch_31 = in31; \
1055 95616 : in31 = GF_MUL( in31, 1 ); \
1056 95616 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1057 95616 : in18 = GF_ADD( GF_MUL( in02, 1 ), in18 ); \
1058 95616 : in19 = GF_ADD( GF_MUL( in03, 1 ), in19 ); \
1059 95616 : in20 = GF_ADD( GF_MUL( in04, 1 ), in20 ); \
1060 95616 : in21 = GF_ADD( GF_MUL( in05, 1 ), in21 ); \
1061 95616 : in22 = GF_ADD( GF_MUL( in06, 1 ), in22 ); \
1062 95616 : in23 = GF_ADD( GF_MUL( in07, 1 ), in23 ); \
1063 95616 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
1064 95616 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1065 95616 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1066 95616 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1067 95616 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1068 95616 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1069 95616 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1070 95616 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1071 95616 : scratch_8 = in24; \
1072 95616 : in24 = GF_MUL( in24, 1 ); \
1073 95616 : scratch_9 = in25; \
1074 95616 : in25 = GF_MUL( in25, 1 ); \
1075 95616 : GF_MUL22( in18, in26, 1, 11, 1, 10 ); \
1076 95616 : GF_MUL22( in19, in27, 1, 11, 1, 10 ); \
1077 95616 : GF_MUL22( in20, in28, 1, 11, 1, 10 ); \
1078 95616 : GF_MUL22( in21, in29, 1, 11, 1, 10 ); \
1079 95616 : GF_MUL22( in22, in30, 1, 11, 1, 10 ); \
1080 95616 : GF_MUL22( in23, in31, 1, 11, 1, 10 ); \
1081 95616 : scratch_4 = in20; \
1082 95616 : in20 = GF_MUL( in20, 1 ); \
1083 95616 : scratch_5 = in21; \
1084 95616 : in21 = GF_MUL( in21, 1 ); \
1085 95616 : GF_MUL22( in18, in22, 1, 97, 1, 96 ); \
1086 95616 : GF_MUL22( in19, in23, 1, 97, 1, 96 ); \
1087 95616 : scratch_2 = in18; \
1088 95616 : in18 = GF_MUL( in18, 1 ); \
1089 95616 : scratch_3 = in19; \
1090 95616 : in19 = GF_MUL( in19, 1 ); \
1091 95616 : GF_MUL22( in16, in17, 17, 16, 1, 1 ); \
1092 95616 : in18 = GF_ADD( GF_MUL( in16, 1 ), in18 ); \
1093 95616 : in19 = GF_ADD( GF_MUL( in17, 1 ), in19 ); \
1094 95616 : GF_MUL22( in18, in19, 1, 18, 1, 19 ); \
1095 95616 : in16 = GF_MUL( in16, 1 ); \
1096 95616 : in16 = GF_ADD( GF_MUL( scratch_2, 120 ), in16 ); \
1097 95616 : in17 = GF_MUL( in17, 1 ); \
1098 95616 : in17 = GF_ADD( GF_MUL( scratch_3, 120 ), in17 ); \
1099 95616 : in20 = GF_ADD( GF_MUL( in16, 1 ), in20 ); \
1100 95616 : in21 = GF_ADD( GF_MUL( in17, 1 ), in21 ); \
1101 95616 : FD_REEDSOL_GENERATE_FFT( 4, 20, in20, in21, in22, in23 ); \
1102 95616 : in16 = GF_MUL( in16, 1 ); \
1103 95616 : in16 = GF_ADD( GF_MUL( scratch_4, 97 ), in16 ); \
1104 95616 : in17 = GF_MUL( in17, 1 ); \
1105 95616 : in17 = GF_ADD( GF_MUL( scratch_5, 97 ), in17 ); \
1106 95616 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
1107 95616 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1108 95616 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
1109 95616 : in16 = GF_MUL( in16, 1 ); \
1110 95616 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
1111 95616 : in17 = GF_MUL( in17, 1 ); \
1112 95616 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1113 95616 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1114 95616 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1115 95616 : in02 = GF_MUL( in02, 1 ); \
1116 95616 : in02 = GF_ADD( GF_MUL( scratch_18, 0 ), in02 ); \
1117 95616 : in03 = GF_MUL( in03, 1 ); \
1118 95616 : in03 = GF_ADD( GF_MUL( scratch_19, 0 ), in03 ); \
1119 95616 : in04 = GF_MUL( in04, 1 ); \
1120 95616 : in04 = GF_ADD( GF_MUL( scratch_20, 0 ), in04 ); \
1121 95616 : in05 = GF_MUL( in05, 1 ); \
1122 95616 : in05 = GF_ADD( GF_MUL( scratch_21, 0 ), in05 ); \
1123 95616 : in06 = GF_MUL( in06, 1 ); \
1124 95616 : in06 = GF_ADD( GF_MUL( scratch_22, 0 ), in06 ); \
1125 95616 : in07 = GF_MUL( in07, 1 ); \
1126 95616 : in07 = GF_ADD( GF_MUL( scratch_23, 0 ), in07 ); \
1127 95616 : in08 = GF_MUL( in08, 1 ); \
1128 95616 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1129 95616 : in09 = GF_MUL( in09, 1 ); \
1130 95616 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1131 95616 : in10 = GF_MUL( in10, 1 ); \
1132 95616 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1133 95616 : in11 = GF_MUL( in11, 1 ); \
1134 95616 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1135 95616 : in12 = GF_MUL( in12, 1 ); \
1136 95616 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1137 95616 : in13 = GF_MUL( in13, 1 ); \
1138 95616 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1139 95616 : in14 = GF_MUL( in14, 1 ); \
1140 95616 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1141 95616 : in15 = GF_MUL( in15, 1 ); \
1142 95616 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1143 95616 : } while( 0 )
1144 :
1145 : void fd_reedsol_ppt_32_19( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1146 : #define FD_REEDSOL_PPT_IMPL_32_19( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1147 : in29, in30, in31) \
1148 95520 : do { \
1149 95520 : gf_t scratch_10, scratch_19, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_4; \
1150 95520 : gf_t scratch_5, scratch_6, scratch_8, scratch_9; \
1151 95520 : scratch_19 = in19; \
1152 95520 : in19 = GF_MUL( in19, 1 ); \
1153 95520 : scratch_20 = in20; \
1154 95520 : in20 = GF_MUL( in20, 1 ); \
1155 95520 : scratch_21 = in21; \
1156 95520 : in21 = GF_MUL( in21, 1 ); \
1157 95520 : scratch_22 = in22; \
1158 95520 : in22 = GF_MUL( in22, 1 ); \
1159 95520 : scratch_23 = in23; \
1160 95520 : in23 = GF_MUL( in23, 1 ); \
1161 95520 : scratch_24 = in24; \
1162 95520 : in24 = GF_MUL( in24, 1 ); \
1163 95520 : scratch_25 = in25; \
1164 95520 : in25 = GF_MUL( in25, 1 ); \
1165 95520 : scratch_26 = in26; \
1166 95520 : in26 = GF_MUL( in26, 1 ); \
1167 95520 : scratch_27 = in27; \
1168 95520 : in27 = GF_MUL( in27, 1 ); \
1169 95520 : scratch_28 = in28; \
1170 95520 : in28 = GF_MUL( in28, 1 ); \
1171 95520 : scratch_29 = in29; \
1172 95520 : in29 = GF_MUL( in29, 1 ); \
1173 95520 : scratch_30 = in30; \
1174 95520 : in30 = GF_MUL( in30, 1 ); \
1175 95520 : scratch_31 = in31; \
1176 95520 : in31 = GF_MUL( in31, 1 ); \
1177 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1178 95520 : in19 = GF_ADD( GF_MUL( in03, 1 ), in19 ); \
1179 95520 : in20 = GF_ADD( GF_MUL( in04, 1 ), in20 ); \
1180 95520 : in21 = GF_ADD( GF_MUL( in05, 1 ), in21 ); \
1181 95520 : in22 = GF_ADD( GF_MUL( in06, 1 ), in22 ); \
1182 95520 : in23 = GF_ADD( GF_MUL( in07, 1 ), in23 ); \
1183 95520 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
1184 95520 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1185 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1186 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1187 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1188 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1189 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1190 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1191 95520 : scratch_8 = in24; \
1192 95520 : in24 = GF_MUL( in24, 1 ); \
1193 95520 : scratch_9 = in25; \
1194 95520 : in25 = GF_MUL( in25, 1 ); \
1195 95520 : scratch_10 = in26; \
1196 95520 : in26 = GF_MUL( in26, 1 ); \
1197 95520 : GF_MUL22( in19, in27, 1, 11, 1, 10 ); \
1198 95520 : GF_MUL22( in20, in28, 1, 11, 1, 10 ); \
1199 95520 : GF_MUL22( in21, in29, 1, 11, 1, 10 ); \
1200 95520 : GF_MUL22( in22, in30, 1, 11, 1, 10 ); \
1201 95520 : GF_MUL22( in23, in31, 1, 11, 1, 10 ); \
1202 95520 : scratch_4 = in20; \
1203 95520 : in20 = GF_MUL( in20, 1 ); \
1204 95520 : scratch_5 = in21; \
1205 95520 : in21 = GF_MUL( in21, 1 ); \
1206 95520 : scratch_6 = in22; \
1207 95520 : in22 = GF_MUL( in22, 1 ); \
1208 95520 : GF_MUL22( in19, in23, 1, 97, 1, 96 ); \
1209 95520 : scratch_3 = in19; \
1210 95520 : in19 = GF_MUL( in19, 1 ); \
1211 95520 : GF_MUL22( in16, in17, 17, 16, 1, 1 ); \
1212 95520 : in19 = GF_ADD( GF_MUL( in17, 1 ), in19 ); \
1213 95520 : GF_MUL22( in18, in19, 1, 18, 1, 1 ); \
1214 95520 : GF_MUL22( in16, in18, 121, 120, 1, 1 ); \
1215 95520 : in17 = GF_MUL( in17, 1 ); \
1216 95520 : in17 = GF_ADD( GF_MUL( scratch_3, 120 ), in17 ); \
1217 95520 : in20 = GF_ADD( GF_MUL( in16, 1 ), in20 ); \
1218 95520 : in21 = GF_ADD( GF_MUL( in17, 1 ), in21 ); \
1219 95520 : in22 = GF_ADD( GF_MUL( in18, 1 ), in22 ); \
1220 95520 : FD_REEDSOL_GENERATE_FFT( 4, 20, in20, in21, in22, in23 ); \
1221 95520 : in16 = GF_MUL( in16, 1 ); \
1222 95520 : in16 = GF_ADD( GF_MUL( scratch_4, 97 ), in16 ); \
1223 95520 : in17 = GF_MUL( in17, 1 ); \
1224 95520 : in17 = GF_ADD( GF_MUL( scratch_5, 97 ), in17 ); \
1225 95520 : in18 = GF_MUL( in18, 1 ); \
1226 95520 : in18 = GF_ADD( GF_MUL( scratch_6, 97 ), in18 ); \
1227 95520 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
1228 95520 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1229 95520 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1230 95520 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
1231 95520 : in16 = GF_MUL( in16, 1 ); \
1232 95520 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
1233 95520 : in17 = GF_MUL( in17, 1 ); \
1234 95520 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1235 95520 : in18 = GF_MUL( in18, 1 ); \
1236 95520 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
1237 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1238 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1239 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
1240 95520 : in03 = GF_MUL( in03, 1 ); \
1241 95520 : in03 = GF_ADD( GF_MUL( scratch_19, 0 ), in03 ); \
1242 95520 : in04 = GF_MUL( in04, 1 ); \
1243 95520 : in04 = GF_ADD( GF_MUL( scratch_20, 0 ), in04 ); \
1244 95520 : in05 = GF_MUL( in05, 1 ); \
1245 95520 : in05 = GF_ADD( GF_MUL( scratch_21, 0 ), in05 ); \
1246 95520 : in06 = GF_MUL( in06, 1 ); \
1247 95520 : in06 = GF_ADD( GF_MUL( scratch_22, 0 ), in06 ); \
1248 95520 : in07 = GF_MUL( in07, 1 ); \
1249 95520 : in07 = GF_ADD( GF_MUL( scratch_23, 0 ), in07 ); \
1250 95520 : in08 = GF_MUL( in08, 1 ); \
1251 95520 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1252 95520 : in09 = GF_MUL( in09, 1 ); \
1253 95520 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1254 95520 : in10 = GF_MUL( in10, 1 ); \
1255 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1256 95520 : in11 = GF_MUL( in11, 1 ); \
1257 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1258 95520 : in12 = GF_MUL( in12, 1 ); \
1259 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1260 95520 : in13 = GF_MUL( in13, 1 ); \
1261 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1262 95520 : in14 = GF_MUL( in14, 1 ); \
1263 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1264 95520 : in15 = GF_MUL( in15, 1 ); \
1265 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1266 95520 : } while( 0 )
1267 :
1268 : void fd_reedsol_ppt_32_20( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1269 : #define FD_REEDSOL_PPT_IMPL_32_20( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1270 : in29, in30, in31) \
1271 95520 : do { \
1272 95520 : gf_t scratch_10, scratch_11, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_4, scratch_5; \
1273 95520 : gf_t scratch_6, scratch_7, scratch_8, scratch_9; \
1274 95520 : scratch_20 = in20; \
1275 95520 : in20 = GF_MUL( in20, 1 ); \
1276 95520 : scratch_21 = in21; \
1277 95520 : in21 = GF_MUL( in21, 1 ); \
1278 95520 : scratch_22 = in22; \
1279 95520 : in22 = GF_MUL( in22, 1 ); \
1280 95520 : scratch_23 = in23; \
1281 95520 : in23 = GF_MUL( in23, 1 ); \
1282 95520 : scratch_24 = in24; \
1283 95520 : in24 = GF_MUL( in24, 1 ); \
1284 95520 : scratch_25 = in25; \
1285 95520 : in25 = GF_MUL( in25, 1 ); \
1286 95520 : scratch_26 = in26; \
1287 95520 : in26 = GF_MUL( in26, 1 ); \
1288 95520 : scratch_27 = in27; \
1289 95520 : in27 = GF_MUL( in27, 1 ); \
1290 95520 : scratch_28 = in28; \
1291 95520 : in28 = GF_MUL( in28, 1 ); \
1292 95520 : scratch_29 = in29; \
1293 95520 : in29 = GF_MUL( in29, 1 ); \
1294 95520 : scratch_30 = in30; \
1295 95520 : in30 = GF_MUL( in30, 1 ); \
1296 95520 : scratch_31 = in31; \
1297 95520 : in31 = GF_MUL( in31, 1 ); \
1298 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1299 95520 : in20 = GF_ADD( GF_MUL( in04, 1 ), in20 ); \
1300 95520 : in21 = GF_ADD( GF_MUL( in05, 1 ), in21 ); \
1301 95520 : in22 = GF_ADD( GF_MUL( in06, 1 ), in22 ); \
1302 95520 : in23 = GF_ADD( GF_MUL( in07, 1 ), in23 ); \
1303 95520 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
1304 95520 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1305 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1306 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1307 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1308 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1309 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1310 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1311 95520 : scratch_8 = in24; \
1312 95520 : in24 = GF_MUL( in24, 1 ); \
1313 95520 : scratch_9 = in25; \
1314 95520 : in25 = GF_MUL( in25, 1 ); \
1315 95520 : scratch_10 = in26; \
1316 95520 : in26 = GF_MUL( in26, 1 ); \
1317 95520 : scratch_11 = in27; \
1318 95520 : in27 = GF_MUL( in27, 1 ); \
1319 95520 : GF_MUL22( in20, in28, 1, 11, 1, 10 ); \
1320 95520 : GF_MUL22( in21, in29, 1, 11, 1, 10 ); \
1321 95520 : GF_MUL22( in22, in30, 1, 11, 1, 10 ); \
1322 95520 : GF_MUL22( in23, in31, 1, 11, 1, 10 ); \
1323 95520 : scratch_4 = in20; \
1324 95520 : in20 = GF_MUL( in20, 1 ); \
1325 95520 : scratch_5 = in21; \
1326 95520 : in21 = GF_MUL( in21, 1 ); \
1327 95520 : scratch_6 = in22; \
1328 95520 : in22 = GF_MUL( in22, 1 ); \
1329 95520 : scratch_7 = in23; \
1330 95520 : in23 = GF_MUL( in23, 1 ); \
1331 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 16, in16, in17, in18, in19 ); \
1332 95520 : in20 = GF_ADD( GF_MUL( in16, 1 ), in20 ); \
1333 95520 : in21 = GF_ADD( GF_MUL( in17, 1 ), in21 ); \
1334 95520 : in22 = GF_ADD( GF_MUL( in18, 1 ), in22 ); \
1335 95520 : in23 = GF_ADD( GF_MUL( in19, 1 ), in23 ); \
1336 95520 : FD_REEDSOL_GENERATE_FFT( 4, 20, in20, in21, in22, in23 ); \
1337 95520 : in16 = GF_MUL( in16, 1 ); \
1338 95520 : in16 = GF_ADD( GF_MUL( scratch_4, 97 ), in16 ); \
1339 95520 : in17 = GF_MUL( in17, 1 ); \
1340 95520 : in17 = GF_ADD( GF_MUL( scratch_5, 97 ), in17 ); \
1341 95520 : in18 = GF_MUL( in18, 1 ); \
1342 95520 : in18 = GF_ADD( GF_MUL( scratch_6, 97 ), in18 ); \
1343 95520 : in19 = GF_MUL( in19, 1 ); \
1344 95520 : in19 = GF_ADD( GF_MUL( scratch_7, 97 ), in19 ); \
1345 95520 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
1346 95520 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1347 95520 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1348 95520 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
1349 95520 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
1350 95520 : in16 = GF_MUL( in16, 1 ); \
1351 95520 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
1352 95520 : in17 = GF_MUL( in17, 1 ); \
1353 95520 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1354 95520 : in18 = GF_MUL( in18, 1 ); \
1355 95520 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
1356 95520 : in19 = GF_MUL( in19, 1 ); \
1357 95520 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
1358 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1359 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1360 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
1361 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
1362 95520 : in04 = GF_MUL( in04, 1 ); \
1363 95520 : in04 = GF_ADD( GF_MUL( scratch_20, 0 ), in04 ); \
1364 95520 : in05 = GF_MUL( in05, 1 ); \
1365 95520 : in05 = GF_ADD( GF_MUL( scratch_21, 0 ), in05 ); \
1366 95520 : in06 = GF_MUL( in06, 1 ); \
1367 95520 : in06 = GF_ADD( GF_MUL( scratch_22, 0 ), in06 ); \
1368 95520 : in07 = GF_MUL( in07, 1 ); \
1369 95520 : in07 = GF_ADD( GF_MUL( scratch_23, 0 ), in07 ); \
1370 95520 : in08 = GF_MUL( in08, 1 ); \
1371 95520 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1372 95520 : in09 = GF_MUL( in09, 1 ); \
1373 95520 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1374 95520 : in10 = GF_MUL( in10, 1 ); \
1375 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1376 95520 : in11 = GF_MUL( in11, 1 ); \
1377 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1378 95520 : in12 = GF_MUL( in12, 1 ); \
1379 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1380 95520 : in13 = GF_MUL( in13, 1 ); \
1381 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1382 95520 : in14 = GF_MUL( in14, 1 ); \
1383 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1384 95520 : in15 = GF_MUL( in15, 1 ); \
1385 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1386 95520 : } while( 0 )
1387 :
1388 : void fd_reedsol_ppt_32_21( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1389 : #define FD_REEDSOL_PPT_IMPL_32_21( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1390 : in29, in30, in31) \
1391 95520 : do { \
1392 95520 : gf_t scratch_10, scratch_11, scratch_12, scratch_2, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_5; \
1393 95520 : gf_t scratch_6, scratch_7, scratch_8, scratch_9; \
1394 95520 : scratch_21 = in21; \
1395 95520 : in21 = GF_MUL( in21, 1 ); \
1396 95520 : scratch_22 = in22; \
1397 95520 : in22 = GF_MUL( in22, 1 ); \
1398 95520 : scratch_23 = in23; \
1399 95520 : in23 = GF_MUL( in23, 1 ); \
1400 95520 : scratch_24 = in24; \
1401 95520 : in24 = GF_MUL( in24, 1 ); \
1402 95520 : scratch_25 = in25; \
1403 95520 : in25 = GF_MUL( in25, 1 ); \
1404 95520 : scratch_26 = in26; \
1405 95520 : in26 = GF_MUL( in26, 1 ); \
1406 95520 : scratch_27 = in27; \
1407 95520 : in27 = GF_MUL( in27, 1 ); \
1408 95520 : scratch_28 = in28; \
1409 95520 : in28 = GF_MUL( in28, 1 ); \
1410 95520 : scratch_29 = in29; \
1411 95520 : in29 = GF_MUL( in29, 1 ); \
1412 95520 : scratch_30 = in30; \
1413 95520 : in30 = GF_MUL( in30, 1 ); \
1414 95520 : scratch_31 = in31; \
1415 95520 : in31 = GF_MUL( in31, 1 ); \
1416 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1417 95520 : in21 = GF_ADD( GF_MUL( in05, 1 ), in21 ); \
1418 95520 : in22 = GF_ADD( GF_MUL( in06, 1 ), in22 ); \
1419 95520 : in23 = GF_ADD( GF_MUL( in07, 1 ), in23 ); \
1420 95520 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
1421 95520 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1422 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1423 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1424 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1425 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1426 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1427 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1428 95520 : scratch_8 = in24; \
1429 95520 : in24 = GF_MUL( in24, 1 ); \
1430 95520 : scratch_9 = in25; \
1431 95520 : in25 = GF_MUL( in25, 1 ); \
1432 95520 : scratch_10 = in26; \
1433 95520 : in26 = GF_MUL( in26, 1 ); \
1434 95520 : scratch_11 = in27; \
1435 95520 : in27 = GF_MUL( in27, 1 ); \
1436 95520 : scratch_12 = in28; \
1437 95520 : in28 = GF_MUL( in28, 1 ); \
1438 95520 : GF_MUL22( in21, in29, 1, 11, 1, 10 ); \
1439 95520 : GF_MUL22( in22, in30, 1, 11, 1, 10 ); \
1440 95520 : GF_MUL22( in23, in31, 1, 11, 1, 10 ); \
1441 95520 : scratch_5 = in21; \
1442 95520 : in21 = GF_MUL( in21, 1 ); \
1443 95520 : scratch_6 = in22; \
1444 95520 : in22 = GF_MUL( in22, 1 ); \
1445 95520 : scratch_7 = in23; \
1446 95520 : in23 = GF_MUL( in23, 1 ); \
1447 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 16, in16, in17, in18, in19 ); \
1448 95520 : in21 = GF_ADD( GF_MUL( in17, 1 ), in21 ); \
1449 95520 : in22 = GF_ADD( GF_MUL( in18, 1 ), in22 ); \
1450 95520 : in23 = GF_ADD( GF_MUL( in19, 1 ), in23 ); \
1451 95520 : scratch_2 = in22; \
1452 95520 : in22 = GF_MUL( in22, 1 ); \
1453 95520 : GF_MUL22( in21, in23, 1, 126, 1, 127 ); \
1454 95520 : GF_MUL22( in20, in21, 1, 20, 1, 1 ); \
1455 95520 : in22 = GF_ADD( GF_MUL( in20, 1 ), in22 ); \
1456 95520 : GF_MUL22( in22, in23, 1, 22, 1, 23 ); \
1457 95520 : in20 = GF_MUL( in20, 1 ); \
1458 95520 : in20 = GF_ADD( GF_MUL( scratch_2, 126 ), in20 ); \
1459 95520 : GF_MUL22( in16, in20, 96, 97, 1, 1 ); \
1460 95520 : in17 = GF_MUL( in17, 1 ); \
1461 95520 : in17 = GF_ADD( GF_MUL( scratch_5, 97 ), in17 ); \
1462 95520 : in18 = GF_MUL( in18, 1 ); \
1463 95520 : in18 = GF_ADD( GF_MUL( scratch_6, 97 ), in18 ); \
1464 95520 : in19 = GF_MUL( in19, 1 ); \
1465 95520 : in19 = GF_ADD( GF_MUL( scratch_7, 97 ), in19 ); \
1466 95520 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
1467 95520 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1468 95520 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1469 95520 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
1470 95520 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
1471 95520 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
1472 95520 : in16 = GF_MUL( in16, 1 ); \
1473 95520 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
1474 95520 : in17 = GF_MUL( in17, 1 ); \
1475 95520 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1476 95520 : in18 = GF_MUL( in18, 1 ); \
1477 95520 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
1478 95520 : in19 = GF_MUL( in19, 1 ); \
1479 95520 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
1480 95520 : in20 = GF_MUL( in20, 1 ); \
1481 95520 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
1482 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1483 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1484 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
1485 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
1486 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
1487 95520 : in05 = GF_MUL( in05, 1 ); \
1488 95520 : in05 = GF_ADD( GF_MUL( scratch_21, 0 ), in05 ); \
1489 95520 : in06 = GF_MUL( in06, 1 ); \
1490 95520 : in06 = GF_ADD( GF_MUL( scratch_22, 0 ), in06 ); \
1491 95520 : in07 = GF_MUL( in07, 1 ); \
1492 95520 : in07 = GF_ADD( GF_MUL( scratch_23, 0 ), in07 ); \
1493 95520 : in08 = GF_MUL( in08, 1 ); \
1494 95520 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1495 95520 : in09 = GF_MUL( in09, 1 ); \
1496 95520 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1497 95520 : in10 = GF_MUL( in10, 1 ); \
1498 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1499 95520 : in11 = GF_MUL( in11, 1 ); \
1500 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1501 95520 : in12 = GF_MUL( in12, 1 ); \
1502 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1503 95520 : in13 = GF_MUL( in13, 1 ); \
1504 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1505 95520 : in14 = GF_MUL( in14, 1 ); \
1506 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1507 95520 : in15 = GF_MUL( in15, 1 ); \
1508 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1509 95520 : } while( 0 )
1510 :
1511 : void fd_reedsol_ppt_32_22( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1512 : #define FD_REEDSOL_PPT_IMPL_32_22( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1513 : in29, in30, in31) \
1514 95520 : do { \
1515 95520 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_2, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31; \
1516 95520 : gf_t scratch_6, scratch_7, scratch_8, scratch_9; \
1517 95520 : scratch_22 = in22; \
1518 95520 : in22 = GF_MUL( in22, 1 ); \
1519 95520 : scratch_23 = in23; \
1520 95520 : in23 = GF_MUL( in23, 1 ); \
1521 95520 : scratch_24 = in24; \
1522 95520 : in24 = GF_MUL( in24, 1 ); \
1523 95520 : scratch_25 = in25; \
1524 95520 : in25 = GF_MUL( in25, 1 ); \
1525 95520 : scratch_26 = in26; \
1526 95520 : in26 = GF_MUL( in26, 1 ); \
1527 95520 : scratch_27 = in27; \
1528 95520 : in27 = GF_MUL( in27, 1 ); \
1529 95520 : scratch_28 = in28; \
1530 95520 : in28 = GF_MUL( in28, 1 ); \
1531 95520 : scratch_29 = in29; \
1532 95520 : in29 = GF_MUL( in29, 1 ); \
1533 95520 : scratch_30 = in30; \
1534 95520 : in30 = GF_MUL( in30, 1 ); \
1535 95520 : scratch_31 = in31; \
1536 95520 : in31 = GF_MUL( in31, 1 ); \
1537 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1538 95520 : in22 = GF_ADD( GF_MUL( in06, 1 ), in22 ); \
1539 95520 : in23 = GF_ADD( GF_MUL( in07, 1 ), in23 ); \
1540 95520 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
1541 95520 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1542 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1543 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1544 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1545 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1546 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1547 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1548 95520 : scratch_8 = in24; \
1549 95520 : in24 = GF_MUL( in24, 1 ); \
1550 95520 : scratch_9 = in25; \
1551 95520 : in25 = GF_MUL( in25, 1 ); \
1552 95520 : scratch_10 = in26; \
1553 95520 : in26 = GF_MUL( in26, 1 ); \
1554 95520 : scratch_11 = in27; \
1555 95520 : in27 = GF_MUL( in27, 1 ); \
1556 95520 : scratch_12 = in28; \
1557 95520 : in28 = GF_MUL( in28, 1 ); \
1558 95520 : scratch_13 = in29; \
1559 95520 : in29 = GF_MUL( in29, 1 ); \
1560 95520 : GF_MUL22( in22, in30, 1, 11, 1, 10 ); \
1561 95520 : GF_MUL22( in23, in31, 1, 11, 1, 10 ); \
1562 95520 : scratch_6 = in22; \
1563 95520 : in22 = GF_MUL( in22, 1 ); \
1564 95520 : scratch_7 = in23; \
1565 95520 : in23 = GF_MUL( in23, 1 ); \
1566 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 16, in16, in17, in18, in19 ); \
1567 95520 : in22 = GF_ADD( GF_MUL( in18, 1 ), in22 ); \
1568 95520 : in23 = GF_ADD( GF_MUL( in19, 1 ), in23 ); \
1569 95520 : scratch_2 = in22; \
1570 95520 : in22 = GF_MUL( in22, 1 ); \
1571 95520 : scratch_3 = in23; \
1572 95520 : in23 = GF_MUL( in23, 1 ); \
1573 95520 : GF_MUL22( in20, in21, 21, 20, 1, 1 ); \
1574 95520 : in22 = GF_ADD( GF_MUL( in20, 1 ), in22 ); \
1575 95520 : in23 = GF_ADD( GF_MUL( in21, 1 ), in23 ); \
1576 95520 : GF_MUL22( in22, in23, 1, 22, 1, 23 ); \
1577 95520 : in20 = GF_MUL( in20, 1 ); \
1578 95520 : in20 = GF_ADD( GF_MUL( scratch_2, 126 ), in20 ); \
1579 95520 : in21 = GF_MUL( in21, 1 ); \
1580 95520 : in21 = GF_ADD( GF_MUL( scratch_3, 126 ), in21 ); \
1581 95520 : GF_MUL22( in16, in20, 96, 97, 1, 1 ); \
1582 95520 : GF_MUL22( in17, in21, 96, 97, 1, 1 ); \
1583 95520 : in18 = GF_MUL( in18, 1 ); \
1584 95520 : in18 = GF_ADD( GF_MUL( scratch_6, 97 ), in18 ); \
1585 95520 : in19 = GF_MUL( in19, 1 ); \
1586 95520 : in19 = GF_ADD( GF_MUL( scratch_7, 97 ), in19 ); \
1587 95520 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
1588 95520 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1589 95520 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1590 95520 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
1591 95520 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
1592 95520 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
1593 95520 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
1594 95520 : in16 = GF_MUL( in16, 1 ); \
1595 95520 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
1596 95520 : in17 = GF_MUL( in17, 1 ); \
1597 95520 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1598 95520 : in18 = GF_MUL( in18, 1 ); \
1599 95520 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
1600 95520 : in19 = GF_MUL( in19, 1 ); \
1601 95520 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
1602 95520 : in20 = GF_MUL( in20, 1 ); \
1603 95520 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
1604 95520 : in21 = GF_MUL( in21, 1 ); \
1605 95520 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
1606 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1607 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1608 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
1609 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
1610 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
1611 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
1612 95520 : in06 = GF_MUL( in06, 1 ); \
1613 95520 : in06 = GF_ADD( GF_MUL( scratch_22, 0 ), in06 ); \
1614 95520 : in07 = GF_MUL( in07, 1 ); \
1615 95520 : in07 = GF_ADD( GF_MUL( scratch_23, 0 ), in07 ); \
1616 95520 : in08 = GF_MUL( in08, 1 ); \
1617 95520 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1618 95520 : in09 = GF_MUL( in09, 1 ); \
1619 95520 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1620 95520 : in10 = GF_MUL( in10, 1 ); \
1621 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1622 95520 : in11 = GF_MUL( in11, 1 ); \
1623 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1624 95520 : in12 = GF_MUL( in12, 1 ); \
1625 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1626 95520 : in13 = GF_MUL( in13, 1 ); \
1627 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1628 95520 : in14 = GF_MUL( in14, 1 ); \
1629 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1630 95520 : in15 = GF_MUL( in15, 1 ); \
1631 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1632 95520 : } while( 0 )
1633 :
1634 : void fd_reedsol_ppt_32_23( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1635 : #define FD_REEDSOL_PPT_IMPL_32_23( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1636 : in29, in30, in31) \
1637 95520 : do { \
1638 95520 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_7; \
1639 95520 : gf_t scratch_8, scratch_9; \
1640 95520 : scratch_23 = in23; \
1641 95520 : in23 = GF_MUL( in23, 1 ); \
1642 95520 : scratch_24 = in24; \
1643 95520 : in24 = GF_MUL( in24, 1 ); \
1644 95520 : scratch_25 = in25; \
1645 95520 : in25 = GF_MUL( in25, 1 ); \
1646 95520 : scratch_26 = in26; \
1647 95520 : in26 = GF_MUL( in26, 1 ); \
1648 95520 : scratch_27 = in27; \
1649 95520 : in27 = GF_MUL( in27, 1 ); \
1650 95520 : scratch_28 = in28; \
1651 95520 : in28 = GF_MUL( in28, 1 ); \
1652 95520 : scratch_29 = in29; \
1653 95520 : in29 = GF_MUL( in29, 1 ); \
1654 95520 : scratch_30 = in30; \
1655 95520 : in30 = GF_MUL( in30, 1 ); \
1656 95520 : scratch_31 = in31; \
1657 95520 : in31 = GF_MUL( in31, 1 ); \
1658 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1659 95520 : in23 = GF_ADD( GF_MUL( in07, 1 ), in23 ); \
1660 95520 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
1661 95520 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1662 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1663 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1664 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1665 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1666 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1667 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1668 95520 : scratch_8 = in24; \
1669 95520 : in24 = GF_MUL( in24, 1 ); \
1670 95520 : scratch_9 = in25; \
1671 95520 : in25 = GF_MUL( in25, 1 ); \
1672 95520 : scratch_10 = in26; \
1673 95520 : in26 = GF_MUL( in26, 1 ); \
1674 95520 : scratch_11 = in27; \
1675 95520 : in27 = GF_MUL( in27, 1 ); \
1676 95520 : scratch_12 = in28; \
1677 95520 : in28 = GF_MUL( in28, 1 ); \
1678 95520 : scratch_13 = in29; \
1679 95520 : in29 = GF_MUL( in29, 1 ); \
1680 95520 : scratch_14 = in30; \
1681 95520 : in30 = GF_MUL( in30, 1 ); \
1682 95520 : GF_MUL22( in23, in31, 1, 11, 1, 10 ); \
1683 95520 : scratch_7 = in23; \
1684 95520 : in23 = GF_MUL( in23, 1 ); \
1685 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 16, in16, in17, in18, in19 ); \
1686 95520 : in23 = GF_ADD( GF_MUL( in19, 1 ), in23 ); \
1687 95520 : scratch_3 = in23; \
1688 95520 : in23 = GF_MUL( in23, 1 ); \
1689 95520 : GF_MUL22( in20, in21, 21, 20, 1, 1 ); \
1690 95520 : in23 = GF_ADD( GF_MUL( in21, 1 ), in23 ); \
1691 95520 : GF_MUL22( in22, in23, 1, 22, 1, 1 ); \
1692 95520 : GF_MUL22( in20, in22, 127, 126, 1, 1 ); \
1693 95520 : in21 = GF_MUL( in21, 1 ); \
1694 95520 : in21 = GF_ADD( GF_MUL( scratch_3, 126 ), in21 ); \
1695 95520 : GF_MUL22( in16, in20, 96, 97, 1, 1 ); \
1696 95520 : GF_MUL22( in17, in21, 96, 97, 1, 1 ); \
1697 95520 : GF_MUL22( in18, in22, 96, 97, 1, 1 ); \
1698 95520 : in19 = GF_MUL( in19, 1 ); \
1699 95520 : in19 = GF_ADD( GF_MUL( scratch_7, 97 ), in19 ); \
1700 95520 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
1701 95520 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1702 95520 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1703 95520 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
1704 95520 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
1705 95520 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
1706 95520 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
1707 95520 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
1708 95520 : in16 = GF_MUL( in16, 1 ); \
1709 95520 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
1710 95520 : in17 = GF_MUL( in17, 1 ); \
1711 95520 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1712 95520 : in18 = GF_MUL( in18, 1 ); \
1713 95520 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
1714 95520 : in19 = GF_MUL( in19, 1 ); \
1715 95520 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
1716 95520 : in20 = GF_MUL( in20, 1 ); \
1717 95520 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
1718 95520 : in21 = GF_MUL( in21, 1 ); \
1719 95520 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
1720 95520 : in22 = GF_MUL( in22, 1 ); \
1721 95520 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
1722 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1723 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1724 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
1725 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
1726 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
1727 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
1728 95520 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
1729 95520 : in07 = GF_MUL( in07, 1 ); \
1730 95520 : in07 = GF_ADD( GF_MUL( scratch_23, 0 ), in07 ); \
1731 95520 : in08 = GF_MUL( in08, 1 ); \
1732 95520 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1733 95520 : in09 = GF_MUL( in09, 1 ); \
1734 95520 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1735 95520 : in10 = GF_MUL( in10, 1 ); \
1736 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1737 95520 : in11 = GF_MUL( in11, 1 ); \
1738 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1739 95520 : in12 = GF_MUL( in12, 1 ); \
1740 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1741 95520 : in13 = GF_MUL( in13, 1 ); \
1742 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1743 95520 : in14 = GF_MUL( in14, 1 ); \
1744 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1745 95520 : in15 = GF_MUL( in15, 1 ); \
1746 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1747 95520 : } while( 0 )
1748 :
1749 : void fd_reedsol_ppt_32_24( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1750 : #define FD_REEDSOL_PPT_IMPL_32_24( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1751 : in29, in30, in31) \
1752 95520 : do { \
1753 95520 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_8, scratch_9; \
1754 95520 : scratch_24 = in24; \
1755 95520 : in24 = GF_MUL( in24, 1 ); \
1756 95520 : scratch_25 = in25; \
1757 95520 : in25 = GF_MUL( in25, 1 ); \
1758 95520 : scratch_26 = in26; \
1759 95520 : in26 = GF_MUL( in26, 1 ); \
1760 95520 : scratch_27 = in27; \
1761 95520 : in27 = GF_MUL( in27, 1 ); \
1762 95520 : scratch_28 = in28; \
1763 95520 : in28 = GF_MUL( in28, 1 ); \
1764 95520 : scratch_29 = in29; \
1765 95520 : in29 = GF_MUL( in29, 1 ); \
1766 95520 : scratch_30 = in30; \
1767 95520 : in30 = GF_MUL( in30, 1 ); \
1768 95520 : scratch_31 = in31; \
1769 95520 : in31 = GF_MUL( in31, 1 ); \
1770 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1771 95520 : in24 = GF_ADD( GF_MUL( in08, 1 ), in24 ); \
1772 95520 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1773 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1774 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1775 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1776 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1777 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1778 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1779 95520 : scratch_8 = in24; \
1780 95520 : in24 = GF_MUL( in24, 1 ); \
1781 95520 : scratch_9 = in25; \
1782 95520 : in25 = GF_MUL( in25, 1 ); \
1783 95520 : scratch_10 = in26; \
1784 95520 : in26 = GF_MUL( in26, 1 ); \
1785 95520 : scratch_11 = in27; \
1786 95520 : in27 = GF_MUL( in27, 1 ); \
1787 95520 : scratch_12 = in28; \
1788 95520 : in28 = GF_MUL( in28, 1 ); \
1789 95520 : scratch_13 = in29; \
1790 95520 : in29 = GF_MUL( in29, 1 ); \
1791 95520 : scratch_14 = in30; \
1792 95520 : in30 = GF_MUL( in30, 1 ); \
1793 95520 : scratch_15 = in31; \
1794 95520 : in31 = GF_MUL( in31, 1 ); \
1795 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
1796 95520 : in24 = GF_ADD( GF_MUL( in16, 1 ), in24 ); \
1797 95520 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1798 95520 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1799 95520 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
1800 95520 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
1801 95520 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
1802 95520 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
1803 95520 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
1804 95520 : FD_REEDSOL_GENERATE_FFT( 8, 24, in24, in25, in26, in27, in28, in29, in30, in31 ); \
1805 95520 : in16 = GF_MUL( in16, 1 ); \
1806 95520 : in16 = GF_ADD( GF_MUL( scratch_8, 11 ), in16 ); \
1807 95520 : in17 = GF_MUL( in17, 1 ); \
1808 95520 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1809 95520 : in18 = GF_MUL( in18, 1 ); \
1810 95520 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
1811 95520 : in19 = GF_MUL( in19, 1 ); \
1812 95520 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
1813 95520 : in20 = GF_MUL( in20, 1 ); \
1814 95520 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
1815 95520 : in21 = GF_MUL( in21, 1 ); \
1816 95520 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
1817 95520 : in22 = GF_MUL( in22, 1 ); \
1818 95520 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
1819 95520 : in23 = GF_MUL( in23, 1 ); \
1820 95520 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
1821 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1822 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1823 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
1824 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
1825 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
1826 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
1827 95520 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
1828 95520 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
1829 95520 : in08 = GF_MUL( in08, 1 ); \
1830 95520 : in08 = GF_ADD( GF_MUL( scratch_24, 0 ), in08 ); \
1831 95520 : in09 = GF_MUL( in09, 1 ); \
1832 95520 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1833 95520 : in10 = GF_MUL( in10, 1 ); \
1834 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1835 95520 : in11 = GF_MUL( in11, 1 ); \
1836 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1837 95520 : in12 = GF_MUL( in12, 1 ); \
1838 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1839 95520 : in13 = GF_MUL( in13, 1 ); \
1840 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1841 95520 : in14 = GF_MUL( in14, 1 ); \
1842 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1843 95520 : in15 = GF_MUL( in15, 1 ); \
1844 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1845 95520 : } while( 0 )
1846 :
1847 : void fd_reedsol_ppt_32_25( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1848 : #define FD_REEDSOL_PPT_IMPL_32_25( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28 , \
1849 : in29, in30, in31) \
1850 95616 : do { \
1851 95616 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_2, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_4, scratch_9; \
1852 95616 : scratch_25 = in25; \
1853 95616 : in25 = GF_MUL( in25, 1 ); \
1854 95616 : scratch_26 = in26; \
1855 95616 : in26 = GF_MUL( in26, 1 ); \
1856 95616 : scratch_27 = in27; \
1857 95616 : in27 = GF_MUL( in27, 1 ); \
1858 95616 : scratch_28 = in28; \
1859 95616 : in28 = GF_MUL( in28, 1 ); \
1860 95616 : scratch_29 = in29; \
1861 95616 : in29 = GF_MUL( in29, 1 ); \
1862 95616 : scratch_30 = in30; \
1863 95616 : in30 = GF_MUL( in30, 1 ); \
1864 95616 : scratch_31 = in31; \
1865 95616 : in31 = GF_MUL( in31, 1 ); \
1866 95616 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1867 95616 : in25 = GF_ADD( GF_MUL( in09, 1 ), in25 ); \
1868 95616 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1869 95616 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1870 95616 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1871 95616 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1872 95616 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1873 95616 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1874 95616 : scratch_9 = in25; \
1875 95616 : in25 = GF_MUL( in25, 1 ); \
1876 95616 : scratch_10 = in26; \
1877 95616 : in26 = GF_MUL( in26, 1 ); \
1878 95616 : scratch_11 = in27; \
1879 95616 : in27 = GF_MUL( in27, 1 ); \
1880 95616 : scratch_12 = in28; \
1881 95616 : in28 = GF_MUL( in28, 1 ); \
1882 95616 : scratch_13 = in29; \
1883 95616 : in29 = GF_MUL( in29, 1 ); \
1884 95616 : scratch_14 = in30; \
1885 95616 : in30 = GF_MUL( in30, 1 ); \
1886 95616 : scratch_15 = in31; \
1887 95616 : in31 = GF_MUL( in31, 1 ); \
1888 95616 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
1889 95616 : in25 = GF_ADD( GF_MUL( in17, 1 ), in25 ); \
1890 95616 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1891 95616 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
1892 95616 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
1893 95616 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
1894 95616 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
1895 95616 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
1896 95616 : scratch_4 = in28; \
1897 95616 : in28 = GF_MUL( in28, 1 ); \
1898 95616 : GF_MUL22( in25, in29, 1, 119, 1, 118 ); \
1899 95616 : GF_MUL22( in26, in30, 1, 119, 1, 118 ); \
1900 95616 : GF_MUL22( in27, in31, 1, 119, 1, 118 ); \
1901 95616 : scratch_2 = in26; \
1902 95616 : in26 = GF_MUL( in26, 1 ); \
1903 95616 : GF_MUL22( in25, in27, 1, 100, 1, 101 ); \
1904 95616 : GF_MUL22( in24, in25, 1, 24, 1, 1 ); \
1905 95616 : in26 = GF_ADD( GF_MUL( in24, 1 ), in26 ); \
1906 95616 : GF_MUL22( in26, in27, 1, 26, 1, 27 ); \
1907 95616 : in24 = GF_MUL( in24, 1 ); \
1908 95616 : in24 = GF_ADD( GF_MUL( scratch_2, 100 ), in24 ); \
1909 95616 : in28 = GF_ADD( GF_MUL( in24, 1 ), in28 ); \
1910 95616 : FD_REEDSOL_GENERATE_FFT( 4, 28, in28, in29, in30, in31 ); \
1911 95616 : in24 = GF_MUL( in24, 1 ); \
1912 95616 : in24 = GF_ADD( GF_MUL( scratch_4, 119 ), in24 ); \
1913 95616 : GF_MUL22( in16, in24, 10, 11, 1, 1 ); \
1914 95616 : in17 = GF_MUL( in17, 1 ); \
1915 95616 : in17 = GF_ADD( GF_MUL( scratch_9, 11 ), in17 ); \
1916 95616 : in18 = GF_MUL( in18, 1 ); \
1917 95616 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
1918 95616 : in19 = GF_MUL( in19, 1 ); \
1919 95616 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
1920 95616 : in20 = GF_MUL( in20, 1 ); \
1921 95616 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
1922 95616 : in21 = GF_MUL( in21, 1 ); \
1923 95616 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
1924 95616 : in22 = GF_MUL( in22, 1 ); \
1925 95616 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
1926 95616 : in23 = GF_MUL( in23, 1 ); \
1927 95616 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
1928 95616 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
1929 95616 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
1930 95616 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
1931 95616 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
1932 95616 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
1933 95616 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
1934 95616 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
1935 95616 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
1936 95616 : GF_MUL22( in08, in24, 1, 0, 1, 1 ); \
1937 95616 : in09 = GF_MUL( in09, 1 ); \
1938 95616 : in09 = GF_ADD( GF_MUL( scratch_25, 0 ), in09 ); \
1939 95616 : in10 = GF_MUL( in10, 1 ); \
1940 95616 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
1941 95616 : in11 = GF_MUL( in11, 1 ); \
1942 95616 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
1943 95616 : in12 = GF_MUL( in12, 1 ); \
1944 95616 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
1945 95616 : in13 = GF_MUL( in13, 1 ); \
1946 95616 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
1947 95616 : in14 = GF_MUL( in14, 1 ); \
1948 95616 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
1949 95616 : in15 = GF_MUL( in15, 1 ); \
1950 95616 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
1951 95616 : } while( 0 )
1952 :
1953 : void fd_reedsol_ppt_32_26( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
1954 : #define FD_REEDSOL_PPT_IMPL_32_26( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, \
1955 : in29, in30, in31) \
1956 95520 : do { \
1957 95520 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_2, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_4, scratch_5; \
1958 95520 : scratch_26 = in26; \
1959 95520 : in26 = GF_MUL( in26, 1 ); \
1960 95520 : scratch_27 = in27; \
1961 95520 : in27 = GF_MUL( in27, 1 ); \
1962 95520 : scratch_28 = in28; \
1963 95520 : in28 = GF_MUL( in28, 1 ); \
1964 95520 : scratch_29 = in29; \
1965 95520 : in29 = GF_MUL( in29, 1 ); \
1966 95520 : scratch_30 = in30; \
1967 95520 : in30 = GF_MUL( in30, 1 ); \
1968 95520 : scratch_31 = in31; \
1969 95520 : in31 = GF_MUL( in31, 1 ); \
1970 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
1971 95520 : in26 = GF_ADD( GF_MUL( in10, 1 ), in26 ); \
1972 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
1973 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
1974 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
1975 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
1976 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
1977 95520 : scratch_10 = in26; \
1978 95520 : in26 = GF_MUL( in26, 1 ); \
1979 95520 : scratch_11 = in27; \
1980 95520 : in27 = GF_MUL( in27, 1 ); \
1981 95520 : scratch_12 = in28; \
1982 95520 : in28 = GF_MUL( in28, 1 ); \
1983 95520 : scratch_13 = in29; \
1984 95520 : in29 = GF_MUL( in29, 1 ); \
1985 95520 : scratch_14 = in30; \
1986 95520 : in30 = GF_MUL( in30, 1 ); \
1987 95520 : scratch_15 = in31; \
1988 95520 : in31 = GF_MUL( in31, 1 ); \
1989 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
1990 95520 : in26 = GF_ADD( GF_MUL( in18, 1 ), in26 ); \
1991 95520 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
1992 95520 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
1993 95520 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
1994 95520 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
1995 95520 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
1996 95520 : scratch_4 = in28; \
1997 95520 : in28 = GF_MUL( in28, 1 ); \
1998 95520 : scratch_5 = in29; \
1999 95520 : in29 = GF_MUL( in29, 1 ); \
2000 95520 : GF_MUL22( in26, in30, 1, 119, 1, 118 ); \
2001 95520 : GF_MUL22( in27, in31, 1, 119, 1, 118 ); \
2002 95520 : scratch_2 = in26; \
2003 95520 : in26 = GF_MUL( in26, 1 ); \
2004 95520 : scratch_3 = in27; \
2005 95520 : in27 = GF_MUL( in27, 1 ); \
2006 95520 : GF_MUL22( in24, in25, 25, 24, 1, 1 ); \
2007 95520 : in26 = GF_ADD( GF_MUL( in24, 1 ), in26 ); \
2008 95520 : in27 = GF_ADD( GF_MUL( in25, 1 ), in27 ); \
2009 95520 : GF_MUL22( in26, in27, 1, 26, 1, 27 ); \
2010 95520 : in24 = GF_MUL( in24, 1 ); \
2011 95520 : in24 = GF_ADD( GF_MUL( scratch_2, 100 ), in24 ); \
2012 95520 : in25 = GF_MUL( in25, 1 ); \
2013 95520 : in25 = GF_ADD( GF_MUL( scratch_3, 100 ), in25 ); \
2014 95520 : in28 = GF_ADD( GF_MUL( in24, 1 ), in28 ); \
2015 95520 : in29 = GF_ADD( GF_MUL( in25, 1 ), in29 ); \
2016 95520 : FD_REEDSOL_GENERATE_FFT( 4, 28, in28, in29, in30, in31 ); \
2017 95520 : in24 = GF_MUL( in24, 1 ); \
2018 95520 : in24 = GF_ADD( GF_MUL( scratch_4, 119 ), in24 ); \
2019 95520 : in25 = GF_MUL( in25, 1 ); \
2020 95520 : in25 = GF_ADD( GF_MUL( scratch_5, 119 ), in25 ); \
2021 95520 : GF_MUL22( in16, in24, 10, 11, 1, 1 ); \
2022 95520 : GF_MUL22( in17, in25, 10, 11, 1, 1 ); \
2023 95520 : in18 = GF_MUL( in18, 1 ); \
2024 95520 : in18 = GF_ADD( GF_MUL( scratch_10, 11 ), in18 ); \
2025 95520 : in19 = GF_MUL( in19, 1 ); \
2026 95520 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
2027 95520 : in20 = GF_MUL( in20, 1 ); \
2028 95520 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
2029 95520 : in21 = GF_MUL( in21, 1 ); \
2030 95520 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
2031 95520 : in22 = GF_MUL( in22, 1 ); \
2032 95520 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
2033 95520 : in23 = GF_MUL( in23, 1 ); \
2034 95520 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
2035 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
2036 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
2037 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
2038 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
2039 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
2040 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
2041 95520 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
2042 95520 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
2043 95520 : GF_MUL22( in08, in24, 1, 0, 1, 1 ); \
2044 95520 : GF_MUL22( in09, in25, 1, 0, 1, 1 ); \
2045 95520 : in10 = GF_MUL( in10, 1 ); \
2046 95520 : in10 = GF_ADD( GF_MUL( scratch_26, 0 ), in10 ); \
2047 95520 : in11 = GF_MUL( in11, 1 ); \
2048 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
2049 95520 : in12 = GF_MUL( in12, 1 ); \
2050 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
2051 95520 : in13 = GF_MUL( in13, 1 ); \
2052 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
2053 95520 : in14 = GF_MUL( in14, 1 ); \
2054 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
2055 95520 : in15 = GF_MUL( in15, 1 ); \
2056 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
2057 95520 : } while( 0 )
2058 :
2059 : void fd_reedsol_ppt_32_27( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2060 : #define FD_REEDSOL_PPT_IMPL_32_27( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, \
2061 : in25, in26, in27, in28, in29, in30, in31) \
2062 95520 : do { \
2063 95520 : gf_t scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_4, scratch_5, scratch_6; \
2064 95520 : scratch_27 = in27; \
2065 95520 : in27 = GF_MUL( in27, 1 ); \
2066 95520 : scratch_28 = in28; \
2067 95520 : in28 = GF_MUL( in28, 1 ); \
2068 95520 : scratch_29 = in29; \
2069 95520 : in29 = GF_MUL( in29, 1 ); \
2070 95520 : scratch_30 = in30; \
2071 95520 : in30 = GF_MUL( in30, 1 ); \
2072 95520 : scratch_31 = in31; \
2073 95520 : in31 = GF_MUL( in31, 1 ); \
2074 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
2075 95520 : in27 = GF_ADD( GF_MUL( in11, 1 ), in27 ); \
2076 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
2077 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
2078 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
2079 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
2080 95520 : scratch_11 = in27; \
2081 95520 : in27 = GF_MUL( in27, 1 ); \
2082 95520 : scratch_12 = in28; \
2083 95520 : in28 = GF_MUL( in28, 1 ); \
2084 95520 : scratch_13 = in29; \
2085 95520 : in29 = GF_MUL( in29, 1 ); \
2086 95520 : scratch_14 = in30; \
2087 95520 : in30 = GF_MUL( in30, 1 ); \
2088 95520 : scratch_15 = in31; \
2089 95520 : in31 = GF_MUL( in31, 1 ); \
2090 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
2091 95520 : in27 = GF_ADD( GF_MUL( in19, 1 ), in27 ); \
2092 95520 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
2093 95520 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
2094 95520 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
2095 95520 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
2096 95520 : scratch_4 = in28; \
2097 95520 : in28 = GF_MUL( in28, 1 ); \
2098 95520 : scratch_5 = in29; \
2099 95520 : in29 = GF_MUL( in29, 1 ); \
2100 95520 : scratch_6 = in30; \
2101 95520 : in30 = GF_MUL( in30, 1 ); \
2102 95520 : GF_MUL22( in27, in31, 1, 119, 1, 118 ); \
2103 95520 : scratch_3 = in27; \
2104 95520 : in27 = GF_MUL( in27, 1 ); \
2105 95520 : GF_MUL22( in24, in25, 25, 24, 1, 1 ); \
2106 95520 : in27 = GF_ADD( GF_MUL( in25, 1 ), in27 ); \
2107 95520 : GF_MUL22( in26, in27, 1, 26, 1, 1 ); \
2108 95520 : GF_MUL22( in24, in26, 101, 100, 1, 1 ); \
2109 95520 : in25 = GF_MUL( in25, 1 ); \
2110 95520 : in25 = GF_ADD( GF_MUL( scratch_3, 100 ), in25 ); \
2111 95520 : in28 = GF_ADD( GF_MUL( in24, 1 ), in28 ); \
2112 95520 : in29 = GF_ADD( GF_MUL( in25, 1 ), in29 ); \
2113 95520 : in30 = GF_ADD( GF_MUL( in26, 1 ), in30 ); \
2114 95520 : FD_REEDSOL_GENERATE_FFT( 4, 28, in28, in29, in30, in31 ); \
2115 95520 : in24 = GF_MUL( in24, 1 ); \
2116 95520 : in24 = GF_ADD( GF_MUL( scratch_4, 119 ), in24 ); \
2117 95520 : in25 = GF_MUL( in25, 1 ); \
2118 95520 : in25 = GF_ADD( GF_MUL( scratch_5, 119 ), in25 ); \
2119 95520 : in26 = GF_MUL( in26, 1 ); \
2120 95520 : in26 = GF_ADD( GF_MUL( scratch_6, 119 ), in26 ); \
2121 95520 : GF_MUL22( in16, in24, 10, 11, 1, 1 ); \
2122 95520 : GF_MUL22( in17, in25, 10, 11, 1, 1 ); \
2123 95520 : GF_MUL22( in18, in26, 10, 11, 1, 1 ); \
2124 95520 : in19 = GF_MUL( in19, 1 ); \
2125 95520 : in19 = GF_ADD( GF_MUL( scratch_11, 11 ), in19 ); \
2126 95520 : in20 = GF_MUL( in20, 1 ); \
2127 95520 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
2128 95520 : in21 = GF_MUL( in21, 1 ); \
2129 95520 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
2130 95520 : in22 = GF_MUL( in22, 1 ); \
2131 95520 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
2132 95520 : in23 = GF_MUL( in23, 1 ); \
2133 95520 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
2134 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
2135 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
2136 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
2137 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
2138 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
2139 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
2140 95520 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
2141 95520 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
2142 95520 : GF_MUL22( in08, in24, 1, 0, 1, 1 ); \
2143 95520 : GF_MUL22( in09, in25, 1, 0, 1, 1 ); \
2144 95520 : GF_MUL22( in10, in26, 1, 0, 1, 1 ); \
2145 95520 : in11 = GF_MUL( in11, 1 ); \
2146 95520 : in11 = GF_ADD( GF_MUL( scratch_27, 0 ), in11 ); \
2147 95520 : in12 = GF_MUL( in12, 1 ); \
2148 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
2149 95520 : in13 = GF_MUL( in13, 1 ); \
2150 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
2151 95520 : in14 = GF_MUL( in14, 1 ); \
2152 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
2153 95520 : in15 = GF_MUL( in15, 1 ); \
2154 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
2155 95520 : } while( 0 )
2156 :
2157 : void fd_reedsol_ppt_32_28( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2158 : #define FD_REEDSOL_PPT_IMPL_32_28( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, \
2159 : in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31) \
2160 95520 : do { \
2161 95520 : gf_t scratch_12, scratch_13, scratch_14, scratch_15, scratch_28, scratch_29, scratch_30, scratch_31, scratch_4, scratch_5, scratch_6, scratch_7; \
2162 95520 : scratch_28 = in28; \
2163 95520 : in28 = GF_MUL( in28, 1 ); \
2164 95520 : scratch_29 = in29; \
2165 95520 : in29 = GF_MUL( in29, 1 ); \
2166 95520 : scratch_30 = in30; \
2167 95520 : in30 = GF_MUL( in30, 1 ); \
2168 95520 : scratch_31 = in31; \
2169 95520 : in31 = GF_MUL( in31, 1 ); \
2170 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
2171 95520 : in28 = GF_ADD( GF_MUL( in12, 1 ), in28 ); \
2172 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
2173 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
2174 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
2175 95520 : scratch_12 = in28; \
2176 95520 : in28 = GF_MUL( in28, 1 ); \
2177 95520 : scratch_13 = in29; \
2178 95520 : in29 = GF_MUL( in29, 1 ); \
2179 95520 : scratch_14 = in30; \
2180 95520 : in30 = GF_MUL( in30, 1 ); \
2181 95520 : scratch_15 = in31; \
2182 95520 : in31 = GF_MUL( in31, 1 ); \
2183 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
2184 95520 : in28 = GF_ADD( GF_MUL( in20, 1 ), in28 ); \
2185 95520 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
2186 95520 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
2187 95520 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
2188 95520 : scratch_4 = in28; \
2189 95520 : in28 = GF_MUL( in28, 1 ); \
2190 95520 : scratch_5 = in29; \
2191 95520 : in29 = GF_MUL( in29, 1 ); \
2192 95520 : scratch_6 = in30; \
2193 95520 : in30 = GF_MUL( in30, 1 ); \
2194 95520 : scratch_7 = in31; \
2195 95520 : in31 = GF_MUL( in31, 1 ); \
2196 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 24, in24, in25, in26, in27 ); \
2197 95520 : in28 = GF_ADD( GF_MUL( in24, 1 ), in28 ); \
2198 95520 : in29 = GF_ADD( GF_MUL( in25, 1 ), in29 ); \
2199 95520 : in30 = GF_ADD( GF_MUL( in26, 1 ), in30 ); \
2200 95520 : in31 = GF_ADD( GF_MUL( in27, 1 ), in31 ); \
2201 95520 : FD_REEDSOL_GENERATE_FFT( 4, 28, in28, in29, in30, in31 ); \
2202 95520 : in24 = GF_MUL( in24, 1 ); \
2203 95520 : in24 = GF_ADD( GF_MUL( scratch_4, 119 ), in24 ); \
2204 95520 : in25 = GF_MUL( in25, 1 ); \
2205 95520 : in25 = GF_ADD( GF_MUL( scratch_5, 119 ), in25 ); \
2206 95520 : in26 = GF_MUL( in26, 1 ); \
2207 95520 : in26 = GF_ADD( GF_MUL( scratch_6, 119 ), in26 ); \
2208 95520 : in27 = GF_MUL( in27, 1 ); \
2209 95520 : in27 = GF_ADD( GF_MUL( scratch_7, 119 ), in27 ); \
2210 95520 : GF_MUL22( in16, in24, 10, 11, 1, 1 ); \
2211 95520 : GF_MUL22( in17, in25, 10, 11, 1, 1 ); \
2212 95520 : GF_MUL22( in18, in26, 10, 11, 1, 1 ); \
2213 95520 : GF_MUL22( in19, in27, 10, 11, 1, 1 ); \
2214 95520 : in20 = GF_MUL( in20, 1 ); \
2215 95520 : in20 = GF_ADD( GF_MUL( scratch_12, 11 ), in20 ); \
2216 95520 : in21 = GF_MUL( in21, 1 ); \
2217 95520 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
2218 95520 : in22 = GF_MUL( in22, 1 ); \
2219 95520 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
2220 95520 : in23 = GF_MUL( in23, 1 ); \
2221 95520 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
2222 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
2223 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
2224 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
2225 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
2226 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
2227 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
2228 95520 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
2229 95520 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
2230 95520 : GF_MUL22( in08, in24, 1, 0, 1, 1 ); \
2231 95520 : GF_MUL22( in09, in25, 1, 0, 1, 1 ); \
2232 95520 : GF_MUL22( in10, in26, 1, 0, 1, 1 ); \
2233 95520 : GF_MUL22( in11, in27, 1, 0, 1, 1 ); \
2234 95520 : in12 = GF_MUL( in12, 1 ); \
2235 95520 : in12 = GF_ADD( GF_MUL( scratch_28, 0 ), in12 ); \
2236 95520 : in13 = GF_MUL( in13, 1 ); \
2237 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
2238 95520 : in14 = GF_MUL( in14, 1 ); \
2239 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
2240 95520 : in15 = GF_MUL( in15, 1 ); \
2241 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
2242 95520 : } while( 0 )
2243 :
2244 : void fd_reedsol_ppt_32_29( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2245 : #define FD_REEDSOL_PPT_IMPL_32_29( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17 , \
2246 : in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31) \
2247 95520 : do { \
2248 95520 : gf_t scratch_13, scratch_14, scratch_15, scratch_2, scratch_29, scratch_30, scratch_31, scratch_5, scratch_6, scratch_7; \
2249 95520 : scratch_29 = in29; \
2250 95520 : in29 = GF_MUL( in29, 1 ); \
2251 95520 : scratch_30 = in30; \
2252 95520 : in30 = GF_MUL( in30, 1 ); \
2253 95520 : scratch_31 = in31; \
2254 95520 : in31 = GF_MUL( in31, 1 ); \
2255 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
2256 95520 : in29 = GF_ADD( GF_MUL( in13, 1 ), in29 ); \
2257 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
2258 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
2259 95520 : scratch_13 = in29; \
2260 95520 : in29 = GF_MUL( in29, 1 ); \
2261 95520 : scratch_14 = in30; \
2262 95520 : in30 = GF_MUL( in30, 1 ); \
2263 95520 : scratch_15 = in31; \
2264 95520 : in31 = GF_MUL( in31, 1 ); \
2265 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
2266 95520 : in29 = GF_ADD( GF_MUL( in21, 1 ), in29 ); \
2267 95520 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
2268 95520 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
2269 95520 : scratch_5 = in29; \
2270 95520 : in29 = GF_MUL( in29, 1 ); \
2271 95520 : scratch_6 = in30; \
2272 95520 : in30 = GF_MUL( in30, 1 ); \
2273 95520 : scratch_7 = in31; \
2274 95520 : in31 = GF_MUL( in31, 1 ); \
2275 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 24, in24, in25, in26, in27 ); \
2276 95520 : in29 = GF_ADD( GF_MUL( in25, 1 ), in29 ); \
2277 95520 : in30 = GF_ADD( GF_MUL( in26, 1 ), in30 ); \
2278 95520 : in31 = GF_ADD( GF_MUL( in27, 1 ), in31 ); \
2279 95520 : scratch_2 = in30; \
2280 95520 : in30 = GF_MUL( in30, 1 ); \
2281 95520 : GF_MUL22( in29, in31, 1, 98, 1, 99 ); \
2282 95520 : GF_MUL22( in28, in29, 1, 28, 1, 1 ); \
2283 95520 : in30 = GF_ADD( GF_MUL( in28, 1 ), in30 ); \
2284 95520 : GF_MUL22( in30, in31, 1, 30, 1, 31 ); \
2285 95520 : in28 = GF_MUL( in28, 1 ); \
2286 95520 : in28 = GF_ADD( GF_MUL( scratch_2, 98 ), in28 ); \
2287 95520 : GF_MUL22( in24, in28, 118, 119, 1, 1 ); \
2288 95520 : in25 = GF_MUL( in25, 1 ); \
2289 95520 : in25 = GF_ADD( GF_MUL( scratch_5, 119 ), in25 ); \
2290 95520 : in26 = GF_MUL( in26, 1 ); \
2291 95520 : in26 = GF_ADD( GF_MUL( scratch_6, 119 ), in26 ); \
2292 95520 : in27 = GF_MUL( in27, 1 ); \
2293 95520 : in27 = GF_ADD( GF_MUL( scratch_7, 119 ), in27 ); \
2294 95520 : GF_MUL22( in16, in24, 10, 11, 1, 1 ); \
2295 95520 : GF_MUL22( in17, in25, 10, 11, 1, 1 ); \
2296 95520 : GF_MUL22( in18, in26, 10, 11, 1, 1 ); \
2297 95520 : GF_MUL22( in19, in27, 10, 11, 1, 1 ); \
2298 95520 : GF_MUL22( in20, in28, 10, 11, 1, 1 ); \
2299 95520 : in21 = GF_MUL( in21, 1 ); \
2300 95520 : in21 = GF_ADD( GF_MUL( scratch_13, 11 ), in21 ); \
2301 95520 : in22 = GF_MUL( in22, 1 ); \
2302 95520 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
2303 95520 : in23 = GF_MUL( in23, 1 ); \
2304 95520 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
2305 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
2306 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
2307 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
2308 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
2309 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
2310 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
2311 95520 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
2312 95520 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
2313 95520 : GF_MUL22( in08, in24, 1, 0, 1, 1 ); \
2314 95520 : GF_MUL22( in09, in25, 1, 0, 1, 1 ); \
2315 95520 : GF_MUL22( in10, in26, 1, 0, 1, 1 ); \
2316 95520 : GF_MUL22( in11, in27, 1, 0, 1, 1 ); \
2317 95520 : GF_MUL22( in12, in28, 1, 0, 1, 1 ); \
2318 95520 : in13 = GF_MUL( in13, 1 ); \
2319 95520 : in13 = GF_ADD( GF_MUL( scratch_29, 0 ), in13 ); \
2320 95520 : in14 = GF_MUL( in14, 1 ); \
2321 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
2322 95520 : in15 = GF_MUL( in15, 1 ); \
2323 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
2324 95520 : } while( 0 )
2325 :
2326 : void fd_reedsol_ppt_32_30( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2327 : #define FD_REEDSOL_PPT_IMPL_32_30( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17 , \
2328 : in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31) \
2329 95520 : do { \
2330 95520 : gf_t scratch_14, scratch_15, scratch_2, scratch_3, scratch_30, scratch_31, scratch_6, scratch_7; \
2331 95520 : scratch_30 = in30; \
2332 95520 : in30 = GF_MUL( in30, 1 ); \
2333 95520 : scratch_31 = in31; \
2334 95520 : in31 = GF_MUL( in31, 1 ); \
2335 95520 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
2336 95520 : in30 = GF_ADD( GF_MUL( in14, 1 ), in30 ); \
2337 95520 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
2338 95520 : scratch_14 = in30; \
2339 95520 : in30 = GF_MUL( in30, 1 ); \
2340 95520 : scratch_15 = in31; \
2341 95520 : in31 = GF_MUL( in31, 1 ); \
2342 95520 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
2343 95520 : in30 = GF_ADD( GF_MUL( in22, 1 ), in30 ); \
2344 95520 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
2345 95520 : scratch_6 = in30; \
2346 95520 : in30 = GF_MUL( in30, 1 ); \
2347 95520 : scratch_7 = in31; \
2348 95520 : in31 = GF_MUL( in31, 1 ); \
2349 95520 : FD_REEDSOL_GENERATE_IFFT( 4, 24, in24, in25, in26, in27 ); \
2350 95520 : in30 = GF_ADD( GF_MUL( in26, 1 ), in30 ); \
2351 95520 : in31 = GF_ADD( GF_MUL( in27, 1 ), in31 ); \
2352 95520 : scratch_2 = in30; \
2353 95520 : in30 = GF_MUL( in30, 1 ); \
2354 95520 : scratch_3 = in31; \
2355 95520 : in31 = GF_MUL( in31, 1 ); \
2356 95520 : GF_MUL22( in28, in29, 29, 28, 1, 1 ); \
2357 95520 : in30 = GF_ADD( GF_MUL( in28, 1 ), in30 ); \
2358 95520 : in31 = GF_ADD( GF_MUL( in29, 1 ), in31 ); \
2359 95520 : GF_MUL22( in30, in31, 1, 30, 1, 31 ); \
2360 95520 : in28 = GF_MUL( in28, 1 ); \
2361 95520 : in28 = GF_ADD( GF_MUL( scratch_2, 98 ), in28 ); \
2362 95520 : in29 = GF_MUL( in29, 1 ); \
2363 95520 : in29 = GF_ADD( GF_MUL( scratch_3, 98 ), in29 ); \
2364 95520 : GF_MUL22( in24, in28, 118, 119, 1, 1 ); \
2365 95520 : GF_MUL22( in25, in29, 118, 119, 1, 1 ); \
2366 95520 : in26 = GF_MUL( in26, 1 ); \
2367 95520 : in26 = GF_ADD( GF_MUL( scratch_6, 119 ), in26 ); \
2368 95520 : in27 = GF_MUL( in27, 1 ); \
2369 95520 : in27 = GF_ADD( GF_MUL( scratch_7, 119 ), in27 ); \
2370 95520 : GF_MUL22( in16, in24, 10, 11, 1, 1 ); \
2371 95520 : GF_MUL22( in17, in25, 10, 11, 1, 1 ); \
2372 95520 : GF_MUL22( in18, in26, 10, 11, 1, 1 ); \
2373 95520 : GF_MUL22( in19, in27, 10, 11, 1, 1 ); \
2374 95520 : GF_MUL22( in20, in28, 10, 11, 1, 1 ); \
2375 95520 : GF_MUL22( in21, in29, 10, 11, 1, 1 ); \
2376 95520 : in22 = GF_MUL( in22, 1 ); \
2377 95520 : in22 = GF_ADD( GF_MUL( scratch_14, 11 ), in22 ); \
2378 95520 : in23 = GF_MUL( in23, 1 ); \
2379 95520 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
2380 95520 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
2381 95520 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
2382 95520 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
2383 95520 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
2384 95520 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
2385 95520 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
2386 95520 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
2387 95520 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
2388 95520 : GF_MUL22( in08, in24, 1, 0, 1, 1 ); \
2389 95520 : GF_MUL22( in09, in25, 1, 0, 1, 1 ); \
2390 95520 : GF_MUL22( in10, in26, 1, 0, 1, 1 ); \
2391 95520 : GF_MUL22( in11, in27, 1, 0, 1, 1 ); \
2392 95520 : GF_MUL22( in12, in28, 1, 0, 1, 1 ); \
2393 95520 : GF_MUL22( in13, in29, 1, 0, 1, 1 ); \
2394 95520 : in14 = GF_MUL( in14, 1 ); \
2395 95520 : in14 = GF_ADD( GF_MUL( scratch_30, 0 ), in14 ); \
2396 95520 : in15 = GF_MUL( in15, 1 ); \
2397 95520 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
2398 95520 : } while( 0 )
2399 :
2400 : void fd_reedsol_ppt_32_31( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2401 : #define FD_REEDSOL_PPT_IMPL_32_31( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17 , \
2402 : in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31) \
2403 95616 : do { \
2404 95616 : gf_t scratch_15, scratch_3, scratch_31, scratch_7; \
2405 95616 : scratch_31 = in31; \
2406 95616 : in31 = GF_MUL( in31, 1 ); \
2407 95616 : FD_REEDSOL_GENERATE_IFFT( 16, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15 ); \
2408 95616 : in31 = GF_ADD( GF_MUL( in15, 1 ), in31 ); \
2409 95616 : scratch_15 = in31; \
2410 95616 : in31 = GF_MUL( in31, 1 ); \
2411 95616 : FD_REEDSOL_GENERATE_IFFT( 8, 16, in16, in17, in18, in19, in20, in21, in22, in23 ); \
2412 95616 : in31 = GF_ADD( GF_MUL( in23, 1 ), in31 ); \
2413 95616 : scratch_7 = in31; \
2414 95616 : in31 = GF_MUL( in31, 1 ); \
2415 95616 : FD_REEDSOL_GENERATE_IFFT( 4, 24, in24, in25, in26, in27 ); \
2416 95616 : in31 = GF_ADD( GF_MUL( in27, 1 ), in31 ); \
2417 95616 : scratch_3 = in31; \
2418 95616 : in31 = GF_MUL( in31, 1 ); \
2419 95616 : GF_MUL22( in28, in29, 29, 28, 1, 1 ); \
2420 95616 : in31 = GF_ADD( GF_MUL( in29, 1 ), in31 ); \
2421 95616 : GF_MUL22( in30, in31, 1, 30, 1, 1 ); \
2422 95616 : GF_MUL22( in28, in30, 99, 98, 1, 1 ); \
2423 95616 : in29 = GF_MUL( in29, 1 ); \
2424 95616 : in29 = GF_ADD( GF_MUL( scratch_3, 98 ), in29 ); \
2425 95616 : GF_MUL22( in24, in28, 118, 119, 1, 1 ); \
2426 95616 : GF_MUL22( in25, in29, 118, 119, 1, 1 ); \
2427 95616 : GF_MUL22( in26, in30, 118, 119, 1, 1 ); \
2428 95616 : in27 = GF_MUL( in27, 1 ); \
2429 95616 : in27 = GF_ADD( GF_MUL( scratch_7, 119 ), in27 ); \
2430 95616 : GF_MUL22( in16, in24, 10, 11, 1, 1 ); \
2431 95616 : GF_MUL22( in17, in25, 10, 11, 1, 1 ); \
2432 95616 : GF_MUL22( in18, in26, 10, 11, 1, 1 ); \
2433 95616 : GF_MUL22( in19, in27, 10, 11, 1, 1 ); \
2434 95616 : GF_MUL22( in20, in28, 10, 11, 1, 1 ); \
2435 95616 : GF_MUL22( in21, in29, 10, 11, 1, 1 ); \
2436 95616 : GF_MUL22( in22, in30, 10, 11, 1, 1 ); \
2437 95616 : in23 = GF_MUL( in23, 1 ); \
2438 95616 : in23 = GF_ADD( GF_MUL( scratch_15, 11 ), in23 ); \
2439 95616 : GF_MUL22( in00, in16, 1, 0, 1, 1 ); \
2440 95616 : GF_MUL22( in01, in17, 1, 0, 1, 1 ); \
2441 95616 : GF_MUL22( in02, in18, 1, 0, 1, 1 ); \
2442 95616 : GF_MUL22( in03, in19, 1, 0, 1, 1 ); \
2443 95616 : GF_MUL22( in04, in20, 1, 0, 1, 1 ); \
2444 95616 : GF_MUL22( in05, in21, 1, 0, 1, 1 ); \
2445 95616 : GF_MUL22( in06, in22, 1, 0, 1, 1 ); \
2446 95616 : GF_MUL22( in07, in23, 1, 0, 1, 1 ); \
2447 95616 : GF_MUL22( in08, in24, 1, 0, 1, 1 ); \
2448 95616 : GF_MUL22( in09, in25, 1, 0, 1, 1 ); \
2449 95616 : GF_MUL22( in10, in26, 1, 0, 1, 1 ); \
2450 95616 : GF_MUL22( in11, in27, 1, 0, 1, 1 ); \
2451 95616 : GF_MUL22( in12, in28, 1, 0, 1, 1 ); \
2452 95616 : GF_MUL22( in13, in29, 1, 0, 1, 1 ); \
2453 95616 : GF_MUL22( in14, in30, 1, 0, 1, 1 ); \
2454 95616 : in15 = GF_MUL( in15, 1 ); \
2455 95616 : in15 = GF_ADD( GF_MUL( scratch_31, 0 ), in15 ); \
2456 95616 : } while( 0 )
2457 :
2458 : void fd_reedsol_ppt_64_33( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2459 : #define FD_REEDSOL_PPT_IMPL_64_33( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
2460 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
2461 96480 : do { \
2462 96480 : gf_t scratch_16, scratch_2, scratch_33, scratch_34, scratch_35, scratch_36, scratch_37, scratch_38, scratch_39, scratch_4, scratch_40, scratch_41, scratch_42, scratch_43, scratch_44, scratch_45; \
2463 96480 : gf_t scratch_46, scratch_47, scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61; \
2464 96480 : gf_t scratch_62, scratch_63, scratch_8; \
2465 96480 : scratch_33 = in33; \
2466 96480 : in33 = GF_MUL( in33, 1 ); \
2467 96480 : scratch_34 = in34; \
2468 96480 : in34 = GF_MUL( in34, 1 ); \
2469 96480 : scratch_35 = in35; \
2470 96480 : in35 = GF_MUL( in35, 1 ); \
2471 96480 : scratch_36 = in36; \
2472 96480 : in36 = GF_MUL( in36, 1 ); \
2473 96480 : scratch_37 = in37; \
2474 96480 : in37 = GF_MUL( in37, 1 ); \
2475 96480 : scratch_38 = in38; \
2476 96480 : in38 = GF_MUL( in38, 1 ); \
2477 96480 : scratch_39 = in39; \
2478 96480 : in39 = GF_MUL( in39, 1 ); \
2479 96480 : scratch_40 = in40; \
2480 96480 : in40 = GF_MUL( in40, 1 ); \
2481 96480 : scratch_41 = in41; \
2482 96480 : in41 = GF_MUL( in41, 1 ); \
2483 96480 : scratch_42 = in42; \
2484 96480 : in42 = GF_MUL( in42, 1 ); \
2485 96480 : scratch_43 = in43; \
2486 96480 : in43 = GF_MUL( in43, 1 ); \
2487 96480 : scratch_44 = in44; \
2488 96480 : in44 = GF_MUL( in44, 1 ); \
2489 96480 : scratch_45 = in45; \
2490 96480 : in45 = GF_MUL( in45, 1 ); \
2491 96480 : scratch_46 = in46; \
2492 96480 : in46 = GF_MUL( in46, 1 ); \
2493 96480 : scratch_47 = in47; \
2494 96480 : in47 = GF_MUL( in47, 1 ); \
2495 96480 : scratch_48 = in48; \
2496 96480 : in48 = GF_MUL( in48, 1 ); \
2497 96480 : scratch_49 = in49; \
2498 96480 : in49 = GF_MUL( in49, 1 ); \
2499 96480 : scratch_50 = in50; \
2500 96480 : in50 = GF_MUL( in50, 1 ); \
2501 96480 : scratch_51 = in51; \
2502 96480 : in51 = GF_MUL( in51, 1 ); \
2503 96480 : scratch_52 = in52; \
2504 96480 : in52 = GF_MUL( in52, 1 ); \
2505 96480 : scratch_53 = in53; \
2506 96480 : in53 = GF_MUL( in53, 1 ); \
2507 96480 : scratch_54 = in54; \
2508 96480 : in54 = GF_MUL( in54, 1 ); \
2509 96480 : scratch_55 = in55; \
2510 96480 : in55 = GF_MUL( in55, 1 ); \
2511 96480 : scratch_56 = in56; \
2512 96480 : in56 = GF_MUL( in56, 1 ); \
2513 96480 : scratch_57 = in57; \
2514 96480 : in57 = GF_MUL( in57, 1 ); \
2515 96480 : scratch_58 = in58; \
2516 96480 : in58 = GF_MUL( in58, 1 ); \
2517 96480 : scratch_59 = in59; \
2518 96480 : in59 = GF_MUL( in59, 1 ); \
2519 96480 : scratch_60 = in60; \
2520 96480 : in60 = GF_MUL( in60, 1 ); \
2521 96480 : scratch_61 = in61; \
2522 96480 : in61 = GF_MUL( in61, 1 ); \
2523 96480 : scratch_62 = in62; \
2524 96480 : in62 = GF_MUL( in62, 1 ); \
2525 96480 : scratch_63 = in63; \
2526 96480 : in63 = GF_MUL( in63, 1 ); \
2527 96480 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
2528 96480 : in33 = GF_ADD( GF_MUL( in01, 1 ), in33 ); \
2529 96480 : in34 = GF_ADD( GF_MUL( in02, 1 ), in34 ); \
2530 96480 : in35 = GF_ADD( GF_MUL( in03, 1 ), in35 ); \
2531 96480 : in36 = GF_ADD( GF_MUL( in04, 1 ), in36 ); \
2532 96480 : in37 = GF_ADD( GF_MUL( in05, 1 ), in37 ); \
2533 96480 : in38 = GF_ADD( GF_MUL( in06, 1 ), in38 ); \
2534 96480 : in39 = GF_ADD( GF_MUL( in07, 1 ), in39 ); \
2535 96480 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
2536 96480 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
2537 96480 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
2538 96480 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
2539 96480 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
2540 96480 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
2541 96480 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
2542 96480 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
2543 96480 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
2544 96480 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
2545 96480 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
2546 96480 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
2547 96480 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
2548 96480 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
2549 96480 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
2550 96480 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
2551 96480 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
2552 96480 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
2553 96480 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
2554 96480 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
2555 96480 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
2556 96480 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
2557 96480 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
2558 96480 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
2559 96480 : scratch_16 = in48; \
2560 96480 : in48 = GF_MUL( in48, 1 ); \
2561 96480 : GF_MUL22( in33, in49, 1, 71, 1, 70 ); \
2562 96480 : GF_MUL22( in34, in50, 1, 71, 1, 70 ); \
2563 96480 : GF_MUL22( in35, in51, 1, 71, 1, 70 ); \
2564 96480 : GF_MUL22( in36, in52, 1, 71, 1, 70 ); \
2565 96480 : GF_MUL22( in37, in53, 1, 71, 1, 70 ); \
2566 96480 : GF_MUL22( in38, in54, 1, 71, 1, 70 ); \
2567 96480 : GF_MUL22( in39, in55, 1, 71, 1, 70 ); \
2568 96480 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
2569 96480 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
2570 96480 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
2571 96480 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
2572 96480 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
2573 96480 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
2574 96480 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
2575 96480 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
2576 96480 : scratch_8 = in40; \
2577 96480 : in40 = GF_MUL( in40, 1 ); \
2578 96480 : GF_MUL22( in33, in41, 1, 174, 1, 175 ); \
2579 96480 : GF_MUL22( in34, in42, 1, 174, 1, 175 ); \
2580 96480 : GF_MUL22( in35, in43, 1, 174, 1, 175 ); \
2581 96480 : GF_MUL22( in36, in44, 1, 174, 1, 175 ); \
2582 96480 : GF_MUL22( in37, in45, 1, 174, 1, 175 ); \
2583 96480 : GF_MUL22( in38, in46, 1, 174, 1, 175 ); \
2584 96480 : GF_MUL22( in39, in47, 1, 174, 1, 175 ); \
2585 96480 : scratch_4 = in36; \
2586 96480 : in36 = GF_MUL( in36, 1 ); \
2587 96480 : GF_MUL22( in33, in37, 1, 38, 1, 39 ); \
2588 96480 : GF_MUL22( in34, in38, 1, 38, 1, 39 ); \
2589 96480 : GF_MUL22( in35, in39, 1, 38, 1, 39 ); \
2590 96480 : scratch_2 = in34; \
2591 96480 : in34 = GF_MUL( in34, 1 ); \
2592 96480 : GF_MUL22( in33, in35, 1, 237, 1, 236 ); \
2593 96480 : GF_MUL22( in32, in33, 1, 32, 1, 1 ); \
2594 96480 : in34 = GF_ADD( GF_MUL( in32, 1 ), in34 ); \
2595 96480 : GF_MUL22( in34, in35, 1, 34, 1, 35 ); \
2596 96480 : in32 = GF_MUL( in32, 1 ); \
2597 96480 : in32 = GF_ADD( GF_MUL( scratch_2, 237 ), in32 ); \
2598 96480 : in36 = GF_ADD( GF_MUL( in32, 1 ), in36 ); \
2599 96480 : FD_REEDSOL_GENERATE_FFT( 4, 36, in36, in37, in38, in39 ); \
2600 96480 : in32 = GF_MUL( in32, 1 ); \
2601 96480 : in32 = GF_ADD( GF_MUL( scratch_4, 38 ), in32 ); \
2602 96480 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
2603 96480 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
2604 96480 : in32 = GF_MUL( in32, 1 ); \
2605 96480 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
2606 96480 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
2607 96480 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
2608 96480 : in32 = GF_MUL( in32, 1 ); \
2609 96480 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
2610 96480 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
2611 96480 : in01 = GF_MUL( in01, 1 ); \
2612 96480 : in01 = GF_ADD( GF_MUL( scratch_33, 0 ), in01 ); \
2613 96480 : in02 = GF_MUL( in02, 1 ); \
2614 96480 : in02 = GF_ADD( GF_MUL( scratch_34, 0 ), in02 ); \
2615 96480 : in03 = GF_MUL( in03, 1 ); \
2616 96480 : in03 = GF_ADD( GF_MUL( scratch_35, 0 ), in03 ); \
2617 96480 : in04 = GF_MUL( in04, 1 ); \
2618 96480 : in04 = GF_ADD( GF_MUL( scratch_36, 0 ), in04 ); \
2619 96480 : in05 = GF_MUL( in05, 1 ); \
2620 96480 : in05 = GF_ADD( GF_MUL( scratch_37, 0 ), in05 ); \
2621 96480 : in06 = GF_MUL( in06, 1 ); \
2622 96480 : in06 = GF_ADD( GF_MUL( scratch_38, 0 ), in06 ); \
2623 96480 : in07 = GF_MUL( in07, 1 ); \
2624 96480 : in07 = GF_ADD( GF_MUL( scratch_39, 0 ), in07 ); \
2625 96480 : in08 = GF_MUL( in08, 1 ); \
2626 96480 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
2627 96480 : in09 = GF_MUL( in09, 1 ); \
2628 96480 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
2629 96480 : in10 = GF_MUL( in10, 1 ); \
2630 96480 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
2631 96480 : in11 = GF_MUL( in11, 1 ); \
2632 96480 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
2633 96480 : in12 = GF_MUL( in12, 1 ); \
2634 96480 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
2635 96480 : in13 = GF_MUL( in13, 1 ); \
2636 96480 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
2637 96480 : in14 = GF_MUL( in14, 1 ); \
2638 96480 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
2639 96480 : in15 = GF_MUL( in15, 1 ); \
2640 96480 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
2641 96480 : in16 = GF_MUL( in16, 1 ); \
2642 96480 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
2643 96480 : in17 = GF_MUL( in17, 1 ); \
2644 96480 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
2645 96480 : in18 = GF_MUL( in18, 1 ); \
2646 96480 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
2647 96480 : in19 = GF_MUL( in19, 1 ); \
2648 96480 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
2649 96480 : in20 = GF_MUL( in20, 1 ); \
2650 96480 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
2651 96480 : in21 = GF_MUL( in21, 1 ); \
2652 96480 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
2653 96480 : in22 = GF_MUL( in22, 1 ); \
2654 96480 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
2655 96480 : in23 = GF_MUL( in23, 1 ); \
2656 96480 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
2657 96480 : in24 = GF_MUL( in24, 1 ); \
2658 96480 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
2659 96480 : in25 = GF_MUL( in25, 1 ); \
2660 96480 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
2661 96480 : in26 = GF_MUL( in26, 1 ); \
2662 96480 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
2663 96480 : in27 = GF_MUL( in27, 1 ); \
2664 96480 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
2665 96480 : in28 = GF_MUL( in28, 1 ); \
2666 96480 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
2667 96480 : in29 = GF_MUL( in29, 1 ); \
2668 96480 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
2669 96480 : in30 = GF_MUL( in30, 1 ); \
2670 96480 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
2671 96480 : in31 = GF_MUL( in31, 1 ); \
2672 96480 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
2673 96480 : } while( 0 )
2674 :
2675 : void fd_reedsol_ppt_64_34( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2676 : #define FD_REEDSOL_PPT_IMPL_64_34( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
2677 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
2678 280896 : do { \
2679 280896 : gf_t scratch_16, scratch_17, scratch_2, scratch_3, scratch_34, scratch_35, scratch_36, scratch_37, scratch_38, scratch_39, scratch_4, scratch_40, scratch_41, scratch_42, scratch_43, scratch_44; \
2680 280896 : gf_t scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59; \
2681 280896 : gf_t scratch_60, scratch_61, scratch_62, scratch_63, scratch_8, scratch_9; \
2682 280896 : scratch_34 = in34; \
2683 280896 : in34 = GF_MUL( in34, 1 ); \
2684 280896 : scratch_35 = in35; \
2685 280896 : in35 = GF_MUL( in35, 1 ); \
2686 280896 : scratch_36 = in36; \
2687 280896 : in36 = GF_MUL( in36, 1 ); \
2688 280896 : scratch_37 = in37; \
2689 280896 : in37 = GF_MUL( in37, 1 ); \
2690 280896 : scratch_38 = in38; \
2691 280896 : in38 = GF_MUL( in38, 1 ); \
2692 280896 : scratch_39 = in39; \
2693 280896 : in39 = GF_MUL( in39, 1 ); \
2694 280896 : scratch_40 = in40; \
2695 280896 : in40 = GF_MUL( in40, 1 ); \
2696 280896 : scratch_41 = in41; \
2697 280896 : in41 = GF_MUL( in41, 1 ); \
2698 280896 : scratch_42 = in42; \
2699 280896 : in42 = GF_MUL( in42, 1 ); \
2700 280896 : scratch_43 = in43; \
2701 280896 : in43 = GF_MUL( in43, 1 ); \
2702 280896 : scratch_44 = in44; \
2703 280896 : in44 = GF_MUL( in44, 1 ); \
2704 280896 : scratch_45 = in45; \
2705 280896 : in45 = GF_MUL( in45, 1 ); \
2706 280896 : scratch_46 = in46; \
2707 280896 : in46 = GF_MUL( in46, 1 ); \
2708 280896 : scratch_47 = in47; \
2709 280896 : in47 = GF_MUL( in47, 1 ); \
2710 280896 : scratch_48 = in48; \
2711 280896 : in48 = GF_MUL( in48, 1 ); \
2712 280896 : scratch_49 = in49; \
2713 280896 : in49 = GF_MUL( in49, 1 ); \
2714 280896 : scratch_50 = in50; \
2715 280896 : in50 = GF_MUL( in50, 1 ); \
2716 280896 : scratch_51 = in51; \
2717 280896 : in51 = GF_MUL( in51, 1 ); \
2718 280896 : scratch_52 = in52; \
2719 280896 : in52 = GF_MUL( in52, 1 ); \
2720 280896 : scratch_53 = in53; \
2721 280896 : in53 = GF_MUL( in53, 1 ); \
2722 280896 : scratch_54 = in54; \
2723 280896 : in54 = GF_MUL( in54, 1 ); \
2724 280896 : scratch_55 = in55; \
2725 280896 : in55 = GF_MUL( in55, 1 ); \
2726 280896 : scratch_56 = in56; \
2727 280896 : in56 = GF_MUL( in56, 1 ); \
2728 280896 : scratch_57 = in57; \
2729 280896 : in57 = GF_MUL( in57, 1 ); \
2730 280896 : scratch_58 = in58; \
2731 280896 : in58 = GF_MUL( in58, 1 ); \
2732 280896 : scratch_59 = in59; \
2733 280896 : in59 = GF_MUL( in59, 1 ); \
2734 280896 : scratch_60 = in60; \
2735 280896 : in60 = GF_MUL( in60, 1 ); \
2736 280896 : scratch_61 = in61; \
2737 280896 : in61 = GF_MUL( in61, 1 ); \
2738 280896 : scratch_62 = in62; \
2739 280896 : in62 = GF_MUL( in62, 1 ); \
2740 280896 : scratch_63 = in63; \
2741 280896 : in63 = GF_MUL( in63, 1 ); \
2742 280896 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
2743 280896 : in34 = GF_ADD( GF_MUL( in02, 1 ), in34 ); \
2744 280896 : in35 = GF_ADD( GF_MUL( in03, 1 ), in35 ); \
2745 280896 : in36 = GF_ADD( GF_MUL( in04, 1 ), in36 ); \
2746 280896 : in37 = GF_ADD( GF_MUL( in05, 1 ), in37 ); \
2747 280896 : in38 = GF_ADD( GF_MUL( in06, 1 ), in38 ); \
2748 280896 : in39 = GF_ADD( GF_MUL( in07, 1 ), in39 ); \
2749 280896 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
2750 280896 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
2751 280896 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
2752 280896 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
2753 280896 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
2754 280896 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
2755 280896 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
2756 280896 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
2757 280896 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
2758 280896 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
2759 280896 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
2760 280896 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
2761 280896 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
2762 280896 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
2763 280896 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
2764 280896 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
2765 280896 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
2766 280896 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
2767 280896 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
2768 280896 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
2769 280896 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
2770 280896 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
2771 280896 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
2772 280896 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
2773 280896 : scratch_16 = in48; \
2774 280896 : in48 = GF_MUL( in48, 1 ); \
2775 280896 : scratch_17 = in49; \
2776 280896 : in49 = GF_MUL( in49, 1 ); \
2777 280896 : GF_MUL22( in34, in50, 1, 71, 1, 70 ); \
2778 280896 : GF_MUL22( in35, in51, 1, 71, 1, 70 ); \
2779 280896 : GF_MUL22( in36, in52, 1, 71, 1, 70 ); \
2780 280896 : GF_MUL22( in37, in53, 1, 71, 1, 70 ); \
2781 280896 : GF_MUL22( in38, in54, 1, 71, 1, 70 ); \
2782 280896 : GF_MUL22( in39, in55, 1, 71, 1, 70 ); \
2783 280896 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
2784 280896 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
2785 280896 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
2786 280896 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
2787 280896 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
2788 280896 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
2789 280896 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
2790 280896 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
2791 280896 : scratch_8 = in40; \
2792 280896 : in40 = GF_MUL( in40, 1 ); \
2793 280896 : scratch_9 = in41; \
2794 280896 : in41 = GF_MUL( in41, 1 ); \
2795 280896 : GF_MUL22( in34, in42, 1, 174, 1, 175 ); \
2796 280896 : GF_MUL22( in35, in43, 1, 174, 1, 175 ); \
2797 280896 : GF_MUL22( in36, in44, 1, 174, 1, 175 ); \
2798 280896 : GF_MUL22( in37, in45, 1, 174, 1, 175 ); \
2799 280896 : GF_MUL22( in38, in46, 1, 174, 1, 175 ); \
2800 280896 : GF_MUL22( in39, in47, 1, 174, 1, 175 ); \
2801 280896 : scratch_4 = in36; \
2802 280896 : in36 = GF_MUL( in36, 1 ); \
2803 280896 : scratch_5 = in37; \
2804 280896 : in37 = GF_MUL( in37, 1 ); \
2805 280896 : GF_MUL22( in34, in38, 1, 38, 1, 39 ); \
2806 280896 : GF_MUL22( in35, in39, 1, 38, 1, 39 ); \
2807 280896 : scratch_2 = in34; \
2808 280896 : in34 = GF_MUL( in34, 1 ); \
2809 280896 : scratch_3 = in35; \
2810 280896 : in35 = GF_MUL( in35, 1 ); \
2811 280896 : GF_MUL22( in32, in33, 33, 32, 1, 1 ); \
2812 280896 : in34 = GF_ADD( GF_MUL( in32, 1 ), in34 ); \
2813 280896 : in35 = GF_ADD( GF_MUL( in33, 1 ), in35 ); \
2814 280896 : GF_MUL22( in34, in35, 1, 34, 1, 35 ); \
2815 280896 : in32 = GF_MUL( in32, 1 ); \
2816 280896 : in32 = GF_ADD( GF_MUL( scratch_2, 237 ), in32 ); \
2817 280896 : in33 = GF_MUL( in33, 1 ); \
2818 280896 : in33 = GF_ADD( GF_MUL( scratch_3, 237 ), in33 ); \
2819 280896 : in36 = GF_ADD( GF_MUL( in32, 1 ), in36 ); \
2820 280896 : in37 = GF_ADD( GF_MUL( in33, 1 ), in37 ); \
2821 280896 : FD_REEDSOL_GENERATE_FFT( 4, 36, in36, in37, in38, in39 ); \
2822 280896 : in32 = GF_MUL( in32, 1 ); \
2823 280896 : in32 = GF_ADD( GF_MUL( scratch_4, 38 ), in32 ); \
2824 280896 : in33 = GF_MUL( in33, 1 ); \
2825 280896 : in33 = GF_ADD( GF_MUL( scratch_5, 38 ), in33 ); \
2826 280896 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
2827 280896 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
2828 280896 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
2829 280896 : in32 = GF_MUL( in32, 1 ); \
2830 280896 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
2831 280896 : in33 = GF_MUL( in33, 1 ); \
2832 280896 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
2833 280896 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
2834 280896 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
2835 280896 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
2836 280896 : in32 = GF_MUL( in32, 1 ); \
2837 280896 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
2838 280896 : in33 = GF_MUL( in33, 1 ); \
2839 280896 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
2840 280896 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
2841 280896 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
2842 280896 : in02 = GF_MUL( in02, 1 ); \
2843 280896 : in02 = GF_ADD( GF_MUL( scratch_34, 0 ), in02 ); \
2844 280896 : in03 = GF_MUL( in03, 1 ); \
2845 280896 : in03 = GF_ADD( GF_MUL( scratch_35, 0 ), in03 ); \
2846 280896 : in04 = GF_MUL( in04, 1 ); \
2847 280896 : in04 = GF_ADD( GF_MUL( scratch_36, 0 ), in04 ); \
2848 280896 : in05 = GF_MUL( in05, 1 ); \
2849 280896 : in05 = GF_ADD( GF_MUL( scratch_37, 0 ), in05 ); \
2850 280896 : in06 = GF_MUL( in06, 1 ); \
2851 280896 : in06 = GF_ADD( GF_MUL( scratch_38, 0 ), in06 ); \
2852 280896 : in07 = GF_MUL( in07, 1 ); \
2853 280896 : in07 = GF_ADD( GF_MUL( scratch_39, 0 ), in07 ); \
2854 280896 : in08 = GF_MUL( in08, 1 ); \
2855 280896 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
2856 280896 : in09 = GF_MUL( in09, 1 ); \
2857 280896 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
2858 280896 : in10 = GF_MUL( in10, 1 ); \
2859 280896 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
2860 280896 : in11 = GF_MUL( in11, 1 ); \
2861 280896 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
2862 280896 : in12 = GF_MUL( in12, 1 ); \
2863 280896 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
2864 280896 : in13 = GF_MUL( in13, 1 ); \
2865 280896 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
2866 280896 : in14 = GF_MUL( in14, 1 ); \
2867 280896 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
2868 280896 : in15 = GF_MUL( in15, 1 ); \
2869 280896 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
2870 280896 : in16 = GF_MUL( in16, 1 ); \
2871 280896 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
2872 280896 : in17 = GF_MUL( in17, 1 ); \
2873 280896 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
2874 280896 : in18 = GF_MUL( in18, 1 ); \
2875 280896 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
2876 280896 : in19 = GF_MUL( in19, 1 ); \
2877 280896 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
2878 280896 : in20 = GF_MUL( in20, 1 ); \
2879 280896 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
2880 280896 : in21 = GF_MUL( in21, 1 ); \
2881 280896 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
2882 280896 : in22 = GF_MUL( in22, 1 ); \
2883 280896 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
2884 280896 : in23 = GF_MUL( in23, 1 ); \
2885 280896 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
2886 280896 : in24 = GF_MUL( in24, 1 ); \
2887 280896 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
2888 280896 : in25 = GF_MUL( in25, 1 ); \
2889 280896 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
2890 280896 : in26 = GF_MUL( in26, 1 ); \
2891 280896 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
2892 280896 : in27 = GF_MUL( in27, 1 ); \
2893 280896 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
2894 280896 : in28 = GF_MUL( in28, 1 ); \
2895 280896 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
2896 280896 : in29 = GF_MUL( in29, 1 ); \
2897 280896 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
2898 280896 : in30 = GF_MUL( in30, 1 ); \
2899 280896 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
2900 280896 : in31 = GF_MUL( in31, 1 ); \
2901 280896 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
2902 280896 : } while( 0 )
2903 :
2904 : void fd_reedsol_ppt_64_35( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
2905 : #define FD_REEDSOL_PPT_IMPL_64_35( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
2906 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
2907 280800 : do { \
2908 280800 : gf_t scratch_10, scratch_16, scratch_17, scratch_18, scratch_3, scratch_35, scratch_36, scratch_37, scratch_38, scratch_39, scratch_4, scratch_40, scratch_41, scratch_42, scratch_43, scratch_44; \
2909 280800 : gf_t scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59; \
2910 280800 : gf_t scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_8, scratch_9; \
2911 280800 : scratch_35 = in35; \
2912 280800 : in35 = GF_MUL( in35, 1 ); \
2913 280800 : scratch_36 = in36; \
2914 280800 : in36 = GF_MUL( in36, 1 ); \
2915 280800 : scratch_37 = in37; \
2916 280800 : in37 = GF_MUL( in37, 1 ); \
2917 280800 : scratch_38 = in38; \
2918 280800 : in38 = GF_MUL( in38, 1 ); \
2919 280800 : scratch_39 = in39; \
2920 280800 : in39 = GF_MUL( in39, 1 ); \
2921 280800 : scratch_40 = in40; \
2922 280800 : in40 = GF_MUL( in40, 1 ); \
2923 280800 : scratch_41 = in41; \
2924 280800 : in41 = GF_MUL( in41, 1 ); \
2925 280800 : scratch_42 = in42; \
2926 280800 : in42 = GF_MUL( in42, 1 ); \
2927 280800 : scratch_43 = in43; \
2928 280800 : in43 = GF_MUL( in43, 1 ); \
2929 280800 : scratch_44 = in44; \
2930 280800 : in44 = GF_MUL( in44, 1 ); \
2931 280800 : scratch_45 = in45; \
2932 280800 : in45 = GF_MUL( in45, 1 ); \
2933 280800 : scratch_46 = in46; \
2934 280800 : in46 = GF_MUL( in46, 1 ); \
2935 280800 : scratch_47 = in47; \
2936 280800 : in47 = GF_MUL( in47, 1 ); \
2937 280800 : scratch_48 = in48; \
2938 280800 : in48 = GF_MUL( in48, 1 ); \
2939 280800 : scratch_49 = in49; \
2940 280800 : in49 = GF_MUL( in49, 1 ); \
2941 280800 : scratch_50 = in50; \
2942 280800 : in50 = GF_MUL( in50, 1 ); \
2943 280800 : scratch_51 = in51; \
2944 280800 : in51 = GF_MUL( in51, 1 ); \
2945 280800 : scratch_52 = in52; \
2946 280800 : in52 = GF_MUL( in52, 1 ); \
2947 280800 : scratch_53 = in53; \
2948 280800 : in53 = GF_MUL( in53, 1 ); \
2949 280800 : scratch_54 = in54; \
2950 280800 : in54 = GF_MUL( in54, 1 ); \
2951 280800 : scratch_55 = in55; \
2952 280800 : in55 = GF_MUL( in55, 1 ); \
2953 280800 : scratch_56 = in56; \
2954 280800 : in56 = GF_MUL( in56, 1 ); \
2955 280800 : scratch_57 = in57; \
2956 280800 : in57 = GF_MUL( in57, 1 ); \
2957 280800 : scratch_58 = in58; \
2958 280800 : in58 = GF_MUL( in58, 1 ); \
2959 280800 : scratch_59 = in59; \
2960 280800 : in59 = GF_MUL( in59, 1 ); \
2961 280800 : scratch_60 = in60; \
2962 280800 : in60 = GF_MUL( in60, 1 ); \
2963 280800 : scratch_61 = in61; \
2964 280800 : in61 = GF_MUL( in61, 1 ); \
2965 280800 : scratch_62 = in62; \
2966 280800 : in62 = GF_MUL( in62, 1 ); \
2967 280800 : scratch_63 = in63; \
2968 280800 : in63 = GF_MUL( in63, 1 ); \
2969 280800 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
2970 280800 : in35 = GF_ADD( GF_MUL( in03, 1 ), in35 ); \
2971 280800 : in36 = GF_ADD( GF_MUL( in04, 1 ), in36 ); \
2972 280800 : in37 = GF_ADD( GF_MUL( in05, 1 ), in37 ); \
2973 280800 : in38 = GF_ADD( GF_MUL( in06, 1 ), in38 ); \
2974 280800 : in39 = GF_ADD( GF_MUL( in07, 1 ), in39 ); \
2975 280800 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
2976 280800 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
2977 280800 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
2978 280800 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
2979 280800 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
2980 280800 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
2981 280800 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
2982 280800 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
2983 280800 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
2984 280800 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
2985 280800 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
2986 280800 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
2987 280800 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
2988 280800 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
2989 280800 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
2990 280800 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
2991 280800 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
2992 280800 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
2993 280800 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
2994 280800 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
2995 280800 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
2996 280800 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
2997 280800 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
2998 280800 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
2999 280800 : scratch_16 = in48; \
3000 280800 : in48 = GF_MUL( in48, 1 ); \
3001 280800 : scratch_17 = in49; \
3002 280800 : in49 = GF_MUL( in49, 1 ); \
3003 280800 : scratch_18 = in50; \
3004 280800 : in50 = GF_MUL( in50, 1 ); \
3005 280800 : GF_MUL22( in35, in51, 1, 71, 1, 70 ); \
3006 280800 : GF_MUL22( in36, in52, 1, 71, 1, 70 ); \
3007 280800 : GF_MUL22( in37, in53, 1, 71, 1, 70 ); \
3008 280800 : GF_MUL22( in38, in54, 1, 71, 1, 70 ); \
3009 280800 : GF_MUL22( in39, in55, 1, 71, 1, 70 ); \
3010 280800 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
3011 280800 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
3012 280800 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
3013 280800 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
3014 280800 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
3015 280800 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
3016 280800 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
3017 280800 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
3018 280800 : scratch_8 = in40; \
3019 280800 : in40 = GF_MUL( in40, 1 ); \
3020 280800 : scratch_9 = in41; \
3021 280800 : in41 = GF_MUL( in41, 1 ); \
3022 280800 : scratch_10 = in42; \
3023 280800 : in42 = GF_MUL( in42, 1 ); \
3024 280800 : GF_MUL22( in35, in43, 1, 174, 1, 175 ); \
3025 280800 : GF_MUL22( in36, in44, 1, 174, 1, 175 ); \
3026 280800 : GF_MUL22( in37, in45, 1, 174, 1, 175 ); \
3027 280800 : GF_MUL22( in38, in46, 1, 174, 1, 175 ); \
3028 280800 : GF_MUL22( in39, in47, 1, 174, 1, 175 ); \
3029 280800 : scratch_4 = in36; \
3030 280800 : in36 = GF_MUL( in36, 1 ); \
3031 280800 : scratch_5 = in37; \
3032 280800 : in37 = GF_MUL( in37, 1 ); \
3033 280800 : scratch_6 = in38; \
3034 280800 : in38 = GF_MUL( in38, 1 ); \
3035 280800 : GF_MUL22( in35, in39, 1, 38, 1, 39 ); \
3036 280800 : scratch_3 = in35; \
3037 280800 : in35 = GF_MUL( in35, 1 ); \
3038 280800 : GF_MUL22( in32, in33, 33, 32, 1, 1 ); \
3039 280800 : in35 = GF_ADD( GF_MUL( in33, 1 ), in35 ); \
3040 280800 : GF_MUL22( in34, in35, 1, 34, 1, 1 ); \
3041 280800 : GF_MUL22( in32, in34, 236, 237, 1, 1 ); \
3042 280800 : in33 = GF_MUL( in33, 1 ); \
3043 280800 : in33 = GF_ADD( GF_MUL( scratch_3, 237 ), in33 ); \
3044 280800 : in36 = GF_ADD( GF_MUL( in32, 1 ), in36 ); \
3045 280800 : in37 = GF_ADD( GF_MUL( in33, 1 ), in37 ); \
3046 280800 : in38 = GF_ADD( GF_MUL( in34, 1 ), in38 ); \
3047 280800 : FD_REEDSOL_GENERATE_FFT( 4, 36, in36, in37, in38, in39 ); \
3048 280800 : in32 = GF_MUL( in32, 1 ); \
3049 280800 : in32 = GF_ADD( GF_MUL( scratch_4, 38 ), in32 ); \
3050 280800 : in33 = GF_MUL( in33, 1 ); \
3051 280800 : in33 = GF_ADD( GF_MUL( scratch_5, 38 ), in33 ); \
3052 280800 : in34 = GF_MUL( in34, 1 ); \
3053 280800 : in34 = GF_ADD( GF_MUL( scratch_6, 38 ), in34 ); \
3054 280800 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
3055 280800 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
3056 280800 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
3057 280800 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
3058 280800 : in32 = GF_MUL( in32, 1 ); \
3059 280800 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
3060 280800 : in33 = GF_MUL( in33, 1 ); \
3061 280800 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
3062 280800 : in34 = GF_MUL( in34, 1 ); \
3063 280800 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
3064 280800 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
3065 280800 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
3066 280800 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
3067 280800 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
3068 280800 : in32 = GF_MUL( in32, 1 ); \
3069 280800 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
3070 280800 : in33 = GF_MUL( in33, 1 ); \
3071 280800 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
3072 280800 : in34 = GF_MUL( in34, 1 ); \
3073 280800 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
3074 280800 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
3075 280800 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
3076 280800 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
3077 280800 : in03 = GF_MUL( in03, 1 ); \
3078 280800 : in03 = GF_ADD( GF_MUL( scratch_35, 0 ), in03 ); \
3079 280800 : in04 = GF_MUL( in04, 1 ); \
3080 280800 : in04 = GF_ADD( GF_MUL( scratch_36, 0 ), in04 ); \
3081 280800 : in05 = GF_MUL( in05, 1 ); \
3082 280800 : in05 = GF_ADD( GF_MUL( scratch_37, 0 ), in05 ); \
3083 280800 : in06 = GF_MUL( in06, 1 ); \
3084 280800 : in06 = GF_ADD( GF_MUL( scratch_38, 0 ), in06 ); \
3085 280800 : in07 = GF_MUL( in07, 1 ); \
3086 280800 : in07 = GF_ADD( GF_MUL( scratch_39, 0 ), in07 ); \
3087 280800 : in08 = GF_MUL( in08, 1 ); \
3088 280800 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
3089 280800 : in09 = GF_MUL( in09, 1 ); \
3090 280800 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
3091 280800 : in10 = GF_MUL( in10, 1 ); \
3092 280800 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
3093 280800 : in11 = GF_MUL( in11, 1 ); \
3094 280800 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
3095 280800 : in12 = GF_MUL( in12, 1 ); \
3096 280800 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
3097 280800 : in13 = GF_MUL( in13, 1 ); \
3098 280800 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
3099 280800 : in14 = GF_MUL( in14, 1 ); \
3100 280800 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
3101 280800 : in15 = GF_MUL( in15, 1 ); \
3102 280800 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
3103 280800 : in16 = GF_MUL( in16, 1 ); \
3104 280800 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
3105 280800 : in17 = GF_MUL( in17, 1 ); \
3106 280800 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
3107 280800 : in18 = GF_MUL( in18, 1 ); \
3108 280800 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
3109 280800 : in19 = GF_MUL( in19, 1 ); \
3110 280800 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
3111 280800 : in20 = GF_MUL( in20, 1 ); \
3112 280800 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
3113 280800 : in21 = GF_MUL( in21, 1 ); \
3114 280800 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
3115 280800 : in22 = GF_MUL( in22, 1 ); \
3116 280800 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
3117 280800 : in23 = GF_MUL( in23, 1 ); \
3118 280800 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
3119 280800 : in24 = GF_MUL( in24, 1 ); \
3120 280800 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
3121 280800 : in25 = GF_MUL( in25, 1 ); \
3122 280800 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
3123 280800 : in26 = GF_MUL( in26, 1 ); \
3124 280800 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
3125 280800 : in27 = GF_MUL( in27, 1 ); \
3126 280800 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
3127 280800 : in28 = GF_MUL( in28, 1 ); \
3128 280800 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
3129 280800 : in29 = GF_MUL( in29, 1 ); \
3130 280800 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
3131 280800 : in30 = GF_MUL( in30, 1 ); \
3132 280800 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
3133 280800 : in31 = GF_MUL( in31, 1 ); \
3134 280800 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
3135 280800 : } while( 0 )
3136 :
3137 : void fd_reedsol_ppt_64_36( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
3138 : #define FD_REEDSOL_PPT_IMPL_64_36( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
3139 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
3140 280800 : do { \
3141 280800 : gf_t scratch_10, scratch_11, scratch_16, scratch_17, scratch_18, scratch_19, scratch_36, scratch_37, scratch_38, scratch_39, scratch_4, scratch_40, scratch_41, scratch_42, scratch_43, scratch_44; \
3142 280800 : gf_t scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59; \
3143 280800 : gf_t scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
3144 280800 : scratch_36 = in36; \
3145 280800 : in36 = GF_MUL( in36, 1 ); \
3146 280800 : scratch_37 = in37; \
3147 280800 : in37 = GF_MUL( in37, 1 ); \
3148 280800 : scratch_38 = in38; \
3149 280800 : in38 = GF_MUL( in38, 1 ); \
3150 280800 : scratch_39 = in39; \
3151 280800 : in39 = GF_MUL( in39, 1 ); \
3152 280800 : scratch_40 = in40; \
3153 280800 : in40 = GF_MUL( in40, 1 ); \
3154 280800 : scratch_41 = in41; \
3155 280800 : in41 = GF_MUL( in41, 1 ); \
3156 280800 : scratch_42 = in42; \
3157 280800 : in42 = GF_MUL( in42, 1 ); \
3158 280800 : scratch_43 = in43; \
3159 280800 : in43 = GF_MUL( in43, 1 ); \
3160 280800 : scratch_44 = in44; \
3161 280800 : in44 = GF_MUL( in44, 1 ); \
3162 280800 : scratch_45 = in45; \
3163 280800 : in45 = GF_MUL( in45, 1 ); \
3164 280800 : scratch_46 = in46; \
3165 280800 : in46 = GF_MUL( in46, 1 ); \
3166 280800 : scratch_47 = in47; \
3167 280800 : in47 = GF_MUL( in47, 1 ); \
3168 280800 : scratch_48 = in48; \
3169 280800 : in48 = GF_MUL( in48, 1 ); \
3170 280800 : scratch_49 = in49; \
3171 280800 : in49 = GF_MUL( in49, 1 ); \
3172 280800 : scratch_50 = in50; \
3173 280800 : in50 = GF_MUL( in50, 1 ); \
3174 280800 : scratch_51 = in51; \
3175 280800 : in51 = GF_MUL( in51, 1 ); \
3176 280800 : scratch_52 = in52; \
3177 280800 : in52 = GF_MUL( in52, 1 ); \
3178 280800 : scratch_53 = in53; \
3179 280800 : in53 = GF_MUL( in53, 1 ); \
3180 280800 : scratch_54 = in54; \
3181 280800 : in54 = GF_MUL( in54, 1 ); \
3182 280800 : scratch_55 = in55; \
3183 280800 : in55 = GF_MUL( in55, 1 ); \
3184 280800 : scratch_56 = in56; \
3185 280800 : in56 = GF_MUL( in56, 1 ); \
3186 280800 : scratch_57 = in57; \
3187 280800 : in57 = GF_MUL( in57, 1 ); \
3188 280800 : scratch_58 = in58; \
3189 280800 : in58 = GF_MUL( in58, 1 ); \
3190 280800 : scratch_59 = in59; \
3191 280800 : in59 = GF_MUL( in59, 1 ); \
3192 280800 : scratch_60 = in60; \
3193 280800 : in60 = GF_MUL( in60, 1 ); \
3194 280800 : scratch_61 = in61; \
3195 280800 : in61 = GF_MUL( in61, 1 ); \
3196 280800 : scratch_62 = in62; \
3197 280800 : in62 = GF_MUL( in62, 1 ); \
3198 280800 : scratch_63 = in63; \
3199 280800 : in63 = GF_MUL( in63, 1 ); \
3200 280800 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
3201 280800 : in36 = GF_ADD( GF_MUL( in04, 1 ), in36 ); \
3202 280800 : in37 = GF_ADD( GF_MUL( in05, 1 ), in37 ); \
3203 280800 : in38 = GF_ADD( GF_MUL( in06, 1 ), in38 ); \
3204 280800 : in39 = GF_ADD( GF_MUL( in07, 1 ), in39 ); \
3205 280800 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
3206 280800 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
3207 280800 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
3208 280800 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
3209 280800 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
3210 280800 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
3211 280800 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
3212 280800 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
3213 280800 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
3214 280800 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
3215 280800 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
3216 280800 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
3217 280800 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
3218 280800 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
3219 280800 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
3220 280800 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
3221 280800 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
3222 280800 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
3223 280800 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
3224 280800 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
3225 280800 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
3226 280800 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
3227 280800 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
3228 280800 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
3229 280800 : scratch_16 = in48; \
3230 280800 : in48 = GF_MUL( in48, 1 ); \
3231 280800 : scratch_17 = in49; \
3232 280800 : in49 = GF_MUL( in49, 1 ); \
3233 280800 : scratch_18 = in50; \
3234 280800 : in50 = GF_MUL( in50, 1 ); \
3235 280800 : scratch_19 = in51; \
3236 280800 : in51 = GF_MUL( in51, 1 ); \
3237 280800 : GF_MUL22( in36, in52, 1, 71, 1, 70 ); \
3238 280800 : GF_MUL22( in37, in53, 1, 71, 1, 70 ); \
3239 280800 : GF_MUL22( in38, in54, 1, 71, 1, 70 ); \
3240 280800 : GF_MUL22( in39, in55, 1, 71, 1, 70 ); \
3241 280800 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
3242 280800 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
3243 280800 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
3244 280800 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
3245 280800 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
3246 280800 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
3247 280800 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
3248 280800 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
3249 280800 : scratch_8 = in40; \
3250 280800 : in40 = GF_MUL( in40, 1 ); \
3251 280800 : scratch_9 = in41; \
3252 280800 : in41 = GF_MUL( in41, 1 ); \
3253 280800 : scratch_10 = in42; \
3254 280800 : in42 = GF_MUL( in42, 1 ); \
3255 280800 : scratch_11 = in43; \
3256 280800 : in43 = GF_MUL( in43, 1 ); \
3257 280800 : GF_MUL22( in36, in44, 1, 174, 1, 175 ); \
3258 280800 : GF_MUL22( in37, in45, 1, 174, 1, 175 ); \
3259 280800 : GF_MUL22( in38, in46, 1, 174, 1, 175 ); \
3260 280800 : GF_MUL22( in39, in47, 1, 174, 1, 175 ); \
3261 280800 : scratch_4 = in36; \
3262 280800 : in36 = GF_MUL( in36, 1 ); \
3263 280800 : scratch_5 = in37; \
3264 280800 : in37 = GF_MUL( in37, 1 ); \
3265 280800 : scratch_6 = in38; \
3266 280800 : in38 = GF_MUL( in38, 1 ); \
3267 280800 : scratch_7 = in39; \
3268 280800 : in39 = GF_MUL( in39, 1 ); \
3269 280800 : FD_REEDSOL_GENERATE_IFFT( 4, 32, in32, in33, in34, in35 ); \
3270 280800 : in36 = GF_ADD( GF_MUL( in32, 1 ), in36 ); \
3271 280800 : in37 = GF_ADD( GF_MUL( in33, 1 ), in37 ); \
3272 280800 : in38 = GF_ADD( GF_MUL( in34, 1 ), in38 ); \
3273 280800 : in39 = GF_ADD( GF_MUL( in35, 1 ), in39 ); \
3274 280800 : FD_REEDSOL_GENERATE_FFT( 4, 36, in36, in37, in38, in39 ); \
3275 280800 : in32 = GF_MUL( in32, 1 ); \
3276 280800 : in32 = GF_ADD( GF_MUL( scratch_4, 38 ), in32 ); \
3277 280800 : in33 = GF_MUL( in33, 1 ); \
3278 280800 : in33 = GF_ADD( GF_MUL( scratch_5, 38 ), in33 ); \
3279 280800 : in34 = GF_MUL( in34, 1 ); \
3280 280800 : in34 = GF_ADD( GF_MUL( scratch_6, 38 ), in34 ); \
3281 280800 : in35 = GF_MUL( in35, 1 ); \
3282 280800 : in35 = GF_ADD( GF_MUL( scratch_7, 38 ), in35 ); \
3283 280800 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
3284 280800 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
3285 280800 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
3286 280800 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
3287 280800 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
3288 280800 : in32 = GF_MUL( in32, 1 ); \
3289 280800 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
3290 280800 : in33 = GF_MUL( in33, 1 ); \
3291 280800 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
3292 280800 : in34 = GF_MUL( in34, 1 ); \
3293 280800 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
3294 280800 : in35 = GF_MUL( in35, 1 ); \
3295 280800 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
3296 280800 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
3297 280800 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
3298 280800 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
3299 280800 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
3300 280800 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
3301 280800 : in32 = GF_MUL( in32, 1 ); \
3302 280800 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
3303 280800 : in33 = GF_MUL( in33, 1 ); \
3304 280800 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
3305 280800 : in34 = GF_MUL( in34, 1 ); \
3306 280800 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
3307 280800 : in35 = GF_MUL( in35, 1 ); \
3308 280800 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
3309 280800 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
3310 280800 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
3311 280800 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
3312 280800 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
3313 280800 : in04 = GF_MUL( in04, 1 ); \
3314 280800 : in04 = GF_ADD( GF_MUL( scratch_36, 0 ), in04 ); \
3315 280800 : in05 = GF_MUL( in05, 1 ); \
3316 280800 : in05 = GF_ADD( GF_MUL( scratch_37, 0 ), in05 ); \
3317 280800 : in06 = GF_MUL( in06, 1 ); \
3318 280800 : in06 = GF_ADD( GF_MUL( scratch_38, 0 ), in06 ); \
3319 280800 : in07 = GF_MUL( in07, 1 ); \
3320 280800 : in07 = GF_ADD( GF_MUL( scratch_39, 0 ), in07 ); \
3321 280800 : in08 = GF_MUL( in08, 1 ); \
3322 280800 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
3323 280800 : in09 = GF_MUL( in09, 1 ); \
3324 280800 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
3325 280800 : in10 = GF_MUL( in10, 1 ); \
3326 280800 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
3327 280800 : in11 = GF_MUL( in11, 1 ); \
3328 280800 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
3329 280800 : in12 = GF_MUL( in12, 1 ); \
3330 280800 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
3331 280800 : in13 = GF_MUL( in13, 1 ); \
3332 280800 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
3333 280800 : in14 = GF_MUL( in14, 1 ); \
3334 280800 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
3335 280800 : in15 = GF_MUL( in15, 1 ); \
3336 280800 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
3337 280800 : in16 = GF_MUL( in16, 1 ); \
3338 280800 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
3339 280800 : in17 = GF_MUL( in17, 1 ); \
3340 280800 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
3341 280800 : in18 = GF_MUL( in18, 1 ); \
3342 280800 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
3343 280800 : in19 = GF_MUL( in19, 1 ); \
3344 280800 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
3345 280800 : in20 = GF_MUL( in20, 1 ); \
3346 280800 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
3347 280800 : in21 = GF_MUL( in21, 1 ); \
3348 280800 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
3349 280800 : in22 = GF_MUL( in22, 1 ); \
3350 280800 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
3351 280800 : in23 = GF_MUL( in23, 1 ); \
3352 280800 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
3353 280800 : in24 = GF_MUL( in24, 1 ); \
3354 280800 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
3355 280800 : in25 = GF_MUL( in25, 1 ); \
3356 280800 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
3357 280800 : in26 = GF_MUL( in26, 1 ); \
3358 280800 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
3359 280800 : in27 = GF_MUL( in27, 1 ); \
3360 280800 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
3361 280800 : in28 = GF_MUL( in28, 1 ); \
3362 280800 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
3363 280800 : in29 = GF_MUL( in29, 1 ); \
3364 280800 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
3365 280800 : in30 = GF_MUL( in30, 1 ); \
3366 280800 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
3367 280800 : in31 = GF_MUL( in31, 1 ); \
3368 280800 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
3369 280800 : } while( 0 )
3370 :
3371 : void fd_reedsol_ppt_64_37( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
3372 : #define FD_REEDSOL_PPT_IMPL_64_37( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
3373 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
3374 280992 : do { \
3375 280992 : gf_t scratch_10, scratch_11, scratch_12, scratch_16, scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_37, scratch_38, scratch_39, scratch_40, scratch_41, scratch_42, scratch_43; \
3376 280992 : gf_t scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58; \
3377 280992 : gf_t scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
3378 280992 : scratch_37 = in37; \
3379 280992 : in37 = GF_MUL( in37, 1 ); \
3380 280992 : scratch_38 = in38; \
3381 280992 : in38 = GF_MUL( in38, 1 ); \
3382 280992 : scratch_39 = in39; \
3383 280992 : in39 = GF_MUL( in39, 1 ); \
3384 280992 : scratch_40 = in40; \
3385 280992 : in40 = GF_MUL( in40, 1 ); \
3386 280992 : scratch_41 = in41; \
3387 280992 : in41 = GF_MUL( in41, 1 ); \
3388 280992 : scratch_42 = in42; \
3389 280992 : in42 = GF_MUL( in42, 1 ); \
3390 280992 : scratch_43 = in43; \
3391 280992 : in43 = GF_MUL( in43, 1 ); \
3392 280992 : scratch_44 = in44; \
3393 280992 : in44 = GF_MUL( in44, 1 ); \
3394 280992 : scratch_45 = in45; \
3395 280992 : in45 = GF_MUL( in45, 1 ); \
3396 280992 : scratch_46 = in46; \
3397 280992 : in46 = GF_MUL( in46, 1 ); \
3398 280992 : scratch_47 = in47; \
3399 280992 : in47 = GF_MUL( in47, 1 ); \
3400 280992 : scratch_48 = in48; \
3401 280992 : in48 = GF_MUL( in48, 1 ); \
3402 280992 : scratch_49 = in49; \
3403 280992 : in49 = GF_MUL( in49, 1 ); \
3404 280992 : scratch_50 = in50; \
3405 280992 : in50 = GF_MUL( in50, 1 ); \
3406 280992 : scratch_51 = in51; \
3407 280992 : in51 = GF_MUL( in51, 1 ); \
3408 280992 : scratch_52 = in52; \
3409 280992 : in52 = GF_MUL( in52, 1 ); \
3410 280992 : scratch_53 = in53; \
3411 280992 : in53 = GF_MUL( in53, 1 ); \
3412 280992 : scratch_54 = in54; \
3413 280992 : in54 = GF_MUL( in54, 1 ); \
3414 280992 : scratch_55 = in55; \
3415 280992 : in55 = GF_MUL( in55, 1 ); \
3416 280992 : scratch_56 = in56; \
3417 280992 : in56 = GF_MUL( in56, 1 ); \
3418 280992 : scratch_57 = in57; \
3419 280992 : in57 = GF_MUL( in57, 1 ); \
3420 280992 : scratch_58 = in58; \
3421 280992 : in58 = GF_MUL( in58, 1 ); \
3422 280992 : scratch_59 = in59; \
3423 280992 : in59 = GF_MUL( in59, 1 ); \
3424 280992 : scratch_60 = in60; \
3425 280992 : in60 = GF_MUL( in60, 1 ); \
3426 280992 : scratch_61 = in61; \
3427 280992 : in61 = GF_MUL( in61, 1 ); \
3428 280992 : scratch_62 = in62; \
3429 280992 : in62 = GF_MUL( in62, 1 ); \
3430 280992 : scratch_63 = in63; \
3431 280992 : in63 = GF_MUL( in63, 1 ); \
3432 280992 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
3433 280992 : in37 = GF_ADD( GF_MUL( in05, 1 ), in37 ); \
3434 280992 : in38 = GF_ADD( GF_MUL( in06, 1 ), in38 ); \
3435 280992 : in39 = GF_ADD( GF_MUL( in07, 1 ), in39 ); \
3436 280992 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
3437 280992 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
3438 280992 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
3439 280992 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
3440 280992 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
3441 280992 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
3442 280992 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
3443 280992 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
3444 280992 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
3445 280992 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
3446 280992 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
3447 280992 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
3448 280992 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
3449 280992 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
3450 280992 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
3451 280992 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
3452 280992 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
3453 280992 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
3454 280992 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
3455 280992 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
3456 280992 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
3457 280992 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
3458 280992 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
3459 280992 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
3460 280992 : scratch_16 = in48; \
3461 280992 : in48 = GF_MUL( in48, 1 ); \
3462 280992 : scratch_17 = in49; \
3463 280992 : in49 = GF_MUL( in49, 1 ); \
3464 280992 : scratch_18 = in50; \
3465 280992 : in50 = GF_MUL( in50, 1 ); \
3466 280992 : scratch_19 = in51; \
3467 280992 : in51 = GF_MUL( in51, 1 ); \
3468 280992 : scratch_20 = in52; \
3469 280992 : in52 = GF_MUL( in52, 1 ); \
3470 280992 : GF_MUL22( in37, in53, 1, 71, 1, 70 ); \
3471 280992 : GF_MUL22( in38, in54, 1, 71, 1, 70 ); \
3472 280992 : GF_MUL22( in39, in55, 1, 71, 1, 70 ); \
3473 280992 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
3474 280992 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
3475 280992 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
3476 280992 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
3477 280992 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
3478 280992 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
3479 280992 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
3480 280992 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
3481 280992 : scratch_8 = in40; \
3482 280992 : in40 = GF_MUL( in40, 1 ); \
3483 280992 : scratch_9 = in41; \
3484 280992 : in41 = GF_MUL( in41, 1 ); \
3485 280992 : scratch_10 = in42; \
3486 280992 : in42 = GF_MUL( in42, 1 ); \
3487 280992 : scratch_11 = in43; \
3488 280992 : in43 = GF_MUL( in43, 1 ); \
3489 280992 : scratch_12 = in44; \
3490 280992 : in44 = GF_MUL( in44, 1 ); \
3491 280992 : GF_MUL22( in37, in45, 1, 174, 1, 175 ); \
3492 280992 : GF_MUL22( in38, in46, 1, 174, 1, 175 ); \
3493 280992 : GF_MUL22( in39, in47, 1, 174, 1, 175 ); \
3494 280992 : scratch_5 = in37; \
3495 280992 : in37 = GF_MUL( in37, 1 ); \
3496 280992 : scratch_6 = in38; \
3497 280992 : in38 = GF_MUL( in38, 1 ); \
3498 280992 : scratch_7 = in39; \
3499 280992 : in39 = GF_MUL( in39, 1 ); \
3500 280992 : FD_REEDSOL_GENERATE_IFFT( 4, 32, in32, in33, in34, in35 ); \
3501 280992 : in37 = GF_ADD( GF_MUL( in33, 1 ), in37 ); \
3502 280992 : in38 = GF_ADD( GF_MUL( in34, 1 ), in38 ); \
3503 280992 : in39 = GF_ADD( GF_MUL( in35, 1 ), in39 ); \
3504 280992 : scratch_2 = in38; \
3505 280992 : in38 = GF_MUL( in38, 1 ); \
3506 280992 : GF_MUL22( in37, in39, 1, 235, 1, 234 ); \
3507 280992 : GF_MUL22( in36, in37, 1, 36, 1, 1 ); \
3508 280992 : in38 = GF_ADD( GF_MUL( in36, 1 ), in38 ); \
3509 280992 : GF_MUL22( in38, in39, 1, 38, 1, 39 ); \
3510 280992 : in36 = GF_MUL( in36, 1 ); \
3511 280992 : in36 = GF_ADD( GF_MUL( scratch_2, 235 ), in36 ); \
3512 280992 : GF_MUL22( in32, in36, 39, 38, 1, 1 ); \
3513 280992 : in33 = GF_MUL( in33, 1 ); \
3514 280992 : in33 = GF_ADD( GF_MUL( scratch_5, 38 ), in33 ); \
3515 280992 : in34 = GF_MUL( in34, 1 ); \
3516 280992 : in34 = GF_ADD( GF_MUL( scratch_6, 38 ), in34 ); \
3517 280992 : in35 = GF_MUL( in35, 1 ); \
3518 280992 : in35 = GF_ADD( GF_MUL( scratch_7, 38 ), in35 ); \
3519 280992 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
3520 280992 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
3521 280992 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
3522 280992 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
3523 280992 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
3524 280992 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
3525 280992 : in32 = GF_MUL( in32, 1 ); \
3526 280992 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
3527 280992 : in33 = GF_MUL( in33, 1 ); \
3528 280992 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
3529 280992 : in34 = GF_MUL( in34, 1 ); \
3530 280992 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
3531 280992 : in35 = GF_MUL( in35, 1 ); \
3532 280992 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
3533 280992 : in36 = GF_MUL( in36, 1 ); \
3534 280992 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
3535 280992 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
3536 280992 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
3537 280992 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
3538 280992 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
3539 280992 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
3540 280992 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
3541 280992 : in32 = GF_MUL( in32, 1 ); \
3542 280992 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
3543 280992 : in33 = GF_MUL( in33, 1 ); \
3544 280992 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
3545 280992 : in34 = GF_MUL( in34, 1 ); \
3546 280992 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
3547 280992 : in35 = GF_MUL( in35, 1 ); \
3548 280992 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
3549 280992 : in36 = GF_MUL( in36, 1 ); \
3550 280992 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
3551 280992 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
3552 280992 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
3553 280992 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
3554 280992 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
3555 280992 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
3556 280992 : in05 = GF_MUL( in05, 1 ); \
3557 280992 : in05 = GF_ADD( GF_MUL( scratch_37, 0 ), in05 ); \
3558 280992 : in06 = GF_MUL( in06, 1 ); \
3559 280992 : in06 = GF_ADD( GF_MUL( scratch_38, 0 ), in06 ); \
3560 280992 : in07 = GF_MUL( in07, 1 ); \
3561 280992 : in07 = GF_ADD( GF_MUL( scratch_39, 0 ), in07 ); \
3562 280992 : in08 = GF_MUL( in08, 1 ); \
3563 280992 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
3564 280992 : in09 = GF_MUL( in09, 1 ); \
3565 280992 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
3566 280992 : in10 = GF_MUL( in10, 1 ); \
3567 280992 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
3568 280992 : in11 = GF_MUL( in11, 1 ); \
3569 280992 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
3570 280992 : in12 = GF_MUL( in12, 1 ); \
3571 280992 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
3572 280992 : in13 = GF_MUL( in13, 1 ); \
3573 280992 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
3574 280992 : in14 = GF_MUL( in14, 1 ); \
3575 280992 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
3576 280992 : in15 = GF_MUL( in15, 1 ); \
3577 280992 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
3578 280992 : in16 = GF_MUL( in16, 1 ); \
3579 280992 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
3580 280992 : in17 = GF_MUL( in17, 1 ); \
3581 280992 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
3582 280992 : in18 = GF_MUL( in18, 1 ); \
3583 280992 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
3584 280992 : in19 = GF_MUL( in19, 1 ); \
3585 280992 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
3586 280992 : in20 = GF_MUL( in20, 1 ); \
3587 280992 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
3588 280992 : in21 = GF_MUL( in21, 1 ); \
3589 280992 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
3590 280992 : in22 = GF_MUL( in22, 1 ); \
3591 280992 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
3592 280992 : in23 = GF_MUL( in23, 1 ); \
3593 280992 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
3594 280992 : in24 = GF_MUL( in24, 1 ); \
3595 280992 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
3596 280992 : in25 = GF_MUL( in25, 1 ); \
3597 280992 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
3598 280992 : in26 = GF_MUL( in26, 1 ); \
3599 280992 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
3600 280992 : in27 = GF_MUL( in27, 1 ); \
3601 280992 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
3602 280992 : in28 = GF_MUL( in28, 1 ); \
3603 280992 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
3604 280992 : in29 = GF_MUL( in29, 1 ); \
3605 280992 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
3606 280992 : in30 = GF_MUL( in30, 1 ); \
3607 280992 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
3608 280992 : in31 = GF_MUL( in31, 1 ); \
3609 280992 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
3610 280992 : } while( 0 )
3611 :
3612 : void fd_reedsol_ppt_64_38( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
3613 : #define FD_REEDSOL_PPT_IMPL_64_38( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
3614 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
3615 210720 : do { \
3616 210720 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_16, scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_3, scratch_38, scratch_39, scratch_40, scratch_41; \
3617 210720 : gf_t scratch_42, scratch_43, scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57; \
3618 210720 : gf_t scratch_58, scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
3619 210720 : scratch_38 = in38; \
3620 210720 : in38 = GF_MUL( in38, 1 ); \
3621 210720 : scratch_39 = in39; \
3622 210720 : in39 = GF_MUL( in39, 1 ); \
3623 210720 : scratch_40 = in40; \
3624 210720 : in40 = GF_MUL( in40, 1 ); \
3625 210720 : scratch_41 = in41; \
3626 210720 : in41 = GF_MUL( in41, 1 ); \
3627 210720 : scratch_42 = in42; \
3628 210720 : in42 = GF_MUL( in42, 1 ); \
3629 210720 : scratch_43 = in43; \
3630 210720 : in43 = GF_MUL( in43, 1 ); \
3631 210720 : scratch_44 = in44; \
3632 210720 : in44 = GF_MUL( in44, 1 ); \
3633 210720 : scratch_45 = in45; \
3634 210720 : in45 = GF_MUL( in45, 1 ); \
3635 210720 : scratch_46 = in46; \
3636 210720 : in46 = GF_MUL( in46, 1 ); \
3637 210720 : scratch_47 = in47; \
3638 210720 : in47 = GF_MUL( in47, 1 ); \
3639 210720 : scratch_48 = in48; \
3640 210720 : in48 = GF_MUL( in48, 1 ); \
3641 210720 : scratch_49 = in49; \
3642 210720 : in49 = GF_MUL( in49, 1 ); \
3643 210720 : scratch_50 = in50; \
3644 210720 : in50 = GF_MUL( in50, 1 ); \
3645 210720 : scratch_51 = in51; \
3646 210720 : in51 = GF_MUL( in51, 1 ); \
3647 210720 : scratch_52 = in52; \
3648 210720 : in52 = GF_MUL( in52, 1 ); \
3649 210720 : scratch_53 = in53; \
3650 210720 : in53 = GF_MUL( in53, 1 ); \
3651 210720 : scratch_54 = in54; \
3652 210720 : in54 = GF_MUL( in54, 1 ); \
3653 210720 : scratch_55 = in55; \
3654 210720 : in55 = GF_MUL( in55, 1 ); \
3655 210720 : scratch_56 = in56; \
3656 210720 : in56 = GF_MUL( in56, 1 ); \
3657 210720 : scratch_57 = in57; \
3658 210720 : in57 = GF_MUL( in57, 1 ); \
3659 210720 : scratch_58 = in58; \
3660 210720 : in58 = GF_MUL( in58, 1 ); \
3661 210720 : scratch_59 = in59; \
3662 210720 : in59 = GF_MUL( in59, 1 ); \
3663 210720 : scratch_60 = in60; \
3664 210720 : in60 = GF_MUL( in60, 1 ); \
3665 210720 : scratch_61 = in61; \
3666 210720 : in61 = GF_MUL( in61, 1 ); \
3667 210720 : scratch_62 = in62; \
3668 210720 : in62 = GF_MUL( in62, 1 ); \
3669 210720 : scratch_63 = in63; \
3670 210720 : in63 = GF_MUL( in63, 1 ); \
3671 210720 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
3672 210720 : in38 = GF_ADD( GF_MUL( in06, 1 ), in38 ); \
3673 210720 : in39 = GF_ADD( GF_MUL( in07, 1 ), in39 ); \
3674 210720 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
3675 210720 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
3676 210720 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
3677 210720 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
3678 210720 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
3679 210720 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
3680 210720 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
3681 210720 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
3682 210720 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
3683 210720 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
3684 210720 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
3685 210720 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
3686 210720 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
3687 210720 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
3688 210720 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
3689 210720 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
3690 210720 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
3691 210720 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
3692 210720 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
3693 210720 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
3694 210720 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
3695 210720 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
3696 210720 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
3697 210720 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
3698 210720 : scratch_16 = in48; \
3699 210720 : in48 = GF_MUL( in48, 1 ); \
3700 210720 : scratch_17 = in49; \
3701 210720 : in49 = GF_MUL( in49, 1 ); \
3702 210720 : scratch_18 = in50; \
3703 210720 : in50 = GF_MUL( in50, 1 ); \
3704 210720 : scratch_19 = in51; \
3705 210720 : in51 = GF_MUL( in51, 1 ); \
3706 210720 : scratch_20 = in52; \
3707 210720 : in52 = GF_MUL( in52, 1 ); \
3708 210720 : scratch_21 = in53; \
3709 210720 : in53 = GF_MUL( in53, 1 ); \
3710 210720 : GF_MUL22( in38, in54, 1, 71, 1, 70 ); \
3711 210720 : GF_MUL22( in39, in55, 1, 71, 1, 70 ); \
3712 210720 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
3713 210720 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
3714 210720 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
3715 210720 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
3716 210720 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
3717 210720 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
3718 210720 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
3719 210720 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
3720 210720 : scratch_8 = in40; \
3721 210720 : in40 = GF_MUL( in40, 1 ); \
3722 210720 : scratch_9 = in41; \
3723 210720 : in41 = GF_MUL( in41, 1 ); \
3724 210720 : scratch_10 = in42; \
3725 210720 : in42 = GF_MUL( in42, 1 ); \
3726 210720 : scratch_11 = in43; \
3727 210720 : in43 = GF_MUL( in43, 1 ); \
3728 210720 : scratch_12 = in44; \
3729 210720 : in44 = GF_MUL( in44, 1 ); \
3730 210720 : scratch_13 = in45; \
3731 210720 : in45 = GF_MUL( in45, 1 ); \
3732 210720 : GF_MUL22( in38, in46, 1, 174, 1, 175 ); \
3733 210720 : GF_MUL22( in39, in47, 1, 174, 1, 175 ); \
3734 210720 : scratch_6 = in38; \
3735 210720 : in38 = GF_MUL( in38, 1 ); \
3736 210720 : scratch_7 = in39; \
3737 210720 : in39 = GF_MUL( in39, 1 ); \
3738 210720 : FD_REEDSOL_GENERATE_IFFT( 4, 32, in32, in33, in34, in35 ); \
3739 210720 : in38 = GF_ADD( GF_MUL( in34, 1 ), in38 ); \
3740 210720 : in39 = GF_ADD( GF_MUL( in35, 1 ), in39 ); \
3741 210720 : scratch_2 = in38; \
3742 210720 : in38 = GF_MUL( in38, 1 ); \
3743 210720 : scratch_3 = in39; \
3744 210720 : in39 = GF_MUL( in39, 1 ); \
3745 210720 : GF_MUL22( in36, in37, 37, 36, 1, 1 ); \
3746 210720 : in38 = GF_ADD( GF_MUL( in36, 1 ), in38 ); \
3747 210720 : in39 = GF_ADD( GF_MUL( in37, 1 ), in39 ); \
3748 210720 : GF_MUL22( in38, in39, 1, 38, 1, 39 ); \
3749 210720 : in36 = GF_MUL( in36, 1 ); \
3750 210720 : in36 = GF_ADD( GF_MUL( scratch_2, 235 ), in36 ); \
3751 210720 : in37 = GF_MUL( in37, 1 ); \
3752 210720 : in37 = GF_ADD( GF_MUL( scratch_3, 235 ), in37 ); \
3753 210720 : GF_MUL22( in32, in36, 39, 38, 1, 1 ); \
3754 210720 : GF_MUL22( in33, in37, 39, 38, 1, 1 ); \
3755 210720 : in34 = GF_MUL( in34, 1 ); \
3756 210720 : in34 = GF_ADD( GF_MUL( scratch_6, 38 ), in34 ); \
3757 210720 : in35 = GF_MUL( in35, 1 ); \
3758 210720 : in35 = GF_ADD( GF_MUL( scratch_7, 38 ), in35 ); \
3759 210720 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
3760 210720 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
3761 210720 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
3762 210720 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
3763 210720 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
3764 210720 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
3765 210720 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
3766 210720 : in32 = GF_MUL( in32, 1 ); \
3767 210720 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
3768 210720 : in33 = GF_MUL( in33, 1 ); \
3769 210720 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
3770 210720 : in34 = GF_MUL( in34, 1 ); \
3771 210720 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
3772 210720 : in35 = GF_MUL( in35, 1 ); \
3773 210720 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
3774 210720 : in36 = GF_MUL( in36, 1 ); \
3775 210720 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
3776 210720 : in37 = GF_MUL( in37, 1 ); \
3777 210720 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
3778 210720 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
3779 210720 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
3780 210720 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
3781 210720 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
3782 210720 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
3783 210720 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
3784 210720 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
3785 210720 : in32 = GF_MUL( in32, 1 ); \
3786 210720 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
3787 210720 : in33 = GF_MUL( in33, 1 ); \
3788 210720 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
3789 210720 : in34 = GF_MUL( in34, 1 ); \
3790 210720 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
3791 210720 : in35 = GF_MUL( in35, 1 ); \
3792 210720 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
3793 210720 : in36 = GF_MUL( in36, 1 ); \
3794 210720 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
3795 210720 : in37 = GF_MUL( in37, 1 ); \
3796 210720 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
3797 210720 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
3798 210720 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
3799 210720 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
3800 210720 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
3801 210720 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
3802 210720 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
3803 210720 : in06 = GF_MUL( in06, 1 ); \
3804 210720 : in06 = GF_ADD( GF_MUL( scratch_38, 0 ), in06 ); \
3805 210720 : in07 = GF_MUL( in07, 1 ); \
3806 210720 : in07 = GF_ADD( GF_MUL( scratch_39, 0 ), in07 ); \
3807 210720 : in08 = GF_MUL( in08, 1 ); \
3808 210720 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
3809 210720 : in09 = GF_MUL( in09, 1 ); \
3810 210720 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
3811 210720 : in10 = GF_MUL( in10, 1 ); \
3812 210720 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
3813 210720 : in11 = GF_MUL( in11, 1 ); \
3814 210720 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
3815 210720 : in12 = GF_MUL( in12, 1 ); \
3816 210720 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
3817 210720 : in13 = GF_MUL( in13, 1 ); \
3818 210720 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
3819 210720 : in14 = GF_MUL( in14, 1 ); \
3820 210720 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
3821 210720 : in15 = GF_MUL( in15, 1 ); \
3822 210720 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
3823 210720 : in16 = GF_MUL( in16, 1 ); \
3824 210720 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
3825 210720 : in17 = GF_MUL( in17, 1 ); \
3826 210720 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
3827 210720 : in18 = GF_MUL( in18, 1 ); \
3828 210720 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
3829 210720 : in19 = GF_MUL( in19, 1 ); \
3830 210720 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
3831 210720 : in20 = GF_MUL( in20, 1 ); \
3832 210720 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
3833 210720 : in21 = GF_MUL( in21, 1 ); \
3834 210720 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
3835 210720 : in22 = GF_MUL( in22, 1 ); \
3836 210720 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
3837 210720 : in23 = GF_MUL( in23, 1 ); \
3838 210720 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
3839 210720 : in24 = GF_MUL( in24, 1 ); \
3840 210720 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
3841 210720 : in25 = GF_MUL( in25, 1 ); \
3842 210720 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
3843 210720 : in26 = GF_MUL( in26, 1 ); \
3844 210720 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
3845 210720 : in27 = GF_MUL( in27, 1 ); \
3846 210720 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
3847 210720 : in28 = GF_MUL( in28, 1 ); \
3848 210720 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
3849 210720 : in29 = GF_MUL( in29, 1 ); \
3850 210720 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
3851 210720 : in30 = GF_MUL( in30, 1 ); \
3852 210720 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
3853 210720 : in31 = GF_MUL( in31, 1 ); \
3854 210720 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
3855 210720 : } while( 0 )
3856 :
3857 : void fd_reedsol_ppt_64_39( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
3858 : #define FD_REEDSOL_PPT_IMPL_64_39( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
3859 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
3860 187200 : do { \
3861 187200 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_16, scratch_17, scratch_18, scratch_19, scratch_20, scratch_21, scratch_22, scratch_3, scratch_39, scratch_40, scratch_41; \
3862 187200 : gf_t scratch_42, scratch_43, scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57; \
3863 187200 : gf_t scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
3864 187200 : scratch_39 = in39; \
3865 187200 : in39 = GF_MUL( in39, 1 ); \
3866 187200 : scratch_40 = in40; \
3867 187200 : in40 = GF_MUL( in40, 1 ); \
3868 187200 : scratch_41 = in41; \
3869 187200 : in41 = GF_MUL( in41, 1 ); \
3870 187200 : scratch_42 = in42; \
3871 187200 : in42 = GF_MUL( in42, 1 ); \
3872 187200 : scratch_43 = in43; \
3873 187200 : in43 = GF_MUL( in43, 1 ); \
3874 187200 : scratch_44 = in44; \
3875 187200 : in44 = GF_MUL( in44, 1 ); \
3876 187200 : scratch_45 = in45; \
3877 187200 : in45 = GF_MUL( in45, 1 ); \
3878 187200 : scratch_46 = in46; \
3879 187200 : in46 = GF_MUL( in46, 1 ); \
3880 187200 : scratch_47 = in47; \
3881 187200 : in47 = GF_MUL( in47, 1 ); \
3882 187200 : scratch_48 = in48; \
3883 187200 : in48 = GF_MUL( in48, 1 ); \
3884 187200 : scratch_49 = in49; \
3885 187200 : in49 = GF_MUL( in49, 1 ); \
3886 187200 : scratch_50 = in50; \
3887 187200 : in50 = GF_MUL( in50, 1 ); \
3888 187200 : scratch_51 = in51; \
3889 187200 : in51 = GF_MUL( in51, 1 ); \
3890 187200 : scratch_52 = in52; \
3891 187200 : in52 = GF_MUL( in52, 1 ); \
3892 187200 : scratch_53 = in53; \
3893 187200 : in53 = GF_MUL( in53, 1 ); \
3894 187200 : scratch_54 = in54; \
3895 187200 : in54 = GF_MUL( in54, 1 ); \
3896 187200 : scratch_55 = in55; \
3897 187200 : in55 = GF_MUL( in55, 1 ); \
3898 187200 : scratch_56 = in56; \
3899 187200 : in56 = GF_MUL( in56, 1 ); \
3900 187200 : scratch_57 = in57; \
3901 187200 : in57 = GF_MUL( in57, 1 ); \
3902 187200 : scratch_58 = in58; \
3903 187200 : in58 = GF_MUL( in58, 1 ); \
3904 187200 : scratch_59 = in59; \
3905 187200 : in59 = GF_MUL( in59, 1 ); \
3906 187200 : scratch_60 = in60; \
3907 187200 : in60 = GF_MUL( in60, 1 ); \
3908 187200 : scratch_61 = in61; \
3909 187200 : in61 = GF_MUL( in61, 1 ); \
3910 187200 : scratch_62 = in62; \
3911 187200 : in62 = GF_MUL( in62, 1 ); \
3912 187200 : scratch_63 = in63; \
3913 187200 : in63 = GF_MUL( in63, 1 ); \
3914 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
3915 187200 : in39 = GF_ADD( GF_MUL( in07, 1 ), in39 ); \
3916 187200 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
3917 187200 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
3918 187200 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
3919 187200 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
3920 187200 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
3921 187200 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
3922 187200 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
3923 187200 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
3924 187200 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
3925 187200 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
3926 187200 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
3927 187200 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
3928 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
3929 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
3930 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
3931 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
3932 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
3933 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
3934 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
3935 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
3936 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
3937 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
3938 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
3939 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
3940 187200 : scratch_16 = in48; \
3941 187200 : in48 = GF_MUL( in48, 1 ); \
3942 187200 : scratch_17 = in49; \
3943 187200 : in49 = GF_MUL( in49, 1 ); \
3944 187200 : scratch_18 = in50; \
3945 187200 : in50 = GF_MUL( in50, 1 ); \
3946 187200 : scratch_19 = in51; \
3947 187200 : in51 = GF_MUL( in51, 1 ); \
3948 187200 : scratch_20 = in52; \
3949 187200 : in52 = GF_MUL( in52, 1 ); \
3950 187200 : scratch_21 = in53; \
3951 187200 : in53 = GF_MUL( in53, 1 ); \
3952 187200 : scratch_22 = in54; \
3953 187200 : in54 = GF_MUL( in54, 1 ); \
3954 187200 : GF_MUL22( in39, in55, 1, 71, 1, 70 ); \
3955 187200 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
3956 187200 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
3957 187200 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
3958 187200 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
3959 187200 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
3960 187200 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
3961 187200 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
3962 187200 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
3963 187200 : scratch_8 = in40; \
3964 187200 : in40 = GF_MUL( in40, 1 ); \
3965 187200 : scratch_9 = in41; \
3966 187200 : in41 = GF_MUL( in41, 1 ); \
3967 187200 : scratch_10 = in42; \
3968 187200 : in42 = GF_MUL( in42, 1 ); \
3969 187200 : scratch_11 = in43; \
3970 187200 : in43 = GF_MUL( in43, 1 ); \
3971 187200 : scratch_12 = in44; \
3972 187200 : in44 = GF_MUL( in44, 1 ); \
3973 187200 : scratch_13 = in45; \
3974 187200 : in45 = GF_MUL( in45, 1 ); \
3975 187200 : scratch_14 = in46; \
3976 187200 : in46 = GF_MUL( in46, 1 ); \
3977 187200 : GF_MUL22( in39, in47, 1, 174, 1, 175 ); \
3978 187200 : scratch_7 = in39; \
3979 187200 : in39 = GF_MUL( in39, 1 ); \
3980 187200 : FD_REEDSOL_GENERATE_IFFT( 4, 32, in32, in33, in34, in35 ); \
3981 187200 : in39 = GF_ADD( GF_MUL( in35, 1 ), in39 ); \
3982 187200 : scratch_3 = in39; \
3983 187200 : in39 = GF_MUL( in39, 1 ); \
3984 187200 : GF_MUL22( in36, in37, 37, 36, 1, 1 ); \
3985 187200 : in39 = GF_ADD( GF_MUL( in37, 1 ), in39 ); \
3986 187200 : GF_MUL22( in38, in39, 1, 38, 1, 1 ); \
3987 187200 : GF_MUL22( in36, in38, 234, 235, 1, 1 ); \
3988 187200 : in37 = GF_MUL( in37, 1 ); \
3989 187200 : in37 = GF_ADD( GF_MUL( scratch_3, 235 ), in37 ); \
3990 187200 : GF_MUL22( in32, in36, 39, 38, 1, 1 ); \
3991 187200 : GF_MUL22( in33, in37, 39, 38, 1, 1 ); \
3992 187200 : GF_MUL22( in34, in38, 39, 38, 1, 1 ); \
3993 187200 : in35 = GF_MUL( in35, 1 ); \
3994 187200 : in35 = GF_ADD( GF_MUL( scratch_7, 38 ), in35 ); \
3995 187200 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
3996 187200 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
3997 187200 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
3998 187200 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
3999 187200 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
4000 187200 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
4001 187200 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
4002 187200 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
4003 187200 : in32 = GF_MUL( in32, 1 ); \
4004 187200 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
4005 187200 : in33 = GF_MUL( in33, 1 ); \
4006 187200 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
4007 187200 : in34 = GF_MUL( in34, 1 ); \
4008 187200 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
4009 187200 : in35 = GF_MUL( in35, 1 ); \
4010 187200 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
4011 187200 : in36 = GF_MUL( in36, 1 ); \
4012 187200 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
4013 187200 : in37 = GF_MUL( in37, 1 ); \
4014 187200 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
4015 187200 : in38 = GF_MUL( in38, 1 ); \
4016 187200 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
4017 187200 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
4018 187200 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
4019 187200 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
4020 187200 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
4021 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
4022 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
4023 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
4024 187200 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
4025 187200 : in32 = GF_MUL( in32, 1 ); \
4026 187200 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
4027 187200 : in33 = GF_MUL( in33, 1 ); \
4028 187200 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
4029 187200 : in34 = GF_MUL( in34, 1 ); \
4030 187200 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
4031 187200 : in35 = GF_MUL( in35, 1 ); \
4032 187200 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
4033 187200 : in36 = GF_MUL( in36, 1 ); \
4034 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
4035 187200 : in37 = GF_MUL( in37, 1 ); \
4036 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
4037 187200 : in38 = GF_MUL( in38, 1 ); \
4038 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
4039 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
4040 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
4041 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
4042 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
4043 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
4044 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
4045 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
4046 187200 : in07 = GF_MUL( in07, 1 ); \
4047 187200 : in07 = GF_ADD( GF_MUL( scratch_39, 0 ), in07 ); \
4048 187200 : in08 = GF_MUL( in08, 1 ); \
4049 187200 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
4050 187200 : in09 = GF_MUL( in09, 1 ); \
4051 187200 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
4052 187200 : in10 = GF_MUL( in10, 1 ); \
4053 187200 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
4054 187200 : in11 = GF_MUL( in11, 1 ); \
4055 187200 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
4056 187200 : in12 = GF_MUL( in12, 1 ); \
4057 187200 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
4058 187200 : in13 = GF_MUL( in13, 1 ); \
4059 187200 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
4060 187200 : in14 = GF_MUL( in14, 1 ); \
4061 187200 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
4062 187200 : in15 = GF_MUL( in15, 1 ); \
4063 187200 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
4064 187200 : in16 = GF_MUL( in16, 1 ); \
4065 187200 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
4066 187200 : in17 = GF_MUL( in17, 1 ); \
4067 187200 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
4068 187200 : in18 = GF_MUL( in18, 1 ); \
4069 187200 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
4070 187200 : in19 = GF_MUL( in19, 1 ); \
4071 187200 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
4072 187200 : in20 = GF_MUL( in20, 1 ); \
4073 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
4074 187200 : in21 = GF_MUL( in21, 1 ); \
4075 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
4076 187200 : in22 = GF_MUL( in22, 1 ); \
4077 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
4078 187200 : in23 = GF_MUL( in23, 1 ); \
4079 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
4080 187200 : in24 = GF_MUL( in24, 1 ); \
4081 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
4082 187200 : in25 = GF_MUL( in25, 1 ); \
4083 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
4084 187200 : in26 = GF_MUL( in26, 1 ); \
4085 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
4086 187200 : in27 = GF_MUL( in27, 1 ); \
4087 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
4088 187200 : in28 = GF_MUL( in28, 1 ); \
4089 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
4090 187200 : in29 = GF_MUL( in29, 1 ); \
4091 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
4092 187200 : in30 = GF_MUL( in30, 1 ); \
4093 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
4094 187200 : in31 = GF_MUL( in31, 1 ); \
4095 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
4096 187200 : } while( 0 )
4097 :
4098 : void fd_reedsol_ppt_64_40( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
4099 : #define FD_REEDSOL_PPT_IMPL_64_40( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
4100 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
4101 187200 : do { \
4102 187200 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_20, scratch_21, scratch_22, scratch_23, scratch_40, scratch_41; \
4103 187200 : gf_t scratch_42, scratch_43, scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57; \
4104 187200 : gf_t scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63, scratch_8, scratch_9; \
4105 187200 : scratch_40 = in40; \
4106 187200 : in40 = GF_MUL( in40, 1 ); \
4107 187200 : scratch_41 = in41; \
4108 187200 : in41 = GF_MUL( in41, 1 ); \
4109 187200 : scratch_42 = in42; \
4110 187200 : in42 = GF_MUL( in42, 1 ); \
4111 187200 : scratch_43 = in43; \
4112 187200 : in43 = GF_MUL( in43, 1 ); \
4113 187200 : scratch_44 = in44; \
4114 187200 : in44 = GF_MUL( in44, 1 ); \
4115 187200 : scratch_45 = in45; \
4116 187200 : in45 = GF_MUL( in45, 1 ); \
4117 187200 : scratch_46 = in46; \
4118 187200 : in46 = GF_MUL( in46, 1 ); \
4119 187200 : scratch_47 = in47; \
4120 187200 : in47 = GF_MUL( in47, 1 ); \
4121 187200 : scratch_48 = in48; \
4122 187200 : in48 = GF_MUL( in48, 1 ); \
4123 187200 : scratch_49 = in49; \
4124 187200 : in49 = GF_MUL( in49, 1 ); \
4125 187200 : scratch_50 = in50; \
4126 187200 : in50 = GF_MUL( in50, 1 ); \
4127 187200 : scratch_51 = in51; \
4128 187200 : in51 = GF_MUL( in51, 1 ); \
4129 187200 : scratch_52 = in52; \
4130 187200 : in52 = GF_MUL( in52, 1 ); \
4131 187200 : scratch_53 = in53; \
4132 187200 : in53 = GF_MUL( in53, 1 ); \
4133 187200 : scratch_54 = in54; \
4134 187200 : in54 = GF_MUL( in54, 1 ); \
4135 187200 : scratch_55 = in55; \
4136 187200 : in55 = GF_MUL( in55, 1 ); \
4137 187200 : scratch_56 = in56; \
4138 187200 : in56 = GF_MUL( in56, 1 ); \
4139 187200 : scratch_57 = in57; \
4140 187200 : in57 = GF_MUL( in57, 1 ); \
4141 187200 : scratch_58 = in58; \
4142 187200 : in58 = GF_MUL( in58, 1 ); \
4143 187200 : scratch_59 = in59; \
4144 187200 : in59 = GF_MUL( in59, 1 ); \
4145 187200 : scratch_60 = in60; \
4146 187200 : in60 = GF_MUL( in60, 1 ); \
4147 187200 : scratch_61 = in61; \
4148 187200 : in61 = GF_MUL( in61, 1 ); \
4149 187200 : scratch_62 = in62; \
4150 187200 : in62 = GF_MUL( in62, 1 ); \
4151 187200 : scratch_63 = in63; \
4152 187200 : in63 = GF_MUL( in63, 1 ); \
4153 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
4154 187200 : in40 = GF_ADD( GF_MUL( in08, 1 ), in40 ); \
4155 187200 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
4156 187200 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
4157 187200 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
4158 187200 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
4159 187200 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
4160 187200 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
4161 187200 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
4162 187200 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
4163 187200 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
4164 187200 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
4165 187200 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
4166 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
4167 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
4168 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
4169 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
4170 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
4171 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
4172 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
4173 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
4174 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
4175 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
4176 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
4177 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
4178 187200 : scratch_16 = in48; \
4179 187200 : in48 = GF_MUL( in48, 1 ); \
4180 187200 : scratch_17 = in49; \
4181 187200 : in49 = GF_MUL( in49, 1 ); \
4182 187200 : scratch_18 = in50; \
4183 187200 : in50 = GF_MUL( in50, 1 ); \
4184 187200 : scratch_19 = in51; \
4185 187200 : in51 = GF_MUL( in51, 1 ); \
4186 187200 : scratch_20 = in52; \
4187 187200 : in52 = GF_MUL( in52, 1 ); \
4188 187200 : scratch_21 = in53; \
4189 187200 : in53 = GF_MUL( in53, 1 ); \
4190 187200 : scratch_22 = in54; \
4191 187200 : in54 = GF_MUL( in54, 1 ); \
4192 187200 : scratch_23 = in55; \
4193 187200 : in55 = GF_MUL( in55, 1 ); \
4194 187200 : GF_MUL22( in40, in56, 1, 71, 1, 70 ); \
4195 187200 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
4196 187200 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
4197 187200 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
4198 187200 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
4199 187200 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
4200 187200 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
4201 187200 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
4202 187200 : scratch_8 = in40; \
4203 187200 : in40 = GF_MUL( in40, 1 ); \
4204 187200 : scratch_9 = in41; \
4205 187200 : in41 = GF_MUL( in41, 1 ); \
4206 187200 : scratch_10 = in42; \
4207 187200 : in42 = GF_MUL( in42, 1 ); \
4208 187200 : scratch_11 = in43; \
4209 187200 : in43 = GF_MUL( in43, 1 ); \
4210 187200 : scratch_12 = in44; \
4211 187200 : in44 = GF_MUL( in44, 1 ); \
4212 187200 : scratch_13 = in45; \
4213 187200 : in45 = GF_MUL( in45, 1 ); \
4214 187200 : scratch_14 = in46; \
4215 187200 : in46 = GF_MUL( in46, 1 ); \
4216 187200 : scratch_15 = in47; \
4217 187200 : in47 = GF_MUL( in47, 1 ); \
4218 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
4219 187200 : in40 = GF_ADD( GF_MUL( in32, 1 ), in40 ); \
4220 187200 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
4221 187200 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
4222 187200 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
4223 187200 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
4224 187200 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
4225 187200 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
4226 187200 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
4227 187200 : FD_REEDSOL_GENERATE_FFT( 8, 40, in40, in41, in42, in43, in44, in45, in46, in47 ); \
4228 187200 : in32 = GF_MUL( in32, 1 ); \
4229 187200 : in32 = GF_ADD( GF_MUL( scratch_8, 174 ), in32 ); \
4230 187200 : in33 = GF_MUL( in33, 1 ); \
4231 187200 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
4232 187200 : in34 = GF_MUL( in34, 1 ); \
4233 187200 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
4234 187200 : in35 = GF_MUL( in35, 1 ); \
4235 187200 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
4236 187200 : in36 = GF_MUL( in36, 1 ); \
4237 187200 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
4238 187200 : in37 = GF_MUL( in37, 1 ); \
4239 187200 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
4240 187200 : in38 = GF_MUL( in38, 1 ); \
4241 187200 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
4242 187200 : in39 = GF_MUL( in39, 1 ); \
4243 187200 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
4244 187200 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
4245 187200 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
4246 187200 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
4247 187200 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
4248 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
4249 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
4250 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
4251 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
4252 187200 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
4253 187200 : in32 = GF_MUL( in32, 1 ); \
4254 187200 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
4255 187200 : in33 = GF_MUL( in33, 1 ); \
4256 187200 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
4257 187200 : in34 = GF_MUL( in34, 1 ); \
4258 187200 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
4259 187200 : in35 = GF_MUL( in35, 1 ); \
4260 187200 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
4261 187200 : in36 = GF_MUL( in36, 1 ); \
4262 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
4263 187200 : in37 = GF_MUL( in37, 1 ); \
4264 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
4265 187200 : in38 = GF_MUL( in38, 1 ); \
4266 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
4267 187200 : in39 = GF_MUL( in39, 1 ); \
4268 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
4269 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
4270 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
4271 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
4272 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
4273 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
4274 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
4275 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
4276 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
4277 187200 : in08 = GF_MUL( in08, 1 ); \
4278 187200 : in08 = GF_ADD( GF_MUL( scratch_40, 0 ), in08 ); \
4279 187200 : in09 = GF_MUL( in09, 1 ); \
4280 187200 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
4281 187200 : in10 = GF_MUL( in10, 1 ); \
4282 187200 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
4283 187200 : in11 = GF_MUL( in11, 1 ); \
4284 187200 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
4285 187200 : in12 = GF_MUL( in12, 1 ); \
4286 187200 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
4287 187200 : in13 = GF_MUL( in13, 1 ); \
4288 187200 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
4289 187200 : in14 = GF_MUL( in14, 1 ); \
4290 187200 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
4291 187200 : in15 = GF_MUL( in15, 1 ); \
4292 187200 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
4293 187200 : in16 = GF_MUL( in16, 1 ); \
4294 187200 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
4295 187200 : in17 = GF_MUL( in17, 1 ); \
4296 187200 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
4297 187200 : in18 = GF_MUL( in18, 1 ); \
4298 187200 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
4299 187200 : in19 = GF_MUL( in19, 1 ); \
4300 187200 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
4301 187200 : in20 = GF_MUL( in20, 1 ); \
4302 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
4303 187200 : in21 = GF_MUL( in21, 1 ); \
4304 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
4305 187200 : in22 = GF_MUL( in22, 1 ); \
4306 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
4307 187200 : in23 = GF_MUL( in23, 1 ); \
4308 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
4309 187200 : in24 = GF_MUL( in24, 1 ); \
4310 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
4311 187200 : in25 = GF_MUL( in25, 1 ); \
4312 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
4313 187200 : in26 = GF_MUL( in26, 1 ); \
4314 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
4315 187200 : in27 = GF_MUL( in27, 1 ); \
4316 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
4317 187200 : in28 = GF_MUL( in28, 1 ); \
4318 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
4319 187200 : in29 = GF_MUL( in29, 1 ); \
4320 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
4321 187200 : in30 = GF_MUL( in30, 1 ); \
4322 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
4323 187200 : in31 = GF_MUL( in31, 1 ); \
4324 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
4325 187200 : } while( 0 )
4326 :
4327 : void fd_reedsol_ppt_64_41( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
4328 : #define FD_REEDSOL_PPT_IMPL_64_41( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
4329 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
4330 187296 : do { \
4331 187296 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24; \
4332 187296 : gf_t scratch_4, scratch_41, scratch_42, scratch_43, scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55; \
4333 187296 : gf_t scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63, scratch_9; \
4334 187296 : scratch_41 = in41; \
4335 187296 : in41 = GF_MUL( in41, 1 ); \
4336 187296 : scratch_42 = in42; \
4337 187296 : in42 = GF_MUL( in42, 1 ); \
4338 187296 : scratch_43 = in43; \
4339 187296 : in43 = GF_MUL( in43, 1 ); \
4340 187296 : scratch_44 = in44; \
4341 187296 : in44 = GF_MUL( in44, 1 ); \
4342 187296 : scratch_45 = in45; \
4343 187296 : in45 = GF_MUL( in45, 1 ); \
4344 187296 : scratch_46 = in46; \
4345 187296 : in46 = GF_MUL( in46, 1 ); \
4346 187296 : scratch_47 = in47; \
4347 187296 : in47 = GF_MUL( in47, 1 ); \
4348 187296 : scratch_48 = in48; \
4349 187296 : in48 = GF_MUL( in48, 1 ); \
4350 187296 : scratch_49 = in49; \
4351 187296 : in49 = GF_MUL( in49, 1 ); \
4352 187296 : scratch_50 = in50; \
4353 187296 : in50 = GF_MUL( in50, 1 ); \
4354 187296 : scratch_51 = in51; \
4355 187296 : in51 = GF_MUL( in51, 1 ); \
4356 187296 : scratch_52 = in52; \
4357 187296 : in52 = GF_MUL( in52, 1 ); \
4358 187296 : scratch_53 = in53; \
4359 187296 : in53 = GF_MUL( in53, 1 ); \
4360 187296 : scratch_54 = in54; \
4361 187296 : in54 = GF_MUL( in54, 1 ); \
4362 187296 : scratch_55 = in55; \
4363 187296 : in55 = GF_MUL( in55, 1 ); \
4364 187296 : scratch_56 = in56; \
4365 187296 : in56 = GF_MUL( in56, 1 ); \
4366 187296 : scratch_57 = in57; \
4367 187296 : in57 = GF_MUL( in57, 1 ); \
4368 187296 : scratch_58 = in58; \
4369 187296 : in58 = GF_MUL( in58, 1 ); \
4370 187296 : scratch_59 = in59; \
4371 187296 : in59 = GF_MUL( in59, 1 ); \
4372 187296 : scratch_60 = in60; \
4373 187296 : in60 = GF_MUL( in60, 1 ); \
4374 187296 : scratch_61 = in61; \
4375 187296 : in61 = GF_MUL( in61, 1 ); \
4376 187296 : scratch_62 = in62; \
4377 187296 : in62 = GF_MUL( in62, 1 ); \
4378 187296 : scratch_63 = in63; \
4379 187296 : in63 = GF_MUL( in63, 1 ); \
4380 187296 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
4381 187296 : in41 = GF_ADD( GF_MUL( in09, 1 ), in41 ); \
4382 187296 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
4383 187296 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
4384 187296 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
4385 187296 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
4386 187296 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
4387 187296 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
4388 187296 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
4389 187296 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
4390 187296 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
4391 187296 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
4392 187296 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
4393 187296 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
4394 187296 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
4395 187296 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
4396 187296 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
4397 187296 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
4398 187296 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
4399 187296 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
4400 187296 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
4401 187296 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
4402 187296 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
4403 187296 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
4404 187296 : scratch_16 = in48; \
4405 187296 : in48 = GF_MUL( in48, 1 ); \
4406 187296 : scratch_17 = in49; \
4407 187296 : in49 = GF_MUL( in49, 1 ); \
4408 187296 : scratch_18 = in50; \
4409 187296 : in50 = GF_MUL( in50, 1 ); \
4410 187296 : scratch_19 = in51; \
4411 187296 : in51 = GF_MUL( in51, 1 ); \
4412 187296 : scratch_20 = in52; \
4413 187296 : in52 = GF_MUL( in52, 1 ); \
4414 187296 : scratch_21 = in53; \
4415 187296 : in53 = GF_MUL( in53, 1 ); \
4416 187296 : scratch_22 = in54; \
4417 187296 : in54 = GF_MUL( in54, 1 ); \
4418 187296 : scratch_23 = in55; \
4419 187296 : in55 = GF_MUL( in55, 1 ); \
4420 187296 : scratch_24 = in56; \
4421 187296 : in56 = GF_MUL( in56, 1 ); \
4422 187296 : GF_MUL22( in41, in57, 1, 71, 1, 70 ); \
4423 187296 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
4424 187296 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
4425 187296 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
4426 187296 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
4427 187296 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
4428 187296 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
4429 187296 : scratch_9 = in41; \
4430 187296 : in41 = GF_MUL( in41, 1 ); \
4431 187296 : scratch_10 = in42; \
4432 187296 : in42 = GF_MUL( in42, 1 ); \
4433 187296 : scratch_11 = in43; \
4434 187296 : in43 = GF_MUL( in43, 1 ); \
4435 187296 : scratch_12 = in44; \
4436 187296 : in44 = GF_MUL( in44, 1 ); \
4437 187296 : scratch_13 = in45; \
4438 187296 : in45 = GF_MUL( in45, 1 ); \
4439 187296 : scratch_14 = in46; \
4440 187296 : in46 = GF_MUL( in46, 1 ); \
4441 187296 : scratch_15 = in47; \
4442 187296 : in47 = GF_MUL( in47, 1 ); \
4443 187296 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
4444 187296 : in41 = GF_ADD( GF_MUL( in33, 1 ), in41 ); \
4445 187296 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
4446 187296 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
4447 187296 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
4448 187296 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
4449 187296 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
4450 187296 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
4451 187296 : scratch_4 = in44; \
4452 187296 : in44 = GF_MUL( in44, 1 ); \
4453 187296 : GF_MUL22( in41, in45, 1, 48, 1, 49 ); \
4454 187296 : GF_MUL22( in42, in46, 1, 48, 1, 49 ); \
4455 187296 : GF_MUL22( in43, in47, 1, 48, 1, 49 ); \
4456 187296 : scratch_2 = in42; \
4457 187296 : in42 = GF_MUL( in42, 1 ); \
4458 187296 : GF_MUL22( in41, in43, 1, 241, 1, 240 ); \
4459 187296 : GF_MUL22( in40, in41, 1, 40, 1, 1 ); \
4460 187296 : in42 = GF_ADD( GF_MUL( in40, 1 ), in42 ); \
4461 187296 : GF_MUL22( in42, in43, 1, 42, 1, 43 ); \
4462 187296 : in40 = GF_MUL( in40, 1 ); \
4463 187296 : in40 = GF_ADD( GF_MUL( scratch_2, 241 ), in40 ); \
4464 187296 : in44 = GF_ADD( GF_MUL( in40, 1 ), in44 ); \
4465 187296 : FD_REEDSOL_GENERATE_FFT( 4, 44, in44, in45, in46, in47 ); \
4466 187296 : in40 = GF_MUL( in40, 1 ); \
4467 187296 : in40 = GF_ADD( GF_MUL( scratch_4, 48 ), in40 ); \
4468 187296 : GF_MUL22( in32, in40, 175, 174, 1, 1 ); \
4469 187296 : in33 = GF_MUL( in33, 1 ); \
4470 187296 : in33 = GF_ADD( GF_MUL( scratch_9, 174 ), in33 ); \
4471 187296 : in34 = GF_MUL( in34, 1 ); \
4472 187296 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
4473 187296 : in35 = GF_MUL( in35, 1 ); \
4474 187296 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
4475 187296 : in36 = GF_MUL( in36, 1 ); \
4476 187296 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
4477 187296 : in37 = GF_MUL( in37, 1 ); \
4478 187296 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
4479 187296 : in38 = GF_MUL( in38, 1 ); \
4480 187296 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
4481 187296 : in39 = GF_MUL( in39, 1 ); \
4482 187296 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
4483 187296 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
4484 187296 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
4485 187296 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
4486 187296 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
4487 187296 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
4488 187296 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
4489 187296 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
4490 187296 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
4491 187296 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
4492 187296 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
4493 187296 : in32 = GF_MUL( in32, 1 ); \
4494 187296 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
4495 187296 : in33 = GF_MUL( in33, 1 ); \
4496 187296 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
4497 187296 : in34 = GF_MUL( in34, 1 ); \
4498 187296 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
4499 187296 : in35 = GF_MUL( in35, 1 ); \
4500 187296 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
4501 187296 : in36 = GF_MUL( in36, 1 ); \
4502 187296 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
4503 187296 : in37 = GF_MUL( in37, 1 ); \
4504 187296 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
4505 187296 : in38 = GF_MUL( in38, 1 ); \
4506 187296 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
4507 187296 : in39 = GF_MUL( in39, 1 ); \
4508 187296 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
4509 187296 : in40 = GF_MUL( in40, 1 ); \
4510 187296 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
4511 187296 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
4512 187296 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
4513 187296 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
4514 187296 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
4515 187296 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
4516 187296 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
4517 187296 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
4518 187296 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
4519 187296 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
4520 187296 : in09 = GF_MUL( in09, 1 ); \
4521 187296 : in09 = GF_ADD( GF_MUL( scratch_41, 0 ), in09 ); \
4522 187296 : in10 = GF_MUL( in10, 1 ); \
4523 187296 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
4524 187296 : in11 = GF_MUL( in11, 1 ); \
4525 187296 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
4526 187296 : in12 = GF_MUL( in12, 1 ); \
4527 187296 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
4528 187296 : in13 = GF_MUL( in13, 1 ); \
4529 187296 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
4530 187296 : in14 = GF_MUL( in14, 1 ); \
4531 187296 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
4532 187296 : in15 = GF_MUL( in15, 1 ); \
4533 187296 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
4534 187296 : in16 = GF_MUL( in16, 1 ); \
4535 187296 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
4536 187296 : in17 = GF_MUL( in17, 1 ); \
4537 187296 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
4538 187296 : in18 = GF_MUL( in18, 1 ); \
4539 187296 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
4540 187296 : in19 = GF_MUL( in19, 1 ); \
4541 187296 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
4542 187296 : in20 = GF_MUL( in20, 1 ); \
4543 187296 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
4544 187296 : in21 = GF_MUL( in21, 1 ); \
4545 187296 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
4546 187296 : in22 = GF_MUL( in22, 1 ); \
4547 187296 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
4548 187296 : in23 = GF_MUL( in23, 1 ); \
4549 187296 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
4550 187296 : in24 = GF_MUL( in24, 1 ); \
4551 187296 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
4552 187296 : in25 = GF_MUL( in25, 1 ); \
4553 187296 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
4554 187296 : in26 = GF_MUL( in26, 1 ); \
4555 187296 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
4556 187296 : in27 = GF_MUL( in27, 1 ); \
4557 187296 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
4558 187296 : in28 = GF_MUL( in28, 1 ); \
4559 187296 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
4560 187296 : in29 = GF_MUL( in29, 1 ); \
4561 187296 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
4562 187296 : in30 = GF_MUL( in30, 1 ); \
4563 187296 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
4564 187296 : in31 = GF_MUL( in31, 1 ); \
4565 187296 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
4566 187296 : } while( 0 )
4567 :
4568 : void fd_reedsol_ppt_64_42( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
4569 : #define FD_REEDSOL_PPT_IMPL_64_42( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
4570 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
4571 187200 : do { \
4572 187200 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24; \
4573 187200 : gf_t scratch_25, scratch_3, scratch_4, scratch_42, scratch_43, scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53; \
4574 187200 : gf_t scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63; \
4575 187200 : scratch_42 = in42; \
4576 187200 : in42 = GF_MUL( in42, 1 ); \
4577 187200 : scratch_43 = in43; \
4578 187200 : in43 = GF_MUL( in43, 1 ); \
4579 187200 : scratch_44 = in44; \
4580 187200 : in44 = GF_MUL( in44, 1 ); \
4581 187200 : scratch_45 = in45; \
4582 187200 : in45 = GF_MUL( in45, 1 ); \
4583 187200 : scratch_46 = in46; \
4584 187200 : in46 = GF_MUL( in46, 1 ); \
4585 187200 : scratch_47 = in47; \
4586 187200 : in47 = GF_MUL( in47, 1 ); \
4587 187200 : scratch_48 = in48; \
4588 187200 : in48 = GF_MUL( in48, 1 ); \
4589 187200 : scratch_49 = in49; \
4590 187200 : in49 = GF_MUL( in49, 1 ); \
4591 187200 : scratch_50 = in50; \
4592 187200 : in50 = GF_MUL( in50, 1 ); \
4593 187200 : scratch_51 = in51; \
4594 187200 : in51 = GF_MUL( in51, 1 ); \
4595 187200 : scratch_52 = in52; \
4596 187200 : in52 = GF_MUL( in52, 1 ); \
4597 187200 : scratch_53 = in53; \
4598 187200 : in53 = GF_MUL( in53, 1 ); \
4599 187200 : scratch_54 = in54; \
4600 187200 : in54 = GF_MUL( in54, 1 ); \
4601 187200 : scratch_55 = in55; \
4602 187200 : in55 = GF_MUL( in55, 1 ); \
4603 187200 : scratch_56 = in56; \
4604 187200 : in56 = GF_MUL( in56, 1 ); \
4605 187200 : scratch_57 = in57; \
4606 187200 : in57 = GF_MUL( in57, 1 ); \
4607 187200 : scratch_58 = in58; \
4608 187200 : in58 = GF_MUL( in58, 1 ); \
4609 187200 : scratch_59 = in59; \
4610 187200 : in59 = GF_MUL( in59, 1 ); \
4611 187200 : scratch_60 = in60; \
4612 187200 : in60 = GF_MUL( in60, 1 ); \
4613 187200 : scratch_61 = in61; \
4614 187200 : in61 = GF_MUL( in61, 1 ); \
4615 187200 : scratch_62 = in62; \
4616 187200 : in62 = GF_MUL( in62, 1 ); \
4617 187200 : scratch_63 = in63; \
4618 187200 : in63 = GF_MUL( in63, 1 ); \
4619 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
4620 187200 : in42 = GF_ADD( GF_MUL( in10, 1 ), in42 ); \
4621 187200 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
4622 187200 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
4623 187200 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
4624 187200 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
4625 187200 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
4626 187200 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
4627 187200 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
4628 187200 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
4629 187200 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
4630 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
4631 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
4632 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
4633 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
4634 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
4635 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
4636 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
4637 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
4638 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
4639 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
4640 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
4641 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
4642 187200 : scratch_16 = in48; \
4643 187200 : in48 = GF_MUL( in48, 1 ); \
4644 187200 : scratch_17 = in49; \
4645 187200 : in49 = GF_MUL( in49, 1 ); \
4646 187200 : scratch_18 = in50; \
4647 187200 : in50 = GF_MUL( in50, 1 ); \
4648 187200 : scratch_19 = in51; \
4649 187200 : in51 = GF_MUL( in51, 1 ); \
4650 187200 : scratch_20 = in52; \
4651 187200 : in52 = GF_MUL( in52, 1 ); \
4652 187200 : scratch_21 = in53; \
4653 187200 : in53 = GF_MUL( in53, 1 ); \
4654 187200 : scratch_22 = in54; \
4655 187200 : in54 = GF_MUL( in54, 1 ); \
4656 187200 : scratch_23 = in55; \
4657 187200 : in55 = GF_MUL( in55, 1 ); \
4658 187200 : scratch_24 = in56; \
4659 187200 : in56 = GF_MUL( in56, 1 ); \
4660 187200 : scratch_25 = in57; \
4661 187200 : in57 = GF_MUL( in57, 1 ); \
4662 187200 : GF_MUL22( in42, in58, 1, 71, 1, 70 ); \
4663 187200 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
4664 187200 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
4665 187200 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
4666 187200 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
4667 187200 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
4668 187200 : scratch_10 = in42; \
4669 187200 : in42 = GF_MUL( in42, 1 ); \
4670 187200 : scratch_11 = in43; \
4671 187200 : in43 = GF_MUL( in43, 1 ); \
4672 187200 : scratch_12 = in44; \
4673 187200 : in44 = GF_MUL( in44, 1 ); \
4674 187200 : scratch_13 = in45; \
4675 187200 : in45 = GF_MUL( in45, 1 ); \
4676 187200 : scratch_14 = in46; \
4677 187200 : in46 = GF_MUL( in46, 1 ); \
4678 187200 : scratch_15 = in47; \
4679 187200 : in47 = GF_MUL( in47, 1 ); \
4680 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
4681 187200 : in42 = GF_ADD( GF_MUL( in34, 1 ), in42 ); \
4682 187200 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
4683 187200 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
4684 187200 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
4685 187200 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
4686 187200 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
4687 187200 : scratch_4 = in44; \
4688 187200 : in44 = GF_MUL( in44, 1 ); \
4689 187200 : scratch_5 = in45; \
4690 187200 : in45 = GF_MUL( in45, 1 ); \
4691 187200 : GF_MUL22( in42, in46, 1, 48, 1, 49 ); \
4692 187200 : GF_MUL22( in43, in47, 1, 48, 1, 49 ); \
4693 187200 : scratch_2 = in42; \
4694 187200 : in42 = GF_MUL( in42, 1 ); \
4695 187200 : scratch_3 = in43; \
4696 187200 : in43 = GF_MUL( in43, 1 ); \
4697 187200 : GF_MUL22( in40, in41, 41, 40, 1, 1 ); \
4698 187200 : in42 = GF_ADD( GF_MUL( in40, 1 ), in42 ); \
4699 187200 : in43 = GF_ADD( GF_MUL( in41, 1 ), in43 ); \
4700 187200 : GF_MUL22( in42, in43, 1, 42, 1, 43 ); \
4701 187200 : in40 = GF_MUL( in40, 1 ); \
4702 187200 : in40 = GF_ADD( GF_MUL( scratch_2, 241 ), in40 ); \
4703 187200 : in41 = GF_MUL( in41, 1 ); \
4704 187200 : in41 = GF_ADD( GF_MUL( scratch_3, 241 ), in41 ); \
4705 187200 : in44 = GF_ADD( GF_MUL( in40, 1 ), in44 ); \
4706 187200 : in45 = GF_ADD( GF_MUL( in41, 1 ), in45 ); \
4707 187200 : FD_REEDSOL_GENERATE_FFT( 4, 44, in44, in45, in46, in47 ); \
4708 187200 : in40 = GF_MUL( in40, 1 ); \
4709 187200 : in40 = GF_ADD( GF_MUL( scratch_4, 48 ), in40 ); \
4710 187200 : in41 = GF_MUL( in41, 1 ); \
4711 187200 : in41 = GF_ADD( GF_MUL( scratch_5, 48 ), in41 ); \
4712 187200 : GF_MUL22( in32, in40, 175, 174, 1, 1 ); \
4713 187200 : GF_MUL22( in33, in41, 175, 174, 1, 1 ); \
4714 187200 : in34 = GF_MUL( in34, 1 ); \
4715 187200 : in34 = GF_ADD( GF_MUL( scratch_10, 174 ), in34 ); \
4716 187200 : in35 = GF_MUL( in35, 1 ); \
4717 187200 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
4718 187200 : in36 = GF_MUL( in36, 1 ); \
4719 187200 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
4720 187200 : in37 = GF_MUL( in37, 1 ); \
4721 187200 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
4722 187200 : in38 = GF_MUL( in38, 1 ); \
4723 187200 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
4724 187200 : in39 = GF_MUL( in39, 1 ); \
4725 187200 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
4726 187200 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
4727 187200 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
4728 187200 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
4729 187200 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
4730 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
4731 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
4732 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
4733 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
4734 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
4735 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
4736 187200 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
4737 187200 : in32 = GF_MUL( in32, 1 ); \
4738 187200 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
4739 187200 : in33 = GF_MUL( in33, 1 ); \
4740 187200 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
4741 187200 : in34 = GF_MUL( in34, 1 ); \
4742 187200 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
4743 187200 : in35 = GF_MUL( in35, 1 ); \
4744 187200 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
4745 187200 : in36 = GF_MUL( in36, 1 ); \
4746 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
4747 187200 : in37 = GF_MUL( in37, 1 ); \
4748 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
4749 187200 : in38 = GF_MUL( in38, 1 ); \
4750 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
4751 187200 : in39 = GF_MUL( in39, 1 ); \
4752 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
4753 187200 : in40 = GF_MUL( in40, 1 ); \
4754 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
4755 187200 : in41 = GF_MUL( in41, 1 ); \
4756 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
4757 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
4758 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
4759 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
4760 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
4761 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
4762 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
4763 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
4764 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
4765 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
4766 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
4767 187200 : in10 = GF_MUL( in10, 1 ); \
4768 187200 : in10 = GF_ADD( GF_MUL( scratch_42, 0 ), in10 ); \
4769 187200 : in11 = GF_MUL( in11, 1 ); \
4770 187200 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
4771 187200 : in12 = GF_MUL( in12, 1 ); \
4772 187200 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
4773 187200 : in13 = GF_MUL( in13, 1 ); \
4774 187200 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
4775 187200 : in14 = GF_MUL( in14, 1 ); \
4776 187200 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
4777 187200 : in15 = GF_MUL( in15, 1 ); \
4778 187200 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
4779 187200 : in16 = GF_MUL( in16, 1 ); \
4780 187200 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
4781 187200 : in17 = GF_MUL( in17, 1 ); \
4782 187200 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
4783 187200 : in18 = GF_MUL( in18, 1 ); \
4784 187200 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
4785 187200 : in19 = GF_MUL( in19, 1 ); \
4786 187200 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
4787 187200 : in20 = GF_MUL( in20, 1 ); \
4788 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
4789 187200 : in21 = GF_MUL( in21, 1 ); \
4790 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
4791 187200 : in22 = GF_MUL( in22, 1 ); \
4792 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
4793 187200 : in23 = GF_MUL( in23, 1 ); \
4794 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
4795 187200 : in24 = GF_MUL( in24, 1 ); \
4796 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
4797 187200 : in25 = GF_MUL( in25, 1 ); \
4798 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
4799 187200 : in26 = GF_MUL( in26, 1 ); \
4800 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
4801 187200 : in27 = GF_MUL( in27, 1 ); \
4802 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
4803 187200 : in28 = GF_MUL( in28, 1 ); \
4804 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
4805 187200 : in29 = GF_MUL( in29, 1 ); \
4806 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
4807 187200 : in30 = GF_MUL( in30, 1 ); \
4808 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
4809 187200 : in31 = GF_MUL( in31, 1 ); \
4810 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
4811 187200 : } while( 0 )
4812 :
4813 : void fd_reedsol_ppt_64_43( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
4814 : #define FD_REEDSOL_PPT_IMPL_64_43( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
4815 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
4816 187200 : do { \
4817 187200 : gf_t scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26; \
4818 187200 : gf_t scratch_3, scratch_4, scratch_43, scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55; \
4819 187200 : gf_t scratch_56, scratch_57, scratch_58, scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63; \
4820 187200 : scratch_43 = in43; \
4821 187200 : in43 = GF_MUL( in43, 1 ); \
4822 187200 : scratch_44 = in44; \
4823 187200 : in44 = GF_MUL( in44, 1 ); \
4824 187200 : scratch_45 = in45; \
4825 187200 : in45 = GF_MUL( in45, 1 ); \
4826 187200 : scratch_46 = in46; \
4827 187200 : in46 = GF_MUL( in46, 1 ); \
4828 187200 : scratch_47 = in47; \
4829 187200 : in47 = GF_MUL( in47, 1 ); \
4830 187200 : scratch_48 = in48; \
4831 187200 : in48 = GF_MUL( in48, 1 ); \
4832 187200 : scratch_49 = in49; \
4833 187200 : in49 = GF_MUL( in49, 1 ); \
4834 187200 : scratch_50 = in50; \
4835 187200 : in50 = GF_MUL( in50, 1 ); \
4836 187200 : scratch_51 = in51; \
4837 187200 : in51 = GF_MUL( in51, 1 ); \
4838 187200 : scratch_52 = in52; \
4839 187200 : in52 = GF_MUL( in52, 1 ); \
4840 187200 : scratch_53 = in53; \
4841 187200 : in53 = GF_MUL( in53, 1 ); \
4842 187200 : scratch_54 = in54; \
4843 187200 : in54 = GF_MUL( in54, 1 ); \
4844 187200 : scratch_55 = in55; \
4845 187200 : in55 = GF_MUL( in55, 1 ); \
4846 187200 : scratch_56 = in56; \
4847 187200 : in56 = GF_MUL( in56, 1 ); \
4848 187200 : scratch_57 = in57; \
4849 187200 : in57 = GF_MUL( in57, 1 ); \
4850 187200 : scratch_58 = in58; \
4851 187200 : in58 = GF_MUL( in58, 1 ); \
4852 187200 : scratch_59 = in59; \
4853 187200 : in59 = GF_MUL( in59, 1 ); \
4854 187200 : scratch_60 = in60; \
4855 187200 : in60 = GF_MUL( in60, 1 ); \
4856 187200 : scratch_61 = in61; \
4857 187200 : in61 = GF_MUL( in61, 1 ); \
4858 187200 : scratch_62 = in62; \
4859 187200 : in62 = GF_MUL( in62, 1 ); \
4860 187200 : scratch_63 = in63; \
4861 187200 : in63 = GF_MUL( in63, 1 ); \
4862 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
4863 187200 : in43 = GF_ADD( GF_MUL( in11, 1 ), in43 ); \
4864 187200 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
4865 187200 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
4866 187200 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
4867 187200 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
4868 187200 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
4869 187200 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
4870 187200 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
4871 187200 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
4872 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
4873 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
4874 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
4875 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
4876 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
4877 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
4878 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
4879 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
4880 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
4881 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
4882 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
4883 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
4884 187200 : scratch_16 = in48; \
4885 187200 : in48 = GF_MUL( in48, 1 ); \
4886 187200 : scratch_17 = in49; \
4887 187200 : in49 = GF_MUL( in49, 1 ); \
4888 187200 : scratch_18 = in50; \
4889 187200 : in50 = GF_MUL( in50, 1 ); \
4890 187200 : scratch_19 = in51; \
4891 187200 : in51 = GF_MUL( in51, 1 ); \
4892 187200 : scratch_20 = in52; \
4893 187200 : in52 = GF_MUL( in52, 1 ); \
4894 187200 : scratch_21 = in53; \
4895 187200 : in53 = GF_MUL( in53, 1 ); \
4896 187200 : scratch_22 = in54; \
4897 187200 : in54 = GF_MUL( in54, 1 ); \
4898 187200 : scratch_23 = in55; \
4899 187200 : in55 = GF_MUL( in55, 1 ); \
4900 187200 : scratch_24 = in56; \
4901 187200 : in56 = GF_MUL( in56, 1 ); \
4902 187200 : scratch_25 = in57; \
4903 187200 : in57 = GF_MUL( in57, 1 ); \
4904 187200 : scratch_26 = in58; \
4905 187200 : in58 = GF_MUL( in58, 1 ); \
4906 187200 : GF_MUL22( in43, in59, 1, 71, 1, 70 ); \
4907 187200 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
4908 187200 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
4909 187200 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
4910 187200 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
4911 187200 : scratch_11 = in43; \
4912 187200 : in43 = GF_MUL( in43, 1 ); \
4913 187200 : scratch_12 = in44; \
4914 187200 : in44 = GF_MUL( in44, 1 ); \
4915 187200 : scratch_13 = in45; \
4916 187200 : in45 = GF_MUL( in45, 1 ); \
4917 187200 : scratch_14 = in46; \
4918 187200 : in46 = GF_MUL( in46, 1 ); \
4919 187200 : scratch_15 = in47; \
4920 187200 : in47 = GF_MUL( in47, 1 ); \
4921 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
4922 187200 : in43 = GF_ADD( GF_MUL( in35, 1 ), in43 ); \
4923 187200 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
4924 187200 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
4925 187200 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
4926 187200 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
4927 187200 : scratch_4 = in44; \
4928 187200 : in44 = GF_MUL( in44, 1 ); \
4929 187200 : scratch_5 = in45; \
4930 187200 : in45 = GF_MUL( in45, 1 ); \
4931 187200 : scratch_6 = in46; \
4932 187200 : in46 = GF_MUL( in46, 1 ); \
4933 187200 : GF_MUL22( in43, in47, 1, 48, 1, 49 ); \
4934 187200 : scratch_3 = in43; \
4935 187200 : in43 = GF_MUL( in43, 1 ); \
4936 187200 : GF_MUL22( in40, in41, 41, 40, 1, 1 ); \
4937 187200 : in43 = GF_ADD( GF_MUL( in41, 1 ), in43 ); \
4938 187200 : GF_MUL22( in42, in43, 1, 42, 1, 1 ); \
4939 187200 : GF_MUL22( in40, in42, 240, 241, 1, 1 ); \
4940 187200 : in41 = GF_MUL( in41, 1 ); \
4941 187200 : in41 = GF_ADD( GF_MUL( scratch_3, 241 ), in41 ); \
4942 187200 : in44 = GF_ADD( GF_MUL( in40, 1 ), in44 ); \
4943 187200 : in45 = GF_ADD( GF_MUL( in41, 1 ), in45 ); \
4944 187200 : in46 = GF_ADD( GF_MUL( in42, 1 ), in46 ); \
4945 187200 : FD_REEDSOL_GENERATE_FFT( 4, 44, in44, in45, in46, in47 ); \
4946 187200 : in40 = GF_MUL( in40, 1 ); \
4947 187200 : in40 = GF_ADD( GF_MUL( scratch_4, 48 ), in40 ); \
4948 187200 : in41 = GF_MUL( in41, 1 ); \
4949 187200 : in41 = GF_ADD( GF_MUL( scratch_5, 48 ), in41 ); \
4950 187200 : in42 = GF_MUL( in42, 1 ); \
4951 187200 : in42 = GF_ADD( GF_MUL( scratch_6, 48 ), in42 ); \
4952 187200 : GF_MUL22( in32, in40, 175, 174, 1, 1 ); \
4953 187200 : GF_MUL22( in33, in41, 175, 174, 1, 1 ); \
4954 187200 : GF_MUL22( in34, in42, 175, 174, 1, 1 ); \
4955 187200 : in35 = GF_MUL( in35, 1 ); \
4956 187200 : in35 = GF_ADD( GF_MUL( scratch_11, 174 ), in35 ); \
4957 187200 : in36 = GF_MUL( in36, 1 ); \
4958 187200 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
4959 187200 : in37 = GF_MUL( in37, 1 ); \
4960 187200 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
4961 187200 : in38 = GF_MUL( in38, 1 ); \
4962 187200 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
4963 187200 : in39 = GF_MUL( in39, 1 ); \
4964 187200 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
4965 187200 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
4966 187200 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
4967 187200 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
4968 187200 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
4969 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
4970 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
4971 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
4972 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
4973 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
4974 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
4975 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
4976 187200 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
4977 187200 : in32 = GF_MUL( in32, 1 ); \
4978 187200 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
4979 187200 : in33 = GF_MUL( in33, 1 ); \
4980 187200 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
4981 187200 : in34 = GF_MUL( in34, 1 ); \
4982 187200 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
4983 187200 : in35 = GF_MUL( in35, 1 ); \
4984 187200 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
4985 187200 : in36 = GF_MUL( in36, 1 ); \
4986 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
4987 187200 : in37 = GF_MUL( in37, 1 ); \
4988 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
4989 187200 : in38 = GF_MUL( in38, 1 ); \
4990 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
4991 187200 : in39 = GF_MUL( in39, 1 ); \
4992 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
4993 187200 : in40 = GF_MUL( in40, 1 ); \
4994 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
4995 187200 : in41 = GF_MUL( in41, 1 ); \
4996 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
4997 187200 : in42 = GF_MUL( in42, 1 ); \
4998 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
4999 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
5000 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
5001 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
5002 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
5003 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
5004 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
5005 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
5006 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
5007 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
5008 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
5009 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
5010 187200 : in11 = GF_MUL( in11, 1 ); \
5011 187200 : in11 = GF_ADD( GF_MUL( scratch_43, 0 ), in11 ); \
5012 187200 : in12 = GF_MUL( in12, 1 ); \
5013 187200 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
5014 187200 : in13 = GF_MUL( in13, 1 ); \
5015 187200 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
5016 187200 : in14 = GF_MUL( in14, 1 ); \
5017 187200 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
5018 187200 : in15 = GF_MUL( in15, 1 ); \
5019 187200 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
5020 187200 : in16 = GF_MUL( in16, 1 ); \
5021 187200 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
5022 187200 : in17 = GF_MUL( in17, 1 ); \
5023 187200 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
5024 187200 : in18 = GF_MUL( in18, 1 ); \
5025 187200 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
5026 187200 : in19 = GF_MUL( in19, 1 ); \
5027 187200 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
5028 187200 : in20 = GF_MUL( in20, 1 ); \
5029 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
5030 187200 : in21 = GF_MUL( in21, 1 ); \
5031 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
5032 187200 : in22 = GF_MUL( in22, 1 ); \
5033 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
5034 187200 : in23 = GF_MUL( in23, 1 ); \
5035 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
5036 187200 : in24 = GF_MUL( in24, 1 ); \
5037 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
5038 187200 : in25 = GF_MUL( in25, 1 ); \
5039 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
5040 187200 : in26 = GF_MUL( in26, 1 ); \
5041 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
5042 187200 : in27 = GF_MUL( in27, 1 ); \
5043 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
5044 187200 : in28 = GF_MUL( in28, 1 ); \
5045 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
5046 187200 : in29 = GF_MUL( in29, 1 ); \
5047 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
5048 187200 : in30 = GF_MUL( in30, 1 ); \
5049 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
5050 187200 : in31 = GF_MUL( in31, 1 ); \
5051 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
5052 187200 : } while( 0 )
5053 :
5054 : void fd_reedsol_ppt_64_44( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
5055 : #define FD_REEDSOL_PPT_IMPL_64_44( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
5056 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
5057 196896 : do { \
5058 196896 : gf_t scratch_12, scratch_13, scratch_14, scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27; \
5059 196896 : gf_t scratch_4, scratch_44, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57; \
5060 196896 : gf_t scratch_58, scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7; \
5061 196896 : scratch_44 = in44; \
5062 196896 : in44 = GF_MUL( in44, 1 ); \
5063 196896 : scratch_45 = in45; \
5064 196896 : in45 = GF_MUL( in45, 1 ); \
5065 196896 : scratch_46 = in46; \
5066 196896 : in46 = GF_MUL( in46, 1 ); \
5067 196896 : scratch_47 = in47; \
5068 196896 : in47 = GF_MUL( in47, 1 ); \
5069 196896 : scratch_48 = in48; \
5070 196896 : in48 = GF_MUL( in48, 1 ); \
5071 196896 : scratch_49 = in49; \
5072 196896 : in49 = GF_MUL( in49, 1 ); \
5073 196896 : scratch_50 = in50; \
5074 196896 : in50 = GF_MUL( in50, 1 ); \
5075 196896 : scratch_51 = in51; \
5076 196896 : in51 = GF_MUL( in51, 1 ); \
5077 196896 : scratch_52 = in52; \
5078 196896 : in52 = GF_MUL( in52, 1 ); \
5079 196896 : scratch_53 = in53; \
5080 196896 : in53 = GF_MUL( in53, 1 ); \
5081 196896 : scratch_54 = in54; \
5082 196896 : in54 = GF_MUL( in54, 1 ); \
5083 196896 : scratch_55 = in55; \
5084 196896 : in55 = GF_MUL( in55, 1 ); \
5085 196896 : scratch_56 = in56; \
5086 196896 : in56 = GF_MUL( in56, 1 ); \
5087 196896 : scratch_57 = in57; \
5088 196896 : in57 = GF_MUL( in57, 1 ); \
5089 196896 : scratch_58 = in58; \
5090 196896 : in58 = GF_MUL( in58, 1 ); \
5091 196896 : scratch_59 = in59; \
5092 196896 : in59 = GF_MUL( in59, 1 ); \
5093 196896 : scratch_60 = in60; \
5094 196896 : in60 = GF_MUL( in60, 1 ); \
5095 196896 : scratch_61 = in61; \
5096 196896 : in61 = GF_MUL( in61, 1 ); \
5097 196896 : scratch_62 = in62; \
5098 196896 : in62 = GF_MUL( in62, 1 ); \
5099 196896 : scratch_63 = in63; \
5100 196896 : in63 = GF_MUL( in63, 1 ); \
5101 196896 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
5102 196896 : in44 = GF_ADD( GF_MUL( in12, 1 ), in44 ); \
5103 196896 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
5104 196896 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
5105 196896 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
5106 196896 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
5107 196896 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
5108 196896 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
5109 196896 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
5110 196896 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
5111 196896 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
5112 196896 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
5113 196896 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
5114 196896 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
5115 196896 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
5116 196896 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
5117 196896 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
5118 196896 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
5119 196896 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
5120 196896 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
5121 196896 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
5122 196896 : scratch_16 = in48; \
5123 196896 : in48 = GF_MUL( in48, 1 ); \
5124 196896 : scratch_17 = in49; \
5125 196896 : in49 = GF_MUL( in49, 1 ); \
5126 196896 : scratch_18 = in50; \
5127 196896 : in50 = GF_MUL( in50, 1 ); \
5128 196896 : scratch_19 = in51; \
5129 196896 : in51 = GF_MUL( in51, 1 ); \
5130 196896 : scratch_20 = in52; \
5131 196896 : in52 = GF_MUL( in52, 1 ); \
5132 196896 : scratch_21 = in53; \
5133 196896 : in53 = GF_MUL( in53, 1 ); \
5134 196896 : scratch_22 = in54; \
5135 196896 : in54 = GF_MUL( in54, 1 ); \
5136 196896 : scratch_23 = in55; \
5137 196896 : in55 = GF_MUL( in55, 1 ); \
5138 196896 : scratch_24 = in56; \
5139 196896 : in56 = GF_MUL( in56, 1 ); \
5140 196896 : scratch_25 = in57; \
5141 196896 : in57 = GF_MUL( in57, 1 ); \
5142 196896 : scratch_26 = in58; \
5143 196896 : in58 = GF_MUL( in58, 1 ); \
5144 196896 : scratch_27 = in59; \
5145 196896 : in59 = GF_MUL( in59, 1 ); \
5146 196896 : GF_MUL22( in44, in60, 1, 71, 1, 70 ); \
5147 196896 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
5148 196896 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
5149 196896 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
5150 196896 : scratch_12 = in44; \
5151 196896 : in44 = GF_MUL( in44, 1 ); \
5152 196896 : scratch_13 = in45; \
5153 196896 : in45 = GF_MUL( in45, 1 ); \
5154 196896 : scratch_14 = in46; \
5155 196896 : in46 = GF_MUL( in46, 1 ); \
5156 196896 : scratch_15 = in47; \
5157 196896 : in47 = GF_MUL( in47, 1 ); \
5158 196896 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
5159 196896 : in44 = GF_ADD( GF_MUL( in36, 1 ), in44 ); \
5160 196896 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
5161 196896 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
5162 196896 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
5163 196896 : scratch_4 = in44; \
5164 196896 : in44 = GF_MUL( in44, 1 ); \
5165 196896 : scratch_5 = in45; \
5166 196896 : in45 = GF_MUL( in45, 1 ); \
5167 196896 : scratch_6 = in46; \
5168 196896 : in46 = GF_MUL( in46, 1 ); \
5169 196896 : scratch_7 = in47; \
5170 196896 : in47 = GF_MUL( in47, 1 ); \
5171 196896 : FD_REEDSOL_GENERATE_IFFT( 4, 40, in40, in41, in42, in43 ); \
5172 196896 : in44 = GF_ADD( GF_MUL( in40, 1 ), in44 ); \
5173 196896 : in45 = GF_ADD( GF_MUL( in41, 1 ), in45 ); \
5174 196896 : in46 = GF_ADD( GF_MUL( in42, 1 ), in46 ); \
5175 196896 : in47 = GF_ADD( GF_MUL( in43, 1 ), in47 ); \
5176 196896 : FD_REEDSOL_GENERATE_FFT( 4, 44, in44, in45, in46, in47 ); \
5177 196896 : in40 = GF_MUL( in40, 1 ); \
5178 196896 : in40 = GF_ADD( GF_MUL( scratch_4, 48 ), in40 ); \
5179 196896 : in41 = GF_MUL( in41, 1 ); \
5180 196896 : in41 = GF_ADD( GF_MUL( scratch_5, 48 ), in41 ); \
5181 196896 : in42 = GF_MUL( in42, 1 ); \
5182 196896 : in42 = GF_ADD( GF_MUL( scratch_6, 48 ), in42 ); \
5183 196896 : in43 = GF_MUL( in43, 1 ); \
5184 196896 : in43 = GF_ADD( GF_MUL( scratch_7, 48 ), in43 ); \
5185 196896 : GF_MUL22( in32, in40, 175, 174, 1, 1 ); \
5186 196896 : GF_MUL22( in33, in41, 175, 174, 1, 1 ); \
5187 196896 : GF_MUL22( in34, in42, 175, 174, 1, 1 ); \
5188 196896 : GF_MUL22( in35, in43, 175, 174, 1, 1 ); \
5189 196896 : in36 = GF_MUL( in36, 1 ); \
5190 196896 : in36 = GF_ADD( GF_MUL( scratch_12, 174 ), in36 ); \
5191 196896 : in37 = GF_MUL( in37, 1 ); \
5192 196896 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
5193 196896 : in38 = GF_MUL( in38, 1 ); \
5194 196896 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
5195 196896 : in39 = GF_MUL( in39, 1 ); \
5196 196896 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
5197 196896 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
5198 196896 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
5199 196896 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
5200 196896 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
5201 196896 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
5202 196896 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
5203 196896 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
5204 196896 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
5205 196896 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
5206 196896 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
5207 196896 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
5208 196896 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
5209 196896 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
5210 196896 : in32 = GF_MUL( in32, 1 ); \
5211 196896 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
5212 196896 : in33 = GF_MUL( in33, 1 ); \
5213 196896 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
5214 196896 : in34 = GF_MUL( in34, 1 ); \
5215 196896 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
5216 196896 : in35 = GF_MUL( in35, 1 ); \
5217 196896 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
5218 196896 : in36 = GF_MUL( in36, 1 ); \
5219 196896 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
5220 196896 : in37 = GF_MUL( in37, 1 ); \
5221 196896 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
5222 196896 : in38 = GF_MUL( in38, 1 ); \
5223 196896 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
5224 196896 : in39 = GF_MUL( in39, 1 ); \
5225 196896 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
5226 196896 : in40 = GF_MUL( in40, 1 ); \
5227 196896 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
5228 196896 : in41 = GF_MUL( in41, 1 ); \
5229 196896 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
5230 196896 : in42 = GF_MUL( in42, 1 ); \
5231 196896 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
5232 196896 : in43 = GF_MUL( in43, 1 ); \
5233 196896 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
5234 196896 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
5235 196896 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
5236 196896 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
5237 196896 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
5238 196896 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
5239 196896 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
5240 196896 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
5241 196896 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
5242 196896 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
5243 196896 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
5244 196896 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
5245 196896 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
5246 196896 : in12 = GF_MUL( in12, 1 ); \
5247 196896 : in12 = GF_ADD( GF_MUL( scratch_44, 0 ), in12 ); \
5248 196896 : in13 = GF_MUL( in13, 1 ); \
5249 196896 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
5250 196896 : in14 = GF_MUL( in14, 1 ); \
5251 196896 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
5252 196896 : in15 = GF_MUL( in15, 1 ); \
5253 196896 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
5254 196896 : in16 = GF_MUL( in16, 1 ); \
5255 196896 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
5256 196896 : in17 = GF_MUL( in17, 1 ); \
5257 196896 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
5258 196896 : in18 = GF_MUL( in18, 1 ); \
5259 196896 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
5260 196896 : in19 = GF_MUL( in19, 1 ); \
5261 196896 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
5262 196896 : in20 = GF_MUL( in20, 1 ); \
5263 196896 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
5264 196896 : in21 = GF_MUL( in21, 1 ); \
5265 196896 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
5266 196896 : in22 = GF_MUL( in22, 1 ); \
5267 196896 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
5268 196896 : in23 = GF_MUL( in23, 1 ); \
5269 196896 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
5270 196896 : in24 = GF_MUL( in24, 1 ); \
5271 196896 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
5272 196896 : in25 = GF_MUL( in25, 1 ); \
5273 196896 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
5274 196896 : in26 = GF_MUL( in26, 1 ); \
5275 196896 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
5276 196896 : in27 = GF_MUL( in27, 1 ); \
5277 196896 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
5278 196896 : in28 = GF_MUL( in28, 1 ); \
5279 196896 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
5280 196896 : in29 = GF_MUL( in29, 1 ); \
5281 196896 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
5282 196896 : in30 = GF_MUL( in30, 1 ); \
5283 196896 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
5284 196896 : in31 = GF_MUL( in31, 1 ); \
5285 196896 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
5286 196896 : } while( 0 )
5287 :
5288 : void fd_reedsol_ppt_64_45( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
5289 : #define FD_REEDSOL_PPT_IMPL_64_45( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
5290 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
5291 187296 : do { \
5292 187296 : gf_t scratch_13, scratch_14, scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27; \
5293 187296 : gf_t scratch_28, scratch_45, scratch_46, scratch_47, scratch_48, scratch_49, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58; \
5294 187296 : gf_t scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7; \
5295 187296 : scratch_45 = in45; \
5296 187296 : in45 = GF_MUL( in45, 1 ); \
5297 187296 : scratch_46 = in46; \
5298 187296 : in46 = GF_MUL( in46, 1 ); \
5299 187296 : scratch_47 = in47; \
5300 187296 : in47 = GF_MUL( in47, 1 ); \
5301 187296 : scratch_48 = in48; \
5302 187296 : in48 = GF_MUL( in48, 1 ); \
5303 187296 : scratch_49 = in49; \
5304 187296 : in49 = GF_MUL( in49, 1 ); \
5305 187296 : scratch_50 = in50; \
5306 187296 : in50 = GF_MUL( in50, 1 ); \
5307 187296 : scratch_51 = in51; \
5308 187296 : in51 = GF_MUL( in51, 1 ); \
5309 187296 : scratch_52 = in52; \
5310 187296 : in52 = GF_MUL( in52, 1 ); \
5311 187296 : scratch_53 = in53; \
5312 187296 : in53 = GF_MUL( in53, 1 ); \
5313 187296 : scratch_54 = in54; \
5314 187296 : in54 = GF_MUL( in54, 1 ); \
5315 187296 : scratch_55 = in55; \
5316 187296 : in55 = GF_MUL( in55, 1 ); \
5317 187296 : scratch_56 = in56; \
5318 187296 : in56 = GF_MUL( in56, 1 ); \
5319 187296 : scratch_57 = in57; \
5320 187296 : in57 = GF_MUL( in57, 1 ); \
5321 187296 : scratch_58 = in58; \
5322 187296 : in58 = GF_MUL( in58, 1 ); \
5323 187296 : scratch_59 = in59; \
5324 187296 : in59 = GF_MUL( in59, 1 ); \
5325 187296 : scratch_60 = in60; \
5326 187296 : in60 = GF_MUL( in60, 1 ); \
5327 187296 : scratch_61 = in61; \
5328 187296 : in61 = GF_MUL( in61, 1 ); \
5329 187296 : scratch_62 = in62; \
5330 187296 : in62 = GF_MUL( in62, 1 ); \
5331 187296 : scratch_63 = in63; \
5332 187296 : in63 = GF_MUL( in63, 1 ); \
5333 187296 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
5334 187296 : in45 = GF_ADD( GF_MUL( in13, 1 ), in45 ); \
5335 187296 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
5336 187296 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
5337 187296 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
5338 187296 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
5339 187296 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
5340 187296 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
5341 187296 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
5342 187296 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
5343 187296 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
5344 187296 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
5345 187296 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
5346 187296 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
5347 187296 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
5348 187296 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
5349 187296 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
5350 187296 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
5351 187296 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
5352 187296 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
5353 187296 : scratch_16 = in48; \
5354 187296 : in48 = GF_MUL( in48, 1 ); \
5355 187296 : scratch_17 = in49; \
5356 187296 : in49 = GF_MUL( in49, 1 ); \
5357 187296 : scratch_18 = in50; \
5358 187296 : in50 = GF_MUL( in50, 1 ); \
5359 187296 : scratch_19 = in51; \
5360 187296 : in51 = GF_MUL( in51, 1 ); \
5361 187296 : scratch_20 = in52; \
5362 187296 : in52 = GF_MUL( in52, 1 ); \
5363 187296 : scratch_21 = in53; \
5364 187296 : in53 = GF_MUL( in53, 1 ); \
5365 187296 : scratch_22 = in54; \
5366 187296 : in54 = GF_MUL( in54, 1 ); \
5367 187296 : scratch_23 = in55; \
5368 187296 : in55 = GF_MUL( in55, 1 ); \
5369 187296 : scratch_24 = in56; \
5370 187296 : in56 = GF_MUL( in56, 1 ); \
5371 187296 : scratch_25 = in57; \
5372 187296 : in57 = GF_MUL( in57, 1 ); \
5373 187296 : scratch_26 = in58; \
5374 187296 : in58 = GF_MUL( in58, 1 ); \
5375 187296 : scratch_27 = in59; \
5376 187296 : in59 = GF_MUL( in59, 1 ); \
5377 187296 : scratch_28 = in60; \
5378 187296 : in60 = GF_MUL( in60, 1 ); \
5379 187296 : GF_MUL22( in45, in61, 1, 71, 1, 70 ); \
5380 187296 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
5381 187296 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
5382 187296 : scratch_13 = in45; \
5383 187296 : in45 = GF_MUL( in45, 1 ); \
5384 187296 : scratch_14 = in46; \
5385 187296 : in46 = GF_MUL( in46, 1 ); \
5386 187296 : scratch_15 = in47; \
5387 187296 : in47 = GF_MUL( in47, 1 ); \
5388 187296 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
5389 187296 : in45 = GF_ADD( GF_MUL( in37, 1 ), in45 ); \
5390 187296 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
5391 187296 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
5392 187296 : scratch_5 = in45; \
5393 187296 : in45 = GF_MUL( in45, 1 ); \
5394 187296 : scratch_6 = in46; \
5395 187296 : in46 = GF_MUL( in46, 1 ); \
5396 187296 : scratch_7 = in47; \
5397 187296 : in47 = GF_MUL( in47, 1 ); \
5398 187296 : FD_REEDSOL_GENERATE_IFFT( 4, 40, in40, in41, in42, in43 ); \
5399 187296 : in45 = GF_ADD( GF_MUL( in41, 1 ), in45 ); \
5400 187296 : in46 = GF_ADD( GF_MUL( in42, 1 ), in46 ); \
5401 187296 : in47 = GF_ADD( GF_MUL( in43, 1 ), in47 ); \
5402 187296 : scratch_2 = in46; \
5403 187296 : in46 = GF_MUL( in46, 1 ); \
5404 187296 : GF_MUL22( in45, in47, 1, 247, 1, 246 ); \
5405 187296 : GF_MUL22( in44, in45, 1, 44, 1, 1 ); \
5406 187296 : in46 = GF_ADD( GF_MUL( in44, 1 ), in46 ); \
5407 187296 : GF_MUL22( in46, in47, 1, 46, 1, 47 ); \
5408 187296 : in44 = GF_MUL( in44, 1 ); \
5409 187296 : in44 = GF_ADD( GF_MUL( scratch_2, 247 ), in44 ); \
5410 187296 : GF_MUL22( in40, in44, 49, 48, 1, 1 ); \
5411 187296 : in41 = GF_MUL( in41, 1 ); \
5412 187296 : in41 = GF_ADD( GF_MUL( scratch_5, 48 ), in41 ); \
5413 187296 : in42 = GF_MUL( in42, 1 ); \
5414 187296 : in42 = GF_ADD( GF_MUL( scratch_6, 48 ), in42 ); \
5415 187296 : in43 = GF_MUL( in43, 1 ); \
5416 187296 : in43 = GF_ADD( GF_MUL( scratch_7, 48 ), in43 ); \
5417 187296 : GF_MUL22( in32, in40, 175, 174, 1, 1 ); \
5418 187296 : GF_MUL22( in33, in41, 175, 174, 1, 1 ); \
5419 187296 : GF_MUL22( in34, in42, 175, 174, 1, 1 ); \
5420 187296 : GF_MUL22( in35, in43, 175, 174, 1, 1 ); \
5421 187296 : GF_MUL22( in36, in44, 175, 174, 1, 1 ); \
5422 187296 : in37 = GF_MUL( in37, 1 ); \
5423 187296 : in37 = GF_ADD( GF_MUL( scratch_13, 174 ), in37 ); \
5424 187296 : in38 = GF_MUL( in38, 1 ); \
5425 187296 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
5426 187296 : in39 = GF_MUL( in39, 1 ); \
5427 187296 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
5428 187296 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
5429 187296 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
5430 187296 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
5431 187296 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
5432 187296 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
5433 187296 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
5434 187296 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
5435 187296 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
5436 187296 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
5437 187296 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
5438 187296 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
5439 187296 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
5440 187296 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
5441 187296 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
5442 187296 : in32 = GF_MUL( in32, 1 ); \
5443 187296 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
5444 187296 : in33 = GF_MUL( in33, 1 ); \
5445 187296 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
5446 187296 : in34 = GF_MUL( in34, 1 ); \
5447 187296 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
5448 187296 : in35 = GF_MUL( in35, 1 ); \
5449 187296 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
5450 187296 : in36 = GF_MUL( in36, 1 ); \
5451 187296 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
5452 187296 : in37 = GF_MUL( in37, 1 ); \
5453 187296 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
5454 187296 : in38 = GF_MUL( in38, 1 ); \
5455 187296 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
5456 187296 : in39 = GF_MUL( in39, 1 ); \
5457 187296 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
5458 187296 : in40 = GF_MUL( in40, 1 ); \
5459 187296 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
5460 187296 : in41 = GF_MUL( in41, 1 ); \
5461 187296 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
5462 187296 : in42 = GF_MUL( in42, 1 ); \
5463 187296 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
5464 187296 : in43 = GF_MUL( in43, 1 ); \
5465 187296 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
5466 187296 : in44 = GF_MUL( in44, 1 ); \
5467 187296 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
5468 187296 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
5469 187296 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
5470 187296 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
5471 187296 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
5472 187296 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
5473 187296 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
5474 187296 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
5475 187296 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
5476 187296 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
5477 187296 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
5478 187296 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
5479 187296 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
5480 187296 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
5481 187296 : in13 = GF_MUL( in13, 1 ); \
5482 187296 : in13 = GF_ADD( GF_MUL( scratch_45, 0 ), in13 ); \
5483 187296 : in14 = GF_MUL( in14, 1 ); \
5484 187296 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
5485 187296 : in15 = GF_MUL( in15, 1 ); \
5486 187296 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
5487 187296 : in16 = GF_MUL( in16, 1 ); \
5488 187296 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
5489 187296 : in17 = GF_MUL( in17, 1 ); \
5490 187296 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
5491 187296 : in18 = GF_MUL( in18, 1 ); \
5492 187296 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
5493 187296 : in19 = GF_MUL( in19, 1 ); \
5494 187296 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
5495 187296 : in20 = GF_MUL( in20, 1 ); \
5496 187296 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
5497 187296 : in21 = GF_MUL( in21, 1 ); \
5498 187296 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
5499 187296 : in22 = GF_MUL( in22, 1 ); \
5500 187296 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
5501 187296 : in23 = GF_MUL( in23, 1 ); \
5502 187296 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
5503 187296 : in24 = GF_MUL( in24, 1 ); \
5504 187296 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
5505 187296 : in25 = GF_MUL( in25, 1 ); \
5506 187296 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
5507 187296 : in26 = GF_MUL( in26, 1 ); \
5508 187296 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
5509 187296 : in27 = GF_MUL( in27, 1 ); \
5510 187296 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
5511 187296 : in28 = GF_MUL( in28, 1 ); \
5512 187296 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
5513 187296 : in29 = GF_MUL( in29, 1 ); \
5514 187296 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
5515 187296 : in30 = GF_MUL( in30, 1 ); \
5516 187296 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
5517 187296 : in31 = GF_MUL( in31, 1 ); \
5518 187296 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
5519 187296 : } while( 0 )
5520 :
5521 : void fd_reedsol_ppt_64_46( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
5522 : #define FD_REEDSOL_PPT_IMPL_64_46( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
5523 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
5524 187488 : do { \
5525 187488 : gf_t scratch_14, scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28; \
5526 187488 : gf_t scratch_29, scratch_3, scratch_46, scratch_47, scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59; \
5527 187488 : gf_t scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7; \
5528 187488 : scratch_46 = in46; \
5529 187488 : in46 = GF_MUL( in46, 1 ); \
5530 187488 : scratch_47 = in47; \
5531 187488 : in47 = GF_MUL( in47, 1 ); \
5532 187488 : scratch_48 = in48; \
5533 187488 : in48 = GF_MUL( in48, 1 ); \
5534 187488 : scratch_49 = in49; \
5535 187488 : in49 = GF_MUL( in49, 1 ); \
5536 187488 : scratch_50 = in50; \
5537 187488 : in50 = GF_MUL( in50, 1 ); \
5538 187488 : scratch_51 = in51; \
5539 187488 : in51 = GF_MUL( in51, 1 ); \
5540 187488 : scratch_52 = in52; \
5541 187488 : in52 = GF_MUL( in52, 1 ); \
5542 187488 : scratch_53 = in53; \
5543 187488 : in53 = GF_MUL( in53, 1 ); \
5544 187488 : scratch_54 = in54; \
5545 187488 : in54 = GF_MUL( in54, 1 ); \
5546 187488 : scratch_55 = in55; \
5547 187488 : in55 = GF_MUL( in55, 1 ); \
5548 187488 : scratch_56 = in56; \
5549 187488 : in56 = GF_MUL( in56, 1 ); \
5550 187488 : scratch_57 = in57; \
5551 187488 : in57 = GF_MUL( in57, 1 ); \
5552 187488 : scratch_58 = in58; \
5553 187488 : in58 = GF_MUL( in58, 1 ); \
5554 187488 : scratch_59 = in59; \
5555 187488 : in59 = GF_MUL( in59, 1 ); \
5556 187488 : scratch_60 = in60; \
5557 187488 : in60 = GF_MUL( in60, 1 ); \
5558 187488 : scratch_61 = in61; \
5559 187488 : in61 = GF_MUL( in61, 1 ); \
5560 187488 : scratch_62 = in62; \
5561 187488 : in62 = GF_MUL( in62, 1 ); \
5562 187488 : scratch_63 = in63; \
5563 187488 : in63 = GF_MUL( in63, 1 ); \
5564 187488 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
5565 187488 : in46 = GF_ADD( GF_MUL( in14, 1 ), in46 ); \
5566 187488 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
5567 187488 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
5568 187488 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
5569 187488 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
5570 187488 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
5571 187488 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
5572 187488 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
5573 187488 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
5574 187488 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
5575 187488 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
5576 187488 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
5577 187488 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
5578 187488 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
5579 187488 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
5580 187488 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
5581 187488 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
5582 187488 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
5583 187488 : scratch_16 = in48; \
5584 187488 : in48 = GF_MUL( in48, 1 ); \
5585 187488 : scratch_17 = in49; \
5586 187488 : in49 = GF_MUL( in49, 1 ); \
5587 187488 : scratch_18 = in50; \
5588 187488 : in50 = GF_MUL( in50, 1 ); \
5589 187488 : scratch_19 = in51; \
5590 187488 : in51 = GF_MUL( in51, 1 ); \
5591 187488 : scratch_20 = in52; \
5592 187488 : in52 = GF_MUL( in52, 1 ); \
5593 187488 : scratch_21 = in53; \
5594 187488 : in53 = GF_MUL( in53, 1 ); \
5595 187488 : scratch_22 = in54; \
5596 187488 : in54 = GF_MUL( in54, 1 ); \
5597 187488 : scratch_23 = in55; \
5598 187488 : in55 = GF_MUL( in55, 1 ); \
5599 187488 : scratch_24 = in56; \
5600 187488 : in56 = GF_MUL( in56, 1 ); \
5601 187488 : scratch_25 = in57; \
5602 187488 : in57 = GF_MUL( in57, 1 ); \
5603 187488 : scratch_26 = in58; \
5604 187488 : in58 = GF_MUL( in58, 1 ); \
5605 187488 : scratch_27 = in59; \
5606 187488 : in59 = GF_MUL( in59, 1 ); \
5607 187488 : scratch_28 = in60; \
5608 187488 : in60 = GF_MUL( in60, 1 ); \
5609 187488 : scratch_29 = in61; \
5610 187488 : in61 = GF_MUL( in61, 1 ); \
5611 187488 : GF_MUL22( in46, in62, 1, 71, 1, 70 ); \
5612 187488 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
5613 187488 : scratch_14 = in46; \
5614 187488 : in46 = GF_MUL( in46, 1 ); \
5615 187488 : scratch_15 = in47; \
5616 187488 : in47 = GF_MUL( in47, 1 ); \
5617 187488 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
5618 187488 : in46 = GF_ADD( GF_MUL( in38, 1 ), in46 ); \
5619 187488 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
5620 187488 : scratch_6 = in46; \
5621 187488 : in46 = GF_MUL( in46, 1 ); \
5622 187488 : scratch_7 = in47; \
5623 187488 : in47 = GF_MUL( in47, 1 ); \
5624 187488 : FD_REEDSOL_GENERATE_IFFT( 4, 40, in40, in41, in42, in43 ); \
5625 187488 : in46 = GF_ADD( GF_MUL( in42, 1 ), in46 ); \
5626 187488 : in47 = GF_ADD( GF_MUL( in43, 1 ), in47 ); \
5627 187488 : scratch_2 = in46; \
5628 187488 : in46 = GF_MUL( in46, 1 ); \
5629 187488 : scratch_3 = in47; \
5630 187488 : in47 = GF_MUL( in47, 1 ); \
5631 187488 : GF_MUL22( in44, in45, 45, 44, 1, 1 ); \
5632 187488 : in46 = GF_ADD( GF_MUL( in44, 1 ), in46 ); \
5633 187488 : in47 = GF_ADD( GF_MUL( in45, 1 ), in47 ); \
5634 187488 : GF_MUL22( in46, in47, 1, 46, 1, 47 ); \
5635 187488 : in44 = GF_MUL( in44, 1 ); \
5636 187488 : in44 = GF_ADD( GF_MUL( scratch_2, 247 ), in44 ); \
5637 187488 : in45 = GF_MUL( in45, 1 ); \
5638 187488 : in45 = GF_ADD( GF_MUL( scratch_3, 247 ), in45 ); \
5639 187488 : GF_MUL22( in40, in44, 49, 48, 1, 1 ); \
5640 187488 : GF_MUL22( in41, in45, 49, 48, 1, 1 ); \
5641 187488 : in42 = GF_MUL( in42, 1 ); \
5642 187488 : in42 = GF_ADD( GF_MUL( scratch_6, 48 ), in42 ); \
5643 187488 : in43 = GF_MUL( in43, 1 ); \
5644 187488 : in43 = GF_ADD( GF_MUL( scratch_7, 48 ), in43 ); \
5645 187488 : GF_MUL22( in32, in40, 175, 174, 1, 1 ); \
5646 187488 : GF_MUL22( in33, in41, 175, 174, 1, 1 ); \
5647 187488 : GF_MUL22( in34, in42, 175, 174, 1, 1 ); \
5648 187488 : GF_MUL22( in35, in43, 175, 174, 1, 1 ); \
5649 187488 : GF_MUL22( in36, in44, 175, 174, 1, 1 ); \
5650 187488 : GF_MUL22( in37, in45, 175, 174, 1, 1 ); \
5651 187488 : in38 = GF_MUL( in38, 1 ); \
5652 187488 : in38 = GF_ADD( GF_MUL( scratch_14, 174 ), in38 ); \
5653 187488 : in39 = GF_MUL( in39, 1 ); \
5654 187488 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
5655 187488 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
5656 187488 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
5657 187488 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
5658 187488 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
5659 187488 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
5660 187488 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
5661 187488 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
5662 187488 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
5663 187488 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
5664 187488 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
5665 187488 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
5666 187488 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
5667 187488 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
5668 187488 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
5669 187488 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
5670 187488 : in32 = GF_MUL( in32, 1 ); \
5671 187488 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
5672 187488 : in33 = GF_MUL( in33, 1 ); \
5673 187488 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
5674 187488 : in34 = GF_MUL( in34, 1 ); \
5675 187488 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
5676 187488 : in35 = GF_MUL( in35, 1 ); \
5677 187488 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
5678 187488 : in36 = GF_MUL( in36, 1 ); \
5679 187488 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
5680 187488 : in37 = GF_MUL( in37, 1 ); \
5681 187488 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
5682 187488 : in38 = GF_MUL( in38, 1 ); \
5683 187488 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
5684 187488 : in39 = GF_MUL( in39, 1 ); \
5685 187488 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
5686 187488 : in40 = GF_MUL( in40, 1 ); \
5687 187488 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
5688 187488 : in41 = GF_MUL( in41, 1 ); \
5689 187488 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
5690 187488 : in42 = GF_MUL( in42, 1 ); \
5691 187488 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
5692 187488 : in43 = GF_MUL( in43, 1 ); \
5693 187488 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
5694 187488 : in44 = GF_MUL( in44, 1 ); \
5695 187488 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
5696 187488 : in45 = GF_MUL( in45, 1 ); \
5697 187488 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
5698 187488 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
5699 187488 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
5700 187488 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
5701 187488 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
5702 187488 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
5703 187488 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
5704 187488 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
5705 187488 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
5706 187488 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
5707 187488 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
5708 187488 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
5709 187488 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
5710 187488 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
5711 187488 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
5712 187488 : in14 = GF_MUL( in14, 1 ); \
5713 187488 : in14 = GF_ADD( GF_MUL( scratch_46, 0 ), in14 ); \
5714 187488 : in15 = GF_MUL( in15, 1 ); \
5715 187488 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
5716 187488 : in16 = GF_MUL( in16, 1 ); \
5717 187488 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
5718 187488 : in17 = GF_MUL( in17, 1 ); \
5719 187488 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
5720 187488 : in18 = GF_MUL( in18, 1 ); \
5721 187488 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
5722 187488 : in19 = GF_MUL( in19, 1 ); \
5723 187488 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
5724 187488 : in20 = GF_MUL( in20, 1 ); \
5725 187488 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
5726 187488 : in21 = GF_MUL( in21, 1 ); \
5727 187488 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
5728 187488 : in22 = GF_MUL( in22, 1 ); \
5729 187488 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
5730 187488 : in23 = GF_MUL( in23, 1 ); \
5731 187488 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
5732 187488 : in24 = GF_MUL( in24, 1 ); \
5733 187488 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
5734 187488 : in25 = GF_MUL( in25, 1 ); \
5735 187488 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
5736 187488 : in26 = GF_MUL( in26, 1 ); \
5737 187488 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
5738 187488 : in27 = GF_MUL( in27, 1 ); \
5739 187488 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
5740 187488 : in28 = GF_MUL( in28, 1 ); \
5741 187488 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
5742 187488 : in29 = GF_MUL( in29, 1 ); \
5743 187488 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
5744 187488 : in30 = GF_MUL( in30, 1 ); \
5745 187488 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
5746 187488 : in31 = GF_MUL( in31, 1 ); \
5747 187488 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
5748 187488 : } while( 0 )
5749 :
5750 : void fd_reedsol_ppt_64_47( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
5751 : #define FD_REEDSOL_PPT_IMPL_64_47( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
5752 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
5753 187200 : do { \
5754 187200 : gf_t scratch_15, scratch_16, scratch_17, scratch_18, scratch_19, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3; \
5755 187200 : gf_t scratch_30, scratch_47, scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61; \
5756 187200 : gf_t scratch_62, scratch_63, scratch_7; \
5757 187200 : scratch_47 = in47; \
5758 187200 : in47 = GF_MUL( in47, 1 ); \
5759 187200 : scratch_48 = in48; \
5760 187200 : in48 = GF_MUL( in48, 1 ); \
5761 187200 : scratch_49 = in49; \
5762 187200 : in49 = GF_MUL( in49, 1 ); \
5763 187200 : scratch_50 = in50; \
5764 187200 : in50 = GF_MUL( in50, 1 ); \
5765 187200 : scratch_51 = in51; \
5766 187200 : in51 = GF_MUL( in51, 1 ); \
5767 187200 : scratch_52 = in52; \
5768 187200 : in52 = GF_MUL( in52, 1 ); \
5769 187200 : scratch_53 = in53; \
5770 187200 : in53 = GF_MUL( in53, 1 ); \
5771 187200 : scratch_54 = in54; \
5772 187200 : in54 = GF_MUL( in54, 1 ); \
5773 187200 : scratch_55 = in55; \
5774 187200 : in55 = GF_MUL( in55, 1 ); \
5775 187200 : scratch_56 = in56; \
5776 187200 : in56 = GF_MUL( in56, 1 ); \
5777 187200 : scratch_57 = in57; \
5778 187200 : in57 = GF_MUL( in57, 1 ); \
5779 187200 : scratch_58 = in58; \
5780 187200 : in58 = GF_MUL( in58, 1 ); \
5781 187200 : scratch_59 = in59; \
5782 187200 : in59 = GF_MUL( in59, 1 ); \
5783 187200 : scratch_60 = in60; \
5784 187200 : in60 = GF_MUL( in60, 1 ); \
5785 187200 : scratch_61 = in61; \
5786 187200 : in61 = GF_MUL( in61, 1 ); \
5787 187200 : scratch_62 = in62; \
5788 187200 : in62 = GF_MUL( in62, 1 ); \
5789 187200 : scratch_63 = in63; \
5790 187200 : in63 = GF_MUL( in63, 1 ); \
5791 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
5792 187200 : in47 = GF_ADD( GF_MUL( in15, 1 ), in47 ); \
5793 187200 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
5794 187200 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
5795 187200 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
5796 187200 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
5797 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
5798 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
5799 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
5800 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
5801 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
5802 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
5803 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
5804 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
5805 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
5806 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
5807 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
5808 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
5809 187200 : scratch_16 = in48; \
5810 187200 : in48 = GF_MUL( in48, 1 ); \
5811 187200 : scratch_17 = in49; \
5812 187200 : in49 = GF_MUL( in49, 1 ); \
5813 187200 : scratch_18 = in50; \
5814 187200 : in50 = GF_MUL( in50, 1 ); \
5815 187200 : scratch_19 = in51; \
5816 187200 : in51 = GF_MUL( in51, 1 ); \
5817 187200 : scratch_20 = in52; \
5818 187200 : in52 = GF_MUL( in52, 1 ); \
5819 187200 : scratch_21 = in53; \
5820 187200 : in53 = GF_MUL( in53, 1 ); \
5821 187200 : scratch_22 = in54; \
5822 187200 : in54 = GF_MUL( in54, 1 ); \
5823 187200 : scratch_23 = in55; \
5824 187200 : in55 = GF_MUL( in55, 1 ); \
5825 187200 : scratch_24 = in56; \
5826 187200 : in56 = GF_MUL( in56, 1 ); \
5827 187200 : scratch_25 = in57; \
5828 187200 : in57 = GF_MUL( in57, 1 ); \
5829 187200 : scratch_26 = in58; \
5830 187200 : in58 = GF_MUL( in58, 1 ); \
5831 187200 : scratch_27 = in59; \
5832 187200 : in59 = GF_MUL( in59, 1 ); \
5833 187200 : scratch_28 = in60; \
5834 187200 : in60 = GF_MUL( in60, 1 ); \
5835 187200 : scratch_29 = in61; \
5836 187200 : in61 = GF_MUL( in61, 1 ); \
5837 187200 : scratch_30 = in62; \
5838 187200 : in62 = GF_MUL( in62, 1 ); \
5839 187200 : GF_MUL22( in47, in63, 1, 71, 1, 70 ); \
5840 187200 : scratch_15 = in47; \
5841 187200 : in47 = GF_MUL( in47, 1 ); \
5842 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 32, in32, in33, in34, in35, in36, in37, in38, in39 ); \
5843 187200 : in47 = GF_ADD( GF_MUL( in39, 1 ), in47 ); \
5844 187200 : scratch_7 = in47; \
5845 187200 : in47 = GF_MUL( in47, 1 ); \
5846 187200 : FD_REEDSOL_GENERATE_IFFT( 4, 40, in40, in41, in42, in43 ); \
5847 187200 : in47 = GF_ADD( GF_MUL( in43, 1 ), in47 ); \
5848 187200 : scratch_3 = in47; \
5849 187200 : in47 = GF_MUL( in47, 1 ); \
5850 187200 : GF_MUL22( in44, in45, 45, 44, 1, 1 ); \
5851 187200 : in47 = GF_ADD( GF_MUL( in45, 1 ), in47 ); \
5852 187200 : GF_MUL22( in46, in47, 1, 46, 1, 1 ); \
5853 187200 : GF_MUL22( in44, in46, 246, 247, 1, 1 ); \
5854 187200 : in45 = GF_MUL( in45, 1 ); \
5855 187200 : in45 = GF_ADD( GF_MUL( scratch_3, 247 ), in45 ); \
5856 187200 : GF_MUL22( in40, in44, 49, 48, 1, 1 ); \
5857 187200 : GF_MUL22( in41, in45, 49, 48, 1, 1 ); \
5858 187200 : GF_MUL22( in42, in46, 49, 48, 1, 1 ); \
5859 187200 : in43 = GF_MUL( in43, 1 ); \
5860 187200 : in43 = GF_ADD( GF_MUL( scratch_7, 48 ), in43 ); \
5861 187200 : GF_MUL22( in32, in40, 175, 174, 1, 1 ); \
5862 187200 : GF_MUL22( in33, in41, 175, 174, 1, 1 ); \
5863 187200 : GF_MUL22( in34, in42, 175, 174, 1, 1 ); \
5864 187200 : GF_MUL22( in35, in43, 175, 174, 1, 1 ); \
5865 187200 : GF_MUL22( in36, in44, 175, 174, 1, 1 ); \
5866 187200 : GF_MUL22( in37, in45, 175, 174, 1, 1 ); \
5867 187200 : GF_MUL22( in38, in46, 175, 174, 1, 1 ); \
5868 187200 : in39 = GF_MUL( in39, 1 ); \
5869 187200 : in39 = GF_ADD( GF_MUL( scratch_15, 174 ), in39 ); \
5870 187200 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
5871 187200 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
5872 187200 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
5873 187200 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
5874 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
5875 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
5876 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
5877 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
5878 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
5879 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
5880 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
5881 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
5882 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
5883 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
5884 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
5885 187200 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
5886 187200 : in32 = GF_MUL( in32, 1 ); \
5887 187200 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
5888 187200 : in33 = GF_MUL( in33, 1 ); \
5889 187200 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
5890 187200 : in34 = GF_MUL( in34, 1 ); \
5891 187200 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
5892 187200 : in35 = GF_MUL( in35, 1 ); \
5893 187200 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
5894 187200 : in36 = GF_MUL( in36, 1 ); \
5895 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
5896 187200 : in37 = GF_MUL( in37, 1 ); \
5897 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
5898 187200 : in38 = GF_MUL( in38, 1 ); \
5899 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
5900 187200 : in39 = GF_MUL( in39, 1 ); \
5901 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
5902 187200 : in40 = GF_MUL( in40, 1 ); \
5903 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
5904 187200 : in41 = GF_MUL( in41, 1 ); \
5905 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
5906 187200 : in42 = GF_MUL( in42, 1 ); \
5907 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
5908 187200 : in43 = GF_MUL( in43, 1 ); \
5909 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
5910 187200 : in44 = GF_MUL( in44, 1 ); \
5911 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
5912 187200 : in45 = GF_MUL( in45, 1 ); \
5913 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
5914 187200 : in46 = GF_MUL( in46, 1 ); \
5915 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
5916 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
5917 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
5918 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
5919 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
5920 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
5921 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
5922 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
5923 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
5924 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
5925 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
5926 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
5927 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
5928 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
5929 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
5930 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
5931 187200 : in15 = GF_MUL( in15, 1 ); \
5932 187200 : in15 = GF_ADD( GF_MUL( scratch_47, 0 ), in15 ); \
5933 187200 : in16 = GF_MUL( in16, 1 ); \
5934 187200 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
5935 187200 : in17 = GF_MUL( in17, 1 ); \
5936 187200 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
5937 187200 : in18 = GF_MUL( in18, 1 ); \
5938 187200 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
5939 187200 : in19 = GF_MUL( in19, 1 ); \
5940 187200 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
5941 187200 : in20 = GF_MUL( in20, 1 ); \
5942 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
5943 187200 : in21 = GF_MUL( in21, 1 ); \
5944 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
5945 187200 : in22 = GF_MUL( in22, 1 ); \
5946 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
5947 187200 : in23 = GF_MUL( in23, 1 ); \
5948 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
5949 187200 : in24 = GF_MUL( in24, 1 ); \
5950 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
5951 187200 : in25 = GF_MUL( in25, 1 ); \
5952 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
5953 187200 : in26 = GF_MUL( in26, 1 ); \
5954 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
5955 187200 : in27 = GF_MUL( in27, 1 ); \
5956 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
5957 187200 : in28 = GF_MUL( in28, 1 ); \
5958 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
5959 187200 : in29 = GF_MUL( in29, 1 ); \
5960 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
5961 187200 : in30 = GF_MUL( in30, 1 ); \
5962 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
5963 187200 : in31 = GF_MUL( in31, 1 ); \
5964 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
5965 187200 : } while( 0 )
5966 :
5967 : void fd_reedsol_ppt_64_48( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
5968 : #define FD_REEDSOL_PPT_IMPL_64_48( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
5969 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
5970 187488 : do { \
5971 187488 : gf_t scratch_16, scratch_17, scratch_18, scratch_19, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31; \
5972 187488 : gf_t scratch_48, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63; \
5973 187488 : scratch_48 = in48; \
5974 187488 : in48 = GF_MUL( in48, 1 ); \
5975 187488 : scratch_49 = in49; \
5976 187488 : in49 = GF_MUL( in49, 1 ); \
5977 187488 : scratch_50 = in50; \
5978 187488 : in50 = GF_MUL( in50, 1 ); \
5979 187488 : scratch_51 = in51; \
5980 187488 : in51 = GF_MUL( in51, 1 ); \
5981 187488 : scratch_52 = in52; \
5982 187488 : in52 = GF_MUL( in52, 1 ); \
5983 187488 : scratch_53 = in53; \
5984 187488 : in53 = GF_MUL( in53, 1 ); \
5985 187488 : scratch_54 = in54; \
5986 187488 : in54 = GF_MUL( in54, 1 ); \
5987 187488 : scratch_55 = in55; \
5988 187488 : in55 = GF_MUL( in55, 1 ); \
5989 187488 : scratch_56 = in56; \
5990 187488 : in56 = GF_MUL( in56, 1 ); \
5991 187488 : scratch_57 = in57; \
5992 187488 : in57 = GF_MUL( in57, 1 ); \
5993 187488 : scratch_58 = in58; \
5994 187488 : in58 = GF_MUL( in58, 1 ); \
5995 187488 : scratch_59 = in59; \
5996 187488 : in59 = GF_MUL( in59, 1 ); \
5997 187488 : scratch_60 = in60; \
5998 187488 : in60 = GF_MUL( in60, 1 ); \
5999 187488 : scratch_61 = in61; \
6000 187488 : in61 = GF_MUL( in61, 1 ); \
6001 187488 : scratch_62 = in62; \
6002 187488 : in62 = GF_MUL( in62, 1 ); \
6003 187488 : scratch_63 = in63; \
6004 187488 : in63 = GF_MUL( in63, 1 ); \
6005 187488 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
6006 187488 : in48 = GF_ADD( GF_MUL( in16, 1 ), in48 ); \
6007 187488 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
6008 187488 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
6009 187488 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
6010 187488 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
6011 187488 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
6012 187488 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
6013 187488 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
6014 187488 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
6015 187488 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
6016 187488 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
6017 187488 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
6018 187488 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
6019 187488 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
6020 187488 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
6021 187488 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
6022 187488 : scratch_16 = in48; \
6023 187488 : in48 = GF_MUL( in48, 1 ); \
6024 187488 : scratch_17 = in49; \
6025 187488 : in49 = GF_MUL( in49, 1 ); \
6026 187488 : scratch_18 = in50; \
6027 187488 : in50 = GF_MUL( in50, 1 ); \
6028 187488 : scratch_19 = in51; \
6029 187488 : in51 = GF_MUL( in51, 1 ); \
6030 187488 : scratch_20 = in52; \
6031 187488 : in52 = GF_MUL( in52, 1 ); \
6032 187488 : scratch_21 = in53; \
6033 187488 : in53 = GF_MUL( in53, 1 ); \
6034 187488 : scratch_22 = in54; \
6035 187488 : in54 = GF_MUL( in54, 1 ); \
6036 187488 : scratch_23 = in55; \
6037 187488 : in55 = GF_MUL( in55, 1 ); \
6038 187488 : scratch_24 = in56; \
6039 187488 : in56 = GF_MUL( in56, 1 ); \
6040 187488 : scratch_25 = in57; \
6041 187488 : in57 = GF_MUL( in57, 1 ); \
6042 187488 : scratch_26 = in58; \
6043 187488 : in58 = GF_MUL( in58, 1 ); \
6044 187488 : scratch_27 = in59; \
6045 187488 : in59 = GF_MUL( in59, 1 ); \
6046 187488 : scratch_28 = in60; \
6047 187488 : in60 = GF_MUL( in60, 1 ); \
6048 187488 : scratch_29 = in61; \
6049 187488 : in61 = GF_MUL( in61, 1 ); \
6050 187488 : scratch_30 = in62; \
6051 187488 : in62 = GF_MUL( in62, 1 ); \
6052 187488 : scratch_31 = in63; \
6053 187488 : in63 = GF_MUL( in63, 1 ); \
6054 187488 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
6055 187488 : in48 = GF_ADD( GF_MUL( in32, 1 ), in48 ); \
6056 187488 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
6057 187488 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
6058 187488 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
6059 187488 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
6060 187488 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
6061 187488 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
6062 187488 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
6063 187488 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
6064 187488 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
6065 187488 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
6066 187488 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
6067 187488 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
6068 187488 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
6069 187488 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
6070 187488 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
6071 187488 : FD_REEDSOL_GENERATE_FFT( 16, 48, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
6072 187488 : in32 = GF_MUL( in32, 1 ); \
6073 187488 : in32 = GF_ADD( GF_MUL( scratch_16, 71 ), in32 ); \
6074 187488 : in33 = GF_MUL( in33, 1 ); \
6075 187488 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
6076 187488 : in34 = GF_MUL( in34, 1 ); \
6077 187488 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
6078 187488 : in35 = GF_MUL( in35, 1 ); \
6079 187488 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
6080 187488 : in36 = GF_MUL( in36, 1 ); \
6081 187488 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
6082 187488 : in37 = GF_MUL( in37, 1 ); \
6083 187488 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
6084 187488 : in38 = GF_MUL( in38, 1 ); \
6085 187488 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
6086 187488 : in39 = GF_MUL( in39, 1 ); \
6087 187488 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
6088 187488 : in40 = GF_MUL( in40, 1 ); \
6089 187488 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
6090 187488 : in41 = GF_MUL( in41, 1 ); \
6091 187488 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
6092 187488 : in42 = GF_MUL( in42, 1 ); \
6093 187488 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
6094 187488 : in43 = GF_MUL( in43, 1 ); \
6095 187488 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
6096 187488 : in44 = GF_MUL( in44, 1 ); \
6097 187488 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
6098 187488 : in45 = GF_MUL( in45, 1 ); \
6099 187488 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
6100 187488 : in46 = GF_MUL( in46, 1 ); \
6101 187488 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
6102 187488 : in47 = GF_MUL( in47, 1 ); \
6103 187488 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
6104 187488 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
6105 187488 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
6106 187488 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
6107 187488 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
6108 187488 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
6109 187488 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
6110 187488 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
6111 187488 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
6112 187488 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
6113 187488 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
6114 187488 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
6115 187488 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
6116 187488 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
6117 187488 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
6118 187488 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
6119 187488 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
6120 187488 : in16 = GF_MUL( in16, 1 ); \
6121 187488 : in16 = GF_ADD( GF_MUL( scratch_48, 0 ), in16 ); \
6122 187488 : in17 = GF_MUL( in17, 1 ); \
6123 187488 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
6124 187488 : in18 = GF_MUL( in18, 1 ); \
6125 187488 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
6126 187488 : in19 = GF_MUL( in19, 1 ); \
6127 187488 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
6128 187488 : in20 = GF_MUL( in20, 1 ); \
6129 187488 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
6130 187488 : in21 = GF_MUL( in21, 1 ); \
6131 187488 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
6132 187488 : in22 = GF_MUL( in22, 1 ); \
6133 187488 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
6134 187488 : in23 = GF_MUL( in23, 1 ); \
6135 187488 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
6136 187488 : in24 = GF_MUL( in24, 1 ); \
6137 187488 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
6138 187488 : in25 = GF_MUL( in25, 1 ); \
6139 187488 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
6140 187488 : in26 = GF_MUL( in26, 1 ); \
6141 187488 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
6142 187488 : in27 = GF_MUL( in27, 1 ); \
6143 187488 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
6144 187488 : in28 = GF_MUL( in28, 1 ); \
6145 187488 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
6146 187488 : in29 = GF_MUL( in29, 1 ); \
6147 187488 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
6148 187488 : in30 = GF_MUL( in30, 1 ); \
6149 187488 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
6150 187488 : in31 = GF_MUL( in31, 1 ); \
6151 187488 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
6152 187488 : } while( 0 )
6153 :
6154 : void fd_reedsol_ppt_64_49( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
6155 : #define FD_REEDSOL_PPT_IMPL_64_49( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
6156 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
6157 187200 : do { \
6158 187200 : gf_t scratch_17, scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31; \
6159 187200 : gf_t scratch_4, scratch_49, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63; \
6160 187200 : gf_t scratch_8; \
6161 187200 : scratch_49 = in49; \
6162 187200 : in49 = GF_MUL( in49, 1 ); \
6163 187200 : scratch_50 = in50; \
6164 187200 : in50 = GF_MUL( in50, 1 ); \
6165 187200 : scratch_51 = in51; \
6166 187200 : in51 = GF_MUL( in51, 1 ); \
6167 187200 : scratch_52 = in52; \
6168 187200 : in52 = GF_MUL( in52, 1 ); \
6169 187200 : scratch_53 = in53; \
6170 187200 : in53 = GF_MUL( in53, 1 ); \
6171 187200 : scratch_54 = in54; \
6172 187200 : in54 = GF_MUL( in54, 1 ); \
6173 187200 : scratch_55 = in55; \
6174 187200 : in55 = GF_MUL( in55, 1 ); \
6175 187200 : scratch_56 = in56; \
6176 187200 : in56 = GF_MUL( in56, 1 ); \
6177 187200 : scratch_57 = in57; \
6178 187200 : in57 = GF_MUL( in57, 1 ); \
6179 187200 : scratch_58 = in58; \
6180 187200 : in58 = GF_MUL( in58, 1 ); \
6181 187200 : scratch_59 = in59; \
6182 187200 : in59 = GF_MUL( in59, 1 ); \
6183 187200 : scratch_60 = in60; \
6184 187200 : in60 = GF_MUL( in60, 1 ); \
6185 187200 : scratch_61 = in61; \
6186 187200 : in61 = GF_MUL( in61, 1 ); \
6187 187200 : scratch_62 = in62; \
6188 187200 : in62 = GF_MUL( in62, 1 ); \
6189 187200 : scratch_63 = in63; \
6190 187200 : in63 = GF_MUL( in63, 1 ); \
6191 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
6192 187200 : in49 = GF_ADD( GF_MUL( in17, 1 ), in49 ); \
6193 187200 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
6194 187200 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
6195 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
6196 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
6197 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
6198 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
6199 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
6200 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
6201 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
6202 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
6203 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
6204 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
6205 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
6206 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
6207 187200 : scratch_17 = in49; \
6208 187200 : in49 = GF_MUL( in49, 1 ); \
6209 187200 : scratch_18 = in50; \
6210 187200 : in50 = GF_MUL( in50, 1 ); \
6211 187200 : scratch_19 = in51; \
6212 187200 : in51 = GF_MUL( in51, 1 ); \
6213 187200 : scratch_20 = in52; \
6214 187200 : in52 = GF_MUL( in52, 1 ); \
6215 187200 : scratch_21 = in53; \
6216 187200 : in53 = GF_MUL( in53, 1 ); \
6217 187200 : scratch_22 = in54; \
6218 187200 : in54 = GF_MUL( in54, 1 ); \
6219 187200 : scratch_23 = in55; \
6220 187200 : in55 = GF_MUL( in55, 1 ); \
6221 187200 : scratch_24 = in56; \
6222 187200 : in56 = GF_MUL( in56, 1 ); \
6223 187200 : scratch_25 = in57; \
6224 187200 : in57 = GF_MUL( in57, 1 ); \
6225 187200 : scratch_26 = in58; \
6226 187200 : in58 = GF_MUL( in58, 1 ); \
6227 187200 : scratch_27 = in59; \
6228 187200 : in59 = GF_MUL( in59, 1 ); \
6229 187200 : scratch_28 = in60; \
6230 187200 : in60 = GF_MUL( in60, 1 ); \
6231 187200 : scratch_29 = in61; \
6232 187200 : in61 = GF_MUL( in61, 1 ); \
6233 187200 : scratch_30 = in62; \
6234 187200 : in62 = GF_MUL( in62, 1 ); \
6235 187200 : scratch_31 = in63; \
6236 187200 : in63 = GF_MUL( in63, 1 ); \
6237 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
6238 187200 : in49 = GF_ADD( GF_MUL( in33, 1 ), in49 ); \
6239 187200 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
6240 187200 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
6241 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
6242 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
6243 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
6244 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
6245 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
6246 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
6247 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
6248 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
6249 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
6250 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
6251 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
6252 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
6253 187200 : scratch_8 = in56; \
6254 187200 : in56 = GF_MUL( in56, 1 ); \
6255 187200 : GF_MUL22( in49, in57, 1, 165, 1, 164 ); \
6256 187200 : GF_MUL22( in50, in58, 1, 165, 1, 164 ); \
6257 187200 : GF_MUL22( in51, in59, 1, 165, 1, 164 ); \
6258 187200 : GF_MUL22( in52, in60, 1, 165, 1, 164 ); \
6259 187200 : GF_MUL22( in53, in61, 1, 165, 1, 164 ); \
6260 187200 : GF_MUL22( in54, in62, 1, 165, 1, 164 ); \
6261 187200 : GF_MUL22( in55, in63, 1, 165, 1, 164 ); \
6262 187200 : scratch_4 = in52; \
6263 187200 : in52 = GF_MUL( in52, 1 ); \
6264 187200 : GF_MUL22( in49, in53, 1, 71, 1, 70 ); \
6265 187200 : GF_MUL22( in50, in54, 1, 71, 1, 70 ); \
6266 187200 : GF_MUL22( in51, in55, 1, 71, 1, 70 ); \
6267 187200 : scratch_2 = in50; \
6268 187200 : in50 = GF_MUL( in50, 1 ); \
6269 187200 : GF_MUL22( in49, in51, 1, 149, 1, 148 ); \
6270 187200 : GF_MUL22( in48, in49, 1, 48, 1, 1 ); \
6271 187200 : in50 = GF_ADD( GF_MUL( in48, 1 ), in50 ); \
6272 187200 : GF_MUL22( in50, in51, 1, 50, 1, 51 ); \
6273 187200 : in48 = GF_MUL( in48, 1 ); \
6274 187200 : in48 = GF_ADD( GF_MUL( scratch_2, 149 ), in48 ); \
6275 187200 : in52 = GF_ADD( GF_MUL( in48, 1 ), in52 ); \
6276 187200 : FD_REEDSOL_GENERATE_FFT( 4, 52, in52, in53, in54, in55 ); \
6277 187200 : in48 = GF_MUL( in48, 1 ); \
6278 187200 : in48 = GF_ADD( GF_MUL( scratch_4, 71 ), in48 ); \
6279 187200 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
6280 187200 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
6281 187200 : in48 = GF_MUL( in48, 1 ); \
6282 187200 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
6283 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
6284 187200 : in33 = GF_MUL( in33, 1 ); \
6285 187200 : in33 = GF_ADD( GF_MUL( scratch_17, 71 ), in33 ); \
6286 187200 : in34 = GF_MUL( in34, 1 ); \
6287 187200 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
6288 187200 : in35 = GF_MUL( in35, 1 ); \
6289 187200 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
6290 187200 : in36 = GF_MUL( in36, 1 ); \
6291 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
6292 187200 : in37 = GF_MUL( in37, 1 ); \
6293 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
6294 187200 : in38 = GF_MUL( in38, 1 ); \
6295 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
6296 187200 : in39 = GF_MUL( in39, 1 ); \
6297 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
6298 187200 : in40 = GF_MUL( in40, 1 ); \
6299 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
6300 187200 : in41 = GF_MUL( in41, 1 ); \
6301 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
6302 187200 : in42 = GF_MUL( in42, 1 ); \
6303 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
6304 187200 : in43 = GF_MUL( in43, 1 ); \
6305 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
6306 187200 : in44 = GF_MUL( in44, 1 ); \
6307 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
6308 187200 : in45 = GF_MUL( in45, 1 ); \
6309 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
6310 187200 : in46 = GF_MUL( in46, 1 ); \
6311 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
6312 187200 : in47 = GF_MUL( in47, 1 ); \
6313 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
6314 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
6315 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
6316 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
6317 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
6318 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
6319 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
6320 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
6321 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
6322 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
6323 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
6324 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
6325 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
6326 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
6327 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
6328 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
6329 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
6330 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
6331 187200 : in17 = GF_MUL( in17, 1 ); \
6332 187200 : in17 = GF_ADD( GF_MUL( scratch_49, 0 ), in17 ); \
6333 187200 : in18 = GF_MUL( in18, 1 ); \
6334 187200 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
6335 187200 : in19 = GF_MUL( in19, 1 ); \
6336 187200 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
6337 187200 : in20 = GF_MUL( in20, 1 ); \
6338 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
6339 187200 : in21 = GF_MUL( in21, 1 ); \
6340 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
6341 187200 : in22 = GF_MUL( in22, 1 ); \
6342 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
6343 187200 : in23 = GF_MUL( in23, 1 ); \
6344 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
6345 187200 : in24 = GF_MUL( in24, 1 ); \
6346 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
6347 187200 : in25 = GF_MUL( in25, 1 ); \
6348 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
6349 187200 : in26 = GF_MUL( in26, 1 ); \
6350 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
6351 187200 : in27 = GF_MUL( in27, 1 ); \
6352 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
6353 187200 : in28 = GF_MUL( in28, 1 ); \
6354 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
6355 187200 : in29 = GF_MUL( in29, 1 ); \
6356 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
6357 187200 : in30 = GF_MUL( in30, 1 ); \
6358 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
6359 187200 : in31 = GF_MUL( in31, 1 ); \
6360 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
6361 187200 : } while( 0 )
6362 :
6363 : void fd_reedsol_ppt_64_50( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
6364 : #define FD_REEDSOL_PPT_IMPL_64_50( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
6365 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
6366 187296 : do { \
6367 187296 : gf_t scratch_18, scratch_19, scratch_2, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31; \
6368 187296 : gf_t scratch_4, scratch_5, scratch_50, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63; \
6369 187296 : gf_t scratch_8, scratch_9; \
6370 187296 : scratch_50 = in50; \
6371 187296 : in50 = GF_MUL( in50, 1 ); \
6372 187296 : scratch_51 = in51; \
6373 187296 : in51 = GF_MUL( in51, 1 ); \
6374 187296 : scratch_52 = in52; \
6375 187296 : in52 = GF_MUL( in52, 1 ); \
6376 187296 : scratch_53 = in53; \
6377 187296 : in53 = GF_MUL( in53, 1 ); \
6378 187296 : scratch_54 = in54; \
6379 187296 : in54 = GF_MUL( in54, 1 ); \
6380 187296 : scratch_55 = in55; \
6381 187296 : in55 = GF_MUL( in55, 1 ); \
6382 187296 : scratch_56 = in56; \
6383 187296 : in56 = GF_MUL( in56, 1 ); \
6384 187296 : scratch_57 = in57; \
6385 187296 : in57 = GF_MUL( in57, 1 ); \
6386 187296 : scratch_58 = in58; \
6387 187296 : in58 = GF_MUL( in58, 1 ); \
6388 187296 : scratch_59 = in59; \
6389 187296 : in59 = GF_MUL( in59, 1 ); \
6390 187296 : scratch_60 = in60; \
6391 187296 : in60 = GF_MUL( in60, 1 ); \
6392 187296 : scratch_61 = in61; \
6393 187296 : in61 = GF_MUL( in61, 1 ); \
6394 187296 : scratch_62 = in62; \
6395 187296 : in62 = GF_MUL( in62, 1 ); \
6396 187296 : scratch_63 = in63; \
6397 187296 : in63 = GF_MUL( in63, 1 ); \
6398 187296 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
6399 187296 : in50 = GF_ADD( GF_MUL( in18, 1 ), in50 ); \
6400 187296 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
6401 187296 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
6402 187296 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
6403 187296 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
6404 187296 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
6405 187296 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
6406 187296 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
6407 187296 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
6408 187296 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
6409 187296 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
6410 187296 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
6411 187296 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
6412 187296 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
6413 187296 : scratch_18 = in50; \
6414 187296 : in50 = GF_MUL( in50, 1 ); \
6415 187296 : scratch_19 = in51; \
6416 187296 : in51 = GF_MUL( in51, 1 ); \
6417 187296 : scratch_20 = in52; \
6418 187296 : in52 = GF_MUL( in52, 1 ); \
6419 187296 : scratch_21 = in53; \
6420 187296 : in53 = GF_MUL( in53, 1 ); \
6421 187296 : scratch_22 = in54; \
6422 187296 : in54 = GF_MUL( in54, 1 ); \
6423 187296 : scratch_23 = in55; \
6424 187296 : in55 = GF_MUL( in55, 1 ); \
6425 187296 : scratch_24 = in56; \
6426 187296 : in56 = GF_MUL( in56, 1 ); \
6427 187296 : scratch_25 = in57; \
6428 187296 : in57 = GF_MUL( in57, 1 ); \
6429 187296 : scratch_26 = in58; \
6430 187296 : in58 = GF_MUL( in58, 1 ); \
6431 187296 : scratch_27 = in59; \
6432 187296 : in59 = GF_MUL( in59, 1 ); \
6433 187296 : scratch_28 = in60; \
6434 187296 : in60 = GF_MUL( in60, 1 ); \
6435 187296 : scratch_29 = in61; \
6436 187296 : in61 = GF_MUL( in61, 1 ); \
6437 187296 : scratch_30 = in62; \
6438 187296 : in62 = GF_MUL( in62, 1 ); \
6439 187296 : scratch_31 = in63; \
6440 187296 : in63 = GF_MUL( in63, 1 ); \
6441 187296 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
6442 187296 : in50 = GF_ADD( GF_MUL( in34, 1 ), in50 ); \
6443 187296 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
6444 187296 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
6445 187296 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
6446 187296 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
6447 187296 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
6448 187296 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
6449 187296 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
6450 187296 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
6451 187296 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
6452 187296 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
6453 187296 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
6454 187296 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
6455 187296 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
6456 187296 : scratch_8 = in56; \
6457 187296 : in56 = GF_MUL( in56, 1 ); \
6458 187296 : scratch_9 = in57; \
6459 187296 : in57 = GF_MUL( in57, 1 ); \
6460 187296 : GF_MUL22( in50, in58, 1, 165, 1, 164 ); \
6461 187296 : GF_MUL22( in51, in59, 1, 165, 1, 164 ); \
6462 187296 : GF_MUL22( in52, in60, 1, 165, 1, 164 ); \
6463 187296 : GF_MUL22( in53, in61, 1, 165, 1, 164 ); \
6464 187296 : GF_MUL22( in54, in62, 1, 165, 1, 164 ); \
6465 187296 : GF_MUL22( in55, in63, 1, 165, 1, 164 ); \
6466 187296 : scratch_4 = in52; \
6467 187296 : in52 = GF_MUL( in52, 1 ); \
6468 187296 : scratch_5 = in53; \
6469 187296 : in53 = GF_MUL( in53, 1 ); \
6470 187296 : GF_MUL22( in50, in54, 1, 71, 1, 70 ); \
6471 187296 : GF_MUL22( in51, in55, 1, 71, 1, 70 ); \
6472 187296 : scratch_2 = in50; \
6473 187296 : in50 = GF_MUL( in50, 1 ); \
6474 187296 : scratch_3 = in51; \
6475 187296 : in51 = GF_MUL( in51, 1 ); \
6476 187296 : GF_MUL22( in48, in49, 49, 48, 1, 1 ); \
6477 187296 : in50 = GF_ADD( GF_MUL( in48, 1 ), in50 ); \
6478 187296 : in51 = GF_ADD( GF_MUL( in49, 1 ), in51 ); \
6479 187296 : GF_MUL22( in50, in51, 1, 50, 1, 51 ); \
6480 187296 : in48 = GF_MUL( in48, 1 ); \
6481 187296 : in48 = GF_ADD( GF_MUL( scratch_2, 149 ), in48 ); \
6482 187296 : in49 = GF_MUL( in49, 1 ); \
6483 187296 : in49 = GF_ADD( GF_MUL( scratch_3, 149 ), in49 ); \
6484 187296 : in52 = GF_ADD( GF_MUL( in48, 1 ), in52 ); \
6485 187296 : in53 = GF_ADD( GF_MUL( in49, 1 ), in53 ); \
6486 187296 : FD_REEDSOL_GENERATE_FFT( 4, 52, in52, in53, in54, in55 ); \
6487 187296 : in48 = GF_MUL( in48, 1 ); \
6488 187296 : in48 = GF_ADD( GF_MUL( scratch_4, 71 ), in48 ); \
6489 187296 : in49 = GF_MUL( in49, 1 ); \
6490 187296 : in49 = GF_ADD( GF_MUL( scratch_5, 71 ), in49 ); \
6491 187296 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
6492 187296 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
6493 187296 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
6494 187296 : in48 = GF_MUL( in48, 1 ); \
6495 187296 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
6496 187296 : in49 = GF_MUL( in49, 1 ); \
6497 187296 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
6498 187296 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
6499 187296 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
6500 187296 : in34 = GF_MUL( in34, 1 ); \
6501 187296 : in34 = GF_ADD( GF_MUL( scratch_18, 71 ), in34 ); \
6502 187296 : in35 = GF_MUL( in35, 1 ); \
6503 187296 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
6504 187296 : in36 = GF_MUL( in36, 1 ); \
6505 187296 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
6506 187296 : in37 = GF_MUL( in37, 1 ); \
6507 187296 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
6508 187296 : in38 = GF_MUL( in38, 1 ); \
6509 187296 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
6510 187296 : in39 = GF_MUL( in39, 1 ); \
6511 187296 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
6512 187296 : in40 = GF_MUL( in40, 1 ); \
6513 187296 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
6514 187296 : in41 = GF_MUL( in41, 1 ); \
6515 187296 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
6516 187296 : in42 = GF_MUL( in42, 1 ); \
6517 187296 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
6518 187296 : in43 = GF_MUL( in43, 1 ); \
6519 187296 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
6520 187296 : in44 = GF_MUL( in44, 1 ); \
6521 187296 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
6522 187296 : in45 = GF_MUL( in45, 1 ); \
6523 187296 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
6524 187296 : in46 = GF_MUL( in46, 1 ); \
6525 187296 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
6526 187296 : in47 = GF_MUL( in47, 1 ); \
6527 187296 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
6528 187296 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
6529 187296 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
6530 187296 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
6531 187296 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
6532 187296 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
6533 187296 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
6534 187296 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
6535 187296 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
6536 187296 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
6537 187296 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
6538 187296 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
6539 187296 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
6540 187296 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
6541 187296 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
6542 187296 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
6543 187296 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
6544 187296 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
6545 187296 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
6546 187296 : in18 = GF_MUL( in18, 1 ); \
6547 187296 : in18 = GF_ADD( GF_MUL( scratch_50, 0 ), in18 ); \
6548 187296 : in19 = GF_MUL( in19, 1 ); \
6549 187296 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
6550 187296 : in20 = GF_MUL( in20, 1 ); \
6551 187296 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
6552 187296 : in21 = GF_MUL( in21, 1 ); \
6553 187296 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
6554 187296 : in22 = GF_MUL( in22, 1 ); \
6555 187296 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
6556 187296 : in23 = GF_MUL( in23, 1 ); \
6557 187296 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
6558 187296 : in24 = GF_MUL( in24, 1 ); \
6559 187296 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
6560 187296 : in25 = GF_MUL( in25, 1 ); \
6561 187296 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
6562 187296 : in26 = GF_MUL( in26, 1 ); \
6563 187296 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
6564 187296 : in27 = GF_MUL( in27, 1 ); \
6565 187296 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
6566 187296 : in28 = GF_MUL( in28, 1 ); \
6567 187296 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
6568 187296 : in29 = GF_MUL( in29, 1 ); \
6569 187296 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
6570 187296 : in30 = GF_MUL( in30, 1 ); \
6571 187296 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
6572 187296 : in31 = GF_MUL( in31, 1 ); \
6573 187296 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
6574 187296 : } while( 0 )
6575 :
6576 : void fd_reedsol_ppt_64_51( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
6577 : #define FD_REEDSOL_PPT_IMPL_64_51( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
6578 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
6579 187200 : do { \
6580 187200 : gf_t scratch_10, scratch_19, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_4; \
6581 187200 : gf_t scratch_5, scratch_51, scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_8; \
6582 187200 : gf_t scratch_9; \
6583 187200 : scratch_51 = in51; \
6584 187200 : in51 = GF_MUL( in51, 1 ); \
6585 187200 : scratch_52 = in52; \
6586 187200 : in52 = GF_MUL( in52, 1 ); \
6587 187200 : scratch_53 = in53; \
6588 187200 : in53 = GF_MUL( in53, 1 ); \
6589 187200 : scratch_54 = in54; \
6590 187200 : in54 = GF_MUL( in54, 1 ); \
6591 187200 : scratch_55 = in55; \
6592 187200 : in55 = GF_MUL( in55, 1 ); \
6593 187200 : scratch_56 = in56; \
6594 187200 : in56 = GF_MUL( in56, 1 ); \
6595 187200 : scratch_57 = in57; \
6596 187200 : in57 = GF_MUL( in57, 1 ); \
6597 187200 : scratch_58 = in58; \
6598 187200 : in58 = GF_MUL( in58, 1 ); \
6599 187200 : scratch_59 = in59; \
6600 187200 : in59 = GF_MUL( in59, 1 ); \
6601 187200 : scratch_60 = in60; \
6602 187200 : in60 = GF_MUL( in60, 1 ); \
6603 187200 : scratch_61 = in61; \
6604 187200 : in61 = GF_MUL( in61, 1 ); \
6605 187200 : scratch_62 = in62; \
6606 187200 : in62 = GF_MUL( in62, 1 ); \
6607 187200 : scratch_63 = in63; \
6608 187200 : in63 = GF_MUL( in63, 1 ); \
6609 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
6610 187200 : in51 = GF_ADD( GF_MUL( in19, 1 ), in51 ); \
6611 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
6612 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
6613 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
6614 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
6615 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
6616 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
6617 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
6618 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
6619 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
6620 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
6621 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
6622 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
6623 187200 : scratch_19 = in51; \
6624 187200 : in51 = GF_MUL( in51, 1 ); \
6625 187200 : scratch_20 = in52; \
6626 187200 : in52 = GF_MUL( in52, 1 ); \
6627 187200 : scratch_21 = in53; \
6628 187200 : in53 = GF_MUL( in53, 1 ); \
6629 187200 : scratch_22 = in54; \
6630 187200 : in54 = GF_MUL( in54, 1 ); \
6631 187200 : scratch_23 = in55; \
6632 187200 : in55 = GF_MUL( in55, 1 ); \
6633 187200 : scratch_24 = in56; \
6634 187200 : in56 = GF_MUL( in56, 1 ); \
6635 187200 : scratch_25 = in57; \
6636 187200 : in57 = GF_MUL( in57, 1 ); \
6637 187200 : scratch_26 = in58; \
6638 187200 : in58 = GF_MUL( in58, 1 ); \
6639 187200 : scratch_27 = in59; \
6640 187200 : in59 = GF_MUL( in59, 1 ); \
6641 187200 : scratch_28 = in60; \
6642 187200 : in60 = GF_MUL( in60, 1 ); \
6643 187200 : scratch_29 = in61; \
6644 187200 : in61 = GF_MUL( in61, 1 ); \
6645 187200 : scratch_30 = in62; \
6646 187200 : in62 = GF_MUL( in62, 1 ); \
6647 187200 : scratch_31 = in63; \
6648 187200 : in63 = GF_MUL( in63, 1 ); \
6649 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
6650 187200 : in51 = GF_ADD( GF_MUL( in35, 1 ), in51 ); \
6651 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
6652 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
6653 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
6654 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
6655 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
6656 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
6657 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
6658 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
6659 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
6660 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
6661 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
6662 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
6663 187200 : scratch_8 = in56; \
6664 187200 : in56 = GF_MUL( in56, 1 ); \
6665 187200 : scratch_9 = in57; \
6666 187200 : in57 = GF_MUL( in57, 1 ); \
6667 187200 : scratch_10 = in58; \
6668 187200 : in58 = GF_MUL( in58, 1 ); \
6669 187200 : GF_MUL22( in51, in59, 1, 165, 1, 164 ); \
6670 187200 : GF_MUL22( in52, in60, 1, 165, 1, 164 ); \
6671 187200 : GF_MUL22( in53, in61, 1, 165, 1, 164 ); \
6672 187200 : GF_MUL22( in54, in62, 1, 165, 1, 164 ); \
6673 187200 : GF_MUL22( in55, in63, 1, 165, 1, 164 ); \
6674 187200 : scratch_4 = in52; \
6675 187200 : in52 = GF_MUL( in52, 1 ); \
6676 187200 : scratch_5 = in53; \
6677 187200 : in53 = GF_MUL( in53, 1 ); \
6678 187200 : scratch_6 = in54; \
6679 187200 : in54 = GF_MUL( in54, 1 ); \
6680 187200 : GF_MUL22( in51, in55, 1, 71, 1, 70 ); \
6681 187200 : scratch_3 = in51; \
6682 187200 : in51 = GF_MUL( in51, 1 ); \
6683 187200 : GF_MUL22( in48, in49, 49, 48, 1, 1 ); \
6684 187200 : in51 = GF_ADD( GF_MUL( in49, 1 ), in51 ); \
6685 187200 : GF_MUL22( in50, in51, 1, 50, 1, 1 ); \
6686 187200 : GF_MUL22( in48, in50, 148, 149, 1, 1 ); \
6687 187200 : in49 = GF_MUL( in49, 1 ); \
6688 187200 : in49 = GF_ADD( GF_MUL( scratch_3, 149 ), in49 ); \
6689 187200 : in52 = GF_ADD( GF_MUL( in48, 1 ), in52 ); \
6690 187200 : in53 = GF_ADD( GF_MUL( in49, 1 ), in53 ); \
6691 187200 : in54 = GF_ADD( GF_MUL( in50, 1 ), in54 ); \
6692 187200 : FD_REEDSOL_GENERATE_FFT( 4, 52, in52, in53, in54, in55 ); \
6693 187200 : in48 = GF_MUL( in48, 1 ); \
6694 187200 : in48 = GF_ADD( GF_MUL( scratch_4, 71 ), in48 ); \
6695 187200 : in49 = GF_MUL( in49, 1 ); \
6696 187200 : in49 = GF_ADD( GF_MUL( scratch_5, 71 ), in49 ); \
6697 187200 : in50 = GF_MUL( in50, 1 ); \
6698 187200 : in50 = GF_ADD( GF_MUL( scratch_6, 71 ), in50 ); \
6699 187200 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
6700 187200 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
6701 187200 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
6702 187200 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
6703 187200 : in48 = GF_MUL( in48, 1 ); \
6704 187200 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
6705 187200 : in49 = GF_MUL( in49, 1 ); \
6706 187200 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
6707 187200 : in50 = GF_MUL( in50, 1 ); \
6708 187200 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
6709 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
6710 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
6711 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
6712 187200 : in35 = GF_MUL( in35, 1 ); \
6713 187200 : in35 = GF_ADD( GF_MUL( scratch_19, 71 ), in35 ); \
6714 187200 : in36 = GF_MUL( in36, 1 ); \
6715 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
6716 187200 : in37 = GF_MUL( in37, 1 ); \
6717 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
6718 187200 : in38 = GF_MUL( in38, 1 ); \
6719 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
6720 187200 : in39 = GF_MUL( in39, 1 ); \
6721 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
6722 187200 : in40 = GF_MUL( in40, 1 ); \
6723 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
6724 187200 : in41 = GF_MUL( in41, 1 ); \
6725 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
6726 187200 : in42 = GF_MUL( in42, 1 ); \
6727 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
6728 187200 : in43 = GF_MUL( in43, 1 ); \
6729 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
6730 187200 : in44 = GF_MUL( in44, 1 ); \
6731 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
6732 187200 : in45 = GF_MUL( in45, 1 ); \
6733 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
6734 187200 : in46 = GF_MUL( in46, 1 ); \
6735 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
6736 187200 : in47 = GF_MUL( in47, 1 ); \
6737 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
6738 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
6739 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
6740 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
6741 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
6742 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
6743 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
6744 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
6745 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
6746 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
6747 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
6748 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
6749 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
6750 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
6751 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
6752 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
6753 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
6754 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
6755 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
6756 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
6757 187200 : in19 = GF_MUL( in19, 1 ); \
6758 187200 : in19 = GF_ADD( GF_MUL( scratch_51, 0 ), in19 ); \
6759 187200 : in20 = GF_MUL( in20, 1 ); \
6760 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
6761 187200 : in21 = GF_MUL( in21, 1 ); \
6762 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
6763 187200 : in22 = GF_MUL( in22, 1 ); \
6764 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
6765 187200 : in23 = GF_MUL( in23, 1 ); \
6766 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
6767 187200 : in24 = GF_MUL( in24, 1 ); \
6768 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
6769 187200 : in25 = GF_MUL( in25, 1 ); \
6770 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
6771 187200 : in26 = GF_MUL( in26, 1 ); \
6772 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
6773 187200 : in27 = GF_MUL( in27, 1 ); \
6774 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
6775 187200 : in28 = GF_MUL( in28, 1 ); \
6776 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
6777 187200 : in29 = GF_MUL( in29, 1 ); \
6778 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
6779 187200 : in30 = GF_MUL( in30, 1 ); \
6780 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
6781 187200 : in31 = GF_MUL( in31, 1 ); \
6782 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
6783 187200 : } while( 0 )
6784 :
6785 : void fd_reedsol_ppt_64_52( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
6786 : #define FD_REEDSOL_PPT_IMPL_64_52( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
6787 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
6788 187200 : do { \
6789 187200 : gf_t scratch_10, scratch_11, scratch_20, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_4, scratch_5; \
6790 187200 : gf_t scratch_52, scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
6791 187200 : scratch_52 = in52; \
6792 187200 : in52 = GF_MUL( in52, 1 ); \
6793 187200 : scratch_53 = in53; \
6794 187200 : in53 = GF_MUL( in53, 1 ); \
6795 187200 : scratch_54 = in54; \
6796 187200 : in54 = GF_MUL( in54, 1 ); \
6797 187200 : scratch_55 = in55; \
6798 187200 : in55 = GF_MUL( in55, 1 ); \
6799 187200 : scratch_56 = in56; \
6800 187200 : in56 = GF_MUL( in56, 1 ); \
6801 187200 : scratch_57 = in57; \
6802 187200 : in57 = GF_MUL( in57, 1 ); \
6803 187200 : scratch_58 = in58; \
6804 187200 : in58 = GF_MUL( in58, 1 ); \
6805 187200 : scratch_59 = in59; \
6806 187200 : in59 = GF_MUL( in59, 1 ); \
6807 187200 : scratch_60 = in60; \
6808 187200 : in60 = GF_MUL( in60, 1 ); \
6809 187200 : scratch_61 = in61; \
6810 187200 : in61 = GF_MUL( in61, 1 ); \
6811 187200 : scratch_62 = in62; \
6812 187200 : in62 = GF_MUL( in62, 1 ); \
6813 187200 : scratch_63 = in63; \
6814 187200 : in63 = GF_MUL( in63, 1 ); \
6815 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
6816 187200 : in52 = GF_ADD( GF_MUL( in20, 1 ), in52 ); \
6817 187200 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
6818 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
6819 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
6820 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
6821 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
6822 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
6823 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
6824 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
6825 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
6826 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
6827 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
6828 187200 : scratch_20 = in52; \
6829 187200 : in52 = GF_MUL( in52, 1 ); \
6830 187200 : scratch_21 = in53; \
6831 187200 : in53 = GF_MUL( in53, 1 ); \
6832 187200 : scratch_22 = in54; \
6833 187200 : in54 = GF_MUL( in54, 1 ); \
6834 187200 : scratch_23 = in55; \
6835 187200 : in55 = GF_MUL( in55, 1 ); \
6836 187200 : scratch_24 = in56; \
6837 187200 : in56 = GF_MUL( in56, 1 ); \
6838 187200 : scratch_25 = in57; \
6839 187200 : in57 = GF_MUL( in57, 1 ); \
6840 187200 : scratch_26 = in58; \
6841 187200 : in58 = GF_MUL( in58, 1 ); \
6842 187200 : scratch_27 = in59; \
6843 187200 : in59 = GF_MUL( in59, 1 ); \
6844 187200 : scratch_28 = in60; \
6845 187200 : in60 = GF_MUL( in60, 1 ); \
6846 187200 : scratch_29 = in61; \
6847 187200 : in61 = GF_MUL( in61, 1 ); \
6848 187200 : scratch_30 = in62; \
6849 187200 : in62 = GF_MUL( in62, 1 ); \
6850 187200 : scratch_31 = in63; \
6851 187200 : in63 = GF_MUL( in63, 1 ); \
6852 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
6853 187200 : in52 = GF_ADD( GF_MUL( in36, 1 ), in52 ); \
6854 187200 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
6855 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
6856 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
6857 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
6858 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
6859 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
6860 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
6861 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
6862 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
6863 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
6864 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
6865 187200 : scratch_8 = in56; \
6866 187200 : in56 = GF_MUL( in56, 1 ); \
6867 187200 : scratch_9 = in57; \
6868 187200 : in57 = GF_MUL( in57, 1 ); \
6869 187200 : scratch_10 = in58; \
6870 187200 : in58 = GF_MUL( in58, 1 ); \
6871 187200 : scratch_11 = in59; \
6872 187200 : in59 = GF_MUL( in59, 1 ); \
6873 187200 : GF_MUL22( in52, in60, 1, 165, 1, 164 ); \
6874 187200 : GF_MUL22( in53, in61, 1, 165, 1, 164 ); \
6875 187200 : GF_MUL22( in54, in62, 1, 165, 1, 164 ); \
6876 187200 : GF_MUL22( in55, in63, 1, 165, 1, 164 ); \
6877 187200 : scratch_4 = in52; \
6878 187200 : in52 = GF_MUL( in52, 1 ); \
6879 187200 : scratch_5 = in53; \
6880 187200 : in53 = GF_MUL( in53, 1 ); \
6881 187200 : scratch_6 = in54; \
6882 187200 : in54 = GF_MUL( in54, 1 ); \
6883 187200 : scratch_7 = in55; \
6884 187200 : in55 = GF_MUL( in55, 1 ); \
6885 187200 : FD_REEDSOL_GENERATE_IFFT( 4, 48, in48, in49, in50, in51 ); \
6886 187200 : in52 = GF_ADD( GF_MUL( in48, 1 ), in52 ); \
6887 187200 : in53 = GF_ADD( GF_MUL( in49, 1 ), in53 ); \
6888 187200 : in54 = GF_ADD( GF_MUL( in50, 1 ), in54 ); \
6889 187200 : in55 = GF_ADD( GF_MUL( in51, 1 ), in55 ); \
6890 187200 : FD_REEDSOL_GENERATE_FFT( 4, 52, in52, in53, in54, in55 ); \
6891 187200 : in48 = GF_MUL( in48, 1 ); \
6892 187200 : in48 = GF_ADD( GF_MUL( scratch_4, 71 ), in48 ); \
6893 187200 : in49 = GF_MUL( in49, 1 ); \
6894 187200 : in49 = GF_ADD( GF_MUL( scratch_5, 71 ), in49 ); \
6895 187200 : in50 = GF_MUL( in50, 1 ); \
6896 187200 : in50 = GF_ADD( GF_MUL( scratch_6, 71 ), in50 ); \
6897 187200 : in51 = GF_MUL( in51, 1 ); \
6898 187200 : in51 = GF_ADD( GF_MUL( scratch_7, 71 ), in51 ); \
6899 187200 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
6900 187200 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
6901 187200 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
6902 187200 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
6903 187200 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
6904 187200 : in48 = GF_MUL( in48, 1 ); \
6905 187200 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
6906 187200 : in49 = GF_MUL( in49, 1 ); \
6907 187200 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
6908 187200 : in50 = GF_MUL( in50, 1 ); \
6909 187200 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
6910 187200 : in51 = GF_MUL( in51, 1 ); \
6911 187200 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
6912 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
6913 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
6914 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
6915 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
6916 187200 : in36 = GF_MUL( in36, 1 ); \
6917 187200 : in36 = GF_ADD( GF_MUL( scratch_20, 71 ), in36 ); \
6918 187200 : in37 = GF_MUL( in37, 1 ); \
6919 187200 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
6920 187200 : in38 = GF_MUL( in38, 1 ); \
6921 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
6922 187200 : in39 = GF_MUL( in39, 1 ); \
6923 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
6924 187200 : in40 = GF_MUL( in40, 1 ); \
6925 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
6926 187200 : in41 = GF_MUL( in41, 1 ); \
6927 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
6928 187200 : in42 = GF_MUL( in42, 1 ); \
6929 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
6930 187200 : in43 = GF_MUL( in43, 1 ); \
6931 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
6932 187200 : in44 = GF_MUL( in44, 1 ); \
6933 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
6934 187200 : in45 = GF_MUL( in45, 1 ); \
6935 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
6936 187200 : in46 = GF_MUL( in46, 1 ); \
6937 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
6938 187200 : in47 = GF_MUL( in47, 1 ); \
6939 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
6940 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
6941 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
6942 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
6943 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
6944 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
6945 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
6946 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
6947 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
6948 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
6949 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
6950 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
6951 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
6952 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
6953 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
6954 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
6955 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
6956 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
6957 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
6958 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
6959 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
6960 187200 : in20 = GF_MUL( in20, 1 ); \
6961 187200 : in20 = GF_ADD( GF_MUL( scratch_52, 0 ), in20 ); \
6962 187200 : in21 = GF_MUL( in21, 1 ); \
6963 187200 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
6964 187200 : in22 = GF_MUL( in22, 1 ); \
6965 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
6966 187200 : in23 = GF_MUL( in23, 1 ); \
6967 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
6968 187200 : in24 = GF_MUL( in24, 1 ); \
6969 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
6970 187200 : in25 = GF_MUL( in25, 1 ); \
6971 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
6972 187200 : in26 = GF_MUL( in26, 1 ); \
6973 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
6974 187200 : in27 = GF_MUL( in27, 1 ); \
6975 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
6976 187200 : in28 = GF_MUL( in28, 1 ); \
6977 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
6978 187200 : in29 = GF_MUL( in29, 1 ); \
6979 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
6980 187200 : in30 = GF_MUL( in30, 1 ); \
6981 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
6982 187200 : in31 = GF_MUL( in31, 1 ); \
6983 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
6984 187200 : } while( 0 )
6985 :
6986 : void fd_reedsol_ppt_64_53( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
6987 : #define FD_REEDSOL_PPT_IMPL_64_53( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
6988 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
6989 187392 : do { \
6990 187392 : gf_t scratch_10, scratch_11, scratch_12, scratch_2, scratch_21, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_5; \
6991 187392 : gf_t scratch_53, scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
6992 187392 : scratch_53 = in53; \
6993 187392 : in53 = GF_MUL( in53, 1 ); \
6994 187392 : scratch_54 = in54; \
6995 187392 : in54 = GF_MUL( in54, 1 ); \
6996 187392 : scratch_55 = in55; \
6997 187392 : in55 = GF_MUL( in55, 1 ); \
6998 187392 : scratch_56 = in56; \
6999 187392 : in56 = GF_MUL( in56, 1 ); \
7000 187392 : scratch_57 = in57; \
7001 187392 : in57 = GF_MUL( in57, 1 ); \
7002 187392 : scratch_58 = in58; \
7003 187392 : in58 = GF_MUL( in58, 1 ); \
7004 187392 : scratch_59 = in59; \
7005 187392 : in59 = GF_MUL( in59, 1 ); \
7006 187392 : scratch_60 = in60; \
7007 187392 : in60 = GF_MUL( in60, 1 ); \
7008 187392 : scratch_61 = in61; \
7009 187392 : in61 = GF_MUL( in61, 1 ); \
7010 187392 : scratch_62 = in62; \
7011 187392 : in62 = GF_MUL( in62, 1 ); \
7012 187392 : scratch_63 = in63; \
7013 187392 : in63 = GF_MUL( in63, 1 ); \
7014 187392 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
7015 187392 : in53 = GF_ADD( GF_MUL( in21, 1 ), in53 ); \
7016 187392 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
7017 187392 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
7018 187392 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
7019 187392 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
7020 187392 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
7021 187392 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
7022 187392 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
7023 187392 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
7024 187392 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
7025 187392 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
7026 187392 : scratch_21 = in53; \
7027 187392 : in53 = GF_MUL( in53, 1 ); \
7028 187392 : scratch_22 = in54; \
7029 187392 : in54 = GF_MUL( in54, 1 ); \
7030 187392 : scratch_23 = in55; \
7031 187392 : in55 = GF_MUL( in55, 1 ); \
7032 187392 : scratch_24 = in56; \
7033 187392 : in56 = GF_MUL( in56, 1 ); \
7034 187392 : scratch_25 = in57; \
7035 187392 : in57 = GF_MUL( in57, 1 ); \
7036 187392 : scratch_26 = in58; \
7037 187392 : in58 = GF_MUL( in58, 1 ); \
7038 187392 : scratch_27 = in59; \
7039 187392 : in59 = GF_MUL( in59, 1 ); \
7040 187392 : scratch_28 = in60; \
7041 187392 : in60 = GF_MUL( in60, 1 ); \
7042 187392 : scratch_29 = in61; \
7043 187392 : in61 = GF_MUL( in61, 1 ); \
7044 187392 : scratch_30 = in62; \
7045 187392 : in62 = GF_MUL( in62, 1 ); \
7046 187392 : scratch_31 = in63; \
7047 187392 : in63 = GF_MUL( in63, 1 ); \
7048 187392 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
7049 187392 : in53 = GF_ADD( GF_MUL( in37, 1 ), in53 ); \
7050 187392 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
7051 187392 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
7052 187392 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
7053 187392 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
7054 187392 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
7055 187392 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
7056 187392 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
7057 187392 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
7058 187392 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
7059 187392 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
7060 187392 : scratch_8 = in56; \
7061 187392 : in56 = GF_MUL( in56, 1 ); \
7062 187392 : scratch_9 = in57; \
7063 187392 : in57 = GF_MUL( in57, 1 ); \
7064 187392 : scratch_10 = in58; \
7065 187392 : in58 = GF_MUL( in58, 1 ); \
7066 187392 : scratch_11 = in59; \
7067 187392 : in59 = GF_MUL( in59, 1 ); \
7068 187392 : scratch_12 = in60; \
7069 187392 : in60 = GF_MUL( in60, 1 ); \
7070 187392 : GF_MUL22( in53, in61, 1, 165, 1, 164 ); \
7071 187392 : GF_MUL22( in54, in62, 1, 165, 1, 164 ); \
7072 187392 : GF_MUL22( in55, in63, 1, 165, 1, 164 ); \
7073 187392 : scratch_5 = in53; \
7074 187392 : in53 = GF_MUL( in53, 1 ); \
7075 187392 : scratch_6 = in54; \
7076 187392 : in54 = GF_MUL( in54, 1 ); \
7077 187392 : scratch_7 = in55; \
7078 187392 : in55 = GF_MUL( in55, 1 ); \
7079 187392 : FD_REEDSOL_GENERATE_IFFT( 4, 48, in48, in49, in50, in51 ); \
7080 187392 : in53 = GF_ADD( GF_MUL( in49, 1 ), in53 ); \
7081 187392 : in54 = GF_ADD( GF_MUL( in50, 1 ), in54 ); \
7082 187392 : in55 = GF_ADD( GF_MUL( in51, 1 ), in55 ); \
7083 187392 : scratch_2 = in54; \
7084 187392 : in54 = GF_MUL( in54, 1 ); \
7085 187392 : GF_MUL22( in53, in55, 1, 147, 1, 146 ); \
7086 187392 : GF_MUL22( in52, in53, 1, 52, 1, 1 ); \
7087 187392 : in54 = GF_ADD( GF_MUL( in52, 1 ), in54 ); \
7088 187392 : GF_MUL22( in54, in55, 1, 54, 1, 55 ); \
7089 187392 : in52 = GF_MUL( in52, 1 ); \
7090 187392 : in52 = GF_ADD( GF_MUL( scratch_2, 147 ), in52 ); \
7091 187392 : GF_MUL22( in48, in52, 70, 71, 1, 1 ); \
7092 187392 : in49 = GF_MUL( in49, 1 ); \
7093 187392 : in49 = GF_ADD( GF_MUL( scratch_5, 71 ), in49 ); \
7094 187392 : in50 = GF_MUL( in50, 1 ); \
7095 187392 : in50 = GF_ADD( GF_MUL( scratch_6, 71 ), in50 ); \
7096 187392 : in51 = GF_MUL( in51, 1 ); \
7097 187392 : in51 = GF_ADD( GF_MUL( scratch_7, 71 ), in51 ); \
7098 187392 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
7099 187392 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
7100 187392 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
7101 187392 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
7102 187392 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
7103 187392 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
7104 187392 : in48 = GF_MUL( in48, 1 ); \
7105 187392 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
7106 187392 : in49 = GF_MUL( in49, 1 ); \
7107 187392 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
7108 187392 : in50 = GF_MUL( in50, 1 ); \
7109 187392 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
7110 187392 : in51 = GF_MUL( in51, 1 ); \
7111 187392 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
7112 187392 : in52 = GF_MUL( in52, 1 ); \
7113 187392 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
7114 187392 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
7115 187392 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
7116 187392 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
7117 187392 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
7118 187392 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
7119 187392 : in37 = GF_MUL( in37, 1 ); \
7120 187392 : in37 = GF_ADD( GF_MUL( scratch_21, 71 ), in37 ); \
7121 187392 : in38 = GF_MUL( in38, 1 ); \
7122 187392 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
7123 187392 : in39 = GF_MUL( in39, 1 ); \
7124 187392 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
7125 187392 : in40 = GF_MUL( in40, 1 ); \
7126 187392 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
7127 187392 : in41 = GF_MUL( in41, 1 ); \
7128 187392 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
7129 187392 : in42 = GF_MUL( in42, 1 ); \
7130 187392 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
7131 187392 : in43 = GF_MUL( in43, 1 ); \
7132 187392 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
7133 187392 : in44 = GF_MUL( in44, 1 ); \
7134 187392 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
7135 187392 : in45 = GF_MUL( in45, 1 ); \
7136 187392 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
7137 187392 : in46 = GF_MUL( in46, 1 ); \
7138 187392 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
7139 187392 : in47 = GF_MUL( in47, 1 ); \
7140 187392 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
7141 187392 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
7142 187392 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
7143 187392 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
7144 187392 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
7145 187392 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
7146 187392 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
7147 187392 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
7148 187392 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
7149 187392 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
7150 187392 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
7151 187392 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
7152 187392 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
7153 187392 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
7154 187392 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
7155 187392 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
7156 187392 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
7157 187392 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
7158 187392 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
7159 187392 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
7160 187392 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
7161 187392 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
7162 187392 : in21 = GF_MUL( in21, 1 ); \
7163 187392 : in21 = GF_ADD( GF_MUL( scratch_53, 0 ), in21 ); \
7164 187392 : in22 = GF_MUL( in22, 1 ); \
7165 187392 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
7166 187392 : in23 = GF_MUL( in23, 1 ); \
7167 187392 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
7168 187392 : in24 = GF_MUL( in24, 1 ); \
7169 187392 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
7170 187392 : in25 = GF_MUL( in25, 1 ); \
7171 187392 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
7172 187392 : in26 = GF_MUL( in26, 1 ); \
7173 187392 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
7174 187392 : in27 = GF_MUL( in27, 1 ); \
7175 187392 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
7176 187392 : in28 = GF_MUL( in28, 1 ); \
7177 187392 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
7178 187392 : in29 = GF_MUL( in29, 1 ); \
7179 187392 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
7180 187392 : in30 = GF_MUL( in30, 1 ); \
7181 187392 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
7182 187392 : in31 = GF_MUL( in31, 1 ); \
7183 187392 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
7184 187392 : } while( 0 )
7185 :
7186 : void fd_reedsol_ppt_64_54( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
7187 : #define FD_REEDSOL_PPT_IMPL_64_54( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
7188 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
7189 187200 : do { \
7190 187200 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_2, scratch_22, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31; \
7191 187200 : gf_t scratch_54, scratch_55, scratch_56, scratch_57, scratch_58, scratch_59, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
7192 187200 : scratch_54 = in54; \
7193 187200 : in54 = GF_MUL( in54, 1 ); \
7194 187200 : scratch_55 = in55; \
7195 187200 : in55 = GF_MUL( in55, 1 ); \
7196 187200 : scratch_56 = in56; \
7197 187200 : in56 = GF_MUL( in56, 1 ); \
7198 187200 : scratch_57 = in57; \
7199 187200 : in57 = GF_MUL( in57, 1 ); \
7200 187200 : scratch_58 = in58; \
7201 187200 : in58 = GF_MUL( in58, 1 ); \
7202 187200 : scratch_59 = in59; \
7203 187200 : in59 = GF_MUL( in59, 1 ); \
7204 187200 : scratch_60 = in60; \
7205 187200 : in60 = GF_MUL( in60, 1 ); \
7206 187200 : scratch_61 = in61; \
7207 187200 : in61 = GF_MUL( in61, 1 ); \
7208 187200 : scratch_62 = in62; \
7209 187200 : in62 = GF_MUL( in62, 1 ); \
7210 187200 : scratch_63 = in63; \
7211 187200 : in63 = GF_MUL( in63, 1 ); \
7212 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
7213 187200 : in54 = GF_ADD( GF_MUL( in22, 1 ), in54 ); \
7214 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
7215 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
7216 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
7217 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
7218 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
7219 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
7220 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
7221 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
7222 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
7223 187200 : scratch_22 = in54; \
7224 187200 : in54 = GF_MUL( in54, 1 ); \
7225 187200 : scratch_23 = in55; \
7226 187200 : in55 = GF_MUL( in55, 1 ); \
7227 187200 : scratch_24 = in56; \
7228 187200 : in56 = GF_MUL( in56, 1 ); \
7229 187200 : scratch_25 = in57; \
7230 187200 : in57 = GF_MUL( in57, 1 ); \
7231 187200 : scratch_26 = in58; \
7232 187200 : in58 = GF_MUL( in58, 1 ); \
7233 187200 : scratch_27 = in59; \
7234 187200 : in59 = GF_MUL( in59, 1 ); \
7235 187200 : scratch_28 = in60; \
7236 187200 : in60 = GF_MUL( in60, 1 ); \
7237 187200 : scratch_29 = in61; \
7238 187200 : in61 = GF_MUL( in61, 1 ); \
7239 187200 : scratch_30 = in62; \
7240 187200 : in62 = GF_MUL( in62, 1 ); \
7241 187200 : scratch_31 = in63; \
7242 187200 : in63 = GF_MUL( in63, 1 ); \
7243 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
7244 187200 : in54 = GF_ADD( GF_MUL( in38, 1 ), in54 ); \
7245 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
7246 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
7247 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
7248 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
7249 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
7250 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
7251 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
7252 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
7253 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
7254 187200 : scratch_8 = in56; \
7255 187200 : in56 = GF_MUL( in56, 1 ); \
7256 187200 : scratch_9 = in57; \
7257 187200 : in57 = GF_MUL( in57, 1 ); \
7258 187200 : scratch_10 = in58; \
7259 187200 : in58 = GF_MUL( in58, 1 ); \
7260 187200 : scratch_11 = in59; \
7261 187200 : in59 = GF_MUL( in59, 1 ); \
7262 187200 : scratch_12 = in60; \
7263 187200 : in60 = GF_MUL( in60, 1 ); \
7264 187200 : scratch_13 = in61; \
7265 187200 : in61 = GF_MUL( in61, 1 ); \
7266 187200 : GF_MUL22( in54, in62, 1, 165, 1, 164 ); \
7267 187200 : GF_MUL22( in55, in63, 1, 165, 1, 164 ); \
7268 187200 : scratch_6 = in54; \
7269 187200 : in54 = GF_MUL( in54, 1 ); \
7270 187200 : scratch_7 = in55; \
7271 187200 : in55 = GF_MUL( in55, 1 ); \
7272 187200 : FD_REEDSOL_GENERATE_IFFT( 4, 48, in48, in49, in50, in51 ); \
7273 187200 : in54 = GF_ADD( GF_MUL( in50, 1 ), in54 ); \
7274 187200 : in55 = GF_ADD( GF_MUL( in51, 1 ), in55 ); \
7275 187200 : scratch_2 = in54; \
7276 187200 : in54 = GF_MUL( in54, 1 ); \
7277 187200 : scratch_3 = in55; \
7278 187200 : in55 = GF_MUL( in55, 1 ); \
7279 187200 : GF_MUL22( in52, in53, 53, 52, 1, 1 ); \
7280 187200 : in54 = GF_ADD( GF_MUL( in52, 1 ), in54 ); \
7281 187200 : in55 = GF_ADD( GF_MUL( in53, 1 ), in55 ); \
7282 187200 : GF_MUL22( in54, in55, 1, 54, 1, 55 ); \
7283 187200 : in52 = GF_MUL( in52, 1 ); \
7284 187200 : in52 = GF_ADD( GF_MUL( scratch_2, 147 ), in52 ); \
7285 187200 : in53 = GF_MUL( in53, 1 ); \
7286 187200 : in53 = GF_ADD( GF_MUL( scratch_3, 147 ), in53 ); \
7287 187200 : GF_MUL22( in48, in52, 70, 71, 1, 1 ); \
7288 187200 : GF_MUL22( in49, in53, 70, 71, 1, 1 ); \
7289 187200 : in50 = GF_MUL( in50, 1 ); \
7290 187200 : in50 = GF_ADD( GF_MUL( scratch_6, 71 ), in50 ); \
7291 187200 : in51 = GF_MUL( in51, 1 ); \
7292 187200 : in51 = GF_ADD( GF_MUL( scratch_7, 71 ), in51 ); \
7293 187200 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
7294 187200 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
7295 187200 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
7296 187200 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
7297 187200 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
7298 187200 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
7299 187200 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
7300 187200 : in48 = GF_MUL( in48, 1 ); \
7301 187200 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
7302 187200 : in49 = GF_MUL( in49, 1 ); \
7303 187200 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
7304 187200 : in50 = GF_MUL( in50, 1 ); \
7305 187200 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
7306 187200 : in51 = GF_MUL( in51, 1 ); \
7307 187200 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
7308 187200 : in52 = GF_MUL( in52, 1 ); \
7309 187200 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
7310 187200 : in53 = GF_MUL( in53, 1 ); \
7311 187200 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
7312 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
7313 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
7314 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
7315 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
7316 187200 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
7317 187200 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
7318 187200 : in38 = GF_MUL( in38, 1 ); \
7319 187200 : in38 = GF_ADD( GF_MUL( scratch_22, 71 ), in38 ); \
7320 187200 : in39 = GF_MUL( in39, 1 ); \
7321 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
7322 187200 : in40 = GF_MUL( in40, 1 ); \
7323 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
7324 187200 : in41 = GF_MUL( in41, 1 ); \
7325 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
7326 187200 : in42 = GF_MUL( in42, 1 ); \
7327 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
7328 187200 : in43 = GF_MUL( in43, 1 ); \
7329 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
7330 187200 : in44 = GF_MUL( in44, 1 ); \
7331 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
7332 187200 : in45 = GF_MUL( in45, 1 ); \
7333 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
7334 187200 : in46 = GF_MUL( in46, 1 ); \
7335 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
7336 187200 : in47 = GF_MUL( in47, 1 ); \
7337 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
7338 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
7339 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
7340 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
7341 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
7342 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
7343 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
7344 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
7345 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
7346 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
7347 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
7348 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
7349 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
7350 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
7351 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
7352 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
7353 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
7354 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
7355 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
7356 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
7357 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
7358 187200 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
7359 187200 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
7360 187200 : in22 = GF_MUL( in22, 1 ); \
7361 187200 : in22 = GF_ADD( GF_MUL( scratch_54, 0 ), in22 ); \
7362 187200 : in23 = GF_MUL( in23, 1 ); \
7363 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
7364 187200 : in24 = GF_MUL( in24, 1 ); \
7365 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
7366 187200 : in25 = GF_MUL( in25, 1 ); \
7367 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
7368 187200 : in26 = GF_MUL( in26, 1 ); \
7369 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
7370 187200 : in27 = GF_MUL( in27, 1 ); \
7371 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
7372 187200 : in28 = GF_MUL( in28, 1 ); \
7373 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
7374 187200 : in29 = GF_MUL( in29, 1 ); \
7375 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
7376 187200 : in30 = GF_MUL( in30, 1 ); \
7377 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
7378 187200 : in31 = GF_MUL( in31, 1 ); \
7379 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
7380 187200 : } while( 0 )
7381 :
7382 : void fd_reedsol_ppt_64_55( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
7383 : #define FD_REEDSOL_PPT_IMPL_64_55( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
7384 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
7385 187200 : do { \
7386 187200 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_23, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_55; \
7387 187200 : gf_t scratch_56, scratch_57, scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7, scratch_8, scratch_9; \
7388 187200 : scratch_55 = in55; \
7389 187200 : in55 = GF_MUL( in55, 1 ); \
7390 187200 : scratch_56 = in56; \
7391 187200 : in56 = GF_MUL( in56, 1 ); \
7392 187200 : scratch_57 = in57; \
7393 187200 : in57 = GF_MUL( in57, 1 ); \
7394 187200 : scratch_58 = in58; \
7395 187200 : in58 = GF_MUL( in58, 1 ); \
7396 187200 : scratch_59 = in59; \
7397 187200 : in59 = GF_MUL( in59, 1 ); \
7398 187200 : scratch_60 = in60; \
7399 187200 : in60 = GF_MUL( in60, 1 ); \
7400 187200 : scratch_61 = in61; \
7401 187200 : in61 = GF_MUL( in61, 1 ); \
7402 187200 : scratch_62 = in62; \
7403 187200 : in62 = GF_MUL( in62, 1 ); \
7404 187200 : scratch_63 = in63; \
7405 187200 : in63 = GF_MUL( in63, 1 ); \
7406 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
7407 187200 : in55 = GF_ADD( GF_MUL( in23, 1 ), in55 ); \
7408 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
7409 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
7410 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
7411 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
7412 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
7413 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
7414 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
7415 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
7416 187200 : scratch_23 = in55; \
7417 187200 : in55 = GF_MUL( in55, 1 ); \
7418 187200 : scratch_24 = in56; \
7419 187200 : in56 = GF_MUL( in56, 1 ); \
7420 187200 : scratch_25 = in57; \
7421 187200 : in57 = GF_MUL( in57, 1 ); \
7422 187200 : scratch_26 = in58; \
7423 187200 : in58 = GF_MUL( in58, 1 ); \
7424 187200 : scratch_27 = in59; \
7425 187200 : in59 = GF_MUL( in59, 1 ); \
7426 187200 : scratch_28 = in60; \
7427 187200 : in60 = GF_MUL( in60, 1 ); \
7428 187200 : scratch_29 = in61; \
7429 187200 : in61 = GF_MUL( in61, 1 ); \
7430 187200 : scratch_30 = in62; \
7431 187200 : in62 = GF_MUL( in62, 1 ); \
7432 187200 : scratch_31 = in63; \
7433 187200 : in63 = GF_MUL( in63, 1 ); \
7434 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
7435 187200 : in55 = GF_ADD( GF_MUL( in39, 1 ), in55 ); \
7436 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
7437 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
7438 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
7439 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
7440 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
7441 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
7442 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
7443 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
7444 187200 : scratch_8 = in56; \
7445 187200 : in56 = GF_MUL( in56, 1 ); \
7446 187200 : scratch_9 = in57; \
7447 187200 : in57 = GF_MUL( in57, 1 ); \
7448 187200 : scratch_10 = in58; \
7449 187200 : in58 = GF_MUL( in58, 1 ); \
7450 187200 : scratch_11 = in59; \
7451 187200 : in59 = GF_MUL( in59, 1 ); \
7452 187200 : scratch_12 = in60; \
7453 187200 : in60 = GF_MUL( in60, 1 ); \
7454 187200 : scratch_13 = in61; \
7455 187200 : in61 = GF_MUL( in61, 1 ); \
7456 187200 : scratch_14 = in62; \
7457 187200 : in62 = GF_MUL( in62, 1 ); \
7458 187200 : GF_MUL22( in55, in63, 1, 165, 1, 164 ); \
7459 187200 : scratch_7 = in55; \
7460 187200 : in55 = GF_MUL( in55, 1 ); \
7461 187200 : FD_REEDSOL_GENERATE_IFFT( 4, 48, in48, in49, in50, in51 ); \
7462 187200 : in55 = GF_ADD( GF_MUL( in51, 1 ), in55 ); \
7463 187200 : scratch_3 = in55; \
7464 187200 : in55 = GF_MUL( in55, 1 ); \
7465 187200 : GF_MUL22( in52, in53, 53, 52, 1, 1 ); \
7466 187200 : in55 = GF_ADD( GF_MUL( in53, 1 ), in55 ); \
7467 187200 : GF_MUL22( in54, in55, 1, 54, 1, 1 ); \
7468 187200 : GF_MUL22( in52, in54, 146, 147, 1, 1 ); \
7469 187200 : in53 = GF_MUL( in53, 1 ); \
7470 187200 : in53 = GF_ADD( GF_MUL( scratch_3, 147 ), in53 ); \
7471 187200 : GF_MUL22( in48, in52, 70, 71, 1, 1 ); \
7472 187200 : GF_MUL22( in49, in53, 70, 71, 1, 1 ); \
7473 187200 : GF_MUL22( in50, in54, 70, 71, 1, 1 ); \
7474 187200 : in51 = GF_MUL( in51, 1 ); \
7475 187200 : in51 = GF_ADD( GF_MUL( scratch_7, 71 ), in51 ); \
7476 187200 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
7477 187200 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
7478 187200 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
7479 187200 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
7480 187200 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
7481 187200 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
7482 187200 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
7483 187200 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
7484 187200 : in48 = GF_MUL( in48, 1 ); \
7485 187200 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
7486 187200 : in49 = GF_MUL( in49, 1 ); \
7487 187200 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
7488 187200 : in50 = GF_MUL( in50, 1 ); \
7489 187200 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
7490 187200 : in51 = GF_MUL( in51, 1 ); \
7491 187200 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
7492 187200 : in52 = GF_MUL( in52, 1 ); \
7493 187200 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
7494 187200 : in53 = GF_MUL( in53, 1 ); \
7495 187200 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
7496 187200 : in54 = GF_MUL( in54, 1 ); \
7497 187200 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
7498 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
7499 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
7500 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
7501 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
7502 187200 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
7503 187200 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
7504 187200 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
7505 187200 : in39 = GF_MUL( in39, 1 ); \
7506 187200 : in39 = GF_ADD( GF_MUL( scratch_23, 71 ), in39 ); \
7507 187200 : in40 = GF_MUL( in40, 1 ); \
7508 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
7509 187200 : in41 = GF_MUL( in41, 1 ); \
7510 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
7511 187200 : in42 = GF_MUL( in42, 1 ); \
7512 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
7513 187200 : in43 = GF_MUL( in43, 1 ); \
7514 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
7515 187200 : in44 = GF_MUL( in44, 1 ); \
7516 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
7517 187200 : in45 = GF_MUL( in45, 1 ); \
7518 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
7519 187200 : in46 = GF_MUL( in46, 1 ); \
7520 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
7521 187200 : in47 = GF_MUL( in47, 1 ); \
7522 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
7523 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
7524 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
7525 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
7526 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
7527 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
7528 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
7529 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
7530 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
7531 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
7532 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
7533 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
7534 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
7535 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
7536 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
7537 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
7538 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
7539 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
7540 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
7541 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
7542 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
7543 187200 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
7544 187200 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
7545 187200 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
7546 187200 : in23 = GF_MUL( in23, 1 ); \
7547 187200 : in23 = GF_ADD( GF_MUL( scratch_55, 0 ), in23 ); \
7548 187200 : in24 = GF_MUL( in24, 1 ); \
7549 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
7550 187200 : in25 = GF_MUL( in25, 1 ); \
7551 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
7552 187200 : in26 = GF_MUL( in26, 1 ); \
7553 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
7554 187200 : in27 = GF_MUL( in27, 1 ); \
7555 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
7556 187200 : in28 = GF_MUL( in28, 1 ); \
7557 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
7558 187200 : in29 = GF_MUL( in29, 1 ); \
7559 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
7560 187200 : in30 = GF_MUL( in30, 1 ); \
7561 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
7562 187200 : in31 = GF_MUL( in31, 1 ); \
7563 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
7564 187200 : } while( 0 )
7565 :
7566 : void fd_reedsol_ppt_64_56( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
7567 : #define FD_REEDSOL_PPT_IMPL_64_56( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
7568 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
7569 187200 : do { \
7570 187200 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_24, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_56, scratch_57; \
7571 187200 : gf_t scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63, scratch_8, scratch_9; \
7572 187200 : scratch_56 = in56; \
7573 187200 : in56 = GF_MUL( in56, 1 ); \
7574 187200 : scratch_57 = in57; \
7575 187200 : in57 = GF_MUL( in57, 1 ); \
7576 187200 : scratch_58 = in58; \
7577 187200 : in58 = GF_MUL( in58, 1 ); \
7578 187200 : scratch_59 = in59; \
7579 187200 : in59 = GF_MUL( in59, 1 ); \
7580 187200 : scratch_60 = in60; \
7581 187200 : in60 = GF_MUL( in60, 1 ); \
7582 187200 : scratch_61 = in61; \
7583 187200 : in61 = GF_MUL( in61, 1 ); \
7584 187200 : scratch_62 = in62; \
7585 187200 : in62 = GF_MUL( in62, 1 ); \
7586 187200 : scratch_63 = in63; \
7587 187200 : in63 = GF_MUL( in63, 1 ); \
7588 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
7589 187200 : in56 = GF_ADD( GF_MUL( in24, 1 ), in56 ); \
7590 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
7591 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
7592 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
7593 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
7594 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
7595 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
7596 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
7597 187200 : scratch_24 = in56; \
7598 187200 : in56 = GF_MUL( in56, 1 ); \
7599 187200 : scratch_25 = in57; \
7600 187200 : in57 = GF_MUL( in57, 1 ); \
7601 187200 : scratch_26 = in58; \
7602 187200 : in58 = GF_MUL( in58, 1 ); \
7603 187200 : scratch_27 = in59; \
7604 187200 : in59 = GF_MUL( in59, 1 ); \
7605 187200 : scratch_28 = in60; \
7606 187200 : in60 = GF_MUL( in60, 1 ); \
7607 187200 : scratch_29 = in61; \
7608 187200 : in61 = GF_MUL( in61, 1 ); \
7609 187200 : scratch_30 = in62; \
7610 187200 : in62 = GF_MUL( in62, 1 ); \
7611 187200 : scratch_31 = in63; \
7612 187200 : in63 = GF_MUL( in63, 1 ); \
7613 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
7614 187200 : in56 = GF_ADD( GF_MUL( in40, 1 ), in56 ); \
7615 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
7616 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
7617 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
7618 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
7619 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
7620 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
7621 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
7622 187200 : scratch_8 = in56; \
7623 187200 : in56 = GF_MUL( in56, 1 ); \
7624 187200 : scratch_9 = in57; \
7625 187200 : in57 = GF_MUL( in57, 1 ); \
7626 187200 : scratch_10 = in58; \
7627 187200 : in58 = GF_MUL( in58, 1 ); \
7628 187200 : scratch_11 = in59; \
7629 187200 : in59 = GF_MUL( in59, 1 ); \
7630 187200 : scratch_12 = in60; \
7631 187200 : in60 = GF_MUL( in60, 1 ); \
7632 187200 : scratch_13 = in61; \
7633 187200 : in61 = GF_MUL( in61, 1 ); \
7634 187200 : scratch_14 = in62; \
7635 187200 : in62 = GF_MUL( in62, 1 ); \
7636 187200 : scratch_15 = in63; \
7637 187200 : in63 = GF_MUL( in63, 1 ); \
7638 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
7639 187200 : in56 = GF_ADD( GF_MUL( in48, 1 ), in56 ); \
7640 187200 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
7641 187200 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
7642 187200 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
7643 187200 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
7644 187200 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
7645 187200 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
7646 187200 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
7647 187200 : FD_REEDSOL_GENERATE_FFT( 8, 56, in56, in57, in58, in59, in60, in61, in62, in63 ); \
7648 187200 : in48 = GF_MUL( in48, 1 ); \
7649 187200 : in48 = GF_ADD( GF_MUL( scratch_8, 165 ), in48 ); \
7650 187200 : in49 = GF_MUL( in49, 1 ); \
7651 187200 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
7652 187200 : in50 = GF_MUL( in50, 1 ); \
7653 187200 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
7654 187200 : in51 = GF_MUL( in51, 1 ); \
7655 187200 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
7656 187200 : in52 = GF_MUL( in52, 1 ); \
7657 187200 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
7658 187200 : in53 = GF_MUL( in53, 1 ); \
7659 187200 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
7660 187200 : in54 = GF_MUL( in54, 1 ); \
7661 187200 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
7662 187200 : in55 = GF_MUL( in55, 1 ); \
7663 187200 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
7664 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
7665 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
7666 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
7667 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
7668 187200 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
7669 187200 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
7670 187200 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
7671 187200 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
7672 187200 : in40 = GF_MUL( in40, 1 ); \
7673 187200 : in40 = GF_ADD( GF_MUL( scratch_24, 71 ), in40 ); \
7674 187200 : in41 = GF_MUL( in41, 1 ); \
7675 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
7676 187200 : in42 = GF_MUL( in42, 1 ); \
7677 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
7678 187200 : in43 = GF_MUL( in43, 1 ); \
7679 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
7680 187200 : in44 = GF_MUL( in44, 1 ); \
7681 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
7682 187200 : in45 = GF_MUL( in45, 1 ); \
7683 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
7684 187200 : in46 = GF_MUL( in46, 1 ); \
7685 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
7686 187200 : in47 = GF_MUL( in47, 1 ); \
7687 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
7688 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
7689 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
7690 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
7691 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
7692 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
7693 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
7694 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
7695 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
7696 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
7697 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
7698 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
7699 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
7700 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
7701 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
7702 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
7703 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
7704 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
7705 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
7706 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
7707 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
7708 187200 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
7709 187200 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
7710 187200 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
7711 187200 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
7712 187200 : in24 = GF_MUL( in24, 1 ); \
7713 187200 : in24 = GF_ADD( GF_MUL( scratch_56, 0 ), in24 ); \
7714 187200 : in25 = GF_MUL( in25, 1 ); \
7715 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
7716 187200 : in26 = GF_MUL( in26, 1 ); \
7717 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
7718 187200 : in27 = GF_MUL( in27, 1 ); \
7719 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
7720 187200 : in28 = GF_MUL( in28, 1 ); \
7721 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
7722 187200 : in29 = GF_MUL( in29, 1 ); \
7723 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
7724 187200 : in30 = GF_MUL( in30, 1 ); \
7725 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
7726 187200 : in31 = GF_MUL( in31, 1 ); \
7727 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
7728 187200 : } while( 0 )
7729 :
7730 : void fd_reedsol_ppt_64_57( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
7731 : #define FD_REEDSOL_PPT_IMPL_64_57( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
7732 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
7733 187200 : do { \
7734 187200 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_2, scratch_25, scratch_26, scratch_27, scratch_28, scratch_29, scratch_30, scratch_31, scratch_4, scratch_57; \
7735 187200 : gf_t scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63, scratch_9; \
7736 187200 : scratch_57 = in57; \
7737 187200 : in57 = GF_MUL( in57, 1 ); \
7738 187200 : scratch_58 = in58; \
7739 187200 : in58 = GF_MUL( in58, 1 ); \
7740 187200 : scratch_59 = in59; \
7741 187200 : in59 = GF_MUL( in59, 1 ); \
7742 187200 : scratch_60 = in60; \
7743 187200 : in60 = GF_MUL( in60, 1 ); \
7744 187200 : scratch_61 = in61; \
7745 187200 : in61 = GF_MUL( in61, 1 ); \
7746 187200 : scratch_62 = in62; \
7747 187200 : in62 = GF_MUL( in62, 1 ); \
7748 187200 : scratch_63 = in63; \
7749 187200 : in63 = GF_MUL( in63, 1 ); \
7750 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
7751 187200 : in57 = GF_ADD( GF_MUL( in25, 1 ), in57 ); \
7752 187200 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
7753 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
7754 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
7755 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
7756 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
7757 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
7758 187200 : scratch_25 = in57; \
7759 187200 : in57 = GF_MUL( in57, 1 ); \
7760 187200 : scratch_26 = in58; \
7761 187200 : in58 = GF_MUL( in58, 1 ); \
7762 187200 : scratch_27 = in59; \
7763 187200 : in59 = GF_MUL( in59, 1 ); \
7764 187200 : scratch_28 = in60; \
7765 187200 : in60 = GF_MUL( in60, 1 ); \
7766 187200 : scratch_29 = in61; \
7767 187200 : in61 = GF_MUL( in61, 1 ); \
7768 187200 : scratch_30 = in62; \
7769 187200 : in62 = GF_MUL( in62, 1 ); \
7770 187200 : scratch_31 = in63; \
7771 187200 : in63 = GF_MUL( in63, 1 ); \
7772 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
7773 187200 : in57 = GF_ADD( GF_MUL( in41, 1 ), in57 ); \
7774 187200 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
7775 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
7776 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
7777 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
7778 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
7779 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
7780 187200 : scratch_9 = in57; \
7781 187200 : in57 = GF_MUL( in57, 1 ); \
7782 187200 : scratch_10 = in58; \
7783 187200 : in58 = GF_MUL( in58, 1 ); \
7784 187200 : scratch_11 = in59; \
7785 187200 : in59 = GF_MUL( in59, 1 ); \
7786 187200 : scratch_12 = in60; \
7787 187200 : in60 = GF_MUL( in60, 1 ); \
7788 187200 : scratch_13 = in61; \
7789 187200 : in61 = GF_MUL( in61, 1 ); \
7790 187200 : scratch_14 = in62; \
7791 187200 : in62 = GF_MUL( in62, 1 ); \
7792 187200 : scratch_15 = in63; \
7793 187200 : in63 = GF_MUL( in63, 1 ); \
7794 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
7795 187200 : in57 = GF_ADD( GF_MUL( in49, 1 ), in57 ); \
7796 187200 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
7797 187200 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
7798 187200 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
7799 187200 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
7800 187200 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
7801 187200 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
7802 187200 : scratch_4 = in60; \
7803 187200 : in60 = GF_MUL( in60, 1 ); \
7804 187200 : GF_MUL22( in57, in61, 1, 81, 1, 80 ); \
7805 187200 : GF_MUL22( in58, in62, 1, 81, 1, 80 ); \
7806 187200 : GF_MUL22( in59, in63, 1, 81, 1, 80 ); \
7807 187200 : scratch_2 = in58; \
7808 187200 : in58 = GF_MUL( in58, 1 ); \
7809 187200 : GF_MUL22( in57, in59, 1, 137, 1, 136 ); \
7810 187200 : GF_MUL22( in56, in57, 1, 56, 1, 1 ); \
7811 187200 : in58 = GF_ADD( GF_MUL( in56, 1 ), in58 ); \
7812 187200 : GF_MUL22( in58, in59, 1, 58, 1, 59 ); \
7813 187200 : in56 = GF_MUL( in56, 1 ); \
7814 187200 : in56 = GF_ADD( GF_MUL( scratch_2, 137 ), in56 ); \
7815 187200 : in60 = GF_ADD( GF_MUL( in56, 1 ), in60 ); \
7816 187200 : FD_REEDSOL_GENERATE_FFT( 4, 60, in60, in61, in62, in63 ); \
7817 187200 : in56 = GF_MUL( in56, 1 ); \
7818 187200 : in56 = GF_ADD( GF_MUL( scratch_4, 81 ), in56 ); \
7819 187200 : GF_MUL22( in48, in56, 164, 165, 1, 1 ); \
7820 187200 : in49 = GF_MUL( in49, 1 ); \
7821 187200 : in49 = GF_ADD( GF_MUL( scratch_9, 165 ), in49 ); \
7822 187200 : in50 = GF_MUL( in50, 1 ); \
7823 187200 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
7824 187200 : in51 = GF_MUL( in51, 1 ); \
7825 187200 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
7826 187200 : in52 = GF_MUL( in52, 1 ); \
7827 187200 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
7828 187200 : in53 = GF_MUL( in53, 1 ); \
7829 187200 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
7830 187200 : in54 = GF_MUL( in54, 1 ); \
7831 187200 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
7832 187200 : in55 = GF_MUL( in55, 1 ); \
7833 187200 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
7834 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
7835 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
7836 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
7837 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
7838 187200 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
7839 187200 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
7840 187200 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
7841 187200 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
7842 187200 : GF_MUL22( in40, in56, 70, 71, 1, 1 ); \
7843 187200 : in41 = GF_MUL( in41, 1 ); \
7844 187200 : in41 = GF_ADD( GF_MUL( scratch_25, 71 ), in41 ); \
7845 187200 : in42 = GF_MUL( in42, 1 ); \
7846 187200 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
7847 187200 : in43 = GF_MUL( in43, 1 ); \
7848 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
7849 187200 : in44 = GF_MUL( in44, 1 ); \
7850 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
7851 187200 : in45 = GF_MUL( in45, 1 ); \
7852 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
7853 187200 : in46 = GF_MUL( in46, 1 ); \
7854 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
7855 187200 : in47 = GF_MUL( in47, 1 ); \
7856 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
7857 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
7858 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
7859 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
7860 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
7861 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
7862 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
7863 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
7864 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
7865 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
7866 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
7867 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
7868 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
7869 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
7870 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
7871 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
7872 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
7873 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
7874 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
7875 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
7876 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
7877 187200 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
7878 187200 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
7879 187200 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
7880 187200 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
7881 187200 : GF_MUL22( in24, in56, 1, 0, 1, 1 ); \
7882 187200 : in25 = GF_MUL( in25, 1 ); \
7883 187200 : in25 = GF_ADD( GF_MUL( scratch_57, 0 ), in25 ); \
7884 187200 : in26 = GF_MUL( in26, 1 ); \
7885 187200 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
7886 187200 : in27 = GF_MUL( in27, 1 ); \
7887 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
7888 187200 : in28 = GF_MUL( in28, 1 ); \
7889 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
7890 187200 : in29 = GF_MUL( in29, 1 ); \
7891 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
7892 187200 : in30 = GF_MUL( in30, 1 ); \
7893 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
7894 187200 : in31 = GF_MUL( in31, 1 ); \
7895 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
7896 187200 : } while( 0 )
7897 :
7898 : void fd_reedsol_ppt_64_58( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
7899 : #define FD_REEDSOL_PPT_IMPL_64_58( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
7900 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
7901 187296 : do { \
7902 187296 : gf_t scratch_10, scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_2, scratch_26, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_4, scratch_5; \
7903 187296 : gf_t scratch_58, scratch_59, scratch_60, scratch_61, scratch_62, scratch_63; \
7904 187296 : scratch_58 = in58; \
7905 187296 : in58 = GF_MUL( in58, 1 ); \
7906 187296 : scratch_59 = in59; \
7907 187296 : in59 = GF_MUL( in59, 1 ); \
7908 187296 : scratch_60 = in60; \
7909 187296 : in60 = GF_MUL( in60, 1 ); \
7910 187296 : scratch_61 = in61; \
7911 187296 : in61 = GF_MUL( in61, 1 ); \
7912 187296 : scratch_62 = in62; \
7913 187296 : in62 = GF_MUL( in62, 1 ); \
7914 187296 : scratch_63 = in63; \
7915 187296 : in63 = GF_MUL( in63, 1 ); \
7916 187296 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
7917 187296 : in58 = GF_ADD( GF_MUL( in26, 1 ), in58 ); \
7918 187296 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
7919 187296 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
7920 187296 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
7921 187296 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
7922 187296 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
7923 187296 : scratch_26 = in58; \
7924 187296 : in58 = GF_MUL( in58, 1 ); \
7925 187296 : scratch_27 = in59; \
7926 187296 : in59 = GF_MUL( in59, 1 ); \
7927 187296 : scratch_28 = in60; \
7928 187296 : in60 = GF_MUL( in60, 1 ); \
7929 187296 : scratch_29 = in61; \
7930 187296 : in61 = GF_MUL( in61, 1 ); \
7931 187296 : scratch_30 = in62; \
7932 187296 : in62 = GF_MUL( in62, 1 ); \
7933 187296 : scratch_31 = in63; \
7934 187296 : in63 = GF_MUL( in63, 1 ); \
7935 187296 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
7936 187296 : in58 = GF_ADD( GF_MUL( in42, 1 ), in58 ); \
7937 187296 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
7938 187296 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
7939 187296 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
7940 187296 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
7941 187296 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
7942 187296 : scratch_10 = in58; \
7943 187296 : in58 = GF_MUL( in58, 1 ); \
7944 187296 : scratch_11 = in59; \
7945 187296 : in59 = GF_MUL( in59, 1 ); \
7946 187296 : scratch_12 = in60; \
7947 187296 : in60 = GF_MUL( in60, 1 ); \
7948 187296 : scratch_13 = in61; \
7949 187296 : in61 = GF_MUL( in61, 1 ); \
7950 187296 : scratch_14 = in62; \
7951 187296 : in62 = GF_MUL( in62, 1 ); \
7952 187296 : scratch_15 = in63; \
7953 187296 : in63 = GF_MUL( in63, 1 ); \
7954 187296 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
7955 187296 : in58 = GF_ADD( GF_MUL( in50, 1 ), in58 ); \
7956 187296 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
7957 187296 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
7958 187296 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
7959 187296 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
7960 187296 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
7961 187296 : scratch_4 = in60; \
7962 187296 : in60 = GF_MUL( in60, 1 ); \
7963 187296 : scratch_5 = in61; \
7964 187296 : in61 = GF_MUL( in61, 1 ); \
7965 187296 : GF_MUL22( in58, in62, 1, 81, 1, 80 ); \
7966 187296 : GF_MUL22( in59, in63, 1, 81, 1, 80 ); \
7967 187296 : scratch_2 = in58; \
7968 187296 : in58 = GF_MUL( in58, 1 ); \
7969 187296 : scratch_3 = in59; \
7970 187296 : in59 = GF_MUL( in59, 1 ); \
7971 187296 : GF_MUL22( in56, in57, 57, 56, 1, 1 ); \
7972 187296 : in58 = GF_ADD( GF_MUL( in56, 1 ), in58 ); \
7973 187296 : in59 = GF_ADD( GF_MUL( in57, 1 ), in59 ); \
7974 187296 : GF_MUL22( in58, in59, 1, 58, 1, 59 ); \
7975 187296 : in56 = GF_MUL( in56, 1 ); \
7976 187296 : in56 = GF_ADD( GF_MUL( scratch_2, 137 ), in56 ); \
7977 187296 : in57 = GF_MUL( in57, 1 ); \
7978 187296 : in57 = GF_ADD( GF_MUL( scratch_3, 137 ), in57 ); \
7979 187296 : in60 = GF_ADD( GF_MUL( in56, 1 ), in60 ); \
7980 187296 : in61 = GF_ADD( GF_MUL( in57, 1 ), in61 ); \
7981 187296 : FD_REEDSOL_GENERATE_FFT( 4, 60, in60, in61, in62, in63 ); \
7982 187296 : in56 = GF_MUL( in56, 1 ); \
7983 187296 : in56 = GF_ADD( GF_MUL( scratch_4, 81 ), in56 ); \
7984 187296 : in57 = GF_MUL( in57, 1 ); \
7985 187296 : in57 = GF_ADD( GF_MUL( scratch_5, 81 ), in57 ); \
7986 187296 : GF_MUL22( in48, in56, 164, 165, 1, 1 ); \
7987 187296 : GF_MUL22( in49, in57, 164, 165, 1, 1 ); \
7988 187296 : in50 = GF_MUL( in50, 1 ); \
7989 187296 : in50 = GF_ADD( GF_MUL( scratch_10, 165 ), in50 ); \
7990 187296 : in51 = GF_MUL( in51, 1 ); \
7991 187296 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
7992 187296 : in52 = GF_MUL( in52, 1 ); \
7993 187296 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
7994 187296 : in53 = GF_MUL( in53, 1 ); \
7995 187296 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
7996 187296 : in54 = GF_MUL( in54, 1 ); \
7997 187296 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
7998 187296 : in55 = GF_MUL( in55, 1 ); \
7999 187296 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
8000 187296 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
8001 187296 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
8002 187296 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
8003 187296 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
8004 187296 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
8005 187296 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
8006 187296 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
8007 187296 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
8008 187296 : GF_MUL22( in40, in56, 70, 71, 1, 1 ); \
8009 187296 : GF_MUL22( in41, in57, 70, 71, 1, 1 ); \
8010 187296 : in42 = GF_MUL( in42, 1 ); \
8011 187296 : in42 = GF_ADD( GF_MUL( scratch_26, 71 ), in42 ); \
8012 187296 : in43 = GF_MUL( in43, 1 ); \
8013 187296 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
8014 187296 : in44 = GF_MUL( in44, 1 ); \
8015 187296 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
8016 187296 : in45 = GF_MUL( in45, 1 ); \
8017 187296 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
8018 187296 : in46 = GF_MUL( in46, 1 ); \
8019 187296 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
8020 187296 : in47 = GF_MUL( in47, 1 ); \
8021 187296 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
8022 187296 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
8023 187296 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
8024 187296 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
8025 187296 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
8026 187296 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
8027 187296 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
8028 187296 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
8029 187296 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
8030 187296 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
8031 187296 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
8032 187296 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
8033 187296 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
8034 187296 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
8035 187296 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
8036 187296 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
8037 187296 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
8038 187296 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
8039 187296 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
8040 187296 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
8041 187296 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
8042 187296 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
8043 187296 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
8044 187296 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
8045 187296 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
8046 187296 : GF_MUL22( in24, in56, 1, 0, 1, 1 ); \
8047 187296 : GF_MUL22( in25, in57, 1, 0, 1, 1 ); \
8048 187296 : in26 = GF_MUL( in26, 1 ); \
8049 187296 : in26 = GF_ADD( GF_MUL( scratch_58, 0 ), in26 ); \
8050 187296 : in27 = GF_MUL( in27, 1 ); \
8051 187296 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
8052 187296 : in28 = GF_MUL( in28, 1 ); \
8053 187296 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
8054 187296 : in29 = GF_MUL( in29, 1 ); \
8055 187296 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
8056 187296 : in30 = GF_MUL( in30, 1 ); \
8057 187296 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
8058 187296 : in31 = GF_MUL( in31, 1 ); \
8059 187296 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
8060 187296 : } while( 0 )
8061 :
8062 : void fd_reedsol_ppt_64_59( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
8063 : #define FD_REEDSOL_PPT_IMPL_64_59( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
8064 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
8065 187200 : do { \
8066 187200 : gf_t scratch_11, scratch_12, scratch_13, scratch_14, scratch_15, scratch_27, scratch_28, scratch_29, scratch_3, scratch_30, scratch_31, scratch_4, scratch_5, scratch_59, scratch_6, scratch_60; \
8067 187200 : gf_t scratch_61, scratch_62, scratch_63; \
8068 187200 : scratch_59 = in59; \
8069 187200 : in59 = GF_MUL( in59, 1 ); \
8070 187200 : scratch_60 = in60; \
8071 187200 : in60 = GF_MUL( in60, 1 ); \
8072 187200 : scratch_61 = in61; \
8073 187200 : in61 = GF_MUL( in61, 1 ); \
8074 187200 : scratch_62 = in62; \
8075 187200 : in62 = GF_MUL( in62, 1 ); \
8076 187200 : scratch_63 = in63; \
8077 187200 : in63 = GF_MUL( in63, 1 ); \
8078 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
8079 187200 : in59 = GF_ADD( GF_MUL( in27, 1 ), in59 ); \
8080 187200 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
8081 187200 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
8082 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
8083 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
8084 187200 : scratch_27 = in59; \
8085 187200 : in59 = GF_MUL( in59, 1 ); \
8086 187200 : scratch_28 = in60; \
8087 187200 : in60 = GF_MUL( in60, 1 ); \
8088 187200 : scratch_29 = in61; \
8089 187200 : in61 = GF_MUL( in61, 1 ); \
8090 187200 : scratch_30 = in62; \
8091 187200 : in62 = GF_MUL( in62, 1 ); \
8092 187200 : scratch_31 = in63; \
8093 187200 : in63 = GF_MUL( in63, 1 ); \
8094 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
8095 187200 : in59 = GF_ADD( GF_MUL( in43, 1 ), in59 ); \
8096 187200 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
8097 187200 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
8098 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
8099 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
8100 187200 : scratch_11 = in59; \
8101 187200 : in59 = GF_MUL( in59, 1 ); \
8102 187200 : scratch_12 = in60; \
8103 187200 : in60 = GF_MUL( in60, 1 ); \
8104 187200 : scratch_13 = in61; \
8105 187200 : in61 = GF_MUL( in61, 1 ); \
8106 187200 : scratch_14 = in62; \
8107 187200 : in62 = GF_MUL( in62, 1 ); \
8108 187200 : scratch_15 = in63; \
8109 187200 : in63 = GF_MUL( in63, 1 ); \
8110 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
8111 187200 : in59 = GF_ADD( GF_MUL( in51, 1 ), in59 ); \
8112 187200 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
8113 187200 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
8114 187200 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
8115 187200 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
8116 187200 : scratch_4 = in60; \
8117 187200 : in60 = GF_MUL( in60, 1 ); \
8118 187200 : scratch_5 = in61; \
8119 187200 : in61 = GF_MUL( in61, 1 ); \
8120 187200 : scratch_6 = in62; \
8121 187200 : in62 = GF_MUL( in62, 1 ); \
8122 187200 : GF_MUL22( in59, in63, 1, 81, 1, 80 ); \
8123 187200 : scratch_3 = in59; \
8124 187200 : in59 = GF_MUL( in59, 1 ); \
8125 187200 : GF_MUL22( in56, in57, 57, 56, 1, 1 ); \
8126 187200 : in59 = GF_ADD( GF_MUL( in57, 1 ), in59 ); \
8127 187200 : GF_MUL22( in58, in59, 1, 58, 1, 1 ); \
8128 187200 : GF_MUL22( in56, in58, 136, 137, 1, 1 ); \
8129 187200 : in57 = GF_MUL( in57, 1 ); \
8130 187200 : in57 = GF_ADD( GF_MUL( scratch_3, 137 ), in57 ); \
8131 187200 : in60 = GF_ADD( GF_MUL( in56, 1 ), in60 ); \
8132 187200 : in61 = GF_ADD( GF_MUL( in57, 1 ), in61 ); \
8133 187200 : in62 = GF_ADD( GF_MUL( in58, 1 ), in62 ); \
8134 187200 : FD_REEDSOL_GENERATE_FFT( 4, 60, in60, in61, in62, in63 ); \
8135 187200 : in56 = GF_MUL( in56, 1 ); \
8136 187200 : in56 = GF_ADD( GF_MUL( scratch_4, 81 ), in56 ); \
8137 187200 : in57 = GF_MUL( in57, 1 ); \
8138 187200 : in57 = GF_ADD( GF_MUL( scratch_5, 81 ), in57 ); \
8139 187200 : in58 = GF_MUL( in58, 1 ); \
8140 187200 : in58 = GF_ADD( GF_MUL( scratch_6, 81 ), in58 ); \
8141 187200 : GF_MUL22( in48, in56, 164, 165, 1, 1 ); \
8142 187200 : GF_MUL22( in49, in57, 164, 165, 1, 1 ); \
8143 187200 : GF_MUL22( in50, in58, 164, 165, 1, 1 ); \
8144 187200 : in51 = GF_MUL( in51, 1 ); \
8145 187200 : in51 = GF_ADD( GF_MUL( scratch_11, 165 ), in51 ); \
8146 187200 : in52 = GF_MUL( in52, 1 ); \
8147 187200 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
8148 187200 : in53 = GF_MUL( in53, 1 ); \
8149 187200 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
8150 187200 : in54 = GF_MUL( in54, 1 ); \
8151 187200 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
8152 187200 : in55 = GF_MUL( in55, 1 ); \
8153 187200 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
8154 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
8155 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
8156 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
8157 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
8158 187200 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
8159 187200 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
8160 187200 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
8161 187200 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
8162 187200 : GF_MUL22( in40, in56, 70, 71, 1, 1 ); \
8163 187200 : GF_MUL22( in41, in57, 70, 71, 1, 1 ); \
8164 187200 : GF_MUL22( in42, in58, 70, 71, 1, 1 ); \
8165 187200 : in43 = GF_MUL( in43, 1 ); \
8166 187200 : in43 = GF_ADD( GF_MUL( scratch_27, 71 ), in43 ); \
8167 187200 : in44 = GF_MUL( in44, 1 ); \
8168 187200 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
8169 187200 : in45 = GF_MUL( in45, 1 ); \
8170 187200 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
8171 187200 : in46 = GF_MUL( in46, 1 ); \
8172 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
8173 187200 : in47 = GF_MUL( in47, 1 ); \
8174 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
8175 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
8176 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
8177 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
8178 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
8179 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
8180 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
8181 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
8182 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
8183 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
8184 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
8185 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
8186 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
8187 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
8188 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
8189 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
8190 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
8191 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
8192 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
8193 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
8194 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
8195 187200 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
8196 187200 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
8197 187200 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
8198 187200 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
8199 187200 : GF_MUL22( in24, in56, 1, 0, 1, 1 ); \
8200 187200 : GF_MUL22( in25, in57, 1, 0, 1, 1 ); \
8201 187200 : GF_MUL22( in26, in58, 1, 0, 1, 1 ); \
8202 187200 : in27 = GF_MUL( in27, 1 ); \
8203 187200 : in27 = GF_ADD( GF_MUL( scratch_59, 0 ), in27 ); \
8204 187200 : in28 = GF_MUL( in28, 1 ); \
8205 187200 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
8206 187200 : in29 = GF_MUL( in29, 1 ); \
8207 187200 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
8208 187200 : in30 = GF_MUL( in30, 1 ); \
8209 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
8210 187200 : in31 = GF_MUL( in31, 1 ); \
8211 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
8212 187200 : } while( 0 )
8213 :
8214 : void fd_reedsol_ppt_64_60( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
8215 : #define FD_REEDSOL_PPT_IMPL_64_60( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
8216 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
8217 187296 : do { \
8218 187296 : gf_t scratch_12, scratch_13, scratch_14, scratch_15, scratch_28, scratch_29, scratch_30, scratch_31, scratch_4, scratch_5, scratch_6, scratch_60, scratch_61, scratch_62, scratch_63, scratch_7; \
8219 187296 : scratch_60 = in60; \
8220 187296 : in60 = GF_MUL( in60, 1 ); \
8221 187296 : scratch_61 = in61; \
8222 187296 : in61 = GF_MUL( in61, 1 ); \
8223 187296 : scratch_62 = in62; \
8224 187296 : in62 = GF_MUL( in62, 1 ); \
8225 187296 : scratch_63 = in63; \
8226 187296 : in63 = GF_MUL( in63, 1 ); \
8227 187296 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
8228 187296 : in60 = GF_ADD( GF_MUL( in28, 1 ), in60 ); \
8229 187296 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
8230 187296 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
8231 187296 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
8232 187296 : scratch_28 = in60; \
8233 187296 : in60 = GF_MUL( in60, 1 ); \
8234 187296 : scratch_29 = in61; \
8235 187296 : in61 = GF_MUL( in61, 1 ); \
8236 187296 : scratch_30 = in62; \
8237 187296 : in62 = GF_MUL( in62, 1 ); \
8238 187296 : scratch_31 = in63; \
8239 187296 : in63 = GF_MUL( in63, 1 ); \
8240 187296 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
8241 187296 : in60 = GF_ADD( GF_MUL( in44, 1 ), in60 ); \
8242 187296 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
8243 187296 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
8244 187296 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
8245 187296 : scratch_12 = in60; \
8246 187296 : in60 = GF_MUL( in60, 1 ); \
8247 187296 : scratch_13 = in61; \
8248 187296 : in61 = GF_MUL( in61, 1 ); \
8249 187296 : scratch_14 = in62; \
8250 187296 : in62 = GF_MUL( in62, 1 ); \
8251 187296 : scratch_15 = in63; \
8252 187296 : in63 = GF_MUL( in63, 1 ); \
8253 187296 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
8254 187296 : in60 = GF_ADD( GF_MUL( in52, 1 ), in60 ); \
8255 187296 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
8256 187296 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
8257 187296 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
8258 187296 : scratch_4 = in60; \
8259 187296 : in60 = GF_MUL( in60, 1 ); \
8260 187296 : scratch_5 = in61; \
8261 187296 : in61 = GF_MUL( in61, 1 ); \
8262 187296 : scratch_6 = in62; \
8263 187296 : in62 = GF_MUL( in62, 1 ); \
8264 187296 : scratch_7 = in63; \
8265 187296 : in63 = GF_MUL( in63, 1 ); \
8266 187296 : FD_REEDSOL_GENERATE_IFFT( 4, 56, in56, in57, in58, in59 ); \
8267 187296 : in60 = GF_ADD( GF_MUL( in56, 1 ), in60 ); \
8268 187296 : in61 = GF_ADD( GF_MUL( in57, 1 ), in61 ); \
8269 187296 : in62 = GF_ADD( GF_MUL( in58, 1 ), in62 ); \
8270 187296 : in63 = GF_ADD( GF_MUL( in59, 1 ), in63 ); \
8271 187296 : FD_REEDSOL_GENERATE_FFT( 4, 60, in60, in61, in62, in63 ); \
8272 187296 : in56 = GF_MUL( in56, 1 ); \
8273 187296 : in56 = GF_ADD( GF_MUL( scratch_4, 81 ), in56 ); \
8274 187296 : in57 = GF_MUL( in57, 1 ); \
8275 187296 : in57 = GF_ADD( GF_MUL( scratch_5, 81 ), in57 ); \
8276 187296 : in58 = GF_MUL( in58, 1 ); \
8277 187296 : in58 = GF_ADD( GF_MUL( scratch_6, 81 ), in58 ); \
8278 187296 : in59 = GF_MUL( in59, 1 ); \
8279 187296 : in59 = GF_ADD( GF_MUL( scratch_7, 81 ), in59 ); \
8280 187296 : GF_MUL22( in48, in56, 164, 165, 1, 1 ); \
8281 187296 : GF_MUL22( in49, in57, 164, 165, 1, 1 ); \
8282 187296 : GF_MUL22( in50, in58, 164, 165, 1, 1 ); \
8283 187296 : GF_MUL22( in51, in59, 164, 165, 1, 1 ); \
8284 187296 : in52 = GF_MUL( in52, 1 ); \
8285 187296 : in52 = GF_ADD( GF_MUL( scratch_12, 165 ), in52 ); \
8286 187296 : in53 = GF_MUL( in53, 1 ); \
8287 187296 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
8288 187296 : in54 = GF_MUL( in54, 1 ); \
8289 187296 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
8290 187296 : in55 = GF_MUL( in55, 1 ); \
8291 187296 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
8292 187296 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
8293 187296 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
8294 187296 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
8295 187296 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
8296 187296 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
8297 187296 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
8298 187296 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
8299 187296 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
8300 187296 : GF_MUL22( in40, in56, 70, 71, 1, 1 ); \
8301 187296 : GF_MUL22( in41, in57, 70, 71, 1, 1 ); \
8302 187296 : GF_MUL22( in42, in58, 70, 71, 1, 1 ); \
8303 187296 : GF_MUL22( in43, in59, 70, 71, 1, 1 ); \
8304 187296 : in44 = GF_MUL( in44, 1 ); \
8305 187296 : in44 = GF_ADD( GF_MUL( scratch_28, 71 ), in44 ); \
8306 187296 : in45 = GF_MUL( in45, 1 ); \
8307 187296 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
8308 187296 : in46 = GF_MUL( in46, 1 ); \
8309 187296 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
8310 187296 : in47 = GF_MUL( in47, 1 ); \
8311 187296 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
8312 187296 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
8313 187296 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
8314 187296 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
8315 187296 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
8316 187296 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
8317 187296 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
8318 187296 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
8319 187296 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
8320 187296 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
8321 187296 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
8322 187296 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
8323 187296 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
8324 187296 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
8325 187296 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
8326 187296 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
8327 187296 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
8328 187296 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
8329 187296 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
8330 187296 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
8331 187296 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
8332 187296 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
8333 187296 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
8334 187296 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
8335 187296 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
8336 187296 : GF_MUL22( in24, in56, 1, 0, 1, 1 ); \
8337 187296 : GF_MUL22( in25, in57, 1, 0, 1, 1 ); \
8338 187296 : GF_MUL22( in26, in58, 1, 0, 1, 1 ); \
8339 187296 : GF_MUL22( in27, in59, 1, 0, 1, 1 ); \
8340 187296 : in28 = GF_MUL( in28, 1 ); \
8341 187296 : in28 = GF_ADD( GF_MUL( scratch_60, 0 ), in28 ); \
8342 187296 : in29 = GF_MUL( in29, 1 ); \
8343 187296 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
8344 187296 : in30 = GF_MUL( in30, 1 ); \
8345 187296 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
8346 187296 : in31 = GF_MUL( in31, 1 ); \
8347 187296 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
8348 187296 : } while( 0 )
8349 :
8350 : void fd_reedsol_ppt_64_61( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
8351 : #define FD_REEDSOL_PPT_IMPL_64_61( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
8352 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
8353 187296 : do { \
8354 187296 : gf_t scratch_13, scratch_14, scratch_15, scratch_2, scratch_29, scratch_30, scratch_31, scratch_5, scratch_6, scratch_61, scratch_62, scratch_63, scratch_7; \
8355 187296 : scratch_61 = in61; \
8356 187296 : in61 = GF_MUL( in61, 1 ); \
8357 187296 : scratch_62 = in62; \
8358 187296 : in62 = GF_MUL( in62, 1 ); \
8359 187296 : scratch_63 = in63; \
8360 187296 : in63 = GF_MUL( in63, 1 ); \
8361 187296 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
8362 187296 : in61 = GF_ADD( GF_MUL( in29, 1 ), in61 ); \
8363 187296 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
8364 187296 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
8365 187296 : scratch_29 = in61; \
8366 187296 : in61 = GF_MUL( in61, 1 ); \
8367 187296 : scratch_30 = in62; \
8368 187296 : in62 = GF_MUL( in62, 1 ); \
8369 187296 : scratch_31 = in63; \
8370 187296 : in63 = GF_MUL( in63, 1 ); \
8371 187296 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
8372 187296 : in61 = GF_ADD( GF_MUL( in45, 1 ), in61 ); \
8373 187296 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
8374 187296 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
8375 187296 : scratch_13 = in61; \
8376 187296 : in61 = GF_MUL( in61, 1 ); \
8377 187296 : scratch_14 = in62; \
8378 187296 : in62 = GF_MUL( in62, 1 ); \
8379 187296 : scratch_15 = in63; \
8380 187296 : in63 = GF_MUL( in63, 1 ); \
8381 187296 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
8382 187296 : in61 = GF_ADD( GF_MUL( in53, 1 ), in61 ); \
8383 187296 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
8384 187296 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
8385 187296 : scratch_5 = in61; \
8386 187296 : in61 = GF_MUL( in61, 1 ); \
8387 187296 : scratch_6 = in62; \
8388 187296 : in62 = GF_MUL( in62, 1 ); \
8389 187296 : scratch_7 = in63; \
8390 187296 : in63 = GF_MUL( in63, 1 ); \
8391 187296 : FD_REEDSOL_GENERATE_IFFT( 4, 56, in56, in57, in58, in59 ); \
8392 187296 : in61 = GF_ADD( GF_MUL( in57, 1 ), in61 ); \
8393 187296 : in62 = GF_ADD( GF_MUL( in58, 1 ), in62 ); \
8394 187296 : in63 = GF_ADD( GF_MUL( in59, 1 ), in63 ); \
8395 187296 : scratch_2 = in62; \
8396 187296 : in62 = GF_MUL( in62, 1 ); \
8397 187296 : GF_MUL22( in61, in63, 1, 143, 1, 142 ); \
8398 187296 : GF_MUL22( in60, in61, 1, 60, 1, 1 ); \
8399 187296 : in62 = GF_ADD( GF_MUL( in60, 1 ), in62 ); \
8400 187296 : GF_MUL22( in62, in63, 1, 62, 1, 63 ); \
8401 187296 : in60 = GF_MUL( in60, 1 ); \
8402 187296 : in60 = GF_ADD( GF_MUL( scratch_2, 143 ), in60 ); \
8403 187296 : GF_MUL22( in56, in60, 80, 81, 1, 1 ); \
8404 187296 : in57 = GF_MUL( in57, 1 ); \
8405 187296 : in57 = GF_ADD( GF_MUL( scratch_5, 81 ), in57 ); \
8406 187296 : in58 = GF_MUL( in58, 1 ); \
8407 187296 : in58 = GF_ADD( GF_MUL( scratch_6, 81 ), in58 ); \
8408 187296 : in59 = GF_MUL( in59, 1 ); \
8409 187296 : in59 = GF_ADD( GF_MUL( scratch_7, 81 ), in59 ); \
8410 187296 : GF_MUL22( in48, in56, 164, 165, 1, 1 ); \
8411 187296 : GF_MUL22( in49, in57, 164, 165, 1, 1 ); \
8412 187296 : GF_MUL22( in50, in58, 164, 165, 1, 1 ); \
8413 187296 : GF_MUL22( in51, in59, 164, 165, 1, 1 ); \
8414 187296 : GF_MUL22( in52, in60, 164, 165, 1, 1 ); \
8415 187296 : in53 = GF_MUL( in53, 1 ); \
8416 187296 : in53 = GF_ADD( GF_MUL( scratch_13, 165 ), in53 ); \
8417 187296 : in54 = GF_MUL( in54, 1 ); \
8418 187296 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
8419 187296 : in55 = GF_MUL( in55, 1 ); \
8420 187296 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
8421 187296 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
8422 187296 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
8423 187296 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
8424 187296 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
8425 187296 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
8426 187296 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
8427 187296 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
8428 187296 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
8429 187296 : GF_MUL22( in40, in56, 70, 71, 1, 1 ); \
8430 187296 : GF_MUL22( in41, in57, 70, 71, 1, 1 ); \
8431 187296 : GF_MUL22( in42, in58, 70, 71, 1, 1 ); \
8432 187296 : GF_MUL22( in43, in59, 70, 71, 1, 1 ); \
8433 187296 : GF_MUL22( in44, in60, 70, 71, 1, 1 ); \
8434 187296 : in45 = GF_MUL( in45, 1 ); \
8435 187296 : in45 = GF_ADD( GF_MUL( scratch_29, 71 ), in45 ); \
8436 187296 : in46 = GF_MUL( in46, 1 ); \
8437 187296 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
8438 187296 : in47 = GF_MUL( in47, 1 ); \
8439 187296 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
8440 187296 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
8441 187296 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
8442 187296 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
8443 187296 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
8444 187296 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
8445 187296 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
8446 187296 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
8447 187296 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
8448 187296 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
8449 187296 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
8450 187296 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
8451 187296 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
8452 187296 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
8453 187296 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
8454 187296 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
8455 187296 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
8456 187296 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
8457 187296 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
8458 187296 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
8459 187296 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
8460 187296 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
8461 187296 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
8462 187296 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
8463 187296 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
8464 187296 : GF_MUL22( in24, in56, 1, 0, 1, 1 ); \
8465 187296 : GF_MUL22( in25, in57, 1, 0, 1, 1 ); \
8466 187296 : GF_MUL22( in26, in58, 1, 0, 1, 1 ); \
8467 187296 : GF_MUL22( in27, in59, 1, 0, 1, 1 ); \
8468 187296 : GF_MUL22( in28, in60, 1, 0, 1, 1 ); \
8469 187296 : in29 = GF_MUL( in29, 1 ); \
8470 187296 : in29 = GF_ADD( GF_MUL( scratch_61, 0 ), in29 ); \
8471 187296 : in30 = GF_MUL( in30, 1 ); \
8472 187296 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
8473 187296 : in31 = GF_MUL( in31, 1 ); \
8474 187296 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
8475 187296 : } while( 0 )
8476 :
8477 : void fd_reedsol_ppt_64_62( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
8478 : #define FD_REEDSOL_PPT_IMPL_64_62( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
8479 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
8480 187200 : do { \
8481 187200 : gf_t scratch_14, scratch_15, scratch_2, scratch_3, scratch_30, scratch_31, scratch_6, scratch_62, scratch_63, scratch_7; \
8482 187200 : scratch_62 = in62; \
8483 187200 : in62 = GF_MUL( in62, 1 ); \
8484 187200 : scratch_63 = in63; \
8485 187200 : in63 = GF_MUL( in63, 1 ); \
8486 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
8487 187200 : in62 = GF_ADD( GF_MUL( in30, 1 ), in62 ); \
8488 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
8489 187200 : scratch_30 = in62; \
8490 187200 : in62 = GF_MUL( in62, 1 ); \
8491 187200 : scratch_31 = in63; \
8492 187200 : in63 = GF_MUL( in63, 1 ); \
8493 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
8494 187200 : in62 = GF_ADD( GF_MUL( in46, 1 ), in62 ); \
8495 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
8496 187200 : scratch_14 = in62; \
8497 187200 : in62 = GF_MUL( in62, 1 ); \
8498 187200 : scratch_15 = in63; \
8499 187200 : in63 = GF_MUL( in63, 1 ); \
8500 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
8501 187200 : in62 = GF_ADD( GF_MUL( in54, 1 ), in62 ); \
8502 187200 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
8503 187200 : scratch_6 = in62; \
8504 187200 : in62 = GF_MUL( in62, 1 ); \
8505 187200 : scratch_7 = in63; \
8506 187200 : in63 = GF_MUL( in63, 1 ); \
8507 187200 : FD_REEDSOL_GENERATE_IFFT( 4, 56, in56, in57, in58, in59 ); \
8508 187200 : in62 = GF_ADD( GF_MUL( in58, 1 ), in62 ); \
8509 187200 : in63 = GF_ADD( GF_MUL( in59, 1 ), in63 ); \
8510 187200 : scratch_2 = in62; \
8511 187200 : in62 = GF_MUL( in62, 1 ); \
8512 187200 : scratch_3 = in63; \
8513 187200 : in63 = GF_MUL( in63, 1 ); \
8514 187200 : GF_MUL22( in60, in61, 61, 60, 1, 1 ); \
8515 187200 : in62 = GF_ADD( GF_MUL( in60, 1 ), in62 ); \
8516 187200 : in63 = GF_ADD( GF_MUL( in61, 1 ), in63 ); \
8517 187200 : GF_MUL22( in62, in63, 1, 62, 1, 63 ); \
8518 187200 : in60 = GF_MUL( in60, 1 ); \
8519 187200 : in60 = GF_ADD( GF_MUL( scratch_2, 143 ), in60 ); \
8520 187200 : in61 = GF_MUL( in61, 1 ); \
8521 187200 : in61 = GF_ADD( GF_MUL( scratch_3, 143 ), in61 ); \
8522 187200 : GF_MUL22( in56, in60, 80, 81, 1, 1 ); \
8523 187200 : GF_MUL22( in57, in61, 80, 81, 1, 1 ); \
8524 187200 : in58 = GF_MUL( in58, 1 ); \
8525 187200 : in58 = GF_ADD( GF_MUL( scratch_6, 81 ), in58 ); \
8526 187200 : in59 = GF_MUL( in59, 1 ); \
8527 187200 : in59 = GF_ADD( GF_MUL( scratch_7, 81 ), in59 ); \
8528 187200 : GF_MUL22( in48, in56, 164, 165, 1, 1 ); \
8529 187200 : GF_MUL22( in49, in57, 164, 165, 1, 1 ); \
8530 187200 : GF_MUL22( in50, in58, 164, 165, 1, 1 ); \
8531 187200 : GF_MUL22( in51, in59, 164, 165, 1, 1 ); \
8532 187200 : GF_MUL22( in52, in60, 164, 165, 1, 1 ); \
8533 187200 : GF_MUL22( in53, in61, 164, 165, 1, 1 ); \
8534 187200 : in54 = GF_MUL( in54, 1 ); \
8535 187200 : in54 = GF_ADD( GF_MUL( scratch_14, 165 ), in54 ); \
8536 187200 : in55 = GF_MUL( in55, 1 ); \
8537 187200 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
8538 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
8539 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
8540 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
8541 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
8542 187200 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
8543 187200 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
8544 187200 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
8545 187200 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
8546 187200 : GF_MUL22( in40, in56, 70, 71, 1, 1 ); \
8547 187200 : GF_MUL22( in41, in57, 70, 71, 1, 1 ); \
8548 187200 : GF_MUL22( in42, in58, 70, 71, 1, 1 ); \
8549 187200 : GF_MUL22( in43, in59, 70, 71, 1, 1 ); \
8550 187200 : GF_MUL22( in44, in60, 70, 71, 1, 1 ); \
8551 187200 : GF_MUL22( in45, in61, 70, 71, 1, 1 ); \
8552 187200 : in46 = GF_MUL( in46, 1 ); \
8553 187200 : in46 = GF_ADD( GF_MUL( scratch_30, 71 ), in46 ); \
8554 187200 : in47 = GF_MUL( in47, 1 ); \
8555 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
8556 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
8557 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
8558 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
8559 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
8560 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
8561 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
8562 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
8563 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
8564 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
8565 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
8566 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
8567 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
8568 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
8569 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
8570 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
8571 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
8572 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
8573 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
8574 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
8575 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
8576 187200 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
8577 187200 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
8578 187200 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
8579 187200 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
8580 187200 : GF_MUL22( in24, in56, 1, 0, 1, 1 ); \
8581 187200 : GF_MUL22( in25, in57, 1, 0, 1, 1 ); \
8582 187200 : GF_MUL22( in26, in58, 1, 0, 1, 1 ); \
8583 187200 : GF_MUL22( in27, in59, 1, 0, 1, 1 ); \
8584 187200 : GF_MUL22( in28, in60, 1, 0, 1, 1 ); \
8585 187200 : GF_MUL22( in29, in61, 1, 0, 1, 1 ); \
8586 187200 : in30 = GF_MUL( in30, 1 ); \
8587 187200 : in30 = GF_ADD( GF_MUL( scratch_62, 0 ), in30 ); \
8588 187200 : in31 = GF_MUL( in31, 1 ); \
8589 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
8590 187200 : } while( 0 )
8591 :
8592 : void fd_reedsol_ppt_64_63( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
8593 : #define FD_REEDSOL_PPT_IMPL_64_63( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33 , \
8594 : in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63) \
8595 187200 : do { \
8596 187200 : gf_t scratch_15, scratch_3, scratch_31, scratch_63, scratch_7; \
8597 187200 : scratch_63 = in63; \
8598 187200 : in63 = GF_MUL( in63, 1 ); \
8599 187200 : FD_REEDSOL_GENERATE_IFFT( 32, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31 ); \
8600 187200 : in63 = GF_ADD( GF_MUL( in31, 1 ), in63 ); \
8601 187200 : scratch_31 = in63; \
8602 187200 : in63 = GF_MUL( in63, 1 ); \
8603 187200 : FD_REEDSOL_GENERATE_IFFT( 16, 32, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47 ); \
8604 187200 : in63 = GF_ADD( GF_MUL( in47, 1 ), in63 ); \
8605 187200 : scratch_15 = in63; \
8606 187200 : in63 = GF_MUL( in63, 1 ); \
8607 187200 : FD_REEDSOL_GENERATE_IFFT( 8, 48, in48, in49, in50, in51, in52, in53, in54, in55 ); \
8608 187200 : in63 = GF_ADD( GF_MUL( in55, 1 ), in63 ); \
8609 187200 : scratch_7 = in63; \
8610 187200 : in63 = GF_MUL( in63, 1 ); \
8611 187200 : FD_REEDSOL_GENERATE_IFFT( 4, 56, in56, in57, in58, in59 ); \
8612 187200 : in63 = GF_ADD( GF_MUL( in59, 1 ), in63 ); \
8613 187200 : scratch_3 = in63; \
8614 187200 : in63 = GF_MUL( in63, 1 ); \
8615 187200 : GF_MUL22( in60, in61, 61, 60, 1, 1 ); \
8616 187200 : in63 = GF_ADD( GF_MUL( in61, 1 ), in63 ); \
8617 187200 : GF_MUL22( in62, in63, 1, 62, 1, 1 ); \
8618 187200 : GF_MUL22( in60, in62, 142, 143, 1, 1 ); \
8619 187200 : in61 = GF_MUL( in61, 1 ); \
8620 187200 : in61 = GF_ADD( GF_MUL( scratch_3, 143 ), in61 ); \
8621 187200 : GF_MUL22( in56, in60, 80, 81, 1, 1 ); \
8622 187200 : GF_MUL22( in57, in61, 80, 81, 1, 1 ); \
8623 187200 : GF_MUL22( in58, in62, 80, 81, 1, 1 ); \
8624 187200 : in59 = GF_MUL( in59, 1 ); \
8625 187200 : in59 = GF_ADD( GF_MUL( scratch_7, 81 ), in59 ); \
8626 187200 : GF_MUL22( in48, in56, 164, 165, 1, 1 ); \
8627 187200 : GF_MUL22( in49, in57, 164, 165, 1, 1 ); \
8628 187200 : GF_MUL22( in50, in58, 164, 165, 1, 1 ); \
8629 187200 : GF_MUL22( in51, in59, 164, 165, 1, 1 ); \
8630 187200 : GF_MUL22( in52, in60, 164, 165, 1, 1 ); \
8631 187200 : GF_MUL22( in53, in61, 164, 165, 1, 1 ); \
8632 187200 : GF_MUL22( in54, in62, 164, 165, 1, 1 ); \
8633 187200 : in55 = GF_MUL( in55, 1 ); \
8634 187200 : in55 = GF_ADD( GF_MUL( scratch_15, 165 ), in55 ); \
8635 187200 : GF_MUL22( in32, in48, 70, 71, 1, 1 ); \
8636 187200 : GF_MUL22( in33, in49, 70, 71, 1, 1 ); \
8637 187200 : GF_MUL22( in34, in50, 70, 71, 1, 1 ); \
8638 187200 : GF_MUL22( in35, in51, 70, 71, 1, 1 ); \
8639 187200 : GF_MUL22( in36, in52, 70, 71, 1, 1 ); \
8640 187200 : GF_MUL22( in37, in53, 70, 71, 1, 1 ); \
8641 187200 : GF_MUL22( in38, in54, 70, 71, 1, 1 ); \
8642 187200 : GF_MUL22( in39, in55, 70, 71, 1, 1 ); \
8643 187200 : GF_MUL22( in40, in56, 70, 71, 1, 1 ); \
8644 187200 : GF_MUL22( in41, in57, 70, 71, 1, 1 ); \
8645 187200 : GF_MUL22( in42, in58, 70, 71, 1, 1 ); \
8646 187200 : GF_MUL22( in43, in59, 70, 71, 1, 1 ); \
8647 187200 : GF_MUL22( in44, in60, 70, 71, 1, 1 ); \
8648 187200 : GF_MUL22( in45, in61, 70, 71, 1, 1 ); \
8649 187200 : GF_MUL22( in46, in62, 70, 71, 1, 1 ); \
8650 187200 : in47 = GF_MUL( in47, 1 ); \
8651 187200 : in47 = GF_ADD( GF_MUL( scratch_31, 71 ), in47 ); \
8652 187200 : GF_MUL22( in00, in32, 1, 0, 1, 1 ); \
8653 187200 : GF_MUL22( in01, in33, 1, 0, 1, 1 ); \
8654 187200 : GF_MUL22( in02, in34, 1, 0, 1, 1 ); \
8655 187200 : GF_MUL22( in03, in35, 1, 0, 1, 1 ); \
8656 187200 : GF_MUL22( in04, in36, 1, 0, 1, 1 ); \
8657 187200 : GF_MUL22( in05, in37, 1, 0, 1, 1 ); \
8658 187200 : GF_MUL22( in06, in38, 1, 0, 1, 1 ); \
8659 187200 : GF_MUL22( in07, in39, 1, 0, 1, 1 ); \
8660 187200 : GF_MUL22( in08, in40, 1, 0, 1, 1 ); \
8661 187200 : GF_MUL22( in09, in41, 1, 0, 1, 1 ); \
8662 187200 : GF_MUL22( in10, in42, 1, 0, 1, 1 ); \
8663 187200 : GF_MUL22( in11, in43, 1, 0, 1, 1 ); \
8664 187200 : GF_MUL22( in12, in44, 1, 0, 1, 1 ); \
8665 187200 : GF_MUL22( in13, in45, 1, 0, 1, 1 ); \
8666 187200 : GF_MUL22( in14, in46, 1, 0, 1, 1 ); \
8667 187200 : GF_MUL22( in15, in47, 1, 0, 1, 1 ); \
8668 187200 : GF_MUL22( in16, in48, 1, 0, 1, 1 ); \
8669 187200 : GF_MUL22( in17, in49, 1, 0, 1, 1 ); \
8670 187200 : GF_MUL22( in18, in50, 1, 0, 1, 1 ); \
8671 187200 : GF_MUL22( in19, in51, 1, 0, 1, 1 ); \
8672 187200 : GF_MUL22( in20, in52, 1, 0, 1, 1 ); \
8673 187200 : GF_MUL22( in21, in53, 1, 0, 1, 1 ); \
8674 187200 : GF_MUL22( in22, in54, 1, 0, 1, 1 ); \
8675 187200 : GF_MUL22( in23, in55, 1, 0, 1, 1 ); \
8676 187200 : GF_MUL22( in24, in56, 1, 0, 1, 1 ); \
8677 187200 : GF_MUL22( in25, in57, 1, 0, 1, 1 ); \
8678 187200 : GF_MUL22( in26, in58, 1, 0, 1, 1 ); \
8679 187200 : GF_MUL22( in27, in59, 1, 0, 1, 1 ); \
8680 187200 : GF_MUL22( in28, in60, 1, 0, 1, 1 ); \
8681 187200 : GF_MUL22( in29, in61, 1, 0, 1, 1 ); \
8682 187200 : GF_MUL22( in30, in62, 1, 0, 1, 1 ); \
8683 187200 : in31 = GF_MUL( in31, 1 ); \
8684 187200 : in31 = GF_ADD( GF_MUL( scratch_63, 0 ), in31 ); \
8685 187200 : } while( 0 )
8686 :
8687 : void fd_reedsol_ppt_128_65( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
8688 : #define FD_REEDSOL_PPT_IMPL_128_65( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63, in64, in65 , \
8689 : in66, in67, in68, in69, in70, in71, in72, in73, in74, in75, in76, in77, in78, in79, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127) \
8690 0 : do { \
8691 0 : gf_t scratch_100, scratch_101, scratch_102, scratch_103, scratch_104, scratch_105, scratch_106, scratch_107, scratch_108, scratch_109, scratch_110, scratch_111, scratch_112, scratch_113, scratch_114, scratch_115; \
8692 0 : gf_t scratch_116, scratch_117, scratch_118, scratch_119, scratch_120, scratch_121, scratch_122, scratch_123, scratch_124, scratch_125, scratch_126, scratch_127, scratch_16, scratch_2, scratch_32, scratch_4; \
8693 0 : gf_t scratch_65, scratch_66, scratch_67, scratch_68, scratch_69, scratch_70, scratch_71, scratch_72, scratch_73, scratch_74, scratch_75, scratch_76, scratch_77, scratch_78, scratch_79, scratch_8; \
8694 0 : gf_t scratch_80, scratch_81, scratch_82, scratch_83, scratch_84, scratch_85, scratch_86, scratch_87, scratch_88, scratch_89, scratch_90, scratch_91, scratch_92, scratch_93, scratch_94, scratch_95; \
8695 0 : gf_t scratch_96, scratch_97, scratch_98, scratch_99; \
8696 0 : scratch_65 = in65; \
8697 0 : in65 = GF_MUL( in65, 1 ); \
8698 0 : scratch_66 = in66; \
8699 0 : in66 = GF_MUL( in66, 1 ); \
8700 0 : scratch_67 = in67; \
8701 0 : in67 = GF_MUL( in67, 1 ); \
8702 0 : scratch_68 = in68; \
8703 0 : in68 = GF_MUL( in68, 1 ); \
8704 0 : scratch_69 = in69; \
8705 0 : in69 = GF_MUL( in69, 1 ); \
8706 0 : scratch_70 = in70; \
8707 0 : in70 = GF_MUL( in70, 1 ); \
8708 0 : scratch_71 = in71; \
8709 0 : in71 = GF_MUL( in71, 1 ); \
8710 0 : scratch_72 = in72; \
8711 0 : in72 = GF_MUL( in72, 1 ); \
8712 0 : scratch_73 = in73; \
8713 0 : in73 = GF_MUL( in73, 1 ); \
8714 0 : scratch_74 = in74; \
8715 0 : in74 = GF_MUL( in74, 1 ); \
8716 0 : scratch_75 = in75; \
8717 0 : in75 = GF_MUL( in75, 1 ); \
8718 0 : scratch_76 = in76; \
8719 0 : in76 = GF_MUL( in76, 1 ); \
8720 0 : scratch_77 = in77; \
8721 0 : in77 = GF_MUL( in77, 1 ); \
8722 0 : scratch_78 = in78; \
8723 0 : in78 = GF_MUL( in78, 1 ); \
8724 0 : scratch_79 = in79; \
8725 0 : in79 = GF_MUL( in79, 1 ); \
8726 0 : scratch_80 = in80; \
8727 0 : in80 = GF_MUL( in80, 1 ); \
8728 0 : scratch_81 = in81; \
8729 0 : in81 = GF_MUL( in81, 1 ); \
8730 0 : scratch_82 = in82; \
8731 0 : in82 = GF_MUL( in82, 1 ); \
8732 0 : scratch_83 = in83; \
8733 0 : in83 = GF_MUL( in83, 1 ); \
8734 0 : scratch_84 = in84; \
8735 0 : in84 = GF_MUL( in84, 1 ); \
8736 0 : scratch_85 = in85; \
8737 0 : in85 = GF_MUL( in85, 1 ); \
8738 0 : scratch_86 = in86; \
8739 0 : in86 = GF_MUL( in86, 1 ); \
8740 0 : scratch_87 = in87; \
8741 0 : in87 = GF_MUL( in87, 1 ); \
8742 0 : scratch_88 = in88; \
8743 0 : in88 = GF_MUL( in88, 1 ); \
8744 0 : scratch_89 = in89; \
8745 0 : in89 = GF_MUL( in89, 1 ); \
8746 0 : scratch_90 = in90; \
8747 0 : in90 = GF_MUL( in90, 1 ); \
8748 0 : scratch_91 = in91; \
8749 0 : in91 = GF_MUL( in91, 1 ); \
8750 0 : scratch_92 = in92; \
8751 0 : in92 = GF_MUL( in92, 1 ); \
8752 0 : scratch_93 = in93; \
8753 0 : in93 = GF_MUL( in93, 1 ); \
8754 0 : scratch_94 = in94; \
8755 0 : in94 = GF_MUL( in94, 1 ); \
8756 0 : scratch_95 = in95; \
8757 0 : in95 = GF_MUL( in95, 1 ); \
8758 0 : scratch_96 = in96; \
8759 0 : in96 = GF_MUL( in96, 1 ); \
8760 0 : scratch_97 = in97; \
8761 0 : in97 = GF_MUL( in97, 1 ); \
8762 0 : scratch_98 = in98; \
8763 0 : in98 = GF_MUL( in98, 1 ); \
8764 0 : scratch_99 = in99; \
8765 0 : in99 = GF_MUL( in99, 1 ); \
8766 0 : scratch_100 = in100; \
8767 0 : in100 = GF_MUL( in100, 1 ); \
8768 0 : scratch_101 = in101; \
8769 0 : in101 = GF_MUL( in101, 1 ); \
8770 0 : scratch_102 = in102; \
8771 0 : in102 = GF_MUL( in102, 1 ); \
8772 0 : scratch_103 = in103; \
8773 0 : in103 = GF_MUL( in103, 1 ); \
8774 0 : scratch_104 = in104; \
8775 0 : in104 = GF_MUL( in104, 1 ); \
8776 0 : scratch_105 = in105; \
8777 0 : in105 = GF_MUL( in105, 1 ); \
8778 0 : scratch_106 = in106; \
8779 0 : in106 = GF_MUL( in106, 1 ); \
8780 0 : scratch_107 = in107; \
8781 0 : in107 = GF_MUL( in107, 1 ); \
8782 0 : scratch_108 = in108; \
8783 0 : in108 = GF_MUL( in108, 1 ); \
8784 0 : scratch_109 = in109; \
8785 0 : in109 = GF_MUL( in109, 1 ); \
8786 0 : scratch_110 = in110; \
8787 0 : in110 = GF_MUL( in110, 1 ); \
8788 0 : scratch_111 = in111; \
8789 0 : in111 = GF_MUL( in111, 1 ); \
8790 0 : scratch_112 = in112; \
8791 0 : in112 = GF_MUL( in112, 1 ); \
8792 0 : scratch_113 = in113; \
8793 0 : in113 = GF_MUL( in113, 1 ); \
8794 0 : scratch_114 = in114; \
8795 0 : in114 = GF_MUL( in114, 1 ); \
8796 0 : scratch_115 = in115; \
8797 0 : in115 = GF_MUL( in115, 1 ); \
8798 0 : scratch_116 = in116; \
8799 0 : in116 = GF_MUL( in116, 1 ); \
8800 0 : scratch_117 = in117; \
8801 0 : in117 = GF_MUL( in117, 1 ); \
8802 0 : scratch_118 = in118; \
8803 0 : in118 = GF_MUL( in118, 1 ); \
8804 0 : scratch_119 = in119; \
8805 0 : in119 = GF_MUL( in119, 1 ); \
8806 0 : scratch_120 = in120; \
8807 0 : in120 = GF_MUL( in120, 1 ); \
8808 0 : scratch_121 = in121; \
8809 0 : in121 = GF_MUL( in121, 1 ); \
8810 0 : scratch_122 = in122; \
8811 0 : in122 = GF_MUL( in122, 1 ); \
8812 0 : scratch_123 = in123; \
8813 0 : in123 = GF_MUL( in123, 1 ); \
8814 0 : scratch_124 = in124; \
8815 0 : in124 = GF_MUL( in124, 1 ); \
8816 0 : scratch_125 = in125; \
8817 0 : in125 = GF_MUL( in125, 1 ); \
8818 0 : scratch_126 = in126; \
8819 0 : in126 = GF_MUL( in126, 1 ); \
8820 0 : scratch_127 = in127; \
8821 0 : in127 = GF_MUL( in127, 1 ); \
8822 0 : FD_REEDSOL_GENERATE_IFFT( 64, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
8823 0 : in65 = GF_ADD( GF_MUL( in01, 1 ), in65 ); \
8824 0 : in66 = GF_ADD( GF_MUL( in02, 1 ), in66 ); \
8825 0 : in67 = GF_ADD( GF_MUL( in03, 1 ), in67 ); \
8826 0 : in68 = GF_ADD( GF_MUL( in04, 1 ), in68 ); \
8827 0 : in69 = GF_ADD( GF_MUL( in05, 1 ), in69 ); \
8828 0 : in70 = GF_ADD( GF_MUL( in06, 1 ), in70 ); \
8829 0 : in71 = GF_ADD( GF_MUL( in07, 1 ), in71 ); \
8830 0 : in72 = GF_ADD( GF_MUL( in08, 1 ), in72 ); \
8831 0 : in73 = GF_ADD( GF_MUL( in09, 1 ), in73 ); \
8832 0 : in74 = GF_ADD( GF_MUL( in10, 1 ), in74 ); \
8833 0 : in75 = GF_ADD( GF_MUL( in11, 1 ), in75 ); \
8834 0 : in76 = GF_ADD( GF_MUL( in12, 1 ), in76 ); \
8835 0 : in77 = GF_ADD( GF_MUL( in13, 1 ), in77 ); \
8836 0 : in78 = GF_ADD( GF_MUL( in14, 1 ), in78 ); \
8837 0 : in79 = GF_ADD( GF_MUL( in15, 1 ), in79 ); \
8838 0 : in80 = GF_ADD( GF_MUL( in16, 1 ), in80 ); \
8839 0 : in81 = GF_ADD( GF_MUL( in17, 1 ), in81 ); \
8840 0 : in82 = GF_ADD( GF_MUL( in18, 1 ), in82 ); \
8841 0 : in83 = GF_ADD( GF_MUL( in19, 1 ), in83 ); \
8842 0 : in84 = GF_ADD( GF_MUL( in20, 1 ), in84 ); \
8843 0 : in85 = GF_ADD( GF_MUL( in21, 1 ), in85 ); \
8844 0 : in86 = GF_ADD( GF_MUL( in22, 1 ), in86 ); \
8845 0 : in87 = GF_ADD( GF_MUL( in23, 1 ), in87 ); \
8846 0 : in88 = GF_ADD( GF_MUL( in24, 1 ), in88 ); \
8847 0 : in89 = GF_ADD( GF_MUL( in25, 1 ), in89 ); \
8848 0 : in90 = GF_ADD( GF_MUL( in26, 1 ), in90 ); \
8849 0 : in91 = GF_ADD( GF_MUL( in27, 1 ), in91 ); \
8850 0 : in92 = GF_ADD( GF_MUL( in28, 1 ), in92 ); \
8851 0 : in93 = GF_ADD( GF_MUL( in29, 1 ), in93 ); \
8852 0 : in94 = GF_ADD( GF_MUL( in30, 1 ), in94 ); \
8853 0 : in95 = GF_ADD( GF_MUL( in31, 1 ), in95 ); \
8854 0 : in96 = GF_ADD( GF_MUL( in32, 1 ), in96 ); \
8855 0 : in97 = GF_ADD( GF_MUL( in33, 1 ), in97 ); \
8856 0 : in98 = GF_ADD( GF_MUL( in34, 1 ), in98 ); \
8857 0 : in99 = GF_ADD( GF_MUL( in35, 1 ), in99 ); \
8858 0 : in100 = GF_ADD( GF_MUL( in36, 1 ), in100 ); \
8859 0 : in101 = GF_ADD( GF_MUL( in37, 1 ), in101 ); \
8860 0 : in102 = GF_ADD( GF_MUL( in38, 1 ), in102 ); \
8861 0 : in103 = GF_ADD( GF_MUL( in39, 1 ), in103 ); \
8862 0 : in104 = GF_ADD( GF_MUL( in40, 1 ), in104 ); \
8863 0 : in105 = GF_ADD( GF_MUL( in41, 1 ), in105 ); \
8864 0 : in106 = GF_ADD( GF_MUL( in42, 1 ), in106 ); \
8865 0 : in107 = GF_ADD( GF_MUL( in43, 1 ), in107 ); \
8866 0 : in108 = GF_ADD( GF_MUL( in44, 1 ), in108 ); \
8867 0 : in109 = GF_ADD( GF_MUL( in45, 1 ), in109 ); \
8868 0 : in110 = GF_ADD( GF_MUL( in46, 1 ), in110 ); \
8869 0 : in111 = GF_ADD( GF_MUL( in47, 1 ), in111 ); \
8870 0 : in112 = GF_ADD( GF_MUL( in48, 1 ), in112 ); \
8871 0 : in113 = GF_ADD( GF_MUL( in49, 1 ), in113 ); \
8872 0 : in114 = GF_ADD( GF_MUL( in50, 1 ), in114 ); \
8873 0 : in115 = GF_ADD( GF_MUL( in51, 1 ), in115 ); \
8874 0 : in116 = GF_ADD( GF_MUL( in52, 1 ), in116 ); \
8875 0 : in117 = GF_ADD( GF_MUL( in53, 1 ), in117 ); \
8876 0 : in118 = GF_ADD( GF_MUL( in54, 1 ), in118 ); \
8877 0 : in119 = GF_ADD( GF_MUL( in55, 1 ), in119 ); \
8878 0 : in120 = GF_ADD( GF_MUL( in56, 1 ), in120 ); \
8879 0 : in121 = GF_ADD( GF_MUL( in57, 1 ), in121 ); \
8880 0 : in122 = GF_ADD( GF_MUL( in58, 1 ), in122 ); \
8881 0 : in123 = GF_ADD( GF_MUL( in59, 1 ), in123 ); \
8882 0 : in124 = GF_ADD( GF_MUL( in60, 1 ), in124 ); \
8883 0 : in125 = GF_ADD( GF_MUL( in61, 1 ), in125 ); \
8884 0 : in126 = GF_ADD( GF_MUL( in62, 1 ), in126 ); \
8885 0 : in127 = GF_ADD( GF_MUL( in63, 1 ), in127 ); \
8886 0 : scratch_32 = in96; \
8887 0 : in96 = GF_MUL( in96, 1 ); \
8888 0 : GF_MUL22( in65, in97, 1, 218, 1, 219 ); \
8889 0 : GF_MUL22( in66, in98, 1, 218, 1, 219 ); \
8890 0 : GF_MUL22( in67, in99, 1, 218, 1, 219 ); \
8891 0 : GF_MUL22( in68, in100, 1, 218, 1, 219 ); \
8892 0 : GF_MUL22( in69, in101, 1, 218, 1, 219 ); \
8893 0 : GF_MUL22( in70, in102, 1, 218, 1, 219 ); \
8894 0 : GF_MUL22( in71, in103, 1, 218, 1, 219 ); \
8895 0 : GF_MUL22( in72, in104, 1, 218, 1, 219 ); \
8896 0 : GF_MUL22( in73, in105, 1, 218, 1, 219 ); \
8897 0 : GF_MUL22( in74, in106, 1, 218, 1, 219 ); \
8898 0 : GF_MUL22( in75, in107, 1, 218, 1, 219 ); \
8899 0 : GF_MUL22( in76, in108, 1, 218, 1, 219 ); \
8900 0 : GF_MUL22( in77, in109, 1, 218, 1, 219 ); \
8901 0 : GF_MUL22( in78, in110, 1, 218, 1, 219 ); \
8902 0 : GF_MUL22( in79, in111, 1, 218, 1, 219 ); \
8903 0 : GF_MUL22( in80, in112, 1, 218, 1, 219 ); \
8904 0 : GF_MUL22( in81, in113, 1, 218, 1, 219 ); \
8905 0 : GF_MUL22( in82, in114, 1, 218, 1, 219 ); \
8906 0 : GF_MUL22( in83, in115, 1, 218, 1, 219 ); \
8907 0 : GF_MUL22( in84, in116, 1, 218, 1, 219 ); \
8908 0 : GF_MUL22( in85, in117, 1, 218, 1, 219 ); \
8909 0 : GF_MUL22( in86, in118, 1, 218, 1, 219 ); \
8910 0 : GF_MUL22( in87, in119, 1, 218, 1, 219 ); \
8911 0 : GF_MUL22( in88, in120, 1, 218, 1, 219 ); \
8912 0 : GF_MUL22( in89, in121, 1, 218, 1, 219 ); \
8913 0 : GF_MUL22( in90, in122, 1, 218, 1, 219 ); \
8914 0 : GF_MUL22( in91, in123, 1, 218, 1, 219 ); \
8915 0 : GF_MUL22( in92, in124, 1, 218, 1, 219 ); \
8916 0 : GF_MUL22( in93, in125, 1, 218, 1, 219 ); \
8917 0 : GF_MUL22( in94, in126, 1, 218, 1, 219 ); \
8918 0 : GF_MUL22( in95, in127, 1, 218, 1, 219 ); \
8919 0 : scratch_16 = in80; \
8920 0 : in80 = GF_MUL( in80, 1 ); \
8921 0 : GF_MUL22( in65, in81, 1, 189, 1, 188 ); \
8922 0 : GF_MUL22( in66, in82, 1, 189, 1, 188 ); \
8923 0 : GF_MUL22( in67, in83, 1, 189, 1, 188 ); \
8924 0 : GF_MUL22( in68, in84, 1, 189, 1, 188 ); \
8925 0 : GF_MUL22( in69, in85, 1, 189, 1, 188 ); \
8926 0 : GF_MUL22( in70, in86, 1, 189, 1, 188 ); \
8927 0 : GF_MUL22( in71, in87, 1, 189, 1, 188 ); \
8928 0 : GF_MUL22( in72, in88, 1, 189, 1, 188 ); \
8929 0 : GF_MUL22( in73, in89, 1, 189, 1, 188 ); \
8930 0 : GF_MUL22( in74, in90, 1, 189, 1, 188 ); \
8931 0 : GF_MUL22( in75, in91, 1, 189, 1, 188 ); \
8932 0 : GF_MUL22( in76, in92, 1, 189, 1, 188 ); \
8933 0 : GF_MUL22( in77, in93, 1, 189, 1, 188 ); \
8934 0 : GF_MUL22( in78, in94, 1, 189, 1, 188 ); \
8935 0 : GF_MUL22( in79, in95, 1, 189, 1, 188 ); \
8936 0 : scratch_8 = in72; \
8937 0 : in72 = GF_MUL( in72, 1 ); \
8938 0 : GF_MUL22( in65, in73, 1, 33, 1, 32 ); \
8939 0 : GF_MUL22( in66, in74, 1, 33, 1, 32 ); \
8940 0 : GF_MUL22( in67, in75, 1, 33, 1, 32 ); \
8941 0 : GF_MUL22( in68, in76, 1, 33, 1, 32 ); \
8942 0 : GF_MUL22( in69, in77, 1, 33, 1, 32 ); \
8943 0 : GF_MUL22( in70, in78, 1, 33, 1, 32 ); \
8944 0 : GF_MUL22( in71, in79, 1, 33, 1, 32 ); \
8945 0 : scratch_4 = in68; \
8946 0 : in68 = GF_MUL( in68, 1 ); \
8947 0 : GF_MUL22( in65, in69, 1, 183, 1, 182 ); \
8948 0 : GF_MUL22( in66, in70, 1, 183, 1, 182 ); \
8949 0 : GF_MUL22( in67, in71, 1, 183, 1, 182 ); \
8950 0 : scratch_2 = in66; \
8951 0 : in66 = GF_MUL( in66, 1 ); \
8952 0 : GF_MUL22( in65, in67, 1, 179, 1, 178 ); \
8953 0 : GF_MUL22( in64, in65, 1, 64, 1, 1 ); \
8954 0 : in66 = GF_ADD( GF_MUL( in64, 1 ), in66 ); \
8955 0 : GF_MUL22( in66, in67, 1, 66, 1, 67 ); \
8956 0 : in64 = GF_MUL( in64, 1 ); \
8957 0 : in64 = GF_ADD( GF_MUL( scratch_2, 179 ), in64 ); \
8958 0 : in68 = GF_ADD( GF_MUL( in64, 1 ), in68 ); \
8959 0 : FD_REEDSOL_GENERATE_FFT( 4, 68, in68, in69, in70, in71 ); \
8960 0 : in64 = GF_MUL( in64, 1 ); \
8961 0 : in64 = GF_ADD( GF_MUL( scratch_4, 183 ), in64 ); \
8962 0 : in72 = GF_ADD( GF_MUL( in64, 1 ), in72 ); \
8963 0 : FD_REEDSOL_GENERATE_FFT( 8, 72, in72, in73, in74, in75, in76, in77, in78, in79 ); \
8964 0 : in64 = GF_MUL( in64, 1 ); \
8965 0 : in64 = GF_ADD( GF_MUL( scratch_8, 33 ), in64 ); \
8966 0 : in80 = GF_ADD( GF_MUL( in64, 1 ), in80 ); \
8967 0 : FD_REEDSOL_GENERATE_FFT( 16, 80, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95 ); \
8968 0 : in64 = GF_MUL( in64, 1 ); \
8969 0 : in64 = GF_ADD( GF_MUL( scratch_16, 189 ), in64 ); \
8970 0 : in96 = GF_ADD( GF_MUL( in64, 1 ), in96 ); \
8971 0 : FD_REEDSOL_GENERATE_FFT( 32, 96, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127 ); \
8972 0 : in64 = GF_MUL( in64, 1 ); \
8973 0 : in64 = GF_ADD( GF_MUL( scratch_32, 218 ), in64 ); \
8974 0 : GF_MUL22( in00, in64, 1, 0, 1, 1 ); \
8975 0 : in01 = GF_MUL( in01, 1 ); \
8976 0 : in01 = GF_ADD( GF_MUL( scratch_65, 0 ), in01 ); \
8977 0 : in02 = GF_MUL( in02, 1 ); \
8978 0 : in02 = GF_ADD( GF_MUL( scratch_66, 0 ), in02 ); \
8979 0 : in03 = GF_MUL( in03, 1 ); \
8980 0 : in03 = GF_ADD( GF_MUL( scratch_67, 0 ), in03 ); \
8981 0 : in04 = GF_MUL( in04, 1 ); \
8982 0 : in04 = GF_ADD( GF_MUL( scratch_68, 0 ), in04 ); \
8983 0 : in05 = GF_MUL( in05, 1 ); \
8984 0 : in05 = GF_ADD( GF_MUL( scratch_69, 0 ), in05 ); \
8985 0 : in06 = GF_MUL( in06, 1 ); \
8986 0 : in06 = GF_ADD( GF_MUL( scratch_70, 0 ), in06 ); \
8987 0 : in07 = GF_MUL( in07, 1 ); \
8988 0 : in07 = GF_ADD( GF_MUL( scratch_71, 0 ), in07 ); \
8989 0 : in08 = GF_MUL( in08, 1 ); \
8990 0 : in08 = GF_ADD( GF_MUL( scratch_72, 0 ), in08 ); \
8991 0 : in09 = GF_MUL( in09, 1 ); \
8992 0 : in09 = GF_ADD( GF_MUL( scratch_73, 0 ), in09 ); \
8993 0 : in10 = GF_MUL( in10, 1 ); \
8994 0 : in10 = GF_ADD( GF_MUL( scratch_74, 0 ), in10 ); \
8995 0 : in11 = GF_MUL( in11, 1 ); \
8996 0 : in11 = GF_ADD( GF_MUL( scratch_75, 0 ), in11 ); \
8997 0 : in12 = GF_MUL( in12, 1 ); \
8998 0 : in12 = GF_ADD( GF_MUL( scratch_76, 0 ), in12 ); \
8999 0 : in13 = GF_MUL( in13, 1 ); \
9000 0 : in13 = GF_ADD( GF_MUL( scratch_77, 0 ), in13 ); \
9001 0 : in14 = GF_MUL( in14, 1 ); \
9002 0 : in14 = GF_ADD( GF_MUL( scratch_78, 0 ), in14 ); \
9003 0 : in15 = GF_MUL( in15, 1 ); \
9004 0 : in15 = GF_ADD( GF_MUL( scratch_79, 0 ), in15 ); \
9005 0 : in16 = GF_MUL( in16, 1 ); \
9006 0 : in16 = GF_ADD( GF_MUL( scratch_80, 0 ), in16 ); \
9007 0 : in17 = GF_MUL( in17, 1 ); \
9008 0 : in17 = GF_ADD( GF_MUL( scratch_81, 0 ), in17 ); \
9009 0 : in18 = GF_MUL( in18, 1 ); \
9010 0 : in18 = GF_ADD( GF_MUL( scratch_82, 0 ), in18 ); \
9011 0 : in19 = GF_MUL( in19, 1 ); \
9012 0 : in19 = GF_ADD( GF_MUL( scratch_83, 0 ), in19 ); \
9013 0 : in20 = GF_MUL( in20, 1 ); \
9014 0 : in20 = GF_ADD( GF_MUL( scratch_84, 0 ), in20 ); \
9015 0 : in21 = GF_MUL( in21, 1 ); \
9016 0 : in21 = GF_ADD( GF_MUL( scratch_85, 0 ), in21 ); \
9017 0 : in22 = GF_MUL( in22, 1 ); \
9018 0 : in22 = GF_ADD( GF_MUL( scratch_86, 0 ), in22 ); \
9019 0 : in23 = GF_MUL( in23, 1 ); \
9020 0 : in23 = GF_ADD( GF_MUL( scratch_87, 0 ), in23 ); \
9021 0 : in24 = GF_MUL( in24, 1 ); \
9022 0 : in24 = GF_ADD( GF_MUL( scratch_88, 0 ), in24 ); \
9023 0 : in25 = GF_MUL( in25, 1 ); \
9024 0 : in25 = GF_ADD( GF_MUL( scratch_89, 0 ), in25 ); \
9025 0 : in26 = GF_MUL( in26, 1 ); \
9026 0 : in26 = GF_ADD( GF_MUL( scratch_90, 0 ), in26 ); \
9027 0 : in27 = GF_MUL( in27, 1 ); \
9028 0 : in27 = GF_ADD( GF_MUL( scratch_91, 0 ), in27 ); \
9029 0 : in28 = GF_MUL( in28, 1 ); \
9030 0 : in28 = GF_ADD( GF_MUL( scratch_92, 0 ), in28 ); \
9031 0 : in29 = GF_MUL( in29, 1 ); \
9032 0 : in29 = GF_ADD( GF_MUL( scratch_93, 0 ), in29 ); \
9033 0 : in30 = GF_MUL( in30, 1 ); \
9034 0 : in30 = GF_ADD( GF_MUL( scratch_94, 0 ), in30 ); \
9035 0 : in31 = GF_MUL( in31, 1 ); \
9036 0 : in31 = GF_ADD( GF_MUL( scratch_95, 0 ), in31 ); \
9037 0 : in32 = GF_MUL( in32, 1 ); \
9038 0 : in32 = GF_ADD( GF_MUL( scratch_96, 0 ), in32 ); \
9039 0 : in33 = GF_MUL( in33, 1 ); \
9040 0 : in33 = GF_ADD( GF_MUL( scratch_97, 0 ), in33 ); \
9041 0 : in34 = GF_MUL( in34, 1 ); \
9042 0 : in34 = GF_ADD( GF_MUL( scratch_98, 0 ), in34 ); \
9043 0 : in35 = GF_MUL( in35, 1 ); \
9044 0 : in35 = GF_ADD( GF_MUL( scratch_99, 0 ), in35 ); \
9045 0 : in36 = GF_MUL( in36, 1 ); \
9046 0 : in36 = GF_ADD( GF_MUL( scratch_100, 0 ), in36 ); \
9047 0 : in37 = GF_MUL( in37, 1 ); \
9048 0 : in37 = GF_ADD( GF_MUL( scratch_101, 0 ), in37 ); \
9049 0 : in38 = GF_MUL( in38, 1 ); \
9050 0 : in38 = GF_ADD( GF_MUL( scratch_102, 0 ), in38 ); \
9051 0 : in39 = GF_MUL( in39, 1 ); \
9052 0 : in39 = GF_ADD( GF_MUL( scratch_103, 0 ), in39 ); \
9053 0 : in40 = GF_MUL( in40, 1 ); \
9054 0 : in40 = GF_ADD( GF_MUL( scratch_104, 0 ), in40 ); \
9055 0 : in41 = GF_MUL( in41, 1 ); \
9056 0 : in41 = GF_ADD( GF_MUL( scratch_105, 0 ), in41 ); \
9057 0 : in42 = GF_MUL( in42, 1 ); \
9058 0 : in42 = GF_ADD( GF_MUL( scratch_106, 0 ), in42 ); \
9059 0 : in43 = GF_MUL( in43, 1 ); \
9060 0 : in43 = GF_ADD( GF_MUL( scratch_107, 0 ), in43 ); \
9061 0 : in44 = GF_MUL( in44, 1 ); \
9062 0 : in44 = GF_ADD( GF_MUL( scratch_108, 0 ), in44 ); \
9063 0 : in45 = GF_MUL( in45, 1 ); \
9064 0 : in45 = GF_ADD( GF_MUL( scratch_109, 0 ), in45 ); \
9065 0 : in46 = GF_MUL( in46, 1 ); \
9066 0 : in46 = GF_ADD( GF_MUL( scratch_110, 0 ), in46 ); \
9067 0 : in47 = GF_MUL( in47, 1 ); \
9068 0 : in47 = GF_ADD( GF_MUL( scratch_111, 0 ), in47 ); \
9069 0 : in48 = GF_MUL( in48, 1 ); \
9070 0 : in48 = GF_ADD( GF_MUL( scratch_112, 0 ), in48 ); \
9071 0 : in49 = GF_MUL( in49, 1 ); \
9072 0 : in49 = GF_ADD( GF_MUL( scratch_113, 0 ), in49 ); \
9073 0 : in50 = GF_MUL( in50, 1 ); \
9074 0 : in50 = GF_ADD( GF_MUL( scratch_114, 0 ), in50 ); \
9075 0 : in51 = GF_MUL( in51, 1 ); \
9076 0 : in51 = GF_ADD( GF_MUL( scratch_115, 0 ), in51 ); \
9077 0 : in52 = GF_MUL( in52, 1 ); \
9078 0 : in52 = GF_ADD( GF_MUL( scratch_116, 0 ), in52 ); \
9079 0 : in53 = GF_MUL( in53, 1 ); \
9080 0 : in53 = GF_ADD( GF_MUL( scratch_117, 0 ), in53 ); \
9081 0 : in54 = GF_MUL( in54, 1 ); \
9082 0 : in54 = GF_ADD( GF_MUL( scratch_118, 0 ), in54 ); \
9083 0 : in55 = GF_MUL( in55, 1 ); \
9084 0 : in55 = GF_ADD( GF_MUL( scratch_119, 0 ), in55 ); \
9085 0 : in56 = GF_MUL( in56, 1 ); \
9086 0 : in56 = GF_ADD( GF_MUL( scratch_120, 0 ), in56 ); \
9087 0 : in57 = GF_MUL( in57, 1 ); \
9088 0 : in57 = GF_ADD( GF_MUL( scratch_121, 0 ), in57 ); \
9089 0 : in58 = GF_MUL( in58, 1 ); \
9090 0 : in58 = GF_ADD( GF_MUL( scratch_122, 0 ), in58 ); \
9091 0 : in59 = GF_MUL( in59, 1 ); \
9092 0 : in59 = GF_ADD( GF_MUL( scratch_123, 0 ), in59 ); \
9093 0 : in60 = GF_MUL( in60, 1 ); \
9094 0 : in60 = GF_ADD( GF_MUL( scratch_124, 0 ), in60 ); \
9095 0 : in61 = GF_MUL( in61, 1 ); \
9096 0 : in61 = GF_ADD( GF_MUL( scratch_125, 0 ), in61 ); \
9097 0 : in62 = GF_MUL( in62, 1 ); \
9098 0 : in62 = GF_ADD( GF_MUL( scratch_126, 0 ), in62 ); \
9099 0 : in63 = GF_MUL( in63, 1 ); \
9100 0 : in63 = GF_ADD( GF_MUL( scratch_127, 0 ), in63 ); \
9101 0 : } while( 0 )
9102 :
9103 : void fd_reedsol_ppt_128_66( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
9104 : #define FD_REEDSOL_PPT_IMPL_128_66( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63, in64, in65 , \
9105 : in66, in67, in68, in69, in70, in71, in72, in73, in74, in75, in76, in77, in78, in79, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127) \
9106 117180 : do { \
9107 117180 : gf_t scratch_100, scratch_101, scratch_102, scratch_103, scratch_104, scratch_105, scratch_106, scratch_107, scratch_108, scratch_109, scratch_110, scratch_111, scratch_112, scratch_113, scratch_114, scratch_115; \
9108 117180 : gf_t scratch_116, scratch_117, scratch_118, scratch_119, scratch_120, scratch_121, scratch_122, scratch_123, scratch_124, scratch_125, scratch_126, scratch_127, scratch_16, scratch_17, scratch_2, scratch_3; \
9109 117180 : gf_t scratch_32, scratch_33, scratch_4, scratch_5, scratch_66, scratch_67, scratch_68, scratch_69, scratch_70, scratch_71, scratch_72, scratch_73, scratch_74, scratch_75, scratch_76, scratch_77; \
9110 117180 : gf_t scratch_78, scratch_79, scratch_8, scratch_80, scratch_81, scratch_82, scratch_83, scratch_84, scratch_85, scratch_86, scratch_87, scratch_88, scratch_89, scratch_9, scratch_90, scratch_91; \
9111 117180 : gf_t scratch_92, scratch_93, scratch_94, scratch_95, scratch_96, scratch_97, scratch_98, scratch_99; \
9112 117180 : scratch_66 = in66; \
9113 117180 : in66 = GF_MUL( in66, 1 ); \
9114 117180 : scratch_67 = in67; \
9115 117180 : in67 = GF_MUL( in67, 1 ); \
9116 117180 : scratch_68 = in68; \
9117 117180 : in68 = GF_MUL( in68, 1 ); \
9118 117180 : scratch_69 = in69; \
9119 117180 : in69 = GF_MUL( in69, 1 ); \
9120 117180 : scratch_70 = in70; \
9121 117180 : in70 = GF_MUL( in70, 1 ); \
9122 117180 : scratch_71 = in71; \
9123 117180 : in71 = GF_MUL( in71, 1 ); \
9124 117180 : scratch_72 = in72; \
9125 117180 : in72 = GF_MUL( in72, 1 ); \
9126 117180 : scratch_73 = in73; \
9127 117180 : in73 = GF_MUL( in73, 1 ); \
9128 117180 : scratch_74 = in74; \
9129 117180 : in74 = GF_MUL( in74, 1 ); \
9130 117180 : scratch_75 = in75; \
9131 117180 : in75 = GF_MUL( in75, 1 ); \
9132 117180 : scratch_76 = in76; \
9133 117180 : in76 = GF_MUL( in76, 1 ); \
9134 117180 : scratch_77 = in77; \
9135 117180 : in77 = GF_MUL( in77, 1 ); \
9136 117180 : scratch_78 = in78; \
9137 117180 : in78 = GF_MUL( in78, 1 ); \
9138 117180 : scratch_79 = in79; \
9139 117180 : in79 = GF_MUL( in79, 1 ); \
9140 117180 : scratch_80 = in80; \
9141 117180 : in80 = GF_MUL( in80, 1 ); \
9142 117180 : scratch_81 = in81; \
9143 117180 : in81 = GF_MUL( in81, 1 ); \
9144 117180 : scratch_82 = in82; \
9145 117180 : in82 = GF_MUL( in82, 1 ); \
9146 117180 : scratch_83 = in83; \
9147 117180 : in83 = GF_MUL( in83, 1 ); \
9148 117180 : scratch_84 = in84; \
9149 117180 : in84 = GF_MUL( in84, 1 ); \
9150 117180 : scratch_85 = in85; \
9151 117180 : in85 = GF_MUL( in85, 1 ); \
9152 117180 : scratch_86 = in86; \
9153 117180 : in86 = GF_MUL( in86, 1 ); \
9154 117180 : scratch_87 = in87; \
9155 117180 : in87 = GF_MUL( in87, 1 ); \
9156 117180 : scratch_88 = in88; \
9157 117180 : in88 = GF_MUL( in88, 1 ); \
9158 117180 : scratch_89 = in89; \
9159 117180 : in89 = GF_MUL( in89, 1 ); \
9160 117180 : scratch_90 = in90; \
9161 117180 : in90 = GF_MUL( in90, 1 ); \
9162 117180 : scratch_91 = in91; \
9163 117180 : in91 = GF_MUL( in91, 1 ); \
9164 117180 : scratch_92 = in92; \
9165 117180 : in92 = GF_MUL( in92, 1 ); \
9166 117180 : scratch_93 = in93; \
9167 117180 : in93 = GF_MUL( in93, 1 ); \
9168 117180 : scratch_94 = in94; \
9169 117180 : in94 = GF_MUL( in94, 1 ); \
9170 117180 : scratch_95 = in95; \
9171 117180 : in95 = GF_MUL( in95, 1 ); \
9172 117180 : scratch_96 = in96; \
9173 117180 : in96 = GF_MUL( in96, 1 ); \
9174 117180 : scratch_97 = in97; \
9175 117180 : in97 = GF_MUL( in97, 1 ); \
9176 117180 : scratch_98 = in98; \
9177 117180 : in98 = GF_MUL( in98, 1 ); \
9178 117180 : scratch_99 = in99; \
9179 117180 : in99 = GF_MUL( in99, 1 ); \
9180 117180 : scratch_100 = in100; \
9181 117180 : in100 = GF_MUL( in100, 1 ); \
9182 117180 : scratch_101 = in101; \
9183 117180 : in101 = GF_MUL( in101, 1 ); \
9184 117180 : scratch_102 = in102; \
9185 117180 : in102 = GF_MUL( in102, 1 ); \
9186 117180 : scratch_103 = in103; \
9187 117180 : in103 = GF_MUL( in103, 1 ); \
9188 117180 : scratch_104 = in104; \
9189 117180 : in104 = GF_MUL( in104, 1 ); \
9190 117180 : scratch_105 = in105; \
9191 117180 : in105 = GF_MUL( in105, 1 ); \
9192 117180 : scratch_106 = in106; \
9193 117180 : in106 = GF_MUL( in106, 1 ); \
9194 117180 : scratch_107 = in107; \
9195 117180 : in107 = GF_MUL( in107, 1 ); \
9196 117180 : scratch_108 = in108; \
9197 117180 : in108 = GF_MUL( in108, 1 ); \
9198 117180 : scratch_109 = in109; \
9199 117180 : in109 = GF_MUL( in109, 1 ); \
9200 117180 : scratch_110 = in110; \
9201 117180 : in110 = GF_MUL( in110, 1 ); \
9202 117180 : scratch_111 = in111; \
9203 117180 : in111 = GF_MUL( in111, 1 ); \
9204 117180 : scratch_112 = in112; \
9205 117180 : in112 = GF_MUL( in112, 1 ); \
9206 117180 : scratch_113 = in113; \
9207 117180 : in113 = GF_MUL( in113, 1 ); \
9208 117180 : scratch_114 = in114; \
9209 117180 : in114 = GF_MUL( in114, 1 ); \
9210 117180 : scratch_115 = in115; \
9211 117180 : in115 = GF_MUL( in115, 1 ); \
9212 117180 : scratch_116 = in116; \
9213 117180 : in116 = GF_MUL( in116, 1 ); \
9214 117180 : scratch_117 = in117; \
9215 117180 : in117 = GF_MUL( in117, 1 ); \
9216 117180 : scratch_118 = in118; \
9217 117180 : in118 = GF_MUL( in118, 1 ); \
9218 117180 : scratch_119 = in119; \
9219 117180 : in119 = GF_MUL( in119, 1 ); \
9220 117180 : scratch_120 = in120; \
9221 117180 : in120 = GF_MUL( in120, 1 ); \
9222 117180 : scratch_121 = in121; \
9223 117180 : in121 = GF_MUL( in121, 1 ); \
9224 117180 : scratch_122 = in122; \
9225 117180 : in122 = GF_MUL( in122, 1 ); \
9226 117180 : scratch_123 = in123; \
9227 117180 : in123 = GF_MUL( in123, 1 ); \
9228 117180 : scratch_124 = in124; \
9229 117180 : in124 = GF_MUL( in124, 1 ); \
9230 117180 : scratch_125 = in125; \
9231 117180 : in125 = GF_MUL( in125, 1 ); \
9232 117180 : scratch_126 = in126; \
9233 117180 : in126 = GF_MUL( in126, 1 ); \
9234 117180 : scratch_127 = in127; \
9235 117180 : in127 = GF_MUL( in127, 1 ); \
9236 117180 : FD_REEDSOL_GENERATE_IFFT( 64, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
9237 117180 : in66 = GF_ADD( GF_MUL( in02, 1 ), in66 ); \
9238 117180 : in67 = GF_ADD( GF_MUL( in03, 1 ), in67 ); \
9239 117180 : in68 = GF_ADD( GF_MUL( in04, 1 ), in68 ); \
9240 117180 : in69 = GF_ADD( GF_MUL( in05, 1 ), in69 ); \
9241 117180 : in70 = GF_ADD( GF_MUL( in06, 1 ), in70 ); \
9242 117180 : in71 = GF_ADD( GF_MUL( in07, 1 ), in71 ); \
9243 117180 : in72 = GF_ADD( GF_MUL( in08, 1 ), in72 ); \
9244 117180 : in73 = GF_ADD( GF_MUL( in09, 1 ), in73 ); \
9245 117180 : in74 = GF_ADD( GF_MUL( in10, 1 ), in74 ); \
9246 117180 : in75 = GF_ADD( GF_MUL( in11, 1 ), in75 ); \
9247 117180 : in76 = GF_ADD( GF_MUL( in12, 1 ), in76 ); \
9248 117180 : in77 = GF_ADD( GF_MUL( in13, 1 ), in77 ); \
9249 117180 : in78 = GF_ADD( GF_MUL( in14, 1 ), in78 ); \
9250 117180 : in79 = GF_ADD( GF_MUL( in15, 1 ), in79 ); \
9251 117180 : in80 = GF_ADD( GF_MUL( in16, 1 ), in80 ); \
9252 117180 : in81 = GF_ADD( GF_MUL( in17, 1 ), in81 ); \
9253 117180 : in82 = GF_ADD( GF_MUL( in18, 1 ), in82 ); \
9254 117180 : in83 = GF_ADD( GF_MUL( in19, 1 ), in83 ); \
9255 117180 : in84 = GF_ADD( GF_MUL( in20, 1 ), in84 ); \
9256 117180 : in85 = GF_ADD( GF_MUL( in21, 1 ), in85 ); \
9257 117180 : in86 = GF_ADD( GF_MUL( in22, 1 ), in86 ); \
9258 117180 : in87 = GF_ADD( GF_MUL( in23, 1 ), in87 ); \
9259 117180 : in88 = GF_ADD( GF_MUL( in24, 1 ), in88 ); \
9260 117180 : in89 = GF_ADD( GF_MUL( in25, 1 ), in89 ); \
9261 117180 : in90 = GF_ADD( GF_MUL( in26, 1 ), in90 ); \
9262 117180 : in91 = GF_ADD( GF_MUL( in27, 1 ), in91 ); \
9263 117180 : in92 = GF_ADD( GF_MUL( in28, 1 ), in92 ); \
9264 117180 : in93 = GF_ADD( GF_MUL( in29, 1 ), in93 ); \
9265 117180 : in94 = GF_ADD( GF_MUL( in30, 1 ), in94 ); \
9266 117180 : in95 = GF_ADD( GF_MUL( in31, 1 ), in95 ); \
9267 117180 : in96 = GF_ADD( GF_MUL( in32, 1 ), in96 ); \
9268 117180 : in97 = GF_ADD( GF_MUL( in33, 1 ), in97 ); \
9269 117180 : in98 = GF_ADD( GF_MUL( in34, 1 ), in98 ); \
9270 117180 : in99 = GF_ADD( GF_MUL( in35, 1 ), in99 ); \
9271 117180 : in100 = GF_ADD( GF_MUL( in36, 1 ), in100 ); \
9272 117180 : in101 = GF_ADD( GF_MUL( in37, 1 ), in101 ); \
9273 117180 : in102 = GF_ADD( GF_MUL( in38, 1 ), in102 ); \
9274 117180 : in103 = GF_ADD( GF_MUL( in39, 1 ), in103 ); \
9275 117180 : in104 = GF_ADD( GF_MUL( in40, 1 ), in104 ); \
9276 117180 : in105 = GF_ADD( GF_MUL( in41, 1 ), in105 ); \
9277 117180 : in106 = GF_ADD( GF_MUL( in42, 1 ), in106 ); \
9278 117180 : in107 = GF_ADD( GF_MUL( in43, 1 ), in107 ); \
9279 117180 : in108 = GF_ADD( GF_MUL( in44, 1 ), in108 ); \
9280 117180 : in109 = GF_ADD( GF_MUL( in45, 1 ), in109 ); \
9281 117180 : in110 = GF_ADD( GF_MUL( in46, 1 ), in110 ); \
9282 117180 : in111 = GF_ADD( GF_MUL( in47, 1 ), in111 ); \
9283 117180 : in112 = GF_ADD( GF_MUL( in48, 1 ), in112 ); \
9284 117180 : in113 = GF_ADD( GF_MUL( in49, 1 ), in113 ); \
9285 117180 : in114 = GF_ADD( GF_MUL( in50, 1 ), in114 ); \
9286 117180 : in115 = GF_ADD( GF_MUL( in51, 1 ), in115 ); \
9287 117180 : in116 = GF_ADD( GF_MUL( in52, 1 ), in116 ); \
9288 117180 : in117 = GF_ADD( GF_MUL( in53, 1 ), in117 ); \
9289 117180 : in118 = GF_ADD( GF_MUL( in54, 1 ), in118 ); \
9290 117180 : in119 = GF_ADD( GF_MUL( in55, 1 ), in119 ); \
9291 117180 : in120 = GF_ADD( GF_MUL( in56, 1 ), in120 ); \
9292 117180 : in121 = GF_ADD( GF_MUL( in57, 1 ), in121 ); \
9293 117180 : in122 = GF_ADD( GF_MUL( in58, 1 ), in122 ); \
9294 117180 : in123 = GF_ADD( GF_MUL( in59, 1 ), in123 ); \
9295 117180 : in124 = GF_ADD( GF_MUL( in60, 1 ), in124 ); \
9296 117180 : in125 = GF_ADD( GF_MUL( in61, 1 ), in125 ); \
9297 117180 : in126 = GF_ADD( GF_MUL( in62, 1 ), in126 ); \
9298 117180 : in127 = GF_ADD( GF_MUL( in63, 1 ), in127 ); \
9299 117180 : scratch_32 = in96; \
9300 117180 : in96 = GF_MUL( in96, 1 ); \
9301 117180 : scratch_33 = in97; \
9302 117180 : in97 = GF_MUL( in97, 1 ); \
9303 117180 : GF_MUL22( in66, in98, 1, 218, 1, 219 ); \
9304 117180 : GF_MUL22( in67, in99, 1, 218, 1, 219 ); \
9305 117180 : GF_MUL22( in68, in100, 1, 218, 1, 219 ); \
9306 117180 : GF_MUL22( in69, in101, 1, 218, 1, 219 ); \
9307 117180 : GF_MUL22( in70, in102, 1, 218, 1, 219 ); \
9308 117180 : GF_MUL22( in71, in103, 1, 218, 1, 219 ); \
9309 117180 : GF_MUL22( in72, in104, 1, 218, 1, 219 ); \
9310 117180 : GF_MUL22( in73, in105, 1, 218, 1, 219 ); \
9311 117180 : GF_MUL22( in74, in106, 1, 218, 1, 219 ); \
9312 117180 : GF_MUL22( in75, in107, 1, 218, 1, 219 ); \
9313 117180 : GF_MUL22( in76, in108, 1, 218, 1, 219 ); \
9314 117180 : GF_MUL22( in77, in109, 1, 218, 1, 219 ); \
9315 117180 : GF_MUL22( in78, in110, 1, 218, 1, 219 ); \
9316 117180 : GF_MUL22( in79, in111, 1, 218, 1, 219 ); \
9317 117180 : GF_MUL22( in80, in112, 1, 218, 1, 219 ); \
9318 117180 : GF_MUL22( in81, in113, 1, 218, 1, 219 ); \
9319 117180 : GF_MUL22( in82, in114, 1, 218, 1, 219 ); \
9320 117180 : GF_MUL22( in83, in115, 1, 218, 1, 219 ); \
9321 117180 : GF_MUL22( in84, in116, 1, 218, 1, 219 ); \
9322 117180 : GF_MUL22( in85, in117, 1, 218, 1, 219 ); \
9323 117180 : GF_MUL22( in86, in118, 1, 218, 1, 219 ); \
9324 117180 : GF_MUL22( in87, in119, 1, 218, 1, 219 ); \
9325 117180 : GF_MUL22( in88, in120, 1, 218, 1, 219 ); \
9326 117180 : GF_MUL22( in89, in121, 1, 218, 1, 219 ); \
9327 117180 : GF_MUL22( in90, in122, 1, 218, 1, 219 ); \
9328 117180 : GF_MUL22( in91, in123, 1, 218, 1, 219 ); \
9329 117180 : GF_MUL22( in92, in124, 1, 218, 1, 219 ); \
9330 117180 : GF_MUL22( in93, in125, 1, 218, 1, 219 ); \
9331 117180 : GF_MUL22( in94, in126, 1, 218, 1, 219 ); \
9332 117180 : GF_MUL22( in95, in127, 1, 218, 1, 219 ); \
9333 117180 : scratch_16 = in80; \
9334 117180 : in80 = GF_MUL( in80, 1 ); \
9335 117180 : scratch_17 = in81; \
9336 117180 : in81 = GF_MUL( in81, 1 ); \
9337 117180 : GF_MUL22( in66, in82, 1, 189, 1, 188 ); \
9338 117180 : GF_MUL22( in67, in83, 1, 189, 1, 188 ); \
9339 117180 : GF_MUL22( in68, in84, 1, 189, 1, 188 ); \
9340 117180 : GF_MUL22( in69, in85, 1, 189, 1, 188 ); \
9341 117180 : GF_MUL22( in70, in86, 1, 189, 1, 188 ); \
9342 117180 : GF_MUL22( in71, in87, 1, 189, 1, 188 ); \
9343 117180 : GF_MUL22( in72, in88, 1, 189, 1, 188 ); \
9344 117180 : GF_MUL22( in73, in89, 1, 189, 1, 188 ); \
9345 117180 : GF_MUL22( in74, in90, 1, 189, 1, 188 ); \
9346 117180 : GF_MUL22( in75, in91, 1, 189, 1, 188 ); \
9347 117180 : GF_MUL22( in76, in92, 1, 189, 1, 188 ); \
9348 117180 : GF_MUL22( in77, in93, 1, 189, 1, 188 ); \
9349 117180 : GF_MUL22( in78, in94, 1, 189, 1, 188 ); \
9350 117180 : GF_MUL22( in79, in95, 1, 189, 1, 188 ); \
9351 117180 : scratch_8 = in72; \
9352 117180 : in72 = GF_MUL( in72, 1 ); \
9353 117180 : scratch_9 = in73; \
9354 117180 : in73 = GF_MUL( in73, 1 ); \
9355 117180 : GF_MUL22( in66, in74, 1, 33, 1, 32 ); \
9356 117180 : GF_MUL22( in67, in75, 1, 33, 1, 32 ); \
9357 117180 : GF_MUL22( in68, in76, 1, 33, 1, 32 ); \
9358 117180 : GF_MUL22( in69, in77, 1, 33, 1, 32 ); \
9359 117180 : GF_MUL22( in70, in78, 1, 33, 1, 32 ); \
9360 117180 : GF_MUL22( in71, in79, 1, 33, 1, 32 ); \
9361 117180 : scratch_4 = in68; \
9362 117180 : in68 = GF_MUL( in68, 1 ); \
9363 117180 : scratch_5 = in69; \
9364 117180 : in69 = GF_MUL( in69, 1 ); \
9365 117180 : GF_MUL22( in66, in70, 1, 183, 1, 182 ); \
9366 117180 : GF_MUL22( in67, in71, 1, 183, 1, 182 ); \
9367 117180 : scratch_2 = in66; \
9368 117180 : in66 = GF_MUL( in66, 1 ); \
9369 117180 : scratch_3 = in67; \
9370 117180 : in67 = GF_MUL( in67, 1 ); \
9371 117180 : GF_MUL22( in64, in65, 65, 64, 1, 1 ); \
9372 117180 : in66 = GF_ADD( GF_MUL( in64, 1 ), in66 ); \
9373 117180 : in67 = GF_ADD( GF_MUL( in65, 1 ), in67 ); \
9374 117180 : GF_MUL22( in66, in67, 1, 66, 1, 67 ); \
9375 117180 : in64 = GF_MUL( in64, 1 ); \
9376 117180 : in64 = GF_ADD( GF_MUL( scratch_2, 179 ), in64 ); \
9377 117180 : in65 = GF_MUL( in65, 1 ); \
9378 117180 : in65 = GF_ADD( GF_MUL( scratch_3, 179 ), in65 ); \
9379 117180 : in68 = GF_ADD( GF_MUL( in64, 1 ), in68 ); \
9380 117180 : in69 = GF_ADD( GF_MUL( in65, 1 ), in69 ); \
9381 117180 : FD_REEDSOL_GENERATE_FFT( 4, 68, in68, in69, in70, in71 ); \
9382 117180 : in64 = GF_MUL( in64, 1 ); \
9383 117180 : in64 = GF_ADD( GF_MUL( scratch_4, 183 ), in64 ); \
9384 117180 : in65 = GF_MUL( in65, 1 ); \
9385 117180 : in65 = GF_ADD( GF_MUL( scratch_5, 183 ), in65 ); \
9386 117180 : in72 = GF_ADD( GF_MUL( in64, 1 ), in72 ); \
9387 117180 : in73 = GF_ADD( GF_MUL( in65, 1 ), in73 ); \
9388 117180 : FD_REEDSOL_GENERATE_FFT( 8, 72, in72, in73, in74, in75, in76, in77, in78, in79 ); \
9389 117180 : in64 = GF_MUL( in64, 1 ); \
9390 117180 : in64 = GF_ADD( GF_MUL( scratch_8, 33 ), in64 ); \
9391 117180 : in65 = GF_MUL( in65, 1 ); \
9392 117180 : in65 = GF_ADD( GF_MUL( scratch_9, 33 ), in65 ); \
9393 117180 : in80 = GF_ADD( GF_MUL( in64, 1 ), in80 ); \
9394 117180 : in81 = GF_ADD( GF_MUL( in65, 1 ), in81 ); \
9395 117180 : FD_REEDSOL_GENERATE_FFT( 16, 80, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95 ); \
9396 117180 : in64 = GF_MUL( in64, 1 ); \
9397 117180 : in64 = GF_ADD( GF_MUL( scratch_16, 189 ), in64 ); \
9398 117180 : in65 = GF_MUL( in65, 1 ); \
9399 117180 : in65 = GF_ADD( GF_MUL( scratch_17, 189 ), in65 ); \
9400 117180 : in96 = GF_ADD( GF_MUL( in64, 1 ), in96 ); \
9401 117180 : in97 = GF_ADD( GF_MUL( in65, 1 ), in97 ); \
9402 117180 : FD_REEDSOL_GENERATE_FFT( 32, 96, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127 ); \
9403 117180 : in64 = GF_MUL( in64, 1 ); \
9404 117180 : in64 = GF_ADD( GF_MUL( scratch_32, 218 ), in64 ); \
9405 117180 : in65 = GF_MUL( in65, 1 ); \
9406 117180 : in65 = GF_ADD( GF_MUL( scratch_33, 218 ), in65 ); \
9407 117180 : GF_MUL22( in00, in64, 1, 0, 1, 1 ); \
9408 117180 : GF_MUL22( in01, in65, 1, 0, 1, 1 ); \
9409 117180 : in02 = GF_MUL( in02, 1 ); \
9410 117180 : in02 = GF_ADD( GF_MUL( scratch_66, 0 ), in02 ); \
9411 117180 : in03 = GF_MUL( in03, 1 ); \
9412 117180 : in03 = GF_ADD( GF_MUL( scratch_67, 0 ), in03 ); \
9413 117180 : in04 = GF_MUL( in04, 1 ); \
9414 117180 : in04 = GF_ADD( GF_MUL( scratch_68, 0 ), in04 ); \
9415 117180 : in05 = GF_MUL( in05, 1 ); \
9416 117180 : in05 = GF_ADD( GF_MUL( scratch_69, 0 ), in05 ); \
9417 117180 : in06 = GF_MUL( in06, 1 ); \
9418 117180 : in06 = GF_ADD( GF_MUL( scratch_70, 0 ), in06 ); \
9419 117180 : in07 = GF_MUL( in07, 1 ); \
9420 117180 : in07 = GF_ADD( GF_MUL( scratch_71, 0 ), in07 ); \
9421 117180 : in08 = GF_MUL( in08, 1 ); \
9422 117180 : in08 = GF_ADD( GF_MUL( scratch_72, 0 ), in08 ); \
9423 117180 : in09 = GF_MUL( in09, 1 ); \
9424 117180 : in09 = GF_ADD( GF_MUL( scratch_73, 0 ), in09 ); \
9425 117180 : in10 = GF_MUL( in10, 1 ); \
9426 117180 : in10 = GF_ADD( GF_MUL( scratch_74, 0 ), in10 ); \
9427 117180 : in11 = GF_MUL( in11, 1 ); \
9428 117180 : in11 = GF_ADD( GF_MUL( scratch_75, 0 ), in11 ); \
9429 117180 : in12 = GF_MUL( in12, 1 ); \
9430 117180 : in12 = GF_ADD( GF_MUL( scratch_76, 0 ), in12 ); \
9431 117180 : in13 = GF_MUL( in13, 1 ); \
9432 117180 : in13 = GF_ADD( GF_MUL( scratch_77, 0 ), in13 ); \
9433 117180 : in14 = GF_MUL( in14, 1 ); \
9434 117180 : in14 = GF_ADD( GF_MUL( scratch_78, 0 ), in14 ); \
9435 117180 : in15 = GF_MUL( in15, 1 ); \
9436 117180 : in15 = GF_ADD( GF_MUL( scratch_79, 0 ), in15 ); \
9437 117180 : in16 = GF_MUL( in16, 1 ); \
9438 117180 : in16 = GF_ADD( GF_MUL( scratch_80, 0 ), in16 ); \
9439 117180 : in17 = GF_MUL( in17, 1 ); \
9440 117180 : in17 = GF_ADD( GF_MUL( scratch_81, 0 ), in17 ); \
9441 117180 : in18 = GF_MUL( in18, 1 ); \
9442 117180 : in18 = GF_ADD( GF_MUL( scratch_82, 0 ), in18 ); \
9443 117180 : in19 = GF_MUL( in19, 1 ); \
9444 117180 : in19 = GF_ADD( GF_MUL( scratch_83, 0 ), in19 ); \
9445 117180 : in20 = GF_MUL( in20, 1 ); \
9446 117180 : in20 = GF_ADD( GF_MUL( scratch_84, 0 ), in20 ); \
9447 117180 : in21 = GF_MUL( in21, 1 ); \
9448 117180 : in21 = GF_ADD( GF_MUL( scratch_85, 0 ), in21 ); \
9449 117180 : in22 = GF_MUL( in22, 1 ); \
9450 117180 : in22 = GF_ADD( GF_MUL( scratch_86, 0 ), in22 ); \
9451 117180 : in23 = GF_MUL( in23, 1 ); \
9452 117180 : in23 = GF_ADD( GF_MUL( scratch_87, 0 ), in23 ); \
9453 117180 : in24 = GF_MUL( in24, 1 ); \
9454 117180 : in24 = GF_ADD( GF_MUL( scratch_88, 0 ), in24 ); \
9455 117180 : in25 = GF_MUL( in25, 1 ); \
9456 117180 : in25 = GF_ADD( GF_MUL( scratch_89, 0 ), in25 ); \
9457 117180 : in26 = GF_MUL( in26, 1 ); \
9458 117180 : in26 = GF_ADD( GF_MUL( scratch_90, 0 ), in26 ); \
9459 117180 : in27 = GF_MUL( in27, 1 ); \
9460 117180 : in27 = GF_ADD( GF_MUL( scratch_91, 0 ), in27 ); \
9461 117180 : in28 = GF_MUL( in28, 1 ); \
9462 117180 : in28 = GF_ADD( GF_MUL( scratch_92, 0 ), in28 ); \
9463 117180 : in29 = GF_MUL( in29, 1 ); \
9464 117180 : in29 = GF_ADD( GF_MUL( scratch_93, 0 ), in29 ); \
9465 117180 : in30 = GF_MUL( in30, 1 ); \
9466 117180 : in30 = GF_ADD( GF_MUL( scratch_94, 0 ), in30 ); \
9467 117180 : in31 = GF_MUL( in31, 1 ); \
9468 117180 : in31 = GF_ADD( GF_MUL( scratch_95, 0 ), in31 ); \
9469 117180 : in32 = GF_MUL( in32, 1 ); \
9470 117180 : in32 = GF_ADD( GF_MUL( scratch_96, 0 ), in32 ); \
9471 117180 : in33 = GF_MUL( in33, 1 ); \
9472 117180 : in33 = GF_ADD( GF_MUL( scratch_97, 0 ), in33 ); \
9473 117180 : in34 = GF_MUL( in34, 1 ); \
9474 117180 : in34 = GF_ADD( GF_MUL( scratch_98, 0 ), in34 ); \
9475 117180 : in35 = GF_MUL( in35, 1 ); \
9476 117180 : in35 = GF_ADD( GF_MUL( scratch_99, 0 ), in35 ); \
9477 117180 : in36 = GF_MUL( in36, 1 ); \
9478 117180 : in36 = GF_ADD( GF_MUL( scratch_100, 0 ), in36 ); \
9479 117180 : in37 = GF_MUL( in37, 1 ); \
9480 117180 : in37 = GF_ADD( GF_MUL( scratch_101, 0 ), in37 ); \
9481 117180 : in38 = GF_MUL( in38, 1 ); \
9482 117180 : in38 = GF_ADD( GF_MUL( scratch_102, 0 ), in38 ); \
9483 117180 : in39 = GF_MUL( in39, 1 ); \
9484 117180 : in39 = GF_ADD( GF_MUL( scratch_103, 0 ), in39 ); \
9485 117180 : in40 = GF_MUL( in40, 1 ); \
9486 117180 : in40 = GF_ADD( GF_MUL( scratch_104, 0 ), in40 ); \
9487 117180 : in41 = GF_MUL( in41, 1 ); \
9488 117180 : in41 = GF_ADD( GF_MUL( scratch_105, 0 ), in41 ); \
9489 117180 : in42 = GF_MUL( in42, 1 ); \
9490 117180 : in42 = GF_ADD( GF_MUL( scratch_106, 0 ), in42 ); \
9491 117180 : in43 = GF_MUL( in43, 1 ); \
9492 117180 : in43 = GF_ADD( GF_MUL( scratch_107, 0 ), in43 ); \
9493 117180 : in44 = GF_MUL( in44, 1 ); \
9494 117180 : in44 = GF_ADD( GF_MUL( scratch_108, 0 ), in44 ); \
9495 117180 : in45 = GF_MUL( in45, 1 ); \
9496 117180 : in45 = GF_ADD( GF_MUL( scratch_109, 0 ), in45 ); \
9497 117180 : in46 = GF_MUL( in46, 1 ); \
9498 117180 : in46 = GF_ADD( GF_MUL( scratch_110, 0 ), in46 ); \
9499 117180 : in47 = GF_MUL( in47, 1 ); \
9500 117180 : in47 = GF_ADD( GF_MUL( scratch_111, 0 ), in47 ); \
9501 117180 : in48 = GF_MUL( in48, 1 ); \
9502 117180 : in48 = GF_ADD( GF_MUL( scratch_112, 0 ), in48 ); \
9503 117180 : in49 = GF_MUL( in49, 1 ); \
9504 117180 : in49 = GF_ADD( GF_MUL( scratch_113, 0 ), in49 ); \
9505 117180 : in50 = GF_MUL( in50, 1 ); \
9506 117180 : in50 = GF_ADD( GF_MUL( scratch_114, 0 ), in50 ); \
9507 117180 : in51 = GF_MUL( in51, 1 ); \
9508 117180 : in51 = GF_ADD( GF_MUL( scratch_115, 0 ), in51 ); \
9509 117180 : in52 = GF_MUL( in52, 1 ); \
9510 117180 : in52 = GF_ADD( GF_MUL( scratch_116, 0 ), in52 ); \
9511 117180 : in53 = GF_MUL( in53, 1 ); \
9512 117180 : in53 = GF_ADD( GF_MUL( scratch_117, 0 ), in53 ); \
9513 117180 : in54 = GF_MUL( in54, 1 ); \
9514 117180 : in54 = GF_ADD( GF_MUL( scratch_118, 0 ), in54 ); \
9515 117180 : in55 = GF_MUL( in55, 1 ); \
9516 117180 : in55 = GF_ADD( GF_MUL( scratch_119, 0 ), in55 ); \
9517 117180 : in56 = GF_MUL( in56, 1 ); \
9518 117180 : in56 = GF_ADD( GF_MUL( scratch_120, 0 ), in56 ); \
9519 117180 : in57 = GF_MUL( in57, 1 ); \
9520 117180 : in57 = GF_ADD( GF_MUL( scratch_121, 0 ), in57 ); \
9521 117180 : in58 = GF_MUL( in58, 1 ); \
9522 117180 : in58 = GF_ADD( GF_MUL( scratch_122, 0 ), in58 ); \
9523 117180 : in59 = GF_MUL( in59, 1 ); \
9524 117180 : in59 = GF_ADD( GF_MUL( scratch_123, 0 ), in59 ); \
9525 117180 : in60 = GF_MUL( in60, 1 ); \
9526 117180 : in60 = GF_ADD( GF_MUL( scratch_124, 0 ), in60 ); \
9527 117180 : in61 = GF_MUL( in61, 1 ); \
9528 117180 : in61 = GF_ADD( GF_MUL( scratch_125, 0 ), in61 ); \
9529 117180 : in62 = GF_MUL( in62, 1 ); \
9530 117180 : in62 = GF_ADD( GF_MUL( scratch_126, 0 ), in62 ); \
9531 117180 : in63 = GF_MUL( in63, 1 ); \
9532 117180 : in63 = GF_ADD( GF_MUL( scratch_127, 0 ), in63 ); \
9533 117180 : } while( 0 )
9534 :
9535 : void fd_reedsol_ppt_128_67( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
9536 : #define FD_REEDSOL_PPT_IMPL_128_67( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63, in64, in65 , \
9537 : in66, in67, in68, in69, in70, in71, in72, in73, in74, in75, in76, in77, in78, in79, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127) \
9538 120714 : do { \
9539 120714 : gf_t scratch_10, scratch_100, scratch_101, scratch_102, scratch_103, scratch_104, scratch_105, scratch_106, scratch_107, scratch_108, scratch_109, scratch_110, scratch_111, scratch_112, scratch_113, scratch_114; \
9540 120714 : gf_t scratch_115, scratch_116, scratch_117, scratch_118, scratch_119, scratch_120, scratch_121, scratch_122, scratch_123, scratch_124, scratch_125, scratch_126, scratch_127, scratch_16, scratch_17, scratch_18; \
9541 120714 : gf_t scratch_3, scratch_32, scratch_33, scratch_34, scratch_4, scratch_5, scratch_6, scratch_67, scratch_68, scratch_69, scratch_70, scratch_71, scratch_72, scratch_73, scratch_74, scratch_75; \
9542 120714 : gf_t scratch_76, scratch_77, scratch_78, scratch_79, scratch_8, scratch_80, scratch_81, scratch_82, scratch_83, scratch_84, scratch_85, scratch_86, scratch_87, scratch_88, scratch_89, scratch_9; \
9543 120714 : gf_t scratch_90, scratch_91, scratch_92, scratch_93, scratch_94, scratch_95, scratch_96, scratch_97, scratch_98, scratch_99; \
9544 120714 : scratch_67 = in67; \
9545 120714 : in67 = GF_MUL( in67, 1 ); \
9546 120714 : scratch_68 = in68; \
9547 120714 : in68 = GF_MUL( in68, 1 ); \
9548 120714 : scratch_69 = in69; \
9549 120714 : in69 = GF_MUL( in69, 1 ); \
9550 120714 : scratch_70 = in70; \
9551 120714 : in70 = GF_MUL( in70, 1 ); \
9552 120714 : scratch_71 = in71; \
9553 120714 : in71 = GF_MUL( in71, 1 ); \
9554 120714 : scratch_72 = in72; \
9555 120714 : in72 = GF_MUL( in72, 1 ); \
9556 120714 : scratch_73 = in73; \
9557 120714 : in73 = GF_MUL( in73, 1 ); \
9558 120714 : scratch_74 = in74; \
9559 120714 : in74 = GF_MUL( in74, 1 ); \
9560 120714 : scratch_75 = in75; \
9561 120714 : in75 = GF_MUL( in75, 1 ); \
9562 120714 : scratch_76 = in76; \
9563 120714 : in76 = GF_MUL( in76, 1 ); \
9564 120714 : scratch_77 = in77; \
9565 120714 : in77 = GF_MUL( in77, 1 ); \
9566 120714 : scratch_78 = in78; \
9567 120714 : in78 = GF_MUL( in78, 1 ); \
9568 120714 : scratch_79 = in79; \
9569 120714 : in79 = GF_MUL( in79, 1 ); \
9570 120714 : scratch_80 = in80; \
9571 120714 : in80 = GF_MUL( in80, 1 ); \
9572 120714 : scratch_81 = in81; \
9573 120714 : in81 = GF_MUL( in81, 1 ); \
9574 120714 : scratch_82 = in82; \
9575 120714 : in82 = GF_MUL( in82, 1 ); \
9576 120714 : scratch_83 = in83; \
9577 120714 : in83 = GF_MUL( in83, 1 ); \
9578 120714 : scratch_84 = in84; \
9579 120714 : in84 = GF_MUL( in84, 1 ); \
9580 120714 : scratch_85 = in85; \
9581 120714 : in85 = GF_MUL( in85, 1 ); \
9582 120714 : scratch_86 = in86; \
9583 120714 : in86 = GF_MUL( in86, 1 ); \
9584 120714 : scratch_87 = in87; \
9585 120714 : in87 = GF_MUL( in87, 1 ); \
9586 120714 : scratch_88 = in88; \
9587 120714 : in88 = GF_MUL( in88, 1 ); \
9588 120714 : scratch_89 = in89; \
9589 120714 : in89 = GF_MUL( in89, 1 ); \
9590 120714 : scratch_90 = in90; \
9591 120714 : in90 = GF_MUL( in90, 1 ); \
9592 120714 : scratch_91 = in91; \
9593 120714 : in91 = GF_MUL( in91, 1 ); \
9594 120714 : scratch_92 = in92; \
9595 120714 : in92 = GF_MUL( in92, 1 ); \
9596 120714 : scratch_93 = in93; \
9597 120714 : in93 = GF_MUL( in93, 1 ); \
9598 120714 : scratch_94 = in94; \
9599 120714 : in94 = GF_MUL( in94, 1 ); \
9600 120714 : scratch_95 = in95; \
9601 120714 : in95 = GF_MUL( in95, 1 ); \
9602 120714 : scratch_96 = in96; \
9603 120714 : in96 = GF_MUL( in96, 1 ); \
9604 120714 : scratch_97 = in97; \
9605 120714 : in97 = GF_MUL( in97, 1 ); \
9606 120714 : scratch_98 = in98; \
9607 120714 : in98 = GF_MUL( in98, 1 ); \
9608 120714 : scratch_99 = in99; \
9609 120714 : in99 = GF_MUL( in99, 1 ); \
9610 120714 : scratch_100 = in100; \
9611 120714 : in100 = GF_MUL( in100, 1 ); \
9612 120714 : scratch_101 = in101; \
9613 120714 : in101 = GF_MUL( in101, 1 ); \
9614 120714 : scratch_102 = in102; \
9615 120714 : in102 = GF_MUL( in102, 1 ); \
9616 120714 : scratch_103 = in103; \
9617 120714 : in103 = GF_MUL( in103, 1 ); \
9618 120714 : scratch_104 = in104; \
9619 120714 : in104 = GF_MUL( in104, 1 ); \
9620 120714 : scratch_105 = in105; \
9621 120714 : in105 = GF_MUL( in105, 1 ); \
9622 120714 : scratch_106 = in106; \
9623 120714 : in106 = GF_MUL( in106, 1 ); \
9624 120714 : scratch_107 = in107; \
9625 120714 : in107 = GF_MUL( in107, 1 ); \
9626 120714 : scratch_108 = in108; \
9627 120714 : in108 = GF_MUL( in108, 1 ); \
9628 120714 : scratch_109 = in109; \
9629 120714 : in109 = GF_MUL( in109, 1 ); \
9630 120714 : scratch_110 = in110; \
9631 120714 : in110 = GF_MUL( in110, 1 ); \
9632 120714 : scratch_111 = in111; \
9633 120714 : in111 = GF_MUL( in111, 1 ); \
9634 120714 : scratch_112 = in112; \
9635 120714 : in112 = GF_MUL( in112, 1 ); \
9636 120714 : scratch_113 = in113; \
9637 120714 : in113 = GF_MUL( in113, 1 ); \
9638 120714 : scratch_114 = in114; \
9639 120714 : in114 = GF_MUL( in114, 1 ); \
9640 120714 : scratch_115 = in115; \
9641 120714 : in115 = GF_MUL( in115, 1 ); \
9642 120714 : scratch_116 = in116; \
9643 120714 : in116 = GF_MUL( in116, 1 ); \
9644 120714 : scratch_117 = in117; \
9645 120714 : in117 = GF_MUL( in117, 1 ); \
9646 120714 : scratch_118 = in118; \
9647 120714 : in118 = GF_MUL( in118, 1 ); \
9648 120714 : scratch_119 = in119; \
9649 120714 : in119 = GF_MUL( in119, 1 ); \
9650 120714 : scratch_120 = in120; \
9651 120714 : in120 = GF_MUL( in120, 1 ); \
9652 120714 : scratch_121 = in121; \
9653 120714 : in121 = GF_MUL( in121, 1 ); \
9654 120714 : scratch_122 = in122; \
9655 120714 : in122 = GF_MUL( in122, 1 ); \
9656 120714 : scratch_123 = in123; \
9657 120714 : in123 = GF_MUL( in123, 1 ); \
9658 120714 : scratch_124 = in124; \
9659 120714 : in124 = GF_MUL( in124, 1 ); \
9660 120714 : scratch_125 = in125; \
9661 120714 : in125 = GF_MUL( in125, 1 ); \
9662 120714 : scratch_126 = in126; \
9663 120714 : in126 = GF_MUL( in126, 1 ); \
9664 120714 : scratch_127 = in127; \
9665 120714 : in127 = GF_MUL( in127, 1 ); \
9666 120714 : FD_REEDSOL_GENERATE_IFFT( 64, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
9667 120714 : in67 = GF_ADD( GF_MUL( in03, 1 ), in67 ); \
9668 120714 : in68 = GF_ADD( GF_MUL( in04, 1 ), in68 ); \
9669 120714 : in69 = GF_ADD( GF_MUL( in05, 1 ), in69 ); \
9670 120714 : in70 = GF_ADD( GF_MUL( in06, 1 ), in70 ); \
9671 120714 : in71 = GF_ADD( GF_MUL( in07, 1 ), in71 ); \
9672 120714 : in72 = GF_ADD( GF_MUL( in08, 1 ), in72 ); \
9673 120714 : in73 = GF_ADD( GF_MUL( in09, 1 ), in73 ); \
9674 120714 : in74 = GF_ADD( GF_MUL( in10, 1 ), in74 ); \
9675 120714 : in75 = GF_ADD( GF_MUL( in11, 1 ), in75 ); \
9676 120714 : in76 = GF_ADD( GF_MUL( in12, 1 ), in76 ); \
9677 120714 : in77 = GF_ADD( GF_MUL( in13, 1 ), in77 ); \
9678 120714 : in78 = GF_ADD( GF_MUL( in14, 1 ), in78 ); \
9679 120714 : in79 = GF_ADD( GF_MUL( in15, 1 ), in79 ); \
9680 120714 : in80 = GF_ADD( GF_MUL( in16, 1 ), in80 ); \
9681 120714 : in81 = GF_ADD( GF_MUL( in17, 1 ), in81 ); \
9682 120714 : in82 = GF_ADD( GF_MUL( in18, 1 ), in82 ); \
9683 120714 : in83 = GF_ADD( GF_MUL( in19, 1 ), in83 ); \
9684 120714 : in84 = GF_ADD( GF_MUL( in20, 1 ), in84 ); \
9685 120714 : in85 = GF_ADD( GF_MUL( in21, 1 ), in85 ); \
9686 120714 : in86 = GF_ADD( GF_MUL( in22, 1 ), in86 ); \
9687 120714 : in87 = GF_ADD( GF_MUL( in23, 1 ), in87 ); \
9688 120714 : in88 = GF_ADD( GF_MUL( in24, 1 ), in88 ); \
9689 120714 : in89 = GF_ADD( GF_MUL( in25, 1 ), in89 ); \
9690 120714 : in90 = GF_ADD( GF_MUL( in26, 1 ), in90 ); \
9691 120714 : in91 = GF_ADD( GF_MUL( in27, 1 ), in91 ); \
9692 120714 : in92 = GF_ADD( GF_MUL( in28, 1 ), in92 ); \
9693 120714 : in93 = GF_ADD( GF_MUL( in29, 1 ), in93 ); \
9694 120714 : in94 = GF_ADD( GF_MUL( in30, 1 ), in94 ); \
9695 120714 : in95 = GF_ADD( GF_MUL( in31, 1 ), in95 ); \
9696 120714 : in96 = GF_ADD( GF_MUL( in32, 1 ), in96 ); \
9697 120714 : in97 = GF_ADD( GF_MUL( in33, 1 ), in97 ); \
9698 120714 : in98 = GF_ADD( GF_MUL( in34, 1 ), in98 ); \
9699 120714 : in99 = GF_ADD( GF_MUL( in35, 1 ), in99 ); \
9700 120714 : in100 = GF_ADD( GF_MUL( in36, 1 ), in100 ); \
9701 120714 : in101 = GF_ADD( GF_MUL( in37, 1 ), in101 ); \
9702 120714 : in102 = GF_ADD( GF_MUL( in38, 1 ), in102 ); \
9703 120714 : in103 = GF_ADD( GF_MUL( in39, 1 ), in103 ); \
9704 120714 : in104 = GF_ADD( GF_MUL( in40, 1 ), in104 ); \
9705 120714 : in105 = GF_ADD( GF_MUL( in41, 1 ), in105 ); \
9706 120714 : in106 = GF_ADD( GF_MUL( in42, 1 ), in106 ); \
9707 120714 : in107 = GF_ADD( GF_MUL( in43, 1 ), in107 ); \
9708 120714 : in108 = GF_ADD( GF_MUL( in44, 1 ), in108 ); \
9709 120714 : in109 = GF_ADD( GF_MUL( in45, 1 ), in109 ); \
9710 120714 : in110 = GF_ADD( GF_MUL( in46, 1 ), in110 ); \
9711 120714 : in111 = GF_ADD( GF_MUL( in47, 1 ), in111 ); \
9712 120714 : in112 = GF_ADD( GF_MUL( in48, 1 ), in112 ); \
9713 120714 : in113 = GF_ADD( GF_MUL( in49, 1 ), in113 ); \
9714 120714 : in114 = GF_ADD( GF_MUL( in50, 1 ), in114 ); \
9715 120714 : in115 = GF_ADD( GF_MUL( in51, 1 ), in115 ); \
9716 120714 : in116 = GF_ADD( GF_MUL( in52, 1 ), in116 ); \
9717 120714 : in117 = GF_ADD( GF_MUL( in53, 1 ), in117 ); \
9718 120714 : in118 = GF_ADD( GF_MUL( in54, 1 ), in118 ); \
9719 120714 : in119 = GF_ADD( GF_MUL( in55, 1 ), in119 ); \
9720 120714 : in120 = GF_ADD( GF_MUL( in56, 1 ), in120 ); \
9721 120714 : in121 = GF_ADD( GF_MUL( in57, 1 ), in121 ); \
9722 120714 : in122 = GF_ADD( GF_MUL( in58, 1 ), in122 ); \
9723 120714 : in123 = GF_ADD( GF_MUL( in59, 1 ), in123 ); \
9724 120714 : in124 = GF_ADD( GF_MUL( in60, 1 ), in124 ); \
9725 120714 : in125 = GF_ADD( GF_MUL( in61, 1 ), in125 ); \
9726 120714 : in126 = GF_ADD( GF_MUL( in62, 1 ), in126 ); \
9727 120714 : in127 = GF_ADD( GF_MUL( in63, 1 ), in127 ); \
9728 120714 : scratch_32 = in96; \
9729 120714 : in96 = GF_MUL( in96, 1 ); \
9730 120714 : scratch_33 = in97; \
9731 120714 : in97 = GF_MUL( in97, 1 ); \
9732 120714 : scratch_34 = in98; \
9733 120714 : in98 = GF_MUL( in98, 1 ); \
9734 120714 : GF_MUL22( in67, in99, 1, 218, 1, 219 ); \
9735 120714 : GF_MUL22( in68, in100, 1, 218, 1, 219 ); \
9736 120714 : GF_MUL22( in69, in101, 1, 218, 1, 219 ); \
9737 120714 : GF_MUL22( in70, in102, 1, 218, 1, 219 ); \
9738 120714 : GF_MUL22( in71, in103, 1, 218, 1, 219 ); \
9739 120714 : GF_MUL22( in72, in104, 1, 218, 1, 219 ); \
9740 120714 : GF_MUL22( in73, in105, 1, 218, 1, 219 ); \
9741 120714 : GF_MUL22( in74, in106, 1, 218, 1, 219 ); \
9742 120714 : GF_MUL22( in75, in107, 1, 218, 1, 219 ); \
9743 120714 : GF_MUL22( in76, in108, 1, 218, 1, 219 ); \
9744 120714 : GF_MUL22( in77, in109, 1, 218, 1, 219 ); \
9745 120714 : GF_MUL22( in78, in110, 1, 218, 1, 219 ); \
9746 120714 : GF_MUL22( in79, in111, 1, 218, 1, 219 ); \
9747 120714 : GF_MUL22( in80, in112, 1, 218, 1, 219 ); \
9748 120714 : GF_MUL22( in81, in113, 1, 218, 1, 219 ); \
9749 120714 : GF_MUL22( in82, in114, 1, 218, 1, 219 ); \
9750 120714 : GF_MUL22( in83, in115, 1, 218, 1, 219 ); \
9751 120714 : GF_MUL22( in84, in116, 1, 218, 1, 219 ); \
9752 120714 : GF_MUL22( in85, in117, 1, 218, 1, 219 ); \
9753 120714 : GF_MUL22( in86, in118, 1, 218, 1, 219 ); \
9754 120714 : GF_MUL22( in87, in119, 1, 218, 1, 219 ); \
9755 120714 : GF_MUL22( in88, in120, 1, 218, 1, 219 ); \
9756 120714 : GF_MUL22( in89, in121, 1, 218, 1, 219 ); \
9757 120714 : GF_MUL22( in90, in122, 1, 218, 1, 219 ); \
9758 120714 : GF_MUL22( in91, in123, 1, 218, 1, 219 ); \
9759 120714 : GF_MUL22( in92, in124, 1, 218, 1, 219 ); \
9760 120714 : GF_MUL22( in93, in125, 1, 218, 1, 219 ); \
9761 120714 : GF_MUL22( in94, in126, 1, 218, 1, 219 ); \
9762 120714 : GF_MUL22( in95, in127, 1, 218, 1, 219 ); \
9763 120714 : scratch_16 = in80; \
9764 120714 : in80 = GF_MUL( in80, 1 ); \
9765 120714 : scratch_17 = in81; \
9766 120714 : in81 = GF_MUL( in81, 1 ); \
9767 120714 : scratch_18 = in82; \
9768 120714 : in82 = GF_MUL( in82, 1 ); \
9769 120714 : GF_MUL22( in67, in83, 1, 189, 1, 188 ); \
9770 120714 : GF_MUL22( in68, in84, 1, 189, 1, 188 ); \
9771 120714 : GF_MUL22( in69, in85, 1, 189, 1, 188 ); \
9772 120714 : GF_MUL22( in70, in86, 1, 189, 1, 188 ); \
9773 120714 : GF_MUL22( in71, in87, 1, 189, 1, 188 ); \
9774 120714 : GF_MUL22( in72, in88, 1, 189, 1, 188 ); \
9775 120714 : GF_MUL22( in73, in89, 1, 189, 1, 188 ); \
9776 120714 : GF_MUL22( in74, in90, 1, 189, 1, 188 ); \
9777 120714 : GF_MUL22( in75, in91, 1, 189, 1, 188 ); \
9778 120714 : GF_MUL22( in76, in92, 1, 189, 1, 188 ); \
9779 120714 : GF_MUL22( in77, in93, 1, 189, 1, 188 ); \
9780 120714 : GF_MUL22( in78, in94, 1, 189, 1, 188 ); \
9781 120714 : GF_MUL22( in79, in95, 1, 189, 1, 188 ); \
9782 120714 : scratch_8 = in72; \
9783 120714 : in72 = GF_MUL( in72, 1 ); \
9784 120714 : scratch_9 = in73; \
9785 120714 : in73 = GF_MUL( in73, 1 ); \
9786 120714 : scratch_10 = in74; \
9787 120714 : in74 = GF_MUL( in74, 1 ); \
9788 120714 : GF_MUL22( in67, in75, 1, 33, 1, 32 ); \
9789 120714 : GF_MUL22( in68, in76, 1, 33, 1, 32 ); \
9790 120714 : GF_MUL22( in69, in77, 1, 33, 1, 32 ); \
9791 120714 : GF_MUL22( in70, in78, 1, 33, 1, 32 ); \
9792 120714 : GF_MUL22( in71, in79, 1, 33, 1, 32 ); \
9793 120714 : scratch_4 = in68; \
9794 120714 : in68 = GF_MUL( in68, 1 ); \
9795 120714 : scratch_5 = in69; \
9796 120714 : in69 = GF_MUL( in69, 1 ); \
9797 120714 : scratch_6 = in70; \
9798 120714 : in70 = GF_MUL( in70, 1 ); \
9799 120714 : GF_MUL22( in67, in71, 1, 183, 1, 182 ); \
9800 120714 : scratch_3 = in67; \
9801 120714 : in67 = GF_MUL( in67, 1 ); \
9802 120714 : GF_MUL22( in64, in65, 65, 64, 1, 1 ); \
9803 120714 : in67 = GF_ADD( GF_MUL( in65, 1 ), in67 ); \
9804 120714 : GF_MUL22( in66, in67, 1, 66, 1, 1 ); \
9805 120714 : GF_MUL22( in64, in66, 178, 179, 1, 1 ); \
9806 120714 : in65 = GF_MUL( in65, 1 ); \
9807 120714 : in65 = GF_ADD( GF_MUL( scratch_3, 179 ), in65 ); \
9808 120714 : in68 = GF_ADD( GF_MUL( in64, 1 ), in68 ); \
9809 120714 : in69 = GF_ADD( GF_MUL( in65, 1 ), in69 ); \
9810 120714 : in70 = GF_ADD( GF_MUL( in66, 1 ), in70 ); \
9811 120714 : FD_REEDSOL_GENERATE_FFT( 4, 68, in68, in69, in70, in71 ); \
9812 120714 : in64 = GF_MUL( in64, 1 ); \
9813 120714 : in64 = GF_ADD( GF_MUL( scratch_4, 183 ), in64 ); \
9814 120714 : in65 = GF_MUL( in65, 1 ); \
9815 120714 : in65 = GF_ADD( GF_MUL( scratch_5, 183 ), in65 ); \
9816 120714 : in66 = GF_MUL( in66, 1 ); \
9817 120714 : in66 = GF_ADD( GF_MUL( scratch_6, 183 ), in66 ); \
9818 120714 : in72 = GF_ADD( GF_MUL( in64, 1 ), in72 ); \
9819 120714 : in73 = GF_ADD( GF_MUL( in65, 1 ), in73 ); \
9820 120714 : in74 = GF_ADD( GF_MUL( in66, 1 ), in74 ); \
9821 120714 : FD_REEDSOL_GENERATE_FFT( 8, 72, in72, in73, in74, in75, in76, in77, in78, in79 ); \
9822 120714 : in64 = GF_MUL( in64, 1 ); \
9823 120714 : in64 = GF_ADD( GF_MUL( scratch_8, 33 ), in64 ); \
9824 120714 : in65 = GF_MUL( in65, 1 ); \
9825 120714 : in65 = GF_ADD( GF_MUL( scratch_9, 33 ), in65 ); \
9826 120714 : in66 = GF_MUL( in66, 1 ); \
9827 120714 : in66 = GF_ADD( GF_MUL( scratch_10, 33 ), in66 ); \
9828 120714 : in80 = GF_ADD( GF_MUL( in64, 1 ), in80 ); \
9829 120714 : in81 = GF_ADD( GF_MUL( in65, 1 ), in81 ); \
9830 120714 : in82 = GF_ADD( GF_MUL( in66, 1 ), in82 ); \
9831 120714 : FD_REEDSOL_GENERATE_FFT( 16, 80, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95 ); \
9832 120714 : in64 = GF_MUL( in64, 1 ); \
9833 120714 : in64 = GF_ADD( GF_MUL( scratch_16, 189 ), in64 ); \
9834 120714 : in65 = GF_MUL( in65, 1 ); \
9835 120714 : in65 = GF_ADD( GF_MUL( scratch_17, 189 ), in65 ); \
9836 120714 : in66 = GF_MUL( in66, 1 ); \
9837 120714 : in66 = GF_ADD( GF_MUL( scratch_18, 189 ), in66 ); \
9838 120714 : in96 = GF_ADD( GF_MUL( in64, 1 ), in96 ); \
9839 120714 : in97 = GF_ADD( GF_MUL( in65, 1 ), in97 ); \
9840 120714 : in98 = GF_ADD( GF_MUL( in66, 1 ), in98 ); \
9841 120714 : FD_REEDSOL_GENERATE_FFT( 32, 96, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127 ); \
9842 120714 : in64 = GF_MUL( in64, 1 ); \
9843 120714 : in64 = GF_ADD( GF_MUL( scratch_32, 218 ), in64 ); \
9844 120714 : in65 = GF_MUL( in65, 1 ); \
9845 120714 : in65 = GF_ADD( GF_MUL( scratch_33, 218 ), in65 ); \
9846 120714 : in66 = GF_MUL( in66, 1 ); \
9847 120714 : in66 = GF_ADD( GF_MUL( scratch_34, 218 ), in66 ); \
9848 120714 : GF_MUL22( in00, in64, 1, 0, 1, 1 ); \
9849 120714 : GF_MUL22( in01, in65, 1, 0, 1, 1 ); \
9850 120714 : GF_MUL22( in02, in66, 1, 0, 1, 1 ); \
9851 120714 : in03 = GF_MUL( in03, 1 ); \
9852 120714 : in03 = GF_ADD( GF_MUL( scratch_67, 0 ), in03 ); \
9853 120714 : in04 = GF_MUL( in04, 1 ); \
9854 120714 : in04 = GF_ADD( GF_MUL( scratch_68, 0 ), in04 ); \
9855 120714 : in05 = GF_MUL( in05, 1 ); \
9856 120714 : in05 = GF_ADD( GF_MUL( scratch_69, 0 ), in05 ); \
9857 120714 : in06 = GF_MUL( in06, 1 ); \
9858 120714 : in06 = GF_ADD( GF_MUL( scratch_70, 0 ), in06 ); \
9859 120714 : in07 = GF_MUL( in07, 1 ); \
9860 120714 : in07 = GF_ADD( GF_MUL( scratch_71, 0 ), in07 ); \
9861 120714 : in08 = GF_MUL( in08, 1 ); \
9862 120714 : in08 = GF_ADD( GF_MUL( scratch_72, 0 ), in08 ); \
9863 120714 : in09 = GF_MUL( in09, 1 ); \
9864 120714 : in09 = GF_ADD( GF_MUL( scratch_73, 0 ), in09 ); \
9865 120714 : in10 = GF_MUL( in10, 1 ); \
9866 120714 : in10 = GF_ADD( GF_MUL( scratch_74, 0 ), in10 ); \
9867 120714 : in11 = GF_MUL( in11, 1 ); \
9868 120714 : in11 = GF_ADD( GF_MUL( scratch_75, 0 ), in11 ); \
9869 120714 : in12 = GF_MUL( in12, 1 ); \
9870 120714 : in12 = GF_ADD( GF_MUL( scratch_76, 0 ), in12 ); \
9871 120714 : in13 = GF_MUL( in13, 1 ); \
9872 120714 : in13 = GF_ADD( GF_MUL( scratch_77, 0 ), in13 ); \
9873 120714 : in14 = GF_MUL( in14, 1 ); \
9874 120714 : in14 = GF_ADD( GF_MUL( scratch_78, 0 ), in14 ); \
9875 120714 : in15 = GF_MUL( in15, 1 ); \
9876 120714 : in15 = GF_ADD( GF_MUL( scratch_79, 0 ), in15 ); \
9877 120714 : in16 = GF_MUL( in16, 1 ); \
9878 120714 : in16 = GF_ADD( GF_MUL( scratch_80, 0 ), in16 ); \
9879 120714 : in17 = GF_MUL( in17, 1 ); \
9880 120714 : in17 = GF_ADD( GF_MUL( scratch_81, 0 ), in17 ); \
9881 120714 : in18 = GF_MUL( in18, 1 ); \
9882 120714 : in18 = GF_ADD( GF_MUL( scratch_82, 0 ), in18 ); \
9883 120714 : in19 = GF_MUL( in19, 1 ); \
9884 120714 : in19 = GF_ADD( GF_MUL( scratch_83, 0 ), in19 ); \
9885 120714 : in20 = GF_MUL( in20, 1 ); \
9886 120714 : in20 = GF_ADD( GF_MUL( scratch_84, 0 ), in20 ); \
9887 120714 : in21 = GF_MUL( in21, 1 ); \
9888 120714 : in21 = GF_ADD( GF_MUL( scratch_85, 0 ), in21 ); \
9889 120714 : in22 = GF_MUL( in22, 1 ); \
9890 120714 : in22 = GF_ADD( GF_MUL( scratch_86, 0 ), in22 ); \
9891 120714 : in23 = GF_MUL( in23, 1 ); \
9892 120714 : in23 = GF_ADD( GF_MUL( scratch_87, 0 ), in23 ); \
9893 120714 : in24 = GF_MUL( in24, 1 ); \
9894 120714 : in24 = GF_ADD( GF_MUL( scratch_88, 0 ), in24 ); \
9895 120714 : in25 = GF_MUL( in25, 1 ); \
9896 120714 : in25 = GF_ADD( GF_MUL( scratch_89, 0 ), in25 ); \
9897 120714 : in26 = GF_MUL( in26, 1 ); \
9898 120714 : in26 = GF_ADD( GF_MUL( scratch_90, 0 ), in26 ); \
9899 120714 : in27 = GF_MUL( in27, 1 ); \
9900 120714 : in27 = GF_ADD( GF_MUL( scratch_91, 0 ), in27 ); \
9901 120714 : in28 = GF_MUL( in28, 1 ); \
9902 120714 : in28 = GF_ADD( GF_MUL( scratch_92, 0 ), in28 ); \
9903 120714 : in29 = GF_MUL( in29, 1 ); \
9904 120714 : in29 = GF_ADD( GF_MUL( scratch_93, 0 ), in29 ); \
9905 120714 : in30 = GF_MUL( in30, 1 ); \
9906 120714 : in30 = GF_ADD( GF_MUL( scratch_94, 0 ), in30 ); \
9907 120714 : in31 = GF_MUL( in31, 1 ); \
9908 120714 : in31 = GF_ADD( GF_MUL( scratch_95, 0 ), in31 ); \
9909 120714 : in32 = GF_MUL( in32, 1 ); \
9910 120714 : in32 = GF_ADD( GF_MUL( scratch_96, 0 ), in32 ); \
9911 120714 : in33 = GF_MUL( in33, 1 ); \
9912 120714 : in33 = GF_ADD( GF_MUL( scratch_97, 0 ), in33 ); \
9913 120714 : in34 = GF_MUL( in34, 1 ); \
9914 120714 : in34 = GF_ADD( GF_MUL( scratch_98, 0 ), in34 ); \
9915 120714 : in35 = GF_MUL( in35, 1 ); \
9916 120714 : in35 = GF_ADD( GF_MUL( scratch_99, 0 ), in35 ); \
9917 120714 : in36 = GF_MUL( in36, 1 ); \
9918 120714 : in36 = GF_ADD( GF_MUL( scratch_100, 0 ), in36 ); \
9919 120714 : in37 = GF_MUL( in37, 1 ); \
9920 120714 : in37 = GF_ADD( GF_MUL( scratch_101, 0 ), in37 ); \
9921 120714 : in38 = GF_MUL( in38, 1 ); \
9922 120714 : in38 = GF_ADD( GF_MUL( scratch_102, 0 ), in38 ); \
9923 120714 : in39 = GF_MUL( in39, 1 ); \
9924 120714 : in39 = GF_ADD( GF_MUL( scratch_103, 0 ), in39 ); \
9925 120714 : in40 = GF_MUL( in40, 1 ); \
9926 120714 : in40 = GF_ADD( GF_MUL( scratch_104, 0 ), in40 ); \
9927 120714 : in41 = GF_MUL( in41, 1 ); \
9928 120714 : in41 = GF_ADD( GF_MUL( scratch_105, 0 ), in41 ); \
9929 120714 : in42 = GF_MUL( in42, 1 ); \
9930 120714 : in42 = GF_ADD( GF_MUL( scratch_106, 0 ), in42 ); \
9931 120714 : in43 = GF_MUL( in43, 1 ); \
9932 120714 : in43 = GF_ADD( GF_MUL( scratch_107, 0 ), in43 ); \
9933 120714 : in44 = GF_MUL( in44, 1 ); \
9934 120714 : in44 = GF_ADD( GF_MUL( scratch_108, 0 ), in44 ); \
9935 120714 : in45 = GF_MUL( in45, 1 ); \
9936 120714 : in45 = GF_ADD( GF_MUL( scratch_109, 0 ), in45 ); \
9937 120714 : in46 = GF_MUL( in46, 1 ); \
9938 120714 : in46 = GF_ADD( GF_MUL( scratch_110, 0 ), in46 ); \
9939 120714 : in47 = GF_MUL( in47, 1 ); \
9940 120714 : in47 = GF_ADD( GF_MUL( scratch_111, 0 ), in47 ); \
9941 120714 : in48 = GF_MUL( in48, 1 ); \
9942 120714 : in48 = GF_ADD( GF_MUL( scratch_112, 0 ), in48 ); \
9943 120714 : in49 = GF_MUL( in49, 1 ); \
9944 120714 : in49 = GF_ADD( GF_MUL( scratch_113, 0 ), in49 ); \
9945 120714 : in50 = GF_MUL( in50, 1 ); \
9946 120714 : in50 = GF_ADD( GF_MUL( scratch_114, 0 ), in50 ); \
9947 120714 : in51 = GF_MUL( in51, 1 ); \
9948 120714 : in51 = GF_ADD( GF_MUL( scratch_115, 0 ), in51 ); \
9949 120714 : in52 = GF_MUL( in52, 1 ); \
9950 120714 : in52 = GF_ADD( GF_MUL( scratch_116, 0 ), in52 ); \
9951 120714 : in53 = GF_MUL( in53, 1 ); \
9952 120714 : in53 = GF_ADD( GF_MUL( scratch_117, 0 ), in53 ); \
9953 120714 : in54 = GF_MUL( in54, 1 ); \
9954 120714 : in54 = GF_ADD( GF_MUL( scratch_118, 0 ), in54 ); \
9955 120714 : in55 = GF_MUL( in55, 1 ); \
9956 120714 : in55 = GF_ADD( GF_MUL( scratch_119, 0 ), in55 ); \
9957 120714 : in56 = GF_MUL( in56, 1 ); \
9958 120714 : in56 = GF_ADD( GF_MUL( scratch_120, 0 ), in56 ); \
9959 120714 : in57 = GF_MUL( in57, 1 ); \
9960 120714 : in57 = GF_ADD( GF_MUL( scratch_121, 0 ), in57 ); \
9961 120714 : in58 = GF_MUL( in58, 1 ); \
9962 120714 : in58 = GF_ADD( GF_MUL( scratch_122, 0 ), in58 ); \
9963 120714 : in59 = GF_MUL( in59, 1 ); \
9964 120714 : in59 = GF_ADD( GF_MUL( scratch_123, 0 ), in59 ); \
9965 120714 : in60 = GF_MUL( in60, 1 ); \
9966 120714 : in60 = GF_ADD( GF_MUL( scratch_124, 0 ), in60 ); \
9967 120714 : in61 = GF_MUL( in61, 1 ); \
9968 120714 : in61 = GF_ADD( GF_MUL( scratch_125, 0 ), in61 ); \
9969 120714 : in62 = GF_MUL( in62, 1 ); \
9970 120714 : in62 = GF_ADD( GF_MUL( scratch_126, 0 ), in62 ); \
9971 120714 : in63 = GF_MUL( in63, 1 ); \
9972 120714 : in63 = GF_ADD( GF_MUL( scratch_127, 0 ), in63 ); \
9973 120714 : } while( 0 )
9974 :
9975 : void fd_reedsol_ppt_128_68( gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t*, gf_t* );
9976 : #define FD_REEDSOL_PPT_IMPL_128_68( in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63, in64, in65 , \
9977 : in66, in67, in68, in69, in70, in71, in72, in73, in74, in75, in76, in77, in78, in79, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127) \
9978 : do { \
9979 : gf_t scratch_10, scratch_100, scratch_101, scratch_102, scratch_103, scratch_104, scratch_105, scratch_106, scratch_107, scratch_108, scratch_109, scratch_11, scratch_110, scratch_111, scratch_112, scratch_113; \
9980 : gf_t scratch_114, scratch_115, scratch_116, scratch_117, scratch_118, scratch_119, scratch_120, scratch_121, scratch_122, scratch_123, scratch_124, scratch_125, scratch_126, scratch_127, scratch_16, scratch_17; \
9981 : gf_t scratch_18, scratch_19, scratch_32, scratch_33, scratch_34, scratch_35, scratch_4, scratch_5, scratch_6, scratch_68, scratch_69, scratch_7, scratch_70, scratch_71, scratch_72, scratch_73; \
9982 : gf_t scratch_74, scratch_75, scratch_76, scratch_77, scratch_78, scratch_79, scratch_8, scratch_80, scratch_81, scratch_82, scratch_83, scratch_84, scratch_85, scratch_86, scratch_87, scratch_88; \
9983 : gf_t scratch_89, scratch_9, scratch_90, scratch_91, scratch_92, scratch_93, scratch_94, scratch_95, scratch_96, scratch_97, scratch_98, scratch_99; \
9984 : scratch_68 = in68; \
9985 : in68 = GF_MUL( in68, 1 ); \
9986 : scratch_69 = in69; \
9987 : in69 = GF_MUL( in69, 1 ); \
9988 : scratch_70 = in70; \
9989 : in70 = GF_MUL( in70, 1 ); \
9990 : scratch_71 = in71; \
9991 : in71 = GF_MUL( in71, 1 ); \
9992 : scratch_72 = in72; \
9993 : in72 = GF_MUL( in72, 1 ); \
9994 : scratch_73 = in73; \
9995 : in73 = GF_MUL( in73, 1 ); \
9996 : scratch_74 = in74; \
9997 : in74 = GF_MUL( in74, 1 ); \
9998 : scratch_75 = in75; \
9999 : in75 = GF_MUL( in75, 1 ); \
10000 : scratch_76 = in76; \
10001 : in76 = GF_MUL( in76, 1 ); \
10002 : scratch_77 = in77; \
10003 : in77 = GF_MUL( in77, 1 ); \
10004 : scratch_78 = in78; \
10005 : in78 = GF_MUL( in78, 1 ); \
10006 : scratch_79 = in79; \
10007 : in79 = GF_MUL( in79, 1 ); \
10008 : scratch_80 = in80; \
10009 : in80 = GF_MUL( in80, 1 ); \
10010 : scratch_81 = in81; \
10011 : in81 = GF_MUL( in81, 1 ); \
10012 : scratch_82 = in82; \
10013 : in82 = GF_MUL( in82, 1 ); \
10014 : scratch_83 = in83; \
10015 : in83 = GF_MUL( in83, 1 ); \
10016 : scratch_84 = in84; \
10017 : in84 = GF_MUL( in84, 1 ); \
10018 : scratch_85 = in85; \
10019 : in85 = GF_MUL( in85, 1 ); \
10020 : scratch_86 = in86; \
10021 : in86 = GF_MUL( in86, 1 ); \
10022 : scratch_87 = in87; \
10023 : in87 = GF_MUL( in87, 1 ); \
10024 : scratch_88 = in88; \
10025 : in88 = GF_MUL( in88, 1 ); \
10026 : scratch_89 = in89; \
10027 : in89 = GF_MUL( in89, 1 ); \
10028 : scratch_90 = in90; \
10029 : in90 = GF_MUL( in90, 1 ); \
10030 : scratch_91 = in91; \
10031 : in91 = GF_MUL( in91, 1 ); \
10032 : scratch_92 = in92; \
10033 : in92 = GF_MUL( in92, 1 ); \
10034 : scratch_93 = in93; \
10035 : in93 = GF_MUL( in93, 1 ); \
10036 : scratch_94 = in94; \
10037 : in94 = GF_MUL( in94, 1 ); \
10038 : scratch_95 = in95; \
10039 : in95 = GF_MUL( in95, 1 ); \
10040 : scratch_96 = in96; \
10041 : in96 = GF_MUL( in96, 1 ); \
10042 : scratch_97 = in97; \
10043 : in97 = GF_MUL( in97, 1 ); \
10044 : scratch_98 = in98; \
10045 : in98 = GF_MUL( in98, 1 ); \
10046 : scratch_99 = in99; \
10047 : in99 = GF_MUL( in99, 1 ); \
10048 : scratch_100 = in100; \
10049 : in100 = GF_MUL( in100, 1 ); \
10050 : scratch_101 = in101; \
10051 : in101 = GF_MUL( in101, 1 ); \
10052 : scratch_102 = in102; \
10053 : in102 = GF_MUL( in102, 1 ); \
10054 : scratch_103 = in103; \
10055 : in103 = GF_MUL( in103, 1 ); \
10056 : scratch_104 = in104; \
10057 : in104 = GF_MUL( in104, 1 ); \
10058 : scratch_105 = in105; \
10059 : in105 = GF_MUL( in105, 1 ); \
10060 : scratch_106 = in106; \
10061 : in106 = GF_MUL( in106, 1 ); \
10062 : scratch_107 = in107; \
10063 : in107 = GF_MUL( in107, 1 ); \
10064 : scratch_108 = in108; \
10065 : in108 = GF_MUL( in108, 1 ); \
10066 : scratch_109 = in109; \
10067 : in109 = GF_MUL( in109, 1 ); \
10068 : scratch_110 = in110; \
10069 : in110 = GF_MUL( in110, 1 ); \
10070 : scratch_111 = in111; \
10071 : in111 = GF_MUL( in111, 1 ); \
10072 : scratch_112 = in112; \
10073 : in112 = GF_MUL( in112, 1 ); \
10074 : scratch_113 = in113; \
10075 : in113 = GF_MUL( in113, 1 ); \
10076 : scratch_114 = in114; \
10077 : in114 = GF_MUL( in114, 1 ); \
10078 : scratch_115 = in115; \
10079 : in115 = GF_MUL( in115, 1 ); \
10080 : scratch_116 = in116; \
10081 : in116 = GF_MUL( in116, 1 ); \
10082 : scratch_117 = in117; \
10083 : in117 = GF_MUL( in117, 1 ); \
10084 : scratch_118 = in118; \
10085 : in118 = GF_MUL( in118, 1 ); \
10086 : scratch_119 = in119; \
10087 : in119 = GF_MUL( in119, 1 ); \
10088 : scratch_120 = in120; \
10089 : in120 = GF_MUL( in120, 1 ); \
10090 : scratch_121 = in121; \
10091 : in121 = GF_MUL( in121, 1 ); \
10092 : scratch_122 = in122; \
10093 : in122 = GF_MUL( in122, 1 ); \
10094 : scratch_123 = in123; \
10095 : in123 = GF_MUL( in123, 1 ); \
10096 : scratch_124 = in124; \
10097 : in124 = GF_MUL( in124, 1 ); \
10098 : scratch_125 = in125; \
10099 : in125 = GF_MUL( in125, 1 ); \
10100 : scratch_126 = in126; \
10101 : in126 = GF_MUL( in126, 1 ); \
10102 : scratch_127 = in127; \
10103 : in127 = GF_MUL( in127, 1 ); \
10104 : FD_REEDSOL_GENERATE_IFFT( 64, 0, in00, in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, in21, in22, in23, in24, in25, in26, in27, in28, in29, in30, in31, in32, in33, in34, in35, in36, in37, in38, in39, in40, in41, in42, in43, in44, in45, in46, in47, in48, in49, in50, in51, in52, in53, in54, in55, in56, in57, in58, in59, in60, in61, in62, in63 ); \
10105 : in68 = GF_ADD( GF_MUL( in04, 1 ), in68 ); \
10106 : in69 = GF_ADD( GF_MUL( in05, 1 ), in69 ); \
10107 : in70 = GF_ADD( GF_MUL( in06, 1 ), in70 ); \
10108 : in71 = GF_ADD( GF_MUL( in07, 1 ), in71 ); \
10109 : in72 = GF_ADD( GF_MUL( in08, 1 ), in72 ); \
10110 : in73 = GF_ADD( GF_MUL( in09, 1 ), in73 ); \
10111 : in74 = GF_ADD( GF_MUL( in10, 1 ), in74 ); \
10112 : in75 = GF_ADD( GF_MUL( in11, 1 ), in75 ); \
10113 : in76 = GF_ADD( GF_MUL( in12, 1 ), in76 ); \
10114 : in77 = GF_ADD( GF_MUL( in13, 1 ), in77 ); \
10115 : in78 = GF_ADD( GF_MUL( in14, 1 ), in78 ); \
10116 : in79 = GF_ADD( GF_MUL( in15, 1 ), in79 ); \
10117 : in80 = GF_ADD( GF_MUL( in16, 1 ), in80 ); \
10118 : in81 = GF_ADD( GF_MUL( in17, 1 ), in81 ); \
10119 : in82 = GF_ADD( GF_MUL( in18, 1 ), in82 ); \
10120 : in83 = GF_ADD( GF_MUL( in19, 1 ), in83 ); \
10121 : in84 = GF_ADD( GF_MUL( in20, 1 ), in84 ); \
10122 : in85 = GF_ADD( GF_MUL( in21, 1 ), in85 ); \
10123 : in86 = GF_ADD( GF_MUL( in22, 1 ), in86 ); \
10124 : in87 = GF_ADD( GF_MUL( in23, 1 ), in87 ); \
10125 : in88 = GF_ADD( GF_MUL( in24, 1 ), in88 ); \
10126 : in89 = GF_ADD( GF_MUL( in25, 1 ), in89 ); \
10127 : in90 = GF_ADD( GF_MUL( in26, 1 ), in90 ); \
10128 : in91 = GF_ADD( GF_MUL( in27, 1 ), in91 ); \
10129 : in92 = GF_ADD( GF_MUL( in28, 1 ), in92 ); \
10130 : in93 = GF_ADD( GF_MUL( in29, 1 ), in93 ); \
10131 : in94 = GF_ADD( GF_MUL( in30, 1 ), in94 ); \
10132 : in95 = GF_ADD( GF_MUL( in31, 1 ), in95 ); \
10133 : in96 = GF_ADD( GF_MUL( in32, 1 ), in96 ); \
10134 : in97 = GF_ADD( GF_MUL( in33, 1 ), in97 ); \
10135 : in98 = GF_ADD( GF_MUL( in34, 1 ), in98 ); \
10136 : in99 = GF_ADD( GF_MUL( in35, 1 ), in99 ); \
10137 : in100 = GF_ADD( GF_MUL( in36, 1 ), in100 ); \
10138 : in101 = GF_ADD( GF_MUL( in37, 1 ), in101 ); \
10139 : in102 = GF_ADD( GF_MUL( in38, 1 ), in102 ); \
10140 : in103 = GF_ADD( GF_MUL( in39, 1 ), in103 ); \
10141 : in104 = GF_ADD( GF_MUL( in40, 1 ), in104 ); \
10142 : in105 = GF_ADD( GF_MUL( in41, 1 ), in105 ); \
10143 : in106 = GF_ADD( GF_MUL( in42, 1 ), in106 ); \
10144 : in107 = GF_ADD( GF_MUL( in43, 1 ), in107 ); \
10145 : in108 = GF_ADD( GF_MUL( in44, 1 ), in108 ); \
10146 : in109 = GF_ADD( GF_MUL( in45, 1 ), in109 ); \
10147 : in110 = GF_ADD( GF_MUL( in46, 1 ), in110 ); \
10148 : in111 = GF_ADD( GF_MUL( in47, 1 ), in111 ); \
10149 : in112 = GF_ADD( GF_MUL( in48, 1 ), in112 ); \
10150 : in113 = GF_ADD( GF_MUL( in49, 1 ), in113 ); \
10151 : in114 = GF_ADD( GF_MUL( in50, 1 ), in114 ); \
10152 : in115 = GF_ADD( GF_MUL( in51, 1 ), in115 ); \
10153 : in116 = GF_ADD( GF_MUL( in52, 1 ), in116 ); \
10154 : in117 = GF_ADD( GF_MUL( in53, 1 ), in117 ); \
10155 : in118 = GF_ADD( GF_MUL( in54, 1 ), in118 ); \
10156 : in119 = GF_ADD( GF_MUL( in55, 1 ), in119 ); \
10157 : in120 = GF_ADD( GF_MUL( in56, 1 ), in120 ); \
10158 : in121 = GF_ADD( GF_MUL( in57, 1 ), in121 ); \
10159 : in122 = GF_ADD( GF_MUL( in58, 1 ), in122 ); \
10160 : in123 = GF_ADD( GF_MUL( in59, 1 ), in123 ); \
10161 : in124 = GF_ADD( GF_MUL( in60, 1 ), in124 ); \
10162 : in125 = GF_ADD( GF_MUL( in61, 1 ), in125 ); \
10163 : in126 = GF_ADD( GF_MUL( in62, 1 ), in126 ); \
10164 : in127 = GF_ADD( GF_MUL( in63, 1 ), in127 ); \
10165 : scratch_32 = in96; \
10166 : in96 = GF_MUL( in96, 1 ); \
10167 : scratch_33 = in97; \
10168 : in97 = GF_MUL( in97, 1 ); \
10169 : scratch_34 = in98; \
10170 : in98 = GF_MUL( in98, 1 ); \
10171 : scratch_35 = in99; \
10172 : in99 = GF_MUL( in99, 1 ); \
10173 : GF_MUL22( in68, in100, 1, 218, 1, 219 ); \
10174 : GF_MUL22( in69, in101, 1, 218, 1, 219 ); \
10175 : GF_MUL22( in70, in102, 1, 218, 1, 219 ); \
10176 : GF_MUL22( in71, in103, 1, 218, 1, 219 ); \
10177 : GF_MUL22( in72, in104, 1, 218, 1, 219 ); \
10178 : GF_MUL22( in73, in105, 1, 218, 1, 219 ); \
10179 : GF_MUL22( in74, in106, 1, 218, 1, 219 ); \
10180 : GF_MUL22( in75, in107, 1, 218, 1, 219 ); \
10181 : GF_MUL22( in76, in108, 1, 218, 1, 219 ); \
10182 : GF_MUL22( in77, in109, 1, 218, 1, 219 ); \
10183 : GF_MUL22( in78, in110, 1, 218, 1, 219 ); \
10184 : GF_MUL22( in79, in111, 1, 218, 1, 219 ); \
10185 : GF_MUL22( in80, in112, 1, 218, 1, 219 ); \
10186 : GF_MUL22( in81, in113, 1, 218, 1, 219 ); \
10187 : GF_MUL22( in82, in114, 1, 218, 1, 219 ); \
10188 : GF_MUL22( in83, in115, 1, 218, 1, 219 ); \
10189 : GF_MUL22( in84, in116, 1, 218, 1, 219 ); \
10190 : GF_MUL22( in85, in117, 1, 218, 1, 219 ); \
10191 : GF_MUL22( in86, in118, 1, 218, 1, 219 ); \
10192 : GF_MUL22( in87, in119, 1, 218, 1, 219 ); \
10193 : GF_MUL22( in88, in120, 1, 218, 1, 219 ); \
10194 : GF_MUL22( in89, in121, 1, 218, 1, 219 ); \
10195 : GF_MUL22( in90, in122, 1, 218, 1, 219 ); \
10196 : GF_MUL22( in91, in123, 1, 218, 1, 219 ); \
10197 : GF_MUL22( in92, in124, 1, 218, 1, 219 ); \
10198 : GF_MUL22( in93, in125, 1, 218, 1, 219 ); \
10199 : GF_MUL22( in94, in126, 1, 218, 1, 219 ); \
10200 : GF_MUL22( in95, in127, 1, 218, 1, 219 ); \
10201 : scratch_16 = in80; \
10202 : in80 = GF_MUL( in80, 1 ); \
10203 : scratch_17 = in81; \
10204 : in81 = GF_MUL( in81, 1 ); \
10205 : scratch_18 = in82; \
10206 : in82 = GF_MUL( in82, 1 ); \
10207 : scratch_19 = in83; \
10208 : in83 = GF_MUL( in83, 1 ); \
10209 : GF_MUL22( in68, in84, 1, 189, 1, 188 ); \
10210 : GF_MUL22( in69, in85, 1, 189, 1, 188 ); \
10211 : GF_MUL22( in70, in86, 1, 189, 1, 188 ); \
10212 : GF_MUL22( in71, in87, 1, 189, 1, 188 ); \
10213 : GF_MUL22( in72, in88, 1, 189, 1, 188 ); \
10214 : GF_MUL22( in73, in89, 1, 189, 1, 188 ); \
10215 : GF_MUL22( in74, in90, 1, 189, 1, 188 ); \
10216 : GF_MUL22( in75, in91, 1, 189, 1, 188 ); \
10217 : GF_MUL22( in76, in92, 1, 189, 1, 188 ); \
10218 : GF_MUL22( in77, in93, 1, 189, 1, 188 ); \
10219 : GF_MUL22( in78, in94, 1, 189, 1, 188 ); \
10220 : GF_MUL22( in79, in95, 1, 189, 1, 188 ); \
10221 : scratch_8 = in72; \
10222 : in72 = GF_MUL( in72, 1 ); \
10223 : scratch_9 = in73; \
10224 : in73 = GF_MUL( in73, 1 ); \
10225 : scratch_10 = in74; \
10226 : in74 = GF_MUL( in74, 1 ); \
10227 : scratch_11 = in75; \
10228 : in75 = GF_MUL( in75, 1 ); \
10229 : GF_MUL22( in68, in76, 1, 33, 1, 32 ); \
10230 : GF_MUL22( in69, in77, 1, 33, 1, 32 ); \
10231 : GF_MUL22( in70, in78, 1, 33, 1, 32 ); \
10232 : GF_MUL22( in71, in79, 1, 33, 1, 32 ); \
10233 : scratch_4 = in68; \
10234 : in68 = GF_MUL( in68, 1 ); \
10235 : scratch_5 = in69; \
10236 : in69 = GF_MUL( in69, 1 ); \
10237 : scratch_6 = in70; \
10238 : in70 = GF_MUL( in70, 1 ); \
10239 : scratch_7 = in71; \
10240 : in71 = GF_MUL( in71, 1 ); \
10241 : FD_REEDSOL_GENERATE_IFFT( 4, 64, in64, in65, in66, in67 ); \
10242 : in68 = GF_ADD( GF_MUL( in64, 1 ), in68 ); \
10243 : in69 = GF_ADD( GF_MUL( in65, 1 ), in69 ); \
10244 : in70 = GF_ADD( GF_MUL( in66, 1 ), in70 ); \
10245 : in71 = GF_ADD( GF_MUL( in67, 1 ), in71 ); \
10246 : FD_REEDSOL_GENERATE_FFT( 4, 68, in68, in69, in70, in71 ); \
10247 : in64 = GF_MUL( in64, 1 ); \
10248 : in64 = GF_ADD( GF_MUL( scratch_4, 183 ), in64 ); \
10249 : in65 = GF_MUL( in65, 1 ); \
10250 : in65 = GF_ADD( GF_MUL( scratch_5, 183 ), in65 ); \
10251 : in66 = GF_MUL( in66, 1 ); \
10252 : in66 = GF_ADD( GF_MUL( scratch_6, 183 ), in66 ); \
10253 : in67 = GF_MUL( in67, 1 ); \
10254 : in67 = GF_ADD( GF_MUL( scratch_7, 183 ), in67 ); \
10255 : in72 = GF_ADD( GF_MUL( in64, 1 ), in72 ); \
10256 : in73 = GF_ADD( GF_MUL( in65, 1 ), in73 ); \
10257 : in74 = GF_ADD( GF_MUL( in66, 1 ), in74 ); \
10258 : in75 = GF_ADD( GF_MUL( in67, 1 ), in75 ); \
10259 : FD_REEDSOL_GENERATE_FFT( 8, 72, in72, in73, in74, in75, in76, in77, in78, in79 ); \
10260 : in64 = GF_MUL( in64, 1 ); \
10261 : in64 = GF_ADD( GF_MUL( scratch_8, 33 ), in64 ); \
10262 : in65 = GF_MUL( in65, 1 ); \
10263 : in65 = GF_ADD( GF_MUL( scratch_9, 33 ), in65 ); \
10264 : in66 = GF_MUL( in66, 1 ); \
10265 : in66 = GF_ADD( GF_MUL( scratch_10, 33 ), in66 ); \
10266 : in67 = GF_MUL( in67, 1 ); \
10267 : in67 = GF_ADD( GF_MUL( scratch_11, 33 ), in67 ); \
10268 : in80 = GF_ADD( GF_MUL( in64, 1 ), in80 ); \
10269 : in81 = GF_ADD( GF_MUL( in65, 1 ), in81 ); \
10270 : in82 = GF_ADD( GF_MUL( in66, 1 ), in82 ); \
10271 : in83 = GF_ADD( GF_MUL( in67, 1 ), in83 ); \
10272 : FD_REEDSOL_GENERATE_FFT( 16, 80, in80, in81, in82, in83, in84, in85, in86, in87, in88, in89, in90, in91, in92, in93, in94, in95 ); \
10273 : in64 = GF_MUL( in64, 1 ); \
10274 : in64 = GF_ADD( GF_MUL( scratch_16, 189 ), in64 ); \
10275 : in65 = GF_MUL( in65, 1 ); \
10276 : in65 = GF_ADD( GF_MUL( scratch_17, 189 ), in65 ); \
10277 : in66 = GF_MUL( in66, 1 ); \
10278 : in66 = GF_ADD( GF_MUL( scratch_18, 189 ), in66 ); \
10279 : in67 = GF_MUL( in67, 1 ); \
10280 : in67 = GF_ADD( GF_MUL( scratch_19, 189 ), in67 ); \
10281 : in96 = GF_ADD( GF_MUL( in64, 1 ), in96 ); \
10282 : in97 = GF_ADD( GF_MUL( in65, 1 ), in97 ); \
10283 : in98 = GF_ADD( GF_MUL( in66, 1 ), in98 ); \
10284 : in99 = GF_ADD( GF_MUL( in67, 1 ), in99 ); \
10285 : FD_REEDSOL_GENERATE_FFT( 32, 96, in96, in97, in98, in99, in100, in101, in102, in103, in104, in105, in106, in107, in108, in109, in110, in111, in112, in113, in114, in115, in116, in117, in118, in119, in120, in121, in122, in123, in124, in125, in126, in127 ); \
10286 : in64 = GF_MUL( in64, 1 ); \
10287 : in64 = GF_ADD( GF_MUL( scratch_32, 218 ), in64 ); \
10288 : in65 = GF_MUL( in65, 1 ); \
10289 : in65 = GF_ADD( GF_MUL( scratch_33, 218 ), in65 ); \
10290 : in66 = GF_MUL( in66, 1 ); \
10291 : in66 = GF_ADD( GF_MUL( scratch_34, 218 ), in66 ); \
10292 : in67 = GF_MUL( in67, 1 ); \
10293 : in67 = GF_ADD( GF_MUL( scratch_35, 218 ), in67 ); \
10294 : GF_MUL22( in00, in64, 1, 0, 1, 1 ); \
10295 : GF_MUL22( in01, in65, 1, 0, 1, 1 ); \
10296 : GF_MUL22( in02, in66, 1, 0, 1, 1 ); \
10297 : GF_MUL22( in03, in67, 1, 0, 1, 1 ); \
10298 : in04 = GF_MUL( in04, 1 ); \
10299 : in04 = GF_ADD( GF_MUL( scratch_68, 0 ), in04 ); \
10300 : in05 = GF_MUL( in05, 1 ); \
10301 : in05 = GF_ADD( GF_MUL( scratch_69, 0 ), in05 ); \
10302 : in06 = GF_MUL( in06, 1 ); \
10303 : in06 = GF_ADD( GF_MUL( scratch_70, 0 ), in06 ); \
10304 : in07 = GF_MUL( in07, 1 ); \
10305 : in07 = GF_ADD( GF_MUL( scratch_71, 0 ), in07 ); \
10306 : in08 = GF_MUL( in08, 1 ); \
10307 : in08 = GF_ADD( GF_MUL( scratch_72, 0 ), in08 ); \
10308 : in09 = GF_MUL( in09, 1 ); \
10309 : in09 = GF_ADD( GF_MUL( scratch_73, 0 ), in09 ); \
10310 : in10 = GF_MUL( in10, 1 ); \
10311 : in10 = GF_ADD( GF_MUL( scratch_74, 0 ), in10 ); \
10312 : in11 = GF_MUL( in11, 1 ); \
10313 : in11 = GF_ADD( GF_MUL( scratch_75, 0 ), in11 ); \
10314 : in12 = GF_MUL( in12, 1 ); \
10315 : in12 = GF_ADD( GF_MUL( scratch_76, 0 ), in12 ); \
10316 : in13 = GF_MUL( in13, 1 ); \
10317 : in13 = GF_ADD( GF_MUL( scratch_77, 0 ), in13 ); \
10318 : in14 = GF_MUL( in14, 1 ); \
10319 : in14 = GF_ADD( GF_MUL( scratch_78, 0 ), in14 ); \
10320 : in15 = GF_MUL( in15, 1 ); \
10321 : in15 = GF_ADD( GF_MUL( scratch_79, 0 ), in15 ); \
10322 : in16 = GF_MUL( in16, 1 ); \
10323 : in16 = GF_ADD( GF_MUL( scratch_80, 0 ), in16 ); \
10324 : in17 = GF_MUL( in17, 1 ); \
10325 : in17 = GF_ADD( GF_MUL( scratch_81, 0 ), in17 ); \
10326 : in18 = GF_MUL( in18, 1 ); \
10327 : in18 = GF_ADD( GF_MUL( scratch_82, 0 ), in18 ); \
10328 : in19 = GF_MUL( in19, 1 ); \
10329 : in19 = GF_ADD( GF_MUL( scratch_83, 0 ), in19 ); \
10330 : in20 = GF_MUL( in20, 1 ); \
10331 : in20 = GF_ADD( GF_MUL( scratch_84, 0 ), in20 ); \
10332 : in21 = GF_MUL( in21, 1 ); \
10333 : in21 = GF_ADD( GF_MUL( scratch_85, 0 ), in21 ); \
10334 : in22 = GF_MUL( in22, 1 ); \
10335 : in22 = GF_ADD( GF_MUL( scratch_86, 0 ), in22 ); \
10336 : in23 = GF_MUL( in23, 1 ); \
10337 : in23 = GF_ADD( GF_MUL( scratch_87, 0 ), in23 ); \
10338 : in24 = GF_MUL( in24, 1 ); \
10339 : in24 = GF_ADD( GF_MUL( scratch_88, 0 ), in24 ); \
10340 : in25 = GF_MUL( in25, 1 ); \
10341 : in25 = GF_ADD( GF_MUL( scratch_89, 0 ), in25 ); \
10342 : in26 = GF_MUL( in26, 1 ); \
10343 : in26 = GF_ADD( GF_MUL( scratch_90, 0 ), in26 ); \
10344 : in27 = GF_MUL( in27, 1 ); \
10345 : in27 = GF_ADD( GF_MUL( scratch_91, 0 ), in27 ); \
10346 : in28 = GF_MUL( in28, 1 ); \
10347 : in28 = GF_ADD( GF_MUL( scratch_92, 0 ), in28 ); \
10348 : in29 = GF_MUL( in29, 1 ); \
10349 : in29 = GF_ADD( GF_MUL( scratch_93, 0 ), in29 ); \
10350 : in30 = GF_MUL( in30, 1 ); \
10351 : in30 = GF_ADD( GF_MUL( scratch_94, 0 ), in30 ); \
10352 : in31 = GF_MUL( in31, 1 ); \
10353 : in31 = GF_ADD( GF_MUL( scratch_95, 0 ), in31 ); \
10354 : in32 = GF_MUL( in32, 1 ); \
10355 : in32 = GF_ADD( GF_MUL( scratch_96, 0 ), in32 ); \
10356 : in33 = GF_MUL( in33, 1 ); \
10357 : in33 = GF_ADD( GF_MUL( scratch_97, 0 ), in33 ); \
10358 : in34 = GF_MUL( in34, 1 ); \
10359 : in34 = GF_ADD( GF_MUL( scratch_98, 0 ), in34 ); \
10360 : in35 = GF_MUL( in35, 1 ); \
10361 : in35 = GF_ADD( GF_MUL( scratch_99, 0 ), in35 ); \
10362 : in36 = GF_MUL( in36, 1 ); \
10363 : in36 = GF_ADD( GF_MUL( scratch_100, 0 ), in36 ); \
10364 : in37 = GF_MUL( in37, 1 ); \
10365 : in37 = GF_ADD( GF_MUL( scratch_101, 0 ), in37 ); \
10366 : in38 = GF_MUL( in38, 1 ); \
10367 : in38 = GF_ADD( GF_MUL( scratch_102, 0 ), in38 ); \
10368 : in39 = GF_MUL( in39, 1 ); \
10369 : in39 = GF_ADD( GF_MUL( scratch_103, 0 ), in39 ); \
10370 : in40 = GF_MUL( in40, 1 ); \
10371 : in40 = GF_ADD( GF_MUL( scratch_104, 0 ), in40 ); \
10372 : in41 = GF_MUL( in41, 1 ); \
10373 : in41 = GF_ADD( GF_MUL( scratch_105, 0 ), in41 ); \
10374 : in42 = GF_MUL( in42, 1 ); \
10375 : in42 = GF_ADD( GF_MUL( scratch_106, 0 ), in42 ); \
10376 : in43 = GF_MUL( in43, 1 ); \
10377 : in43 = GF_ADD( GF_MUL( scratch_107, 0 ), in43 ); \
10378 : in44 = GF_MUL( in44, 1 ); \
10379 : in44 = GF_ADD( GF_MUL( scratch_108, 0 ), in44 ); \
10380 : in45 = GF_MUL( in45, 1 ); \
10381 : in45 = GF_ADD( GF_MUL( scratch_109, 0 ), in45 ); \
10382 : in46 = GF_MUL( in46, 1 ); \
10383 : in46 = GF_ADD( GF_MUL( scratch_110, 0 ), in46 ); \
10384 : in47 = GF_MUL( in47, 1 ); \
10385 : in47 = GF_ADD( GF_MUL( scratch_111, 0 ), in47 ); \
10386 : in48 = GF_MUL( in48, 1 ); \
10387 : in48 = GF_ADD( GF_MUL( scratch_112, 0 ), in48 ); \
10388 : in49 = GF_MUL( in49, 1 ); \
10389 : in49 = GF_ADD( GF_MUL( scratch_113, 0 ), in49 ); \
10390 : in50 = GF_MUL( in50, 1 ); \
10391 : in50 = GF_ADD( GF_MUL( scratch_114, 0 ), in50 ); \
10392 : in51 = GF_MUL( in51, 1 ); \
10393 : in51 = GF_ADD( GF_MUL( scratch_115, 0 ), in51 ); \
10394 : in52 = GF_MUL( in52, 1 ); \
10395 : in52 = GF_ADD( GF_MUL( scratch_116, 0 ), in52 ); \
10396 : in53 = GF_MUL( in53, 1 ); \
10397 : in53 = GF_ADD( GF_MUL( scratch_117, 0 ), in53 ); \
10398 : in54 = GF_MUL( in54, 1 ); \
10399 : in54 = GF_ADD( GF_MUL( scratch_118, 0 ), in54 ); \
10400 : in55 = GF_MUL( in55, 1 ); \
10401 : in55 = GF_ADD( GF_MUL( scratch_119, 0 ), in55 ); \
10402 : in56 = GF_MUL( in56, 1 ); \
10403 : in56 = GF_ADD( GF_MUL( scratch_120, 0 ), in56 ); \
10404 : in57 = GF_MUL( in57, 1 ); \
10405 : in57 = GF_ADD( GF_MUL( scratch_121, 0 ), in57 ); \
10406 : in58 = GF_MUL( in58, 1 ); \
10407 : in58 = GF_ADD( GF_MUL( scratch_122, 0 ), in58 ); \
10408 : in59 = GF_MUL( in59, 1 ); \
10409 : in59 = GF_ADD( GF_MUL( scratch_123, 0 ), in59 ); \
10410 : in60 = GF_MUL( in60, 1 ); \
10411 : in60 = GF_ADD( GF_MUL( scratch_124, 0 ), in60 ); \
10412 : in61 = GF_MUL( in61, 1 ); \
10413 : in61 = GF_ADD( GF_MUL( scratch_125, 0 ), in61 ); \
10414 : in62 = GF_MUL( in62, 1 ); \
10415 : in62 = GF_ADD( GF_MUL( scratch_126, 0 ), in62 ); \
10416 : in63 = GF_MUL( in63, 1 ); \
10417 : in63 = GF_ADD( GF_MUL( scratch_127, 0 ), in63 ); \
10418 : } while( 0 )
10419 :
10420 : #endif /* HEADER_fd_src_ballet_reedsol_fd_reedsol_ppt_h */
|