1#ifndef GENERIC_SPIN_RECON_INLINES_H
2#define GENERIC_SPIN_RECON_INLINES_H
26#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
39 REAL tmp_hspinor[4][3][2];
41 const REAL* src_shadow = src;
42 REAL* dst_shadow = dst;
49 for(
unsigned int site=0; site < n_vec; site++) {
50 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
53 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
54 REAL tmp = *(src_shadow++);
55 *(tmp_shadow++) = tmp;
56 *(dst_shadow++) = tmp;
60 for(
int col=0; col <
Nc; col++) {
61 *(dst_shadow++) = tmp_hspinor[1][col][im];
62 *(dst_shadow++) = -tmp_hspinor[1][col][re];
66 for(
int col=0; col <
Nc; col++) {
67 *(dst_shadow++) = tmp_hspinor[0][col][im];
68 *(dst_shadow++) = -tmp_hspinor[0][col][re];
91#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
105 REAL tmp_hspinor[4][3][2];
107 const REAL* src_shadow = src;
108 REAL* dst_shadow = dst;
115 for(
unsigned int site=0; site < n_vec; site++) {
116 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
119 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
120 REAL tmp = *(src_shadow++);
121 *(tmp_shadow++) = tmp;
122 *(dst_shadow++) = tmp;
126 for(
int col=0; col <
Nc; col++) {
127 *(dst_shadow++) = -tmp_hspinor[1][col][im];
128 *(dst_shadow++) = tmp_hspinor[1][col][re];
132 for(
int col=0; col <
Nc; col++) {
133 *(dst_shadow++) = -tmp_hspinor[0][col][im];
134 *(dst_shadow++) = tmp_hspinor[0][col][re];
157#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
163 REAL tmp_hspinor[4][3][2];
165 const REAL* src_shadow = src;
166 REAL* dst_shadow = dst;
173 for(
unsigned int site=0; site < n_vec; site++) {
174 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
177 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
178 REAL tmp = *(src_shadow++);
179 *(tmp_shadow++) = tmp;
180 *(dst_shadow++) = tmp;
193 for(
int col=0; col <
Nc; col++) {
194 *(dst_shadow++) = tmp_hspinor[1][col][re];
195 *(dst_shadow++) = tmp_hspinor[1][col][im];
199 for(
int col=0; col <
Nc; col++) {
200 *(dst_shadow++) = -tmp_hspinor[0][col][re];
201 *(dst_shadow++) = -tmp_hspinor[0][col][im];
224#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
229 REAL tmp_hspinor[4][3][2];
231 const REAL* src_shadow = src;
232 REAL* dst_shadow = dst;
239 for(
unsigned int site=0; site < n_vec; site++) {
240 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
243 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
244 REAL tmp = *(src_shadow++);
245 *(tmp_shadow++) = tmp;
246 *(dst_shadow++) = tmp;
263 for(
int col=0; col <
Nc; col++) {
264 *(dst_shadow++) = -tmp_hspinor[1][col][re];
265 *(dst_shadow++) = -tmp_hspinor[1][col][im];
269 for(
int col=0; col <
Nc; col++) {
270 *(dst_shadow++) = tmp_hspinor[0][col][re];
271 *(dst_shadow++) = tmp_hspinor[0][col][im];
295#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
301 REAL tmp_hspinor[4][3][2];
303 const REAL* src_shadow = src;
304 REAL* dst_shadow = dst;
311 for(
unsigned int site=0; site < n_vec; site++) {
312 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
315 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
316 REAL tmp = *(src_shadow++);
317 *(tmp_shadow++) = tmp;
318 *(dst_shadow++) = tmp;
331 for(
int col=0; col <
Nc; col++) {
332 *(dst_shadow++) = tmp_hspinor[0][col][im];
333 *(dst_shadow++) = -tmp_hspinor[0][col][re];
337 for(
int col=0; col <
Nc; col++) {
338 *(dst_shadow++) = -tmp_hspinor[1][col][im];
339 *(dst_shadow++) = tmp_hspinor[1][col][re];
362#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
367 REAL tmp_hspinor[4][3][2];
369 const REAL* src_shadow = src;
370 REAL* dst_shadow = dst;
377 for(
unsigned int site=0; site < n_vec; site++) {
378 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
381 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
382 REAL tmp = *(src_shadow++);
383 *(tmp_shadow++) = tmp;
384 *(dst_shadow++) = tmp;
398 for(
int col=0; col <
Nc; col++) {
399 *(dst_shadow++) = -tmp_hspinor[0][col][im];
400 *(dst_shadow++) = tmp_hspinor[0][col][re];
404 for(
int col=0; col <
Nc; col++) {
405 *(dst_shadow++) = tmp_hspinor[1][col][im];
406 *(dst_shadow++) = -tmp_hspinor[1][col][re];
430#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
436 REAL tmp_hspinor[4][3][2];
438 const REAL* src_shadow = src;
439 REAL* dst_shadow = dst;
446 for(
unsigned int site=0; site < n_vec; site++) {
447 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
450 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
451 REAL tmp = *(src_shadow++);
452 *(tmp_shadow++) = tmp;
453 *(dst_shadow++) = tmp;
467 for(
int col=0; col <
Nc; col++) {
468 *(dst_shadow++) = tmp_hspinor[0][col][re];
469 *(dst_shadow++) = tmp_hspinor[0][col][im];
473 for(
int col=0; col <
Nc; col++) {
474 *(dst_shadow++) = tmp_hspinor[1][col][re];
475 *(dst_shadow++) = tmp_hspinor[1][col][im];
498#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
503 REAL tmp_hspinor[4][3][2];
505 const REAL* src_shadow = src;
506 REAL* dst_shadow = dst;
513 for(
unsigned int site=0; site < n_vec; site++) {
514 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
517 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
518 REAL tmp = *(src_shadow++);
519 *(tmp_shadow++) = tmp;
520 *(dst_shadow++) = tmp;
533 for(
int col=0; col <
Nc; col++) {
534 *(dst_shadow++) = -tmp_hspinor[0][col][re];
535 *(dst_shadow++) = -tmp_hspinor[0][col][im];
539 for(
int col=0; col <
Nc; col++) {
540 *(dst_shadow++) = -tmp_hspinor[1][col][re];
541 *(dst_shadow++) = -tmp_hspinor[1][col][im];
566#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
567 QDPIO::cout <<
"inlinaAddSpinReconDir0Plus" << endl;
579 REAL tmp_hspinor[4][3][2];
581 const REAL* src_shadow = src;
582 REAL* dst_shadow = dst;
589 for(
unsigned int site=0; site < n_vec; site++) {
590 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
593 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
594 REAL tmp = *(src_shadow++);
595 *(tmp_shadow++) = tmp;
596 *(dst_shadow++) += tmp;
600 for(
int col=0; col <
Nc; col++) {
601 *(dst_shadow++) += tmp_hspinor[1][col][im];
602 *(dst_shadow++) -= tmp_hspinor[1][col][re];
606 for(
int col=0; col <
Nc; col++) {
607 *(dst_shadow++) += tmp_hspinor[0][col][im];
608 *(dst_shadow++) -= tmp_hspinor[0][col][re];
631#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
632 QDPIO::cout <<
"inlinaAddSpinReconDir0Minus" << endl;
645 REAL tmp_hspinor[4][3][2];
647 const REAL* src_shadow = src;
648 REAL* dst_shadow = dst;
655 for(
unsigned int site=0; site < n_vec; site++) {
656 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
659 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
660 REAL tmp = *(src_shadow++);
661 *(tmp_shadow++) = tmp;
662 *(dst_shadow++) += tmp;
666 for(
int col=0; col <
Nc; col++) {
667 *(dst_shadow++) -= tmp_hspinor[1][col][im];
668 *(dst_shadow++) += tmp_hspinor[1][col][re];
672 for(
int col=0; col <
Nc; col++) {
673 *(dst_shadow++) -= tmp_hspinor[0][col][im];
674 *(dst_shadow++) += tmp_hspinor[0][col][re];
697#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
698 QDPIO::cout <<
"inlinaAddSpinReconDir0Plus" << endl;
703 REAL tmp_hspinor[4][3][2];
705 const REAL* src_shadow = src;
706 REAL* dst_shadow = dst;
713 for(
unsigned int site=0; site < n_vec; site++) {
714 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
717 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
718 REAL tmp = *(src_shadow++);
719 *(tmp_shadow++) = tmp;
720 *(dst_shadow++) += tmp;
733 for(
int col=0; col <
Nc; col++) {
734 *(dst_shadow++) += tmp_hspinor[1][col][re];
735 *(dst_shadow++) += tmp_hspinor[1][col][im];
739 for(
int col=0; col <
Nc; col++) {
740 *(dst_shadow++) -= tmp_hspinor[0][col][re];
741 *(dst_shadow++) -= tmp_hspinor[0][col][im];
764#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
765 QDPIO::cout <<
"inlinaAddSpinReconDir0Minus" << endl;
769 REAL tmp_hspinor[4][3][2];
771 const REAL* src_shadow = src;
772 REAL* dst_shadow = dst;
779 for(
unsigned int site=0; site < n_vec; site++) {
780 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
783 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
784 REAL tmp = *(src_shadow++);
785 *(tmp_shadow++) = tmp;
786 *(dst_shadow++) += tmp;
803 for(
int col=0; col <
Nc; col++) {
804 *(dst_shadow++) -= tmp_hspinor[1][col][re];
805 *(dst_shadow++) -= tmp_hspinor[1][col][im];
809 for(
int col=0; col <
Nc; col++) {
810 *(dst_shadow++) += tmp_hspinor[0][col][re];
811 *(dst_shadow++) += tmp_hspinor[0][col][im];
835#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
836 QDPIO::cout <<
"inlinaAddSpinReconDir0Plus" << endl;
841 REAL tmp_hspinor[4][3][2];
843 const REAL* src_shadow = src;
844 REAL* dst_shadow = dst;
851 for(
unsigned int site=0; site < n_vec; site++) {
852 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
855 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
856 REAL tmp = *(src_shadow++);
857 *(tmp_shadow++) = tmp;
858 *(dst_shadow++) += tmp;
871 for(
int col=0; col <
Nc; col++) {
872 *(dst_shadow++) += tmp_hspinor[0][col][im];
873 *(dst_shadow++) -= tmp_hspinor[0][col][re];
877 for(
int col=0; col <
Nc; col++) {
878 *(dst_shadow++) -= tmp_hspinor[1][col][im];
879 *(dst_shadow++) += tmp_hspinor[1][col][re];
902#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
903 QDPIO::cout <<
"inlinaAddSpinReconDir0Minus" << endl;
907 REAL tmp_hspinor[4][3][2];
909 const REAL* src_shadow = src;
910 REAL* dst_shadow = dst;
917 for(
unsigned int site=0; site < n_vec; site++) {
918 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
921 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
922 REAL tmp = *(src_shadow++);
923 *(tmp_shadow++) = tmp;
924 *(dst_shadow++) += tmp;
938 for(
int col=0; col <
Nc; col++) {
939 *(dst_shadow++) -= tmp_hspinor[0][col][im];
940 *(dst_shadow++) += tmp_hspinor[0][col][re];
944 for(
int col=0; col <
Nc; col++) {
945 *(dst_shadow++) += tmp_hspinor[1][col][im];
946 *(dst_shadow++) -= tmp_hspinor[1][col][re];
970#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
971 QDPIO::cout <<
"inlinaAddSpinReconDir0Plus" << endl;
976 REAL tmp_hspinor[4][3][2];
978 const REAL* src_shadow = src;
979 REAL* dst_shadow = dst;
986 for(
unsigned int site=0; site < n_vec; site++) {
987 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
990 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
991 REAL tmp = *(src_shadow++);
992 *(tmp_shadow++) = tmp;
993 *(dst_shadow++) += tmp;
1007 for(
int col=0; col <
Nc; col++) {
1008 *(dst_shadow++) += tmp_hspinor[0][col][re];
1009 *(dst_shadow++) += tmp_hspinor[0][col][im];
1013 for(
int col=0; col <
Nc; col++) {
1014 *(dst_shadow++) += tmp_hspinor[1][col][re];
1015 *(dst_shadow++) += tmp_hspinor[1][col][im];
1038#ifdef DEBUG_GENERIC_SPIN_RECON_INLINES
1039 QDPIO::cout <<
"inlinaAddSpinReconDir0Minus" << endl;
1043 REAL tmp_hspinor[4][3][2];
1045 const REAL* src_shadow = src;
1046 REAL* dst_shadow = dst;
1050 const int Ncmpx = 2;
1051 const int Nsby2 = 2;
1053 for(
unsigned int site=0; site < n_vec; site++) {
1054 REAL* tmp_shadow = &(tmp_hspinor[0][0][0]);
1057 for(
int stream=0; stream < Nsby2*
Nc*Ncmpx; stream++) {
1058 REAL tmp = *(src_shadow++);
1059 *(tmp_shadow++) = tmp;
1060 *(dst_shadow++) += tmp;
1073 for(
int col=0; col <
Nc; col++) {
1074 *(dst_shadow++) -= tmp_hspinor[0][col][re];
1075 *(dst_shadow++) -= tmp_hspinor[0][col][im];
1079 for(
int col=0; col <
Nc; col++) {
1080 *(dst_shadow++) -= tmp_hspinor[1][col][re];
1081 *(dst_shadow++) -= tmp_hspinor[1][col][im];
StandardOutputStream cout
Yet another random number generator.
void inlineSpinReconDir0Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma_0).
void inlineAddSpinReconDir1Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma_1).
void inlineAddSpinReconDir2Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma_2).
void inlineAddSpinReconDir1Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma_1).
void inlineSpinReconDir2Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma_2).
void inlineSpinReconDir1Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma_1).
void inlineAddSpinReconDir3Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma3).
void inlineSpinReconDir2Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma_2).
void inlineAddSpinReconDir3Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma3).
void inlineSpinReconDir3Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma3).
void inlineAddSpinReconDir0Minus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1-\gamma_0).
void inlineAddSpinReconDir2Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma_2).
void inlineSpinReconDir3Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma3).
void inlineAddSpinReconDir0Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma_0).
void inlineSpinReconDir1Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma_1).
void inlineSpinReconDir0Plus(const REAL *src, REAL *dst, unsigned int n_vec)
Spin recon (1/2)(1+\gamma_0).