Go to the documentation of this file.
11 #define MAC_Apply_G_mx4s_ops( m_A, \
25 float ga23_k1 = *gamma23_k1; \
26 float si23_k1 = *sigma23_k1; \
27 float ga34_k1 = *gamma34_k1; \
28 float si34_k1 = *sigma34_k1; \
29 float ga12_k2 = *gamma12_k2; \
30 float si12_k2 = *sigma12_k2; \
31 float ga23_k2 = *gamma23_k2; \
32 float si23_k2 = *sigma23_k2; \
33 float* restrict alpha1 = a1; \
34 float* restrict alpha2 = a2; \
35 float* restrict alpha3 = a3; \
36 float* restrict alpha4 = a4; \
43 for ( i = 0; i < m_A; ++i ) \
48 *alpha2 = temp2 * ga23_k1 + temp3 * si23_k1; \
49 *alpha3 = temp3 * ga23_k1 - temp2 * si23_k1; \
54 *alpha3 = temp3 * ga34_k1 + temp4 * si34_k1; \
55 *alpha4 = temp4 * ga34_k1 - temp3 * si34_k1; \
60 *alpha1 = temp1 * ga12_k2 + temp2 * si12_k2; \
61 *alpha2 = temp2 * ga12_k2 - temp1 * si12_k2; \
66 *alpha2 = temp2 * ga23_k2 + temp3 * si23_k2; \
67 *alpha3 = temp3 * ga23_k2 - temp2 * si23_k2; \
76 #define MAC_Apply_G_mx4s_opc( m_A, \
90 float ga23_k1 = *gamma23_k1; \
91 float si23_k1 = *sigma23_k1; \
92 float ga34_k1 = *gamma34_k1; \
93 float si34_k1 = *sigma34_k1; \
94 float ga12_k2 = *gamma12_k2; \
95 float si12_k2 = *sigma12_k2; \
96 float ga23_k2 = *gamma23_k2; \
97 float si23_k2 = *sigma23_k2; \
98 scomplex* restrict alpha1 = a1; \
99 scomplex* restrict alpha2 = a2; \
100 scomplex* restrict alpha3 = a3; \
101 scomplex* restrict alpha4 = a4; \
108 for ( i = 0; i < m_A; ++i ) \
114 alpha2->real = temp2.real * ga23_k1 + temp3.real * si23_k1; \
115 alpha2->imag = temp2.imag * ga23_k1 + temp3.imag * si23_k1; \
117 alpha3->real = temp3.real * ga23_k1 - temp2.real * si23_k1; \
118 alpha3->imag = temp3.imag * ga23_k1 - temp2.imag * si23_k1; \
123 alpha3->real = temp3.real * ga34_k1 + temp4.real * si34_k1; \
124 alpha3->imag = temp3.imag * ga34_k1 + temp4.imag * si34_k1; \
126 alpha4->real = temp4.real * ga34_k1 - temp3.real * si34_k1; \
127 alpha4->imag = temp4.imag * ga34_k1 - temp3.imag * si34_k1; \
132 alpha1->real = temp1.real * ga12_k2 + temp2.real * si12_k2; \
133 alpha1->imag = temp1.imag * ga12_k2 + temp2.imag * si12_k2; \
135 alpha2->real = temp2.real * ga12_k2 - temp1.real * si12_k2; \
136 alpha2->imag = temp2.imag * ga12_k2 - temp1.imag * si12_k2; \
141 alpha2->real = temp2.real * ga23_k2 + temp3.real * si23_k2; \
142 alpha2->imag = temp2.imag * ga23_k2 + temp3.imag * si23_k2; \
144 alpha3->real = temp3.real * ga23_k2 - temp2.real * si23_k2; \
145 alpha3->imag = temp3.imag * ga23_k2 - temp2.imag * si23_k2; \
154 #define MAC_Apply_G_mx4s_opd( m_A, \
168 double ga23_k1 = *gamma23_k1; \
169 double si23_k1 = *sigma23_k1; \
170 double ga34_k1 = *gamma34_k1; \
171 double si34_k1 = *sigma34_k1; \
172 double ga12_k2 = *gamma12_k2; \
173 double si12_k2 = *sigma12_k2; \
174 double ga23_k2 = *gamma23_k2; \
175 double si23_k2 = *sigma23_k2; \
176 double* restrict alpha1 = a1; \
177 double* restrict alpha2 = a2; \
178 double* restrict alpha3 = a3; \
179 double* restrict alpha4 = a4; \
186 for ( i = 0; i < m_A; ++i ) \
191 *alpha2 = temp2 * ga23_k1 + temp3 * si23_k1; \
192 *alpha3 = temp3 * ga23_k1 - temp2 * si23_k1; \
197 *alpha3 = temp3 * ga34_k1 + temp4 * si34_k1; \
198 *alpha4 = temp4 * ga34_k1 - temp3 * si34_k1; \
203 *alpha1 = temp1 * ga12_k2 + temp2 * si12_k2; \
204 *alpha2 = temp2 * ga12_k2 - temp1 * si12_k2; \
209 *alpha2 = temp2 * ga23_k2 + temp3 * si23_k2; \
210 *alpha3 = temp3 * ga23_k2 - temp2 * si23_k2; \
219 #define MAC_Apply_G_mx4s_opz( m_A, \
233 double ga23_k1 = *gamma23_k1; \
234 double si23_k1 = *sigma23_k1; \
235 double ga34_k1 = *gamma34_k1; \
236 double si34_k1 = *sigma34_k1; \
237 double ga12_k2 = *gamma12_k2; \
238 double si12_k2 = *sigma12_k2; \
239 double ga23_k2 = *gamma23_k2; \
240 double si23_k2 = *sigma23_k2; \
241 dcomplex* restrict alpha1 = a1; \
242 dcomplex* restrict alpha2 = a2; \
243 dcomplex* restrict alpha3 = a3; \
244 dcomplex* restrict alpha4 = a4; \
251 for ( i = 0; i < m_A; ++i ) \
257 alpha2->real = temp2.real * ga23_k1 + temp3.real * si23_k1; \
258 alpha2->imag = temp2.imag * ga23_k1 + temp3.imag * si23_k1; \
260 alpha3->real = temp3.real * ga23_k1 - temp2.real * si23_k1; \
261 alpha3->imag = temp3.imag * ga23_k1 - temp2.imag * si23_k1; \
266 alpha3->real = temp3.real * ga34_k1 + temp4.real * si34_k1; \
267 alpha3->imag = temp3.imag * ga34_k1 + temp4.imag * si34_k1; \
269 alpha4->real = temp4.real * ga34_k1 - temp3.real * si34_k1; \
270 alpha4->imag = temp4.imag * ga34_k1 - temp3.imag * si34_k1; \
275 alpha1->real = temp1.real * ga12_k2 + temp2.real * si12_k2; \
276 alpha1->imag = temp1.imag * ga12_k2 + temp2.imag * si12_k2; \
278 alpha2->real = temp2.real * ga12_k2 - temp1.real * si12_k2; \
279 alpha2->imag = temp2.imag * ga12_k2 - temp1.imag * si12_k2; \
284 alpha2->real = temp2.real * ga23_k2 + temp3.real * si23_k2; \
285 alpha2->imag = temp2.imag * ga23_k2 + temp3.imag * si23_k2; \
287 alpha3->real = temp3.real * ga23_k2 - temp2.real * si23_k2; \
288 alpha3->imag = temp3.imag * ga23_k2 - temp2.imag * si23_k2; \