Making Hamiltonian for the full diagonalization method.
The Hamiltonian is stored in the two dimensional array \( \verb|Ham| \).
57 long unsigned int i, j;
58 long unsigned int is1_spin;
59 long unsigned int irght, ilft, ihfbit;
62 long unsigned int off;
63 long unsigned int isite1, isite2, isite3, isite4;
64 int sigma1, sigma2, sigma3, sigma4;
65 long unsigned int isA_up, isB_up;
66 double complex tmp_trans, tmp_V;
67 long unsigned int Asum, Bsum, Adiff, Bdiff;
68 long unsigned int tmp_off, tmp_off_2;
73 long unsigned int i_max;
74 i_max =
X->Check.idim_max;
81 X->Large.i_max = i_max;
82 X->Large.irght = irght;
84 X->Large.ihfbit = ihfbit;
86 X->Large.mode = M_Ham;
88 for (i = 0; i <= i_max; i++) {
89 for (j = 0; j <= i_max; j++) {
93 #pragma omp parallel for default(none) firstprivate(i_max) private(j) shared(Ham, list_Diagonal, v0, v1) 94 for (j = 1; j <= i_max; j++) {
100 switch (
X->Def.iCalcModel) {
103 for (i = 0; i <
X->Def.EDNTransfer / 2; i++) {
104 for (ihermite = 0; ihermite < 2; ihermite++) {
105 idx = 2 * i + ihermite;
106 isite1 =
X->Def.EDGeneralTransfer[idx][0] + 1;
107 isite2 =
X->Def.EDGeneralTransfer[idx][2] + 1;
108 sigma1 =
X->Def.EDGeneralTransfer[idx][1];
109 sigma2 =
X->Def.EDGeneralTransfer[idx][3];
114 tmp_trans = -
X->Def.EDParaGeneralTransfer[idx];
116 for (j = 1; j <=
X->Large.i_max; j++) {
118 GC_CisAjt(j,
v0,
v1,
X,
X->Large.is1_spin,
X->Large.is2_spin,
X->Large.isA_spin,
X->Large.A_spin,
119 tmp_trans, &tmp_off);
120 Ham[tmp_off + 1][j] += dmv;
126 for (i = 0; i <
X->Def.NInterAll_OffDiagonal / 2; i++) {
127 for (ihermite = 0; ihermite < 2; ihermite++) {
128 idx = 2 * i + ihermite;
129 isite1 =
X->Def.InterAll_OffDiagonal[idx][0] + 1;
130 isite2 =
X->Def.InterAll_OffDiagonal[idx][2] + 1;
131 isite3 =
X->Def.InterAll_OffDiagonal[idx][4] + 1;
132 isite4 =
X->Def.InterAll_OffDiagonal[idx][6] + 1;
133 sigma1 =
X->Def.InterAll_OffDiagonal[idx][1];
134 sigma2 =
X->Def.InterAll_OffDiagonal[idx][3];
135 sigma3 =
X->Def.InterAll_OffDiagonal[idx][5];
136 sigma4 =
X->Def.InterAll_OffDiagonal[idx][7];
137 tmp_V =
X->Def.ParaInterAll_OffDiagonal[idx];
152 i_max =
X->Large.i_max;
153 isite1 =
X->Large.is1_spin;
154 isite2 =
X->Large.is2_spin;
155 Asum =
X->Large.isA_spin;
156 Adiff =
X->Large.A_spin;
158 isite3 =
X->Large.is3_spin;
159 isite4 =
X->Large.is4_spin;
160 Bsum =
X->Large.isB_spin;
161 Bdiff =
X->Large.B_spin;
163 tmp_V =
X->Large.tmp_V;
165 if (isite1 == isite2 && isite3 == isite4) {
167 for (j = 1; j <= i_max; j++) {
171 }
else if (isite1 == isite2 && isite3 != isite4) {
173 for (j = 1; j <= i_max; j++) {
174 dmv =
GC_child_CisAisCjtAku_element(j, isite1, isite3, isite4, Bsum, Bdiff, tmp_V,
v0,
v1,
X, &tmp_off);
175 Ham[tmp_off + 1][j] += dmv;
177 }
else if (isite1 != isite2 && isite3 == isite4) {
179 for (j = 1; j <= i_max; j++) {
180 dmv =
GC_child_CisAjtCkuAku_element(j, isite1, isite2, isite3, Asum, Adiff, tmp_V,
v0,
v1,
X, &tmp_off);
181 Ham[tmp_off + 1][j] += dmv;
183 }
else if (isite1 != isite2 && isite3 != isite4) {
185 for (j = 1; j <= i_max; j++) {
186 dmv =
GC_child_CisAjtCkuAlv_element(j, isite1, isite2, isite3, isite4, Asum, Adiff, Bsum, Bdiff, tmp_V,
187 v0,
v1,
X, &tmp_off_2);
188 Ham[tmp_off_2 + 1][j] += dmv;
194 for (i = 0; i <
X->Def.NPairHopping / 2; i++) {
195 for (ihermite = 0; ihermite < 2; ihermite++) {
196 idx = 2 * i + ihermite;
198 for (j = 1; j <=
X->Large.i_max; j++) {
200 Ham[tmp_off + 1][j] += dmv;
205 for (i = 0; i <
X->Def.NExchangeCoupling; i++) {
207 for (j = 1; j <=
X->Large.i_max; j++) {
209 Ham[tmp_off + 1][j] += dmv;
217 for (i = 0; i <
X->Def.EDNTransfer / 2; i++) {
218 for (ihermite = 0; ihermite < 2; ihermite++) {
219 idx = 2 * i + ihermite;
221 isite1 =
X->Def.EDGeneralTransfer[idx][0] + 1;
222 isite2 =
X->Def.EDGeneralTransfer[idx][2] + 1;
223 sigma1 =
X->Def.EDGeneralTransfer[idx][1];
224 sigma2 =
X->Def.EDGeneralTransfer[idx][3];
229 tmp_trans = -
X->Def.EDParaGeneralTransfer[idx];
231 for (j = 1; j <=
X->Large.i_max; j++) {
233 X_CisAjt(
list_1[j],
X,
X->Large.is1_spin,
X->Large.is2_spin,
X->Large.isA_spin,
X->Large.A_spin,
235 Ham[tmp_off][j] += dmv;
241 for (i = 0; i <
X->Def.NInterAll_OffDiagonal / 2; i++) {
242 for (ihermite = 0; ihermite < 2; ihermite++) {
243 idx = 2 * i + ihermite;
244 isite1 =
X->Def.InterAll_OffDiagonal[idx][0] + 1;
245 isite2 =
X->Def.InterAll_OffDiagonal[idx][2] + 1;
246 isite3 =
X->Def.InterAll_OffDiagonal[idx][4] + 1;
247 isite4 =
X->Def.InterAll_OffDiagonal[idx][6] + 1;
248 sigma1 =
X->Def.InterAll_OffDiagonal[idx][1];
249 sigma2 =
X->Def.InterAll_OffDiagonal[idx][3];
250 sigma3 =
X->Def.InterAll_OffDiagonal[idx][5];
251 sigma4 =
X->Def.InterAll_OffDiagonal[idx][7];
252 tmp_V =
X->Def.ParaInterAll_OffDiagonal[idx];
253 if (isite1 == 1 && sigma1 == 0 && isite2 == 4 && sigma2 == 0 && isite3 == 17 && sigma3 == 0 && isite4 == 19 &&
272 i_max =
X->Large.i_max;
273 isite1 =
X->Large.is1_spin;
274 isite2 =
X->Large.is2_spin;
275 Asum =
X->Large.isA_spin;
276 Adiff =
X->Large.A_spin;
278 isite3 =
X->Large.is3_spin;
279 isite4 =
X->Large.is4_spin;
280 Bsum =
X->Large.isB_spin;
281 Bdiff =
X->Large.B_spin;
283 tmp_V =
X->Large.tmp_V;
285 if (isite1 == isite2 && isite3 == isite4) {
287 for (j = 1; j <= i_max; j++) {
291 }
else if (isite1 == isite2 && isite3 != isite4) {
293 for (j = 1; j <= i_max; j++) {
294 dmv =
child_CisAisCjtAku_element(j, isite1, isite3, isite4, Bsum, Bdiff, tmp_V,
v0,
v1,
X, &tmp_off);
295 Ham[tmp_off][j] += dmv;
297 }
else if (isite1 != isite2 && isite3 == isite4) {
299 for (j = 1; j <= i_max; j++) {
300 dmv =
child_CisAjtCkuAku_element(j, isite1, isite2, isite3, Asum, Adiff, tmp_V,
v0,
v1,
X, &tmp_off);
301 Ham[tmp_off][j] += dmv;
303 }
else if (isite1 != isite2 && isite3 != isite4) {
305 for (j = 1; j <= i_max; j++) {
306 dmv =
child_CisAjtCkuAlv_element(j, isite1, isite2, isite3, isite4, Asum, Adiff, Bsum, Bdiff, tmp_V,
v0,
308 Ham[tmp_off_2][j] += dmv;
315 for (i = 0; i <
X->Def.NPairHopping / 2; i++) {
316 for (ihermite = 0; ihermite < 2; ihermite++) {
317 idx = 2 * i + ihermite;
319 for (j = 1; j <=
X->Large.i_max; j++) {
321 Ham[tmp_off][j] += dmv;
326 for (i = 0; i <
X->Def.NExchangeCoupling; i++) {
328 for (j = 1; j <=
X->Large.i_max; j++) {
330 Ham[tmp_off][j] += dmv;
336 if (
X->Def.iFlgGeneralSpin ==
FALSE) {
338 for (i = 0; i <
X->Def.EDNTransfer / 2; i++) {
339 for (ihermite = 0; ihermite < 2; ihermite++) {
340 idx = 2 * i + ihermite;
341 isite1 =
X->Def.EDGeneralTransfer[idx][0] + 1;
342 isite2 =
X->Def.EDGeneralTransfer[idx][2] + 1;
343 sigma1 =
X->Def.EDGeneralTransfer[idx][1];
344 sigma2 =
X->Def.EDGeneralTransfer[idx][3];
345 tmp_trans = -
X->Def.EDParaGeneralTransfer[idx];
351 if (isite1 == isite2) {
352 is1_spin =
X->Def.Tpow[isite1 - 1];
353 if (sigma1 == sigma2) {
355 for (j = 1; j <= i_max; j++) {
360 is1_spin =
X->Def.Tpow[isite1 - 1];
362 for (j = 1; j <= i_max; j++) {
374 for (i = 0; i <
X->Def.NInterAll_OffDiagonal / 2; i++) {
375 for (ihermite = 0; ihermite < 2; ihermite++) {
376 idx = 2 * i + ihermite;
377 isite1 =
X->Def.InterAll_OffDiagonal[idx][0] + 1;
378 isite2 =
X->Def.InterAll_OffDiagonal[idx][4] + 1;
379 sigma1 =
X->Def.InterAll_OffDiagonal[idx][1];
380 sigma2 =
X->Def.InterAll_OffDiagonal[idx][3];
381 sigma3 =
X->Def.InterAll_OffDiagonal[idx][5];
382 sigma4 =
X->Def.InterAll_OffDiagonal[idx][7];
383 tmp_V =
X->Def.ParaInterAll_OffDiagonal[idx];
386 isA_up =
X->Def.Tpow[isite1 - 1];
387 isB_up =
X->Def.Tpow[isite2 - 1];
389 if (sigma1 == sigma2 && sigma3 == sigma4) {
390 for (j = 1; j <= i_max; j++) {
394 }
else if (sigma1 == sigma2 && sigma3 != sigma4) {
395 for (j = 1; j <= i_max; j++) {
397 Ham[tmp_off + 1][j] += dmv;
399 }
else if (sigma1 != sigma2 && sigma3 == sigma4) {
400 for (j = 1; j <= i_max; j++) {
402 Ham[tmp_off + 1][j] += dmv;
404 }
else if (sigma1 != sigma2 && sigma3 != sigma4) {
405 for (j = 1; j <= i_max; j++) {
408 Ham[tmp_off_2 + 1][j] += dmv;
414 for (i = 0; i <
X->Def.NExchangeCoupling; i++) {
416 for (j = 1; j <=
X->Large.i_max; j++) {
418 Ham[tmp_off + 1][j] += dmv;
423 for (i = 0; i <
X->Def.NPairLiftCoupling / 2; i++) {
424 for (ihermite = 0; ihermite < 2; ihermite++) {
425 idx = 2 * i + ihermite;
428 for (j = 1; j <=
X->Large.i_max; j++) {
430 Ham[tmp_off + 1][j] += dmv;
435 for (i = 0; i <
X->Def.EDNTransfer / 2; i++) {
436 for (ihermite = 0; ihermite < 2; ihermite++) {
437 idx = 2 * i + ihermite;
438 isite1 =
X->Def.EDGeneralTransfer[idx][0] + 1;
439 isite2 =
X->Def.EDGeneralTransfer[idx][2] + 1;
440 sigma1 =
X->Def.EDGeneralTransfer[idx][1];
441 sigma2 =
X->Def.EDGeneralTransfer[idx][3];
442 tmp_trans = -
X->Def.EDParaGeneralTransfer[idx];
444 if (isite1 == isite2) {
447 for (j = 1; j <= i_max; j++) {
449 Ham[off + 1][j] += tmp_trans * num1;
459 for (i = 0; i <
X->Def.NInterAll_OffDiagonal / 2; i++) {
460 for (ihermite = 0; ihermite < 2; ihermite++) {
461 idx = 2 * i + ihermite;
462 isite1 =
X->Def.InterAll_OffDiagonal[idx][0] + 1;
463 isite2 =
X->Def.InterAll_OffDiagonal[idx][4] + 1;
464 sigma1 =
X->Def.InterAll_OffDiagonal[idx][1];
465 sigma2 =
X->Def.InterAll_OffDiagonal[idx][3];
466 sigma3 =
X->Def.InterAll_OffDiagonal[idx][5];
467 sigma4 =
X->Def.InterAll_OffDiagonal[idx][7];
468 tmp_V =
X->Def.ParaInterAll_OffDiagonal[idx];
469 for (j = 1; j <= i_max; j++) {
474 Ham[off + 1][j] += tmp_V * num1;
484 if (
X->Def.iFlgGeneralSpin ==
FALSE) {
487 for (i = 0; i <
X->Def.NInterAll_OffDiagonal / 2; i++) {
488 for (ihermite = 0; ihermite < 2; ihermite++) {
489 idx = 2 * i + ihermite;
491 isite1 =
X->Def.InterAll_OffDiagonal[idx][0] + 1;
492 isite2 =
X->Def.InterAll_OffDiagonal[idx][4] + 1;
493 sigma1 =
X->Def.InterAll_OffDiagonal[idx][1];
494 sigma2 =
X->Def.InterAll_OffDiagonal[idx][3];
495 sigma3 =
X->Def.InterAll_OffDiagonal[idx][5];
496 sigma4 =
X->Def.InterAll_OffDiagonal[idx][7];
497 tmp_V =
X->Def.ParaInterAll_OffDiagonal[idx];
500 isA_up =
X->Large.is1_up;
501 isB_up =
X->Large.is2_up;
503 for (j = 1; j <= i_max; j++) {
505 dmv = tmp_sgn * tmp_V;
506 Ham[tmp_off][j] += dmv;
512 for (i = 0; i <
X->Def.NExchangeCoupling; i++) {
514 for (j = 1; j <=
X->Large.i_max; j++) {
516 Ham[tmp_off][j] += dmv;
524 for (i = 0; i <
X->Def.NInterAll_OffDiagonal / 2; i++) {
525 for (ihermite = 0; ihermite < 2; ihermite++) {
526 idx = 2 * i + ihermite;
527 isite1 =
X->Def.InterAll_OffDiagonal[idx][0] + 1;
528 isite2 =
X->Def.InterAll_OffDiagonal[idx][4] + 1;
529 sigma1 =
X->Def.InterAll_OffDiagonal[idx][1];
530 sigma2 =
X->Def.InterAll_OffDiagonal[idx][3];
531 sigma3 =
X->Def.InterAll_OffDiagonal[idx][5];
532 sigma4 =
X->Def.InterAll_OffDiagonal[idx][7];
533 tmp_V =
X->Def.ParaInterAll_OffDiagonal[idx];
535 for (j = 1; j <= i_max; j++) {
541 Ham[tmp_off][j] += tmp_V;
double complex GC_child_exchange_spin_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Multiply Hamiltonian of exchange term of grandcanonical spin system.
int X_CisAjt(long unsigned int list_1_j, struct BindStruct *X, long unsigned int is1_spin, long unsigned int is2_spin, long unsigned int sum_spin, long unsigned int diff_spin, long unsigned int *tmp_off)
Compute index of wavefunction of final state.
double complex GC_child_CisAitCiuAiu_spin_element(long unsigned int j, long unsigned int org_sigma2, long unsigned int org_sigma4, long unsigned int isA_up, long unsigned int isB_up, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical spsin system.
double complex GC_child_CisAisCitAiu_spin_element(long unsigned int j, long unsigned int org_sigma2, long unsigned int org_sigma4, long unsigned int isA_up, long unsigned int isB_up, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical spsin system.
int X_child_exchange_spin_element(long unsigned int j, struct BindStruct *X, long unsigned int isA_up, long unsigned int isB_up, long unsigned int sigmaA, long unsigned int sigmaB, long unsigned int *tmp_off)
Compute index of final wavefunction associated to spin-exchange term.
int child_general_int_GetInfo(int iInterAll, struct BindStruct *X, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int isite4, long unsigned int sigma1, long unsigned int sigma2, long unsigned int sigma3, long unsigned int sigma4, double complex tmp_V)
Compute mask for bit operation of general interaction term.
double complex child_CisAjtCkuAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int Asum, long unsigned int Adiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of canonical Hubbard system.
double complex child_pairhopp_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute pairhopp term of canonical Hubbard system.
int ConvertToList1GeneralSpin(const long unsigned int org_ibit, const long unsigned int ihlfbit, long unsigned int *_ilist1Comp)
function of converting component to list_1
double complex GC_child_CisAitCiuAiv_spin_element(long unsigned int j, long unsigned int org_sigma2, long unsigned int org_sigma4, long unsigned int isA_up, long unsigned int isB_up, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off_2)
Compute term of grandcanonical spsin system.
int X_Spin_CisAis(long unsigned int j, struct BindStruct *X, long unsigned int is1_spin, long unsigned int sigma1)
Compute the spin state with bit mask is1_spin.
int child_general_int_spin_GetInfo(struct BindStruct *X, long unsigned int isite1, long unsigned int isite2, long unsigned int sigma1, long unsigned int sigma2, long unsigned int sigma3, long unsigned int sigma4, double complex tmp_V)
Set parameters for the bit operation of spin-general interaction term.
double complex GC_child_pairhopp_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute pairhopp term of grandcanonical Hubbard system.
int child_pairlift_spin_GetInfo(int iPairLift, struct BindStruct *X)
Set parameters for the bit operation of spin-pairlift term.
double complex GC_CisAjt(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int is1_spin, long unsigned int is2_spin, long unsigned int sum_spin, long unsigned int diff_spin, double complex tmp_V, long unsigned int *tmp_off)
term for grandcanonical Hubbard
double complex child_exchange_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute exchange term of canonical-Hubbard.
double complex GC_child_exchange_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute exchange term of grandcanonical Hubbard system.
double complex GC_child_CisAisCisAis_spin_element(long unsigned int j, long unsigned int isA_up, long unsigned int isB_up, long unsigned int org_sigma2, long unsigned int org_sigma4, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X)
Compute term of grandcanonical spsin system.
int child_exchange_spin_GetInfo(int iExchange, struct BindStruct *X)
Set parameters for the bit operation of spin-exchange term.
int child_pairhopp_GetInfo(int iPairHopp, struct BindStruct *X)
Compute mask for bit operation of pairhop term.
int GetSplitBitByModel(const int Nsite, const int iCalcModel, long unsigned int *irght, long unsigned int *ilft, long unsigned int *ihfbit)
function of splitting original bit into right and left spaces.
double complex GC_child_CisAisCisAis_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
long unsigned int * list_1
int child_general_hopp_GetInfo(struct BindStruct *X, unsigned long int isite1, unsigned long int isite2, unsigned long int sigma1, unsigned long int sigma2)
Compute mask for bit operation of hopping term.
double complex child_CisAisCisAis_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of canonical Hubbard system.
int GetOffCompGeneralSpin(const long unsigned int org_ibit, const int org_isite, const int org_ispin, const int off_ispin, long unsigned int *_ioffComp, const long int *SiteToBit, const long unsigned int *Tpow)
function of getting off-diagonal component for general spin
int X_SpinGC_CisAit(long unsigned int j, struct BindStruct *X, long unsigned int is1_spin, long unsigned int sigma2, long unsigned int *tmp_off)
Compute index of final wavefunction by term (grandcanonical).
double complex GC_child_pairlift_spin_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Multiply Hamiltonian of pairlift term of grandcanonical spin system.
int child_exchange_GetInfo(int iExchange, struct BindStruct *X)
Compute mask for bit operation of exchange term.
double complex child_exchange_spin_element(long unsigned int j, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Multiply Hamiltonian of exchange term of canonical spin system.
double complex GC_child_CisAisCjtAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, long unsigned int isite4, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
double complex GC_child_CisAjtCkuAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int Asum, long unsigned int Adiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of grandcanonical Hubbard system.
double complex child_CisAjtCkuAlv_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int isite4, long unsigned int Asum, long unsigned int Adiff, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off_2)
Compute term of canonical Hubbard system.
double complex GC_child_CisAjtCkuAlv_element(long unsigned int j, long unsigned int isite1, long unsigned int isite2, long unsigned int isite3, long unsigned int isite4, long unsigned int Asum, long unsigned int Adiff, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off_2)
Compute term of grandcanonical Hubbard system.
double complex child_CisAisCjtAku_element(long unsigned int j, long unsigned int isite1, long unsigned int isite3, long unsigned int isite4, long unsigned int Bsum, long unsigned int Bdiff, double complex tmp_V, double complex *tmp_v0, double complex *tmp_v1, struct BindStruct *X, long unsigned int *tmp_off)
Compute term of canonical Hubbard system.