30 assert(ex1 < u1.
nex());
31 assert(ex2 < u2.
nex());
38 for (
int site = 0; site <
m_Nvol; ++site) {
39 ut = u1.
mat(site, ex1) * u2.
mat(site, ex2);
40 for (
int cc = 0; cc < Ncp; ++cc) {
53 assert(ex1 < u1.
nex());
54 assert(ex2 < u2.
nex());
59 int Ncp = m_Nc *
m_Nc;
61 for (
int site = 0; site <
m_Nvol; ++site) {
62 ut = u1.
mat_dag(site, ex1) * u2.
mat(site, ex2);
63 for (
int cc = 0; cc < Ncp; ++cc) {
76 assert(ex1 < u1.
nex());
77 assert(ex2 < u2.
nex());
82 int Ncp = m_Nc *
m_Nc;
84 for (
int site = 0; site <
m_Nvol; ++site) {
85 ut = u1.
mat(site, ex1) * u2.
mat_dag(site, ex2);
86 for (
int cc = 0; cc < Ncp; ++cc) {
99 assert(ex1 < u1.
nex());
100 assert(ex2 < u2.
nex());
105 int Ncp = m_Nc *
m_Nc;
107 for (
int site = 0; site <
m_Nvol; ++site) {
109 for (
int cc = 0; cc < Ncp; ++cc) {
119 const Field_G& u2,
int ex2,
double ff)
122 assert(ex1 < u1.
nex());
123 assert(ex2 < u2.
nex());
128 int Ncp = m_Nc *
m_Nc;
130 for (
int site = 0; site <
m_Nvol; ++site) {
131 ut = u1.
mat(site, ex1) * u2.
mat(site, ex2);
132 for (
int cc = 0; cc < Ncp; ++cc) {
142 const Field_G& u2,
int ex2,
double ff)
145 assert(ex1 < u1.
nex());
146 assert(ex2 < u2.
nex());
151 int Ncp = m_Nc *
m_Nc;
153 for (
int site = 0; site <
m_Nvol; ++site) {
154 ut = u1.
mat_dag(site, ex1) * u2.
mat(site, ex2);
155 for (
int cc = 0; cc < Ncp; ++cc) {
165 const Field_G& u2,
int ex2,
double ff)
168 assert(ex1 < u1.
nex());
169 assert(ex2 < u2.
nex());
174 int Ncp = m_Nc *
m_Nc;
176 for (
int site = 0; site <
m_Nvol; ++site) {
177 ut = u1.
mat(site, ex1) * u2.
mat_dag(site, ex2);
178 for (
int cc = 0; cc < Ncp; ++cc) {
188 const Field_G& u2,
int ex2,
double ff)
191 assert(ex1 < u1.
nex());
192 assert(ex2 < u2.
nex());
197 int Ncp = m_Nc *
m_Nc;
199 for (
int site = 0; site <
m_Nvol; ++site) {
201 for (
int cc = 0; cc < Ncp; ++cc) {
216 for (
int site = 0; site <
m_Nvol; ++site) {
219 for (
int a = 0; a <
m_Nc; ++a) {
220 for (
int b = a + 1; b <
m_Nc; ++b) {
221 double re =
field[
myindex(2 * (m_Nc * a + b), site, ex)]
223 double im = field[
myindex(2 * (m_Nc * a + b) + 1, site, ex)]
224 + field[
myindex(2 * (m_Nc * b + a) + 1, site, ex)];
226 field[
myindex(2 * (m_Nc * a + b), site, ex)] = 0.5 * re;
227 field[
myindex(2 * (m_Nc * a + b) + 1, site, ex)] = 0.5 * im;
229 field[
myindex(2 * (m_Nc * b + a), site, ex)] = -0.5 * re;
230 field[
myindex(2 * (m_Nc * b + a) + 1, site, ex)] = 0.5 * im;
234 for (
int cc = 0; cc <
m_Nc; ++cc) {
235 tr += field[
myindex(2 * (m_Nc * cc + cc) + 1, site, ex)];
238 for (
int cc = 0; cc <
m_Nc; ++cc) {
239 field[
myindex(2 * (m_Nc * cc + cc), site, ex)] = 0.0;
240 field[
myindex(2 * (m_Nc * cc + cc) + 1, site, ex)] -= tr;
253 for (
int site = 0; site <
m_Nvol; ++site) {
256 for (
int a = 0; a <
m_Nc; ++a) {
257 for (
int b = a; b <
m_Nc; ++b) {
258 double re = field[
myindex(2 * (m_Nc * a + b), site, ex)]
259 - field[
myindex(2 * (m_Nc * b + a), site, ex)];
260 double im = field[
myindex(2 * (m_Nc * a + b) + 1, site, ex)]
261 + field[
myindex(2 * (m_Nc * b + a) + 1, site, ex)];
263 field[
myindex(2 * (m_Nc * a + b), site, ex)] = 0.5 * re;
264 field[
myindex(2 * (m_Nc * a + b) + 1, site, ex)] = 0.5 * im;
266 field[
myindex(2 * (m_Nc * b + a), site, ex)] = -0.5 * re;
267 field[
myindex(2 * (m_Nc * b + a) + 1, site, ex)] = 0.5 * im;