1#ifndef GENERIC_SPIN_PROJ_INLINES_H
2#define GENERIC_SPIN_PROJ_INLINES_H
27#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
39 REAL tmp_spinor[4][3][2];
41 const REAL* src_shadow = src;
42 REAL* dst_shadow = dst;
48 for(
unsigned int site=0; site < n_vec; site++) {
49 REAL* tmp_shadow = &(tmp_spinor[0][0][0]);
54 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
55 *(tmp_shadow++) = *(src_shadow++);
60 for(
int col=0; col <
Nc; col++) {
61 *(dst_shadow++) = tmp_spinor[0][col][re] - tmp_spinor[3][col][im];
62 *(dst_shadow++) = tmp_spinor[0][col][im] + tmp_spinor[3][col][re];
66 for(
int col=0; col <
Nc; col++) {
67 *(dst_shadow++) = tmp_spinor[1][col][re] - tmp_spinor[2][col][im];
68 *(dst_shadow++) = tmp_spinor[1][col][im] + tmp_spinor[2][col][re];
88#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
103 REAL tmp_spinor[4][3][2];
105 const REAL* src_shadow = src;
106 REAL* dst_shadow = dst;
112 for(
unsigned int site=0; site < n_vec; site++) {
113 REAL* tmpptr = &(tmp_spinor[0][0][0]);
115 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
116 *(tmpptr++) = *(src_shadow++);
121 for(
int col=0; col <
Nc; col++) {
122 *(dst_shadow++) = tmp_spinor[0][col][re] + tmp_spinor[3][col][im];
123 *(dst_shadow++) = tmp_spinor[0][col][im] - tmp_spinor[3][col][re];
127 for(
int col=0; col <
Nc; col++) {
128 *(dst_shadow++) = tmp_spinor[1][col][re] + tmp_spinor[2][col][im];
129 *(dst_shadow++) = tmp_spinor[1][col][im] - tmp_spinor[2][col][re];
152#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
164 REAL tmp_spinor[4][3][2];
166 const REAL* src_shadow = src;
167 REAL* dst_shadow = dst;
173 for(
unsigned int site=0; site < n_vec; site++) {
174 REAL* tmp_shadow = &(tmp_spinor[0][0][0]);
177 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
178 *(tmp_shadow++) = *(src_shadow++);
183 for(
int col=0; col <
Nc; col++) {
184 *(dst_shadow++) = tmp_spinor[0][col][re] - tmp_spinor[3][col][re];
185 *(dst_shadow++) = tmp_spinor[0][col][im] - tmp_spinor[3][col][im];
189 for(
int col=0; col <
Nc; col++) {
190 *(dst_shadow++) = tmp_spinor[1][col][re] + tmp_spinor[2][col][re];
191 *(dst_shadow++) = tmp_spinor[1][col][im] + tmp_spinor[2][col][im];
211#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
224 REAL tmp_spinor[4][3][2];
226 const REAL* src_shadow = src;
227 REAL* dst_shadow = dst;
233 for(
unsigned int site=0; site < n_vec; site++) {
234 REAL* tmpptr = &(tmp_spinor[0][0][0]);
237 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
238 *(tmpptr++) = *(src_shadow++);
243 for(
int col=0; col <
Nc; col++) {
244 *(dst_shadow++) = tmp_spinor[0][col][re] + tmp_spinor[3][col][re];
245 *(dst_shadow++) = tmp_spinor[0][col][im] + tmp_spinor[3][col][im];
249 for(
int col=0; col <
Nc; col++) {
250 *(dst_shadow++) = tmp_spinor[1][col][re] - tmp_spinor[2][col][re];
251 *(dst_shadow++) = tmp_spinor[1][col][im] - tmp_spinor[2][col][im];
273#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
286 REAL tmp_spinor[4][3][2];
288 const REAL* src_shadow = src;
289 REAL* dst_shadow = dst;
295 for(
unsigned int site=0; site < n_vec; site++) {
296 REAL* tmp_shadow = &(tmp_spinor[0][0][0]);
299 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
300 *(tmp_shadow++) = *(src_shadow++);
305 for(
int col=0; col <
Nc; col++) {
306 *(dst_shadow++) = tmp_spinor[0][col][re] - tmp_spinor[2][col][im];
307 *(dst_shadow++) = tmp_spinor[0][col][im] + tmp_spinor[2][col][re];
311 for(
int col=0; col <
Nc; col++) {
312 *(dst_shadow++) = tmp_spinor[1][col][re] + tmp_spinor[3][col][im];
313 *(dst_shadow++) = tmp_spinor[1][col][im] - tmp_spinor[3][col][re];
333#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
347 REAL tmp_spinor[4][3][2];
349 const REAL* src_shadow = src;
350 REAL* dst_shadow = dst;
356 for(
unsigned int site=0; site < n_vec; site++) {
357 REAL* tmpptr = &(tmp_spinor[0][0][0]);
360 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
361 *(tmpptr++) = *(src_shadow++);
366 for(
int col=0; col <
Nc; col++) {
367 *(dst_shadow++) = tmp_spinor[0][col][re] + tmp_spinor[2][col][im];
368 *(dst_shadow++) = tmp_spinor[0][col][im] - tmp_spinor[2][col][re];
372 for(
int col=0; col <
Nc; col++) {
373 *(dst_shadow++) = tmp_spinor[1][col][re] - tmp_spinor[3][col][im];
374 *(dst_shadow++) = tmp_spinor[1][col][im] + tmp_spinor[3][col][re];
395#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
407 REAL tmp_spinor[4][3][2];
409 const REAL* src_shadow = src;
410 REAL* dst_shadow = dst;
416 for(
unsigned int site=0; site < n_vec; site++) {
417 REAL* tmp_shadow = &(tmp_spinor[0][0][0]);
420 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
421 *(tmp_shadow++) = *(src_shadow++);
426 for(
int col=0; col <
Nc; col++) {
427 *(dst_shadow++) = tmp_spinor[0][col][re] + tmp_spinor[2][col][re];
428 *(dst_shadow++) = tmp_spinor[0][col][im] + tmp_spinor[2][col][im];
432 for(
int col=0; col <
Nc; col++) {
433 *(dst_shadow++) = tmp_spinor[1][col][re] + tmp_spinor[3][col][re];
434 *(dst_shadow++) = tmp_spinor[1][col][im] + tmp_spinor[3][col][im];
454#ifdef DEBUG_GENERIC_SPIN_PROJ_INLINES
468 REAL tmp_spinor[4][3][2];
470 const REAL* src_shadow = src;
471 REAL* dst_shadow = dst;
477 for(
unsigned int site=0; site < n_vec; site++) {
478 REAL* tmpptr = &(tmp_spinor[0][0][0]);
481 for(
int stream=0; stream <
Ns*
Nc*Ncmpx; stream++) {
482 *(tmpptr++) = *(src_shadow++);
487 for(
int col=0; col <
Nc; col++) {
488 *(dst_shadow++) = tmp_spinor[0][col][re] - tmp_spinor[2][col][re];
489 *(dst_shadow++) = tmp_spinor[0][col][im] - tmp_spinor[2][col][im];
493 for(
int col=0; col <
Nc; col++) {
494 *(dst_shadow++) = tmp_spinor[1][col][re] - tmp_spinor[3][col][re];
495 *(dst_shadow++) = tmp_spinor[1][col][im] - tmp_spinor[3][col][im];
StandardOutputStream cout
Yet another random number generator.
void inlineSpinProjDir0Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_0).
void inlineSpinProjDir0Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_0).
void inlineSpinProjDir1Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_1).
void inlineSpinProjDir1Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_1).
void inlineSpinProjDir3Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_3).
void inlineSpinProjDir3Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_3).
void inlineSpinProjDir2Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1-\gamma_2).
void inlineSpinProjDir2Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin Project (1/2)(1+\gamma_2).