18 #include <bitcalc.hpp> 19 #include "xsetmem.hpp" 20 #include "wrapperMPI.hpp" 21 #include "mltplyCommon.hpp" 22 #include "mltplyHubbardCore.hpp" 50 if (isite1 > isite2) {
53 else if (isite1 < isite2) {
57 if (sigma1 > sigma2) {
86 std::complex<double> tmp_V
88 long int is1_spin, is2_spin, is3_spin, is4_spin;
89 long int A_spin, B_spin;
90 long int isA_spin, isB_spin;
95 is1_spin = X->
Def.
Tpow[2 * isite1 - 2 + sigma1];
96 is2_spin = X->
Def.
Tpow[2 * isite2 - 2 + sigma2];
100 if (isite1 > isite2) {
101 A_spin = (X->
Def.
Tpow[2 * isite1 - 2 + sigma1] - X->
Def.
Tpow[2 * isite2 - 1 + sigma2]);
103 else if (isite2 > isite1) {
104 A_spin = (X->
Def.
Tpow[2 * isite2 - 2 + sigma2] - X->
Def.
Tpow[2 * isite1 - 1 + sigma1]);
107 if (sigma1 > sigma2) {
108 A_spin = (X->
Def.
Tpow[2 * isite1 - 2 + sigma1] - X->
Def.
Tpow[2 * isite2 - 1 + sigma2]);
111 A_spin = (X->
Def.
Tpow[2 * isite2 - 2 + sigma2] - X->
Def.
Tpow[2 * isite1 - 1 + sigma1]);
118 is3_spin = X->
Def.
Tpow[2 * isite3 - 2 + sigma3];
119 is4_spin = X->
Def.
Tpow[2 * isite4 - 2 + sigma4];
123 if (isite3 > isite4) {
124 B_spin = (X->
Def.
Tpow[2 * isite3 - 2 + sigma3] - X->
Def.
Tpow[2 * isite4 - 1 + sigma4]);
126 else if (isite3 < isite4) {
127 B_spin = (X->
Def.
Tpow[2 * isite4 - 2 + sigma4] - X->
Def.
Tpow[2 * isite3 - 1 + sigma3]);
130 if (sigma3 > sigma4) {
131 B_spin = (X->
Def.
Tpow[2 * isite3 - 2 + sigma3] - X->
Def.
Tpow[2 * isite4 - 1 + sigma4]);
134 B_spin = (X->
Def.
Tpow[2 * isite4 - 2 + sigma4] - X->
Def.
Tpow[2 * isite3 - 1 + sigma3]);
140 isA_spin = is1_spin + is2_spin;
141 isB_spin = is3_spin + is4_spin;
234 std::complex<double> **tmp_v0,
235 std::complex<double> **tmp_v1,
237 std::complex<double> tmp_trans
241 std::complex<double> dmv;
245 A_ibit_tmp = (list_1_j & is1_spin) / is1_spin;
246 dmv = tmp_trans * (std::complex<double>)A_ibit_tmp;
247 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[j][0], &one);
255 int nstate, std::complex<double> **tmp_v0,
256 std::complex<double> **tmp_v1,
258 std::complex<double> tmp_trans
262 std::complex<double> dmv;
266 A_ibit_tmp = (list_1_j & is1_spin) / is1_spin;
267 dmv = tmp_trans * (std::complex<double>)(1 - A_ibit_tmp);
268 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[j][0], &one);
283 A_ibit_tmp = (list_1_j & is1_spin) / is1_spin;
293 int nstate, std::complex<double> **tmp_v0,
294 std::complex<double> **tmp_v1,
300 std::complex<double> tmp_V
302 long int ibit_tmp_1, ibit_tmp_2;
303 long int bit, iexchg, off;
305 std::complex<double> dmv;
308 ibit_tmp_1 = (
list_1[j] & is1_spin);
309 ibit_tmp_2 = (
list_1[j] & is2_spin);
310 if (ibit_tmp_1 == 0 && ibit_tmp_2 != 0) {
311 bit =
list_1[j] & diff_spin;
313 iexchg =
list_1[j] ^ sum_spin;
318 dmv = (std::complex<double>)sgn * tmp_V;
319 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[off][0], &one);
332 int nstate, std::complex<double> **tmp_v0,
333 std::complex<double> **tmp_v1,
338 std::complex<double> tmp_V,
341 long int list_1_j, list_1_off;
342 long int ibit_tmp_1, ibit_tmp_2;
345 std::complex<double> dmv;
348 ibit_tmp_1 = (list_1_j & is1_spin);
349 ibit_tmp_2 = (list_1_j & is2_spin);
353 if (ibit_tmp_1 == 0 && ibit_tmp_2 != 0) {
354 bit = list_1_j & diff_spin;
356 list_1_off = list_1_j ^ sum_spin;
357 *tmp_off = list_1_off;
358 dmv = (std::complex<double>)sgn * tmp_V;
359 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[list_1_off + 1][0], &one);
383 sgn =
X_GC_CisAjt(list_1_j, is1_spin, is2_spin, sum_spin, diff_spin, tmp_off);
411 long int ibit_tmp_1, ibit_tmp_2;
415 ibit_tmp_1 = (list_1_j & is1_spin);
416 ibit_tmp_2 = (list_1_j & is2_spin);
418 if (ibit_tmp_1 == 0 && ibit_tmp_2 != 0) {
419 bit = list_1_j & diff_spin;
421 off = list_1_j ^ sum_spin;
444 int nstate, std::complex<double> **tmp_v0,
445 std::complex<double> **tmp_v1,
450 long int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
451 std::complex<double> dmv;
463 ibit1_up =
list_1[j] & is1_up;
464 ibit2_up =
list_1[j] & is2_up;
465 ibit1_down =
list_1[j] & is1_down;
466 ibit2_down =
list_1[j] & is2_down;
468 if (ibit1_up == 0 && ibit1_down != 0 && ibit2_up != 0 && ibit2_down == 0) {
469 iexchg =
list_1[j] - (is1_down + is2_up);
470 iexchg += (is1_up + is2_down);
476 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[off][0], &one);
478 else if (ibit1_up != 0 && ibit1_down == 0 && ibit2_up == 0 && ibit2_down != 0) {
479 iexchg =
list_1[j] - (is1_up + is2_down);
480 iexchg += (is1_down + is2_up);
486 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[off][0], &one);
496 int nstate, std::complex<double> **tmp_v0,
497 std::complex<double> **tmp_v1,
502 long int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
503 std::complex<double> dmv;
515 ibit1_up =
list_1[j] & is1_up;
516 ibit2_up =
list_1[j] & is2_up;
517 ibit1_down =
list_1[j] & is1_down;
518 ibit2_down =
list_1[j] & is2_down;
520 if (ibit1_up == 0 && ibit1_down == 0 && ibit2_up != 0 && ibit2_down != 0) {
521 iexchg =
list_1[j] - (is2_up + is2_down);
522 iexchg += (is1_up + is1_down);
529 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[off][0], &one);
539 int nstate, std::complex<double> **tmp_v0,
540 std::complex<double> **tmp_v1,
544 long int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
545 std::complex<double> dmv;
551 long int list_1_j, list_1_off;
556 ibit1_up = list_1_j & is1_up;
557 ibit2_up = list_1_j & is2_up;
558 ibit1_down = list_1_j & is1_down;
559 ibit2_down = list_1_j & is2_down;
561 if (ibit1_up == 0 && ibit1_down != 0 && ibit2_up != 0 && ibit2_down == 0) {
563 iexchg = list_1_j - (is1_down + is2_up);
564 iexchg += (is1_up + is2_down);
566 *tmp_off = list_1_off;
569 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[list_1_off + 1][0], &one);
571 else if (ibit1_up != 0 && ibit1_down == 0 && ibit2_up == 0 && ibit2_down != 0) {
572 iexchg = list_1_j - (is1_up + is2_down);
573 iexchg += (is1_down + is2_up);
575 *tmp_off = list_1_off;
578 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[list_1_off + 1][0], &one);
588 int nstate, std::complex<double> **tmp_v0,
589 std::complex<double> **tmp_v1,
593 long int ibit1_up, ibit2_up, ibit1_down, ibit2_down;
594 std::complex<double> dmv;
600 long int list_1_j, list_1_off;
606 ibit1_up = list_1_j & is1_up;
608 ibit2_up = list_1_j & is2_up;
610 ibit1_down = list_1_j & is1_down;
612 ibit2_down = list_1_j & is2_down;
614 if (ibit1_up == 0 && ibit1_down == 0 && ibit2_up != 0 && ibit2_down != 0) {
615 iexchg = list_1_j - (is2_up + is2_down);
616 iexchg += (is1_up + is1_down);
618 *tmp_off = list_1_off;
620 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[list_1_off + 1][0], &one);
633 std::complex<double> tmp_V,
634 int nstate, std::complex<double> **tmp_v0,
635 std::complex<double> **tmp_v1
638 std::complex<double> dmv;
642 dmv = tmp_V * (std::complex<double>)tmp_sgn;
643 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[j][0], &one);
658 std::complex<double> tmp_V,
659 int nstate, std::complex<double> **tmp_v0,
660 std::complex<double> **tmp_v1,
665 std::complex<double> dmv;
667 tmp_sgn =
X_CisAjt(
list_1[j], X, isite3, isite4, Bsum, Bdiff, tmp_off);
671 dmv = tmp_V * (std::complex<double>)tmp_sgn;
672 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[*tmp_off][0], &one);
689 std::complex<double> tmp_V,
690 int nstate, std::complex<double> **tmp_v0,
691 std::complex<double> **tmp_v1,
696 std::complex<double> dmv;
700 tmp_sgn *=
X_CisAjt(
list_1[j], X, isite1, isite2, Asum, Adiff, tmp_off);
702 dmv = tmp_V * (std::complex<double>)tmp_sgn;
703 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[*tmp_off][0], &one);
723 std::complex<double> tmp_V,
724 int nstate, std::complex<double> **tmp_v0,
725 std::complex<double> **tmp_v1,
733 std::complex<double> dmv;
737 tmp_sgn *=
X_CisAjt(tmp_off_1, X, isite1, isite2, Asum, Adiff, tmp_off_2);
739 dmv = tmp_V * (std::complex<double>)tmp_sgn;
740 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[*tmp_off_2][0], &one);
755 std::complex<double> tmp_V,
756 int nstate, std::complex<double> **tmp_v0,
757 std::complex<double> **tmp_v1
760 std::complex<double> dmv;
765 dmv = tmp_V * (std::complex<double>)tmp_sgn;
766 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[j][0], &one);
782 std::complex<double> tmp_V,
783 int nstate, std::complex<double> **tmp_v0,
784 std::complex<double> **tmp_v1,
788 std::complex<double> dmv;
790 tmp_sgn =
X_GC_CisAjt((j - 1), isite3, isite4, Bsum, Bdiff, tmp_off);
792 tmp_sgn *=
X_CisAis(*tmp_off, isite1);
794 dmv = tmp_V * (std::complex<double>)tmp_sgn;
795 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[*tmp_off + 1][0], &one);
812 std::complex<double> tmp_V,
813 int nstate, std::complex<double> **tmp_v0,
814 std::complex<double> **tmp_v1,
818 std::complex<double> dmv;
822 tmp_sgn *=
X_GC_CisAjt(j - 1, isite1, isite2, Asum, Adiff, tmp_off);
824 dmv = tmp_V * (std::complex<double>)tmp_sgn;
825 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[*tmp_off + 1][0], &one);
845 std::complex<double> tmp_V,
846 int nstate, std::complex<double> **tmp_v0,
847 std::complex<double> **tmp_v1,
852 std::complex<double> dmv;
855 tmp_sgn =
X_GC_CisAjt(j - 1, isite3, isite4, Bsum, Bdiff, &tmp_off_1);
857 tmp_sgn *=
X_GC_CisAjt(tmp_off_1, isite1, isite2, Asum, Adiff, tmp_off_2);
859 dmv = tmp_V * (std::complex<double>)tmp_sgn;
860 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[*tmp_off_2 + 1][0], &one);
874 int nstate, std::complex<double> **tmp_v0,
875 std::complex<double> **tmp_v1,
877 std::complex<double> tmp_V,
880 long int list_1_j, list_1_off;
884 std::complex<double> dmv;
889 ibit_tmp_1 = (list_1_j & is1_spin);
895 if (ibit_tmp_1 == 0) {
897 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
903 list_1_off = list_1_j | is1_spin;
904 *tmp_off = list_1_off;
905 dmv = (std::complex<double>)(ipsgn * sgn) * tmp_V;
906 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[list_1_off + 1][0], &one);
921 int nstate, std::complex<double> **tmp_v0,
922 std::complex<double> **tmp_v1,
924 std::complex<double> tmp_V,
927 long int list_1_j, list_1_off;
931 std::complex<double> dmv;
936 ibit_tmp_1 = (list_1_j & is1_spin);
941 if (ibit_tmp_1 == is1_spin) {
943 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
949 list_1_off = list_1_j ^ is1_spin;
950 *tmp_off = list_1_off;
951 dmv = (std::complex<double>)(ipsgn * sgn) * tmp_V;
952 zaxpy_(&nstate, &dmv, &tmp_v1[j][0], &one, &tmp_v0[list_1_off + 1][0], &one);
971 long int *list_2_1_target,
972 long int *list_2_2_target,
977 long int list_1_j, list_1_off;
982 list_1_j = list_1_org[j];
984 ibit_tmp_1 = (list_1_j & is1_spin);
990 if (ibit_tmp_1 == 0) {
992 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
998 list_1_off = list_1_j | is1_spin;
1000 if(
GetOffComp(list_2_1_target, list_2_2_target, list_1_off, _irght, _ilft, _ihfbit, tmp_off)!=TRUE){
1025 long int *list_2_1_target,
1026 long int *list_2_2_target,
1031 long int list_1_j, list_1_off;
1032 long int ibit_tmp_1;
1036 list_1_j = list_1_org[j];
1038 ibit_tmp_1 = (list_1_j & is1_spin);
1043 if (ibit_tmp_1 != 0) {
1045 bit = list_1_j - (list_1_j & (2 * is1_spin - 1));
1051 list_1_off = list_1_j ^ is1_spin;
1052 if(
GetOffComp(list_2_1_target, list_2_2_target, list_1_off, _irght, _ilft, _ihfbit, tmp_off)!=TRUE){
int child_exchange_GetInfo(int iExchange, struct BindStruct *X)
Compute mask for bit operation of exchange term.
struct DefineList Def
Definision of system (Hamiltonian) etc.
long int is1_down
Mask used in the bit oeration.
void child_CisAjtCkuAku_element(long int j, long int isite1, long int isite2, long int isite3, long int Asum, long int Adiff, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int *tmp_off)
Compute term of canonical Hubbard system.
void GC_AisCis(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int is1_spin, std::complex< double > tmp_trans)
Operation of (Grandcanonical)
long int is2_spin
Mask used in the bit oeration.
void GC_CisAjt(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int is1_spin, long int is2_spin, long int sum_spin, long int diff_spin, std::complex< double > tmp_V, long int *tmp_off)
term for grandcanonical Hubbard
int ** ExchangeCoupling
[DefineList::NExchangeCoupling][2] Index of exchange term. malloc in setmem_def().
void child_exchange_element(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int *tmp_off)
Compute exchange term of canonical-Hubbard.
long int is1_up
Mask used in the bit oeration.
void GC_child_exchange_element(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int *tmp_off)
Compute exchange term of grandcanonical Hubbard system.
struct LargeList Large
Variables for Matrix-Vector product.
std::complex< double > tmp_J
Coupling constant.
int isite2
Is it realy used ???
void GC_child_CisAisCjtAku_element(long int j, long int isite1, long int isite3, long int isite4, long int Bsum, long int Bdiff, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int *tmp_off)
Compute term of grandcanonical Hubbard system.
long int is4_spin
Mask used in the bit oeration.
long int irght
Used for Ogata-Lin ???
int X_GC_CisAjt(long int list_1_j, long int is1_spin, long int is2_spin, long int sum_spin, long int diff_spin, long int *tmp_off)
Compute index of wavefunction of final state.
int isite3
Is it realy used ???
long int A_spin
Mask used in the bit oeration.
int ** PairHopping
[DefineList::NPairHopping][2] Index of pair-hopping. malloc in setmem_def().
void GC_Ajt(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int is1_spin, std::complex< double > tmp_V, long int *tmp_off)
Compute term of grandcanonical Hubbard system.
int X_Cis(long int j, long int is1_spin, long int *tmp_off, long int *list_1_org, long int *list_2_1_target, long int *list_2_2_target, long int _irght, long int _ilft, long int _ihfbit)
Compute index of final wavefunction associatesd to term of canonical Hubbard system.
void GC_CisAis(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int is1_spin, std::complex< double > tmp_trans)
Operation of (Grandcanonical)
long int B_spin
Mask used in the bit oeration.
int child_pairhopp_GetInfo(int iPairHopp, struct BindStruct *X)
Compute mask for bit operation of pairhop term.
long int ilft
Used for Ogata-Lin ???
double * ParaExchangeCoupling
[DefineList::NExchangeCoupling] Coupling constant of exchange term. malloc in setmem_def().
void child_CisAisCjtAku_element(long int j, long int isite1, long int isite3, long int isite4, long int Bsum, long int Bdiff, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int *tmp_off)
Compute term of canonical Hubbard system.
int GetOffComp(long int *_list_2_1, long int *_list_2_2, long int _ibit, const long int _irght, const long int _ilft, const long int _ihfbit, long int *_ioffComp)
function of getting off-diagonal component
long int ihfbit
Used for Ogata-Lin ???
void GC_child_pairhopp_element(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int *tmp_off)
Compute pairhopp term of grandcanonical Hubbard system.
int X_Ajt(long int j, long int is1_spin, long int *tmp_off, long int *list_1_org, long int *list_2_1_target, long int *list_2_2_target, long int _irght, long int _ilft, long int _ihfbit)
Compute index of final wavefunction associatesd to term of canonical Hubbard system.
int X_CisAis(long int list_1_j, long int is1_spin)
term in Hubbard (canonical)
int myrank
Process ID, defined in InitializeMPI()
void GC_child_CisAjtCkuAlv_element(long int j, long int isite1, long int isite2, long int isite3, long int isite4, long int Asum, long int Adiff, long int Bsum, long int Bdiff, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int *tmp_off_2)
Compute term of grandcanonical Hubbard system.
int X_CisAjt(long int list_1_j, struct BindStruct *X, long int is1_spin, long int is2_spin, long int sum_spin, long int diff_spin, long int *tmp_off)
Compute index of wavefunction of final state.
void child_pairhopp_element(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int *tmp_off)
Compute pairhopp term of canonical Hubbard system.
int isite4
Is it realy used ???
void child_CisAjtCkuAlv_element(long int j, long int isite1, long int isite2, long int isite3, long int isite4, long int Asum, long int Adiff, long int Bsum, long int Bdiff, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int *tmp_off_2)
Compute term of canonical Hubbard system.
long int * Tpow
[2 * DefineList::NsiteMPI] malloc in setmem_def().
void GC_Cis(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int is1_spin, std::complex< double > tmp_V, long int *tmp_off)
Compute term of grandcanonical Hubbard system.
double * ParaPairHopping
[DefineList::NPairHopping] Coupling constant of pair-hopping term. malloc in setmem_def().
int child_general_hopp_GetInfo(struct BindStruct *X, long int isite1, long int isite2, long int sigma1, long int sigma2)
Compute mask for bit operation of hopping term.
void child_CisAisCisAis_element(long int j, long int isite1, long int isite3, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Compute term of canonical Hubbard system.
int child_general_int_GetInfo(struct BindStruct *X, long int isite1, long int isite2, long int isite3, long int isite4, long int sigma1, long int sigma2, long int sigma3, long int sigma4, std::complex< double > tmp_V)
Compute mask for bit operation of general interaction term.
long int is3_spin
Mask used in the bit oeration.
long int is1_spin
Mask used in the bit oeration.
long int isA_spin
Mask used in the bit oeration.
void CisAjt(long int j, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, struct BindStruct *X, long int is1_spin, long int is2_spin, long int sum_spin, long int diff_spin, std::complex< double > tmp_V)
term for canonical Hubbard
void GC_child_CisAjtCkuAku_element(long int j, long int isite1, long int isite2, long int isite3, long int Asum, long int Adiff, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1, long int *tmp_off)
Compute term of grandcanonical Hubbard system.
long int isB_spin
Mask used in the bit oeration.
long int is2_down
Mask used in the bit oeration.
int isite1
Is it realy used ???
void GC_child_CisAisCisAis_element(long int j, long int isite1, long int isite3, std::complex< double > tmp_V, int nstate, std::complex< double > **tmp_v0, std::complex< double > **tmp_v1)
Compute term of grandcanonical Hubbard system.
long int is2_up
Mask used in the bit oeration.
void SgnBit(const long int org_bit, int *sgn)
function of getting fermion sign (64 bit)
std::complex< double > tmp_V
Coupling constant.