33 multi1d<LatticeFermion>&
chi,
34 const multi1d<LatticeFermion>&
psi,
58 const int start = rb[
cb].start();
59 const int end = rb[
cb].end();
64 REAL scalep =
alpha[0].elem().elem().elem().elem();
65 REAL scalep2 =
a[0].elem().elem().elem().elem();
66 REAL *InScale = (REAL *) &(
psi[1].elem(start).elem(0).elem(0).real());
67 REAL *Add = (REAL *) &(
psi[0].elem(start).elem(0).elem(0).real());
68 REAL *Out = (REAL *) &(
chi[0].elem(start).elem(0).elem(0).real());
72 register int index_x = 0;
73 register int index_y = 0;
74 register int index_z = 0;
76 for(
int site=start; site <= end; ++site)
79 REAL x0r = InScale[index_x++];
80 REAL y0r = Add[index_y++];
81 REAL z0r = scalep*x0r ;
85 REAL x0i = InScale[index_x++];
86 REAL y0i = Add[index_y++];
87 REAL z0i = scalep*x0i;
91 REAL x1r = InScale[index_x++];
92 REAL y1r = Add[index_y++];
93 REAL z1r = scalep*x1r ;
97 REAL x1i = InScale[index_x++];
98 REAL y1i = Add[index_y++];
99 REAL z1i = scalep*x1i;
101 Out[index_z++] = z1i;
103 REAL x2r = InScale[index_x++];
104 REAL y2r = Add[index_y++];
105 REAL z2r = scalep*x2r ;
107 Out[index_z++] = z2r;
109 REAL x2i = InScale[index_x++];
110 REAL y2i = Add[index_y++];
111 REAL z2i = scalep*x2i ;
113 Out[index_z++] = z2i;
116 x0r = InScale[index_x++];
117 y0r = Add[index_y++];
120 Out[index_z++] = z0r;
122 x0i = InScale[index_x++];
123 y0i = Add[index_y++];
126 Out[index_z++] = z0i;
128 x1r = InScale[index_x++];
129 y1r = Add[index_y++];
132 Out[index_z++] = z1r;
134 x1i = InScale[index_x++];
135 y1i = Add[index_y++];
138 Out[index_z++] = z1i;
140 x2r = InScale[index_x++];
141 y2r = Add[index_y++];
144 Out[index_z++] = z2r;
146 x2i = InScale[index_x++];
147 y2i = Add[index_y++];
150 Out[index_z++] = z2i;
153 x0r = InScale[index_x++];
154 y0r = Add[index_y++];
157 Out[index_z++] = z0r;
159 x0i = InScale[index_x++];
160 y0i = Add[index_y++];
163 Out[index_z++] = z0i;
165 x1r = InScale[index_x++];
166 y1r = Add[index_y++];
169 Out[index_z++] = z1r;
171 x1i = InScale[index_x++];
172 y1i = Add[index_y++];
175 Out[index_z++] = z1i;
177 x2r = InScale[index_x++];
178 y2r = Add[index_y++];
181 Out[index_z++] = z2r;
183 x2i = InScale[index_x++];
184 y2i = Add[index_y++];
187 Out[index_z++] = z2i;
190 x0r = InScale[index_x++];
191 y0r = Add[index_y++];
194 Out[index_z++] = z0r;
196 x0i = InScale[index_x++];
197 y0i = Add[index_y++];
200 Out[index_z++] = z0i;
202 x1r = InScale[index_x++];
203 y1r = Add[index_y++];
206 Out[index_z++] = z1r;
208 x1i = InScale[index_x++];
209 y1i = Add[index_y++];
212 Out[index_z++] = z1i;
214 x2r = InScale[index_x++];
215 y2r = Add[index_y++];
218 Out[index_z++] = z2r;
220 x2i = InScale[index_x++];
221 y2i = Add[index_y++];
224 Out[index_z++] = z2i;
230 REAL scalep =
a[0].elem().elem().elem().elem();
231 REAL *In = (REAL *) &(
psi[0].elem(start).elem(0).elem(0).real());
232 REAL *Out = (REAL *) &(
chi[0].elem(start).elem(0).elem(0).real());
236 register int index_x = 0;
237 register int index_z = 0;
239 for(
int site=start; site <= end; ++site)
242 REAL x0r = In[index_x++];
243 REAL z0r = scalep*x0r;
244 Out[index_z++] = z0r;
246 REAL x0i = In[index_x++];
247 REAL z0i = scalep*x0i;
248 Out[index_z++] = z0i;
250 REAL x1r = In[index_x++];
251 REAL z1r = scalep*x1r;
252 Out[index_z++] = z1r;
254 REAL x1i = In[index_x++];
255 REAL z1i = scalep*x1i;
256 Out[index_z++] = z1i;
258 REAL x2r = In[index_x++];
259 REAL z2r = scalep*x2r;
260 Out[index_z++] = z2r;
262 REAL x2i = In[index_x++];
263 REAL z2i = scalep*x2i;
264 Out[index_z++] = z2i;
269 Out[index_z++] = z0r;
273 Out[index_z++] = z0i;
277 Out[index_z++] = z1r;
281 Out[index_z++] = z1i;
285 Out[index_z++] = z2r;
289 Out[index_z++] = z2i;
294 Out[index_z++] =- z0r;
298 Out[index_z++] =- z0i;
302 Out[index_z++] =-z1r;
306 Out[index_z++] =-z1i;
310 Out[index_z++] =-z2r;
314 Out[index_z++] =-z2i;
319 Out[index_z++] =- z0r;
323 Out[index_z++] =- z0i;
327 Out[index_z++] =-z1r;
331 Out[index_z++] =-z1i;
335 Out[index_z++] =-z2r;
339 Out[index_z++] =-z2i;
344 for(
int i=1;
i <
N5;
i++)
364 REAL scalep =
alpha[
i-1].elem().elem().elem().elem();
365 REAL scalep2 =
a[
i].elem().elem().elem().elem();
366 REAL *InScale = (REAL *) &(
psi[
i-1].elem(start).elem(0).elem(0).real());
367 REAL *Add = (REAL *) &(
psi[
i].elem(start).elem(0).elem(0).real());
368 REAL *Out = (REAL *) &(
chi[
i].elem(start).elem(0).elem(0).real());
372 register int index_x = 0;
373 register int index_y = 0;
374 register int index_z = 0;
376 for(
int site=start; site <= end; ++site)
379 REAL x0r = InScale[index_x++];
380 REAL y0r = Add[index_y++];
381 REAL z0r = scalep*x0r ;
383 Out[index_z++] = z0r;
385 REAL x0i = InScale[index_x++];
386 REAL y0i = Add[index_y++];
387 REAL z0i = scalep*x0i;
389 Out[index_z++] = z0i;
391 REAL x1r = InScale[index_x++];
392 REAL y1r = Add[index_y++];
393 REAL z1r = scalep*x1r ;
395 Out[index_z++] = z1r;
397 REAL x1i = InScale[index_x++];
398 REAL y1i = Add[index_y++];
399 REAL z1i = scalep*x1i;
401 Out[index_z++] = z1i;
403 REAL x2r = InScale[index_x++];
404 REAL y2r = Add[index_y++];
405 REAL z2r = scalep*x2r ;
407 Out[index_z++] = z2r;
409 REAL x2i = InScale[index_x++];
410 REAL y2i = Add[index_y++];
411 REAL z2i = scalep*x2i ;
413 Out[index_z++] = z2i;
416 x0r = InScale[index_x++];
417 y0r = Add[index_y++];
420 Out[index_z++] = z0r;
422 x0i = InScale[index_x++];
423 y0i = Add[index_y++];
426 Out[index_z++] = z0i;
428 x1r = InScale[index_x++];
429 y1r = Add[index_y++];
432 Out[index_z++] = z1r;
434 x1i = InScale[index_x++];
435 y1i = Add[index_y++];
438 Out[index_z++] = z1i;
440 x2r = InScale[index_x++];
441 y2r = Add[index_y++];
444 Out[index_z++] = z2r;
446 x2i = InScale[index_x++];
447 y2i = Add[index_y++];
450 Out[index_z++] = z2i;
453 x0r = InScale[index_x++];
454 y0r = Add[index_y++];
457 Out[index_z++] = z0r;
459 x0i = InScale[index_x++];
460 y0i = Add[index_y++];
463 Out[index_z++] = z0i;
465 x1r = InScale[index_x++];
466 y1r = Add[index_y++];
469 Out[index_z++] = z1r;
471 x1i = InScale[index_x++];
472 y1i = Add[index_y++];
475 Out[index_z++] = z1i;
477 x2r = InScale[index_x++];
478 y2r = Add[index_y++];
481 Out[index_z++] = z2r;
483 x2i = InScale[index_x++];
484 y2i = Add[index_y++];
487 Out[index_z++] = z2i;
490 x0r = InScale[index_x++];
491 y0r = Add[index_y++];
494 Out[index_z++] = z0r;
496 x0i = InScale[index_x++];
497 y0i = Add[index_y++];
500 Out[index_z++] = z0i;
502 x1r = InScale[index_x++];
503 y1r = Add[index_y++];
506 Out[index_z++] = z1r;
508 x1i = InScale[index_x++];
509 y1i = Add[index_y++];
512 Out[index_z++] = z1i;
514 x2r = InScale[index_x++];
515 y2r = Add[index_y++];
518 Out[index_z++] = z2r;
520 x2i = InScale[index_x++];
521 y2i = Add[index_y++];
524 Out[index_z++] = z2i;
533 REAL scalep =
alpha[
i].elem().elem().elem().elem();
534 REAL* InScale = (REAL *)&(
psi[
i+1].elem(start).elem(0).elem(0).real());
535 REAL* Add = (REAL *)&(
chi[
i].elem(start).elem(0).elem(0).real());
536 REAL* Out = (REAL *)&(
chi[
i].elem(start).elem(0).elem(0).real());
541 register int index_x = 0;
542 register int index_y = 0;
543 register int index_z = 0;
545 for(
int site=start; site <= end; ++site)
548 REAL x0r = InScale[index_x++];
549 REAL y0r = Add[index_y++];
550 REAL z0r = scalep*x0r + y0r;
551 Out[index_z++] =(REAL) z0r;
553 REAL x0i = InScale[index_x++];
554 REAL y0i = Add[index_y++];
555 REAL z0i = scalep*x0i + y0i;
556 Out[index_z++] =(REAL) z0i;
558 REAL x1r = InScale[index_x++];
559 REAL y1r = Add[index_y++];
560 REAL z1r = scalep*x1r + y1r;
561 Out[index_z++] = (REAL)z1r;
563 REAL x1i = InScale[index_x++];
564 REAL y1i = Add[index_y++];
565 REAL z1i = scalep*x1i + y1i;
566 Out[index_z++] = (REAL)z1i;
568 REAL x2r = InScale[index_x++];
569 REAL y2r = Add[index_y++];
570 REAL z2r = scalep*x2r + y2r;
571 Out[index_z++] = (REAL)z2r;
573 REAL x2i = InScale[index_x++];
574 REAL y2i = Add[index_y++];
575 REAL z2i = scalep*x2i + y2i;
576 Out[index_z++] = (REAL)z2i;
579 x0r = InScale[index_x++];
580 y0r = Add[index_y++];
581 z0r = scalep*x0r + y0r;
582 Out[index_z++] =(REAL) z0r;
584 x0i = InScale[index_x++];
585 y0i = Add[index_y++];
586 z0i = scalep*x0i + y0i;
587 Out[index_z++] =(REAL) z0i;
589 x1r = InScale[index_x++];
590 y1r = Add[index_y++];
591 z1r = scalep*x1r + y1r;
592 Out[index_z++] = (REAL)z1r;
594 x1i = InScale[index_x++];
595 y1i = Add[index_y++];
596 z1i = scalep*x1i + y1i;
597 Out[index_z++] = (REAL)z1i;
599 x2r = InScale[index_x++];
600 y2r = Add[index_y++];
601 z2r = scalep*x2r + y2r;
602 Out[index_z++] = (REAL)z2r;
604 x2i = InScale[index_x++];
605 y2i = Add[index_y++];
606 z2i = scalep*x2i + y2i;
607 Out[index_z++] = (REAL)z2i;
610 x0r = InScale[index_x++];
611 y0r = Add[index_y++];
612 z0r = scalep*x0r + y0r;
613 Out[index_z++] =(REAL) z0r;
615 x0i = InScale[index_x++];
616 y0i = Add[index_y++];
617 z0i = scalep*x0i + y0i;
618 Out[index_z++] =(REAL) z0i;
620 x1r = InScale[index_x++];
621 y1r = Add[index_y++];
622 z1r = scalep*x1r + y1r;
623 Out[index_z++] = (REAL)z1r;
625 x1i = InScale[index_x++];
626 y1i = Add[index_y++];
627 z1i = scalep*x1i + y1i;
628 Out[index_z++] = (REAL)z1i;
630 x2r = InScale[index_x++];
631 y2r = Add[index_y++];
632 z2r = scalep*x2r + y2r;
633 Out[index_z++] = (REAL)z2r;
635 x2i = InScale[index_x++];
636 y2i = Add[index_y++];
637 z2i = scalep*x2i + y2i;
638 Out[index_z++] = (REAL)z2i;
641 x0r = InScale[index_x++];
642 y0r = Add[index_y++];
643 z0r = scalep*x0r + y0r;
644 Out[index_z++] =(REAL) z0r;
646 x0i = InScale[index_x++];
647 y0i = Add[index_y++];
648 z0i = scalep*x0i + y0i;
649 Out[index_z++] =(REAL) z0i;
651 x1r = InScale[index_x++];
652 y1r = Add[index_y++];
653 z1r = scalep*x1r + y1r;
654 Out[index_z++] = (REAL)z1r;
656 x1i = InScale[index_x++];
657 y1i = Add[index_y++];
658 z1i = scalep*x1i + y1i;
659 Out[index_z++] = (REAL)z1i;
661 x2r = InScale[index_x++];
662 y2r = Add[index_y++];
663 z2r = scalep*x2r + y2r;
664 Out[index_z++] = (REAL)z2r;
666 x2i = InScale[index_x++];
667 y2i = Add[index_y++];
668 z2i = scalep*x2i + y2i;
669 Out[index_z++] = (REAL)z2i;
694 multi1d<LatticeFermion>&
chi,
695 const multi1d<LatticeFermion>&
psi,
701 multi1d<Fermion>
y(
N5);
703 for(
int site=rb[
cb].start(); site <= rb[
cb].end(); ++site)
708 REAL *In = (REAL *) &(
psi[0].elem(site).elem(0).elem(0).real());
709 REAL* Out = (REAL *) &(
y[0].elem().elem(0).elem(0).real());
711 register int index_x = 0;
712 register int index_z = 0;
714 Out[index_z++] = In[index_x++];
715 Out[index_z++] = In[index_x++];
716 Out[index_z++] = In[index_x++];
717 Out[index_z++] = In[index_x++];
718 Out[index_z++] = In[index_x++];
719 Out[index_z++] = In[index_x++];
721 Out[index_z++] = In[index_x++];
722 Out[index_z++] = In[index_x++];
723 Out[index_z++] = In[index_x++];
724 Out[index_z++] = In[index_x++];
725 Out[index_z++] = In[index_x++];
726 Out[index_z++] = In[index_x++];
728 Out[index_z++] = In[index_x++];
729 Out[index_z++] = In[index_x++];
730 Out[index_z++] = In[index_x++];
731 Out[index_z++] = In[index_x++];
732 Out[index_z++] = In[index_x++];
733 Out[index_z++] = In[index_x++];
735 Out[index_z++] = In[index_x++];
736 Out[index_z++] = In[index_x++];
737 Out[index_z++] = In[index_x++];
738 Out[index_z++] = In[index_x++];
739 Out[index_z++] = In[index_x++];
740 Out[index_z++] = In[index_x++];
744 for(
int i = 1;
i <
N5;
i++)
750 REAL scalep =
u[
i-1].elem().elem().elem().elem();
751 REAL *InScale = (REAL *) &(
y[
i-1].elem().elem(0).elem(0).real());
752 REAL *Add = (REAL *) &(
psi[
i].elem(site).elem(0).elem(0).real());
753 REAL* Out = (REAL *) &(
y[
i].elem().elem(0).elem(0).real());
757 register int index_x = 0;
758 register int index_y = 0;
759 register int index_z = 0;
762 REAL x0r = Add[index_x++];
763 REAL y0r = InScale[index_y++];
764 REAL z0r = x0r - scalep*y0r;
765 Out[index_z++] = z0r;
767 REAL x0i = Add[index_x++];
768 REAL y0i = InScale[index_y++];
769 REAL z0i = x0i - scalep*y0i;
770 Out[index_z++] = z0i;
772 REAL x1r = Add[index_x++];
773 REAL y1r = InScale[index_y++];
774 REAL z1r = x1r - scalep*y1r;
775 Out[index_z++] = z1r;
777 REAL x1i = Add[index_x++];
778 REAL y1i = InScale[index_y++];
779 REAL z1i = x1i - scalep*y1i;
780 Out[index_z++] = z1i;
782 REAL x2r = Add[index_x++];
783 REAL y2r = InScale[index_y++];
784 REAL z2r = x2r - scalep*y2r;
785 Out[index_z++] = z2r;
787 REAL x2i = Add[index_x++];
788 REAL y2i = InScale[index_y++];
789 REAL z2i = x2i - scalep*y2i;
790 Out[index_z++] = z2i;
793 x0r = Add[index_x++];
794 y0r = InScale[index_y++];
795 z0r = x0r - scalep*y0r;
796 Out[index_z++] = z0r;
798 x0i = Add[index_x++];
799 y0i = InScale[index_y++];
800 z0i = x0i - scalep*y0i;
801 Out[index_z++] = z0i;
803 x1r = Add[index_x++];
804 y1r = InScale[index_y++];
805 z1r = x1r - scalep*y1r;
806 Out[index_z++] = z1r;
808 x1i = Add[index_x++];
809 y1i = InScale[index_y++];
810 z1i = x1i - scalep*y1i;
811 Out[index_z++] = z1i;
813 x2r = Add[index_x++];
814 y2r = InScale[index_y++];
815 z2r = x2r - scalep*y2r;
816 Out[index_z++] = z2r;
818 x2i = Add[index_x++];
819 y2i = InScale[index_y++];
820 z2i = x2i - scalep*y2i;
821 Out[index_z++] = z2i;
824 x0r = Add[index_x++];
825 y0r = InScale[index_y++];
826 z0r = x0r + scalep*y0r;
827 Out[index_z++] = z0r;
829 x0i = Add[index_x++];
830 y0i = InScale[index_y++];
831 z0i = x0i + scalep*y0i;
832 Out[index_z++] = z0i;
834 x1r = Add[index_x++];
835 y1r = InScale[index_y++];
836 z1r = x1r + scalep*y1r;
837 Out[index_z++] = z1r;
839 x1i = Add[index_x++];
840 y1i = InScale[index_y++];
841 z1i = x1i + scalep*y1i;
842 Out[index_z++] = z1i;
844 x2r = Add[index_x++];
845 y2r = InScale[index_y++];
846 z2r = x2r + scalep*y2r;
847 Out[index_z++] = z2r;
849 x2i = Add[index_x++];
850 y2i = InScale[index_y++];
851 z2i = x2i + scalep*y2i;
852 Out[index_z++] = z2i;
855 x0r = Add[index_x++];
856 y0r = InScale[index_y++];
857 z0r = x0r + scalep*y0r;
858 Out[index_z++] = z0r;
860 x0i = Add[index_x++];
861 y0i = InScale[index_y++];
862 z0i = x0i + scalep*y0i;
863 Out[index_z++] = z0i;
865 x1r = Add[index_x++];
866 y1r = InScale[index_y++];
867 z1r = x1r + scalep*y1r;
868 Out[index_z++] = z1r;
870 x1i = Add[index_x++];
871 y1i = InScale[index_y++];
872 z1i = x1i + scalep*y1i;
873 Out[index_z++] = z1i;
875 x2r = Add[index_x++];
876 y2r = InScale[index_y++];
877 z2r = x2r + scalep*y2r;
878 Out[index_z++] = z2r;
880 x2i = Add[index_x++];
881 y2i = InScale[index_y++];
882 z2i = x2i + scalep*y2i;
883 Out[index_z++] = z2i;
897 REAL scalep =
invd[
N5-1].elem().elem().elem().elem();
898 REAL *In = (REAL *) &(
y[
N5-1].elem().elem(0).elem(0).real());
899 REAL *Out = (REAL *) &(
chi[
N5-1].elem(site).elem(0).elem(0).real());
903 register int index_x = 0;
904 register int index_z = 0;
907 REAL x0r = In[index_x++];
908 REAL z0r = scalep*x0r;
909 Out[index_z++] = z0r;
911 REAL x0i = In[index_x++];
912 REAL z0i = scalep*x0i;
913 Out[index_z++] = z0i;
915 REAL x1r = In[index_x++];
916 REAL z1r = scalep*x1r;
917 Out[index_z++] = z1r;
919 REAL x1i = In[index_x++];
920 REAL z1i = scalep*x1i;
921 Out[index_z++] = z1i;
923 REAL x2r = In[index_x++];
924 REAL z2r = scalep*x2r;
925 Out[index_z++] = z2r;
927 REAL x2i = In[index_x++];
928 REAL z2i = scalep*x2i;
929 Out[index_z++] = z2i;
934 Out[index_z++] = z0r;
938 Out[index_z++] = z0i;
942 Out[index_z++] = z1r;
946 Out[index_z++] = z1i;
950 Out[index_z++] = z2r;
954 Out[index_z++] = z2i;
959 Out[index_z++] =- z0r;
963 Out[index_z++] =- z0i;
967 Out[index_z++] =-z1r;
971 Out[index_z++] =-z1i;
975 Out[index_z++] =-z2r;
979 Out[index_z++] =-z2i;
984 Out[index_z++] =- z0r;
988 Out[index_z++] =- z0i;
992 Out[index_z++] =-z1r;
996 Out[index_z++] =-z1i;
1000 Out[index_z++] =-z2r;
1002 x2i = In[index_x++];
1004 Out[index_z++] =-z2i;
1008 for(
int i =
N5-2;
i >= 0;
i--)
1016 REAL scalep =
invd[
i].elem().elem().elem().elem();
1017 REAL scalep2 =
u[
i].elem().elem().elem().elem();
1018 REAL *InScale = (REAL *) &(
y[
i].elem().elem(0).elem(0).real());
1019 REAL *Add = (REAL *) &(
chi[
i+1].elem(site).elem(0).elem(0).real());
1020 REAL* Out = (REAL *) &(
chi[
i].elem(site).elem(0).elem(0).real());
1024 register int index_x = 0;
1025 register int index_y = 0;
1026 register int index_z = 0;
1029 REAL x0r = InScale[index_x++];
1030 REAL y0r = Add[index_y++];
1031 REAL z0r = scalep*x0r ;
1033 Out[index_z++] = z0r;
1035 REAL x0i = InScale[index_x++];
1036 REAL y0i = Add[index_y++];
1037 REAL z0i = scalep*x0i;
1039 Out[index_z++] = z0i;
1041 REAL x1r = InScale[index_x++];
1042 REAL y1r = Add[index_y++];
1043 REAL z1r = scalep*x1r ;
1045 Out[index_z++] = z1r;
1047 REAL x1i = InScale[index_x++];
1048 REAL y1i = Add[index_y++];
1049 REAL z1i = scalep*x1i;
1051 Out[index_z++] = z1i;
1053 REAL x2r = InScale[index_x++];
1054 REAL y2r = Add[index_y++];
1055 REAL z2r = scalep*x2r ;
1057 Out[index_z++] = z2r;
1059 REAL x2i = InScale[index_x++];
1060 REAL y2i = Add[index_y++];
1061 REAL z2i = scalep*x2i ;
1063 Out[index_z++] = z2i;
1066 x0r = InScale[index_x++];
1067 y0r = Add[index_y++];
1070 Out[index_z++] = z0r;
1072 x0i = InScale[index_x++];
1073 y0i = Add[index_y++];
1076 Out[index_z++] = z0i;
1078 x1r = InScale[index_x++];
1079 y1r = Add[index_y++];
1082 Out[index_z++] = z1r;
1084 x1i = InScale[index_x++];
1085 y1i = Add[index_y++];
1088 Out[index_z++] = z1i;
1090 x2r = InScale[index_x++];
1091 y2r = Add[index_y++];
1094 Out[index_z++] = z2r;
1096 x2i = InScale[index_x++];
1097 y2i = Add[index_y++];
1100 Out[index_z++] = z2i;
1103 x0r = InScale[index_x++];
1104 y0r = Add[index_y++];
1108 Out[index_z++] = z0r;
1110 x0i = InScale[index_x++];
1111 y0i = Add[index_y++];
1114 Out[index_z++] = z0i;
1116 x1r = InScale[index_x++];
1117 y1r = Add[index_y++];
1120 Out[index_z++] = z1r;
1122 x1i = InScale[index_x++];
1123 y1i = Add[index_y++];
1126 Out[index_z++] = z1i;
1128 x2r = InScale[index_x++];
1129 y2r = Add[index_y++];
1132 Out[index_z++] = z2r;
1134 x2i = InScale[index_x++];
1135 y2i = Add[index_y++];
1138 Out[index_z++] = z2i;
1141 x0r = InScale[index_x++];
1142 y0r = Add[index_y++];
1146 Out[index_z++] = z0r;
1148 x0i = InScale[index_x++];
1149 y0i = Add[index_y++];
1152 Out[index_z++] = z0i;
1154 x1r = InScale[index_x++];
1155 y1r = Add[index_y++];
1158 Out[index_z++] = z1r;
1160 x1i = InScale[index_x++];
1161 y1i = Add[index_y++];
1164 Out[index_z++] = z1i;
1166 x2r = InScale[index_x++];
1167 y2r = Add[index_y++];
1170 Out[index_z++] = z2r;
1172 x2i = InScale[index_x++];
1173 y2i = Add[index_y++];
1176 Out[index_z++] = z2i;
Primary include file for CHROMA library code.
const multi1d< Real > alpha
Optimized Even-odd prec. 5D continued fraction linop.
void applyDiagInv(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
Apply the inverse even-even (odd-odd) coupling piece of the domain-wall fermion operator.
virtual void applyDiag(multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
Apply the even-even (odd-odd) coupling piece of the domain-wall fermion operator.
Asqtad Staggered-Dirac operator.
multi1d< LatticeFermion > chi(Ncb)