diff --git a/ebcc/cc/uebcc.py b/ebcc/cc/uebcc.py index 99383c0f..e86ebec1 100644 --- a/ebcc/cc/uebcc.py +++ b/ebcc/cc/uebcc.py @@ -136,6 +136,11 @@ def from_rebcc(cls, rcc: REBCC) -> UEBCC: amplitudes: Namespace[SpinArrayType] = util.Namespace() for name, key, n in ucc.ansatz.fermionic_cluster_ranks(spin_type=ucc.spin_type): + if n > 3: + # FIXME: Need to handle different RHF spin cases + raise util.ModelNotImplemented( + "The conversion of amplitudes with n > 3 is not implemented." + ) amplitudes[name] = util.Namespace() for comb in util.generate_spin_combinations(n, unique=True): subscript, _ = util.combine_subscripts(key, comb) diff --git a/ebcc/codegen/GecCC.py b/ebcc/codegen/GecCC.py index abe158b3..bb38a1a9 100644 --- a/ebcc/codegen/GecCC.py +++ b/ebcc/codegen/GecCC.py @@ -1,6 +1,6 @@ """Code generated by `albert` version 0.0.0. - * date: 2024-12-02T16:39:38.476224 + * date: 2024-12-14T12:12:32.736919 * python version: 3.10.12 (main, Nov 6 2024, 20:22:13) [GCC 11.4.0] * albert version: 0.0.0 * caller: /home/ollie/git/albert/albert/code/einsum.py @@ -29,10 +29,10 @@ def update_amps_external(f=None, t3=None, t4=None, v=None, **kwargs): """ t1new = Namespace() - t1new.OV = einsum(t3, (0, 1, 2, 3, 4, 5), v.OOVV, (1, 2, 4, 5), (0, 3)) * 0.25 + t1new.OV = einsum(v.OOVV, (0, 1, 2, 3), t3, (4, 0, 1, 5, 2, 3), (4, 5)) * 0.25 t2new = Namespace() - t2new.OOVV = einsum(f.OV, (0, 1), t3, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) - t2new.OOVV += einsum(t4, (0, 1, 2, 3, 4, 5, 6, 7), v.OOVV, (2, 3, 6, 7), (0, 1, 4, 5)) * 0.25 + t2new.OOVV = einsum(t3, (0, 1, 2, 3, 4, 5), f.OV, (2, 5), (0, 1, 3, 4)) + t2new.OOVV += einsum(v.OOVV, (0, 1, 2, 3), t4, (4, 5, 0, 1, 6, 7, 2, 3), (4, 5, 6, 7)) * 0.25 tmp0 = einsum(v.oVOO, (0, 1, 2, 3), t3, (4, 2, 3, 5, 6, 1), (4, 5, 6, 0)) * -1 t2new.OoVV = np.copy(np.transpose(tmp0, (0, 3, 2, 1))) * -0.5 t2new.oOVV = np.copy(np.transpose(tmp0, (3, 0, 2, 1))) * 0.5 @@ -58,16 +58,16 @@ def update_amps_mixed(t1=None, t3=None, v=None, **kwargs): tmp0 = einsum(v.oOvV, (0, 1, 2, 3), t1, (0, 2), (1, 3)) t2new = Namespace() - t2new.OOVV = einsum(tmp0, (0, 1), t3, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) + t2new.OOVV = einsum(t3, (0, 1, 2, 3, 4, 5), tmp0, (2, 5), (0, 1, 3, 4)) del tmp0 - tmp1 = einsum(v.OOvV, (0, 1, 2, 3), t1, (4, 2), (0, 1, 3, 4)) * -1 - tmp2 = einsum(t3, (0, 1, 2, 3, 4, 5), tmp1, (2, 1, 5, 6), (0, 3, 4, 6)) * -1 + tmp1 = einsum(t1, (0, 1), v.OOvV, (2, 3, 1, 4), (2, 3, 4, 0)) * -1 + tmp2 = einsum(tmp1, (0, 1, 2, 3), t3, (4, 1, 0, 5, 6, 2), (4, 5, 6, 3)) * -1 del tmp1 t2new.OoVV = np.copy(np.transpose(tmp2, (0, 3, 2, 1))) * -0.5 t2new.oOVV = np.copy(np.transpose(tmp2, (3, 0, 2, 1))) * 0.5 del tmp2 tmp3 = einsum(v.oOVV, (0, 1, 2, 3), t3, (4, 5, 1, 6, 2, 3), (4, 5, 6, 0)) * -1 - tmp4 = einsum(tmp3, (0, 1, 2, 3), t1, (3, 4), (0, 1, 2, 4)) + tmp4 = einsum(t1, (0, 1), tmp3, (2, 3, 4, 0), (2, 3, 4, 1)) del tmp3 t2new.OOvV = np.copy(np.transpose(tmp4, (0, 1, 3, 2))) * -0.5 t2new.OOVv = np.copy(tmp4) * 0.5 @@ -102,7 +102,7 @@ def convert_c2_to_t2(c2=None, t1=None, **kwargs): t2 = np.copy(c2) t2 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1)) - t2 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) * -1 + t2 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) * -1 return {"t2": t2} @@ -119,17 +119,17 @@ def convert_c3_to_t3(c3=None, t1=None, t2=None, **kwargs): """ t3 = np.copy(c3) - t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 5, 2, 3)) * -1 + t3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) * -1 t3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) * -1 t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) - t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 3, 5)) + t3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) * -1 - t3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) * -1 + t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 3, 5)) * -1 tmp0 = np.copy(t2) tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1)) * -1 - tmp0 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) t3 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 5, 1, 4)) - t3 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (3, 2, 0, 5, 1, 4)) + t3 += einsum(tmp0, (0, 1, 2, 3), t1, (4, 5), (1, 0, 4, 3, 5, 2)) t3 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (3, 0, 2, 5, 1, 4)) * -1 del tmp0 @@ -150,67 +150,206 @@ def convert_c4_to_t4(c4=None, t1=None, t2=None, t3=None, **kwargs): t4 = np.copy(c4) t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) - t4 += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 1, 6, 7)) * -1 + t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * -1 t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) - t4 += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -1 + t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 4, 5, 7)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 2, 3, 6, 7)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 3, 7)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 7, 3)) * -1 - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 7, 3)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 6, 7, 2, 3)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 3, 7)) + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 6, 7)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 6, 7, 2, 3)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 3, 7)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 7, 3)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 7, 3)) t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 3, 7)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 3, 7)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 6, 7, 2, 3)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 6, 7, 2, 3)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 3, 6, 7)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 3, 7)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 3, 7)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 7, 3)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 3, 7)) * -1 - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 6, 7)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 7, 3)) + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * -1 tmp1 = np.copy(t3) tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) * -1 - tmp1 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 4, 1, 5)) - tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 3, 5)) * -1 + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) + tmp1 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) * -1 tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) - tmp1 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) * -1 - tmp1 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 5, 3)) * -1 + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 3, 5)) tmp0 = np.copy(t2) tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1)) * -1 - tmp0 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) tmp1 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 1, 5, 4)) - tmp1 += einsum(tmp0, (0, 1, 2, 3), t1, (4, 5), (4, 1, 0, 3, 2, 5)) + tmp1 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 5, 4, 1)) tmp1 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 5, 1, 4)) * -1 del tmp0 - t4 += einsum(t1, (0, 1), tmp1, (2, 3, 4, 5, 6, 7), (0, 3, 4, 2, 6, 1, 7, 5)) - t4 += einsum(t1, (0, 1), tmp1, (2, 3, 4, 5, 6, 7), (0, 3, 4, 2, 6, 7, 5, 1)) + t4 += einsum(tmp1, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 4, 7, 5, 3)) + t4 += einsum(tmp1, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 4, 5, 3, 7)) t4 += einsum(tmp1, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 7, 4, 5, 3)) * -1 - t4 += einsum(tmp1, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 4, 5, 7, 3)) * -1 + t4 += einsum(t1, (0, 1), tmp1, (2, 3, 4, 5, 6, 7), (0, 3, 4, 2, 6, 7, 1, 5)) * -1 del tmp1 tmp2 = np.copy(t3) - tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 5, 2, 3)) + tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 1, 5)) * -1 tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) - tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) * -1 - tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) - t4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 6, 2, 0, 7, 4, 5, 3)) - t4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 6, 2, 0, 4, 5, 7, 3)) + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 5, 3)) * -1 + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 3, 5)) + t4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 1, 6, 7, 5)) + t4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 6, 7, 1, 5)) t4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 6, 1, 7, 5)) * -1 - t4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 6, 7, 5, 1)) * -1 + t4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 6, 2, 0, 4, 5, 3, 7)) * -1 del tmp2 tmp3 = np.copy(t3) - tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 5, 2, 3)) + tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 1, 5)) * -1 tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) - t4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (3, 4, 0, 2, 6, 1, 7, 5)) + t4 += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 2, 6, 0, 4, 7, 5, 3)) t4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (3, 4, 0, 2, 6, 7, 5, 1)) - t4 += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 2, 6, 0, 7, 4, 5, 3)) * -1 + t4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (3, 4, 0, 2, 1, 6, 7, 5)) * -1 t4 += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 2, 6, 0, 4, 5, 7, 3)) * -1 del tmp3 return {"t4": t4} +def convert_t1_to_c1(t1=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + + Returns: + c1: + """ + + c1 = np.copy(t1) + + return {"c1": c1} + +def convert_t2_to_c2(t1=None, t2=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + + Returns: + c2: + """ + + c2 = np.copy(t2) + c2 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1)) * -1 + c2 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) + + return {"c2": c2} + +def convert_t3_to_c3(t1=None, t2=None, t3=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + t3: + + Returns: + c3: + """ + + c3 = np.copy(t3) + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) * -1 + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) + c3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) * -1 + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 5, 3)) * -1 + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 3, 5)) + tmp0 = np.copy(t2) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1)) * -1 + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) + c3 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 1, 5, 4)) + c3 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 5, 4, 1)) + c3 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 5, 1, 4)) * -1 + del tmp0 + + return {"c3": c3} + +def convert_t4_to_c4(t1=None, t2=None, t3=None, t4=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + t3: + t4: + + Returns: + c4: + """ + + c4 = np.copy(t4) + c4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * -1 + c4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) + c4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) * -1 + c4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 4, 5, 7)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 2, 3, 6, 7)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 3, 7)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 7, 3)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 3, 7)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 6, 7)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 6, 7, 2, 3)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 7, 3)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 7, 3)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 3, 7)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 6, 7, 2, 3)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 3, 6, 7)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 3, 7)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 7, 3)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 3, 7)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 7, 3)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) + tmp1 = np.copy(t3) + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) * -1 + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) + tmp1 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) * -1 + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 5, 3)) * -1 + tmp1 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 3, 5)) + tmp0 = np.copy(t2) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1)) * -1 + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) + tmp1 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 1, 5, 4)) + tmp1 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 5, 4, 1)) + tmp1 += einsum(t1, (0, 1), tmp0, (2, 3, 4, 5), (0, 3, 2, 5, 1, 4)) * -1 + del tmp0 + c4 += einsum(tmp1, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 7, 4, 5, 3)) + c4 += einsum(t1, (0, 1), tmp1, (2, 3, 4, 5, 6, 7), (0, 3, 4, 2, 6, 7, 1, 5)) + c4 += einsum(tmp1, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 4, 7, 5, 3)) * -1 + c4 += einsum(tmp1, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 4, 5, 3, 7)) * -1 + del tmp1 + tmp2 = np.copy(t3) + tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) + tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 1, 5)) * -1 + tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 5, 3)) * -1 + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 3, 5)) + c4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 6, 1, 7, 5)) + c4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 6, 2, 0, 4, 5, 3, 7)) + c4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 1, 6, 7, 5)) * -1 + c4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 6, 7, 1, 5)) * -1 + del tmp2 + tmp3 = np.copy(t3) + tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) + tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 1, 5)) * -1 + tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) + c4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (3, 4, 0, 2, 1, 6, 7, 5)) + c4 += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 2, 6, 0, 4, 5, 7, 3)) + c4 += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 2, 6, 0, 4, 7, 5, 3)) * -1 + c4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (3, 4, 0, 2, 6, 7, 5, 1)) * -1 + del tmp3 + + return {"c4": c4} + diff --git a/ebcc/codegen/RecCC.py b/ebcc/codegen/RecCC.py index e29047f7..8f870aaa 100644 --- a/ebcc/codegen/RecCC.py +++ b/ebcc/codegen/RecCC.py @@ -1,6 +1,6 @@ """Code generated by `albert` version 0.0.0. - * date: 2024-12-02T16:39:30.318059 + * date: 2024-12-14T12:07:40.697905 * python version: 3.10.12 (main, Nov 6 2024, 20:22:13) [GCC 11.4.0] * albert version: 0.0.0 * caller: /home/ollie/git/albert/albert/code/einsum.py @@ -42,10 +42,10 @@ def update_amps_external(f=None, t3=None, t4=None, t4a=None, v=None, **kwargs): del tmp1 t1new.OV += einsum(v.OVOV, (0, 1, 2, 3), t3, (0, 4, 2, 1, 5, 3), (4, 5)) * 0.25 t1new.OV += einsum(v.OVOV, (0, 1, 2, 3), t3, (0, 4, 2, 3, 5, 1), (4, 5)) * -0.25 - tmp2 = einsum(v.oOOV, (0, 1, 2, 3), t3, (1, 4, 2, 3, 5, 6), (4, 6, 5, 0)) + tmp2 = einsum(t3, (0, 1, 2, 3, 4, 5), v.oOOV, (6, 0, 2, 3), (1, 5, 4, 6)) t2new = Namespace() t2new.OoVV = np.copy(np.transpose(tmp2, (0, 3, 2, 1))) * 0.5 - tmp3 = einsum(t3, (0, 1, 2, 3, 4, 5), v.oOOV, (6, 2, 0, 3), (1, 5, 4, 6)) + tmp3 = einsum(t3, (0, 1, 2, 3, 4, 5), v.oOOV, (6, 0, 2, 5), (1, 3, 4, 6)) t2new.OoVV += np.transpose(tmp3, (0, 3, 2, 1)) * -0.5 tmp4 = einsum(v.oOOV, (0, 1, 2, 3), t3, (4, 1, 2, 5, 6, 3), (4, 5, 6, 0)) t2new.OoVV += np.transpose(tmp4, (0, 3, 1, 2)) * -0.5 @@ -59,13 +59,13 @@ def update_amps_external(f=None, t3=None, t4=None, t4a=None, v=None, **kwargs): del tmp6 t2new.oOVV += np.transpose(tmp4, (3, 0, 2, 1)) * -0.5 del tmp4 - tmp10 = einsum(v.OVvV, (0, 1, 2, 3), t3, (4, 5, 0, 3, 6, 1), (4, 5, 6, 2)) + tmp10 = einsum(t3, (0, 1, 2, 3, 4, 5), v.OVvV, (2, 5, 6, 3), (0, 1, 4, 6)) t2new.OOvV = np.copy(np.transpose(tmp10, (0, 1, 3, 2))) * 0.5 - tmp11 = einsum(t3, (0, 1, 2, 3, 4, 5), v.OVvV, (2, 3, 6, 5), (0, 1, 4, 6)) + tmp11 = einsum(v.OVvV, (0, 1, 2, 3), t3, (4, 5, 0, 1, 6, 3), (4, 5, 6, 2)) t2new.OOvV += np.transpose(tmp11, (0, 1, 3, 2)) * -0.5 tmp13 = einsum(v.OVvV, (0, 1, 2, 3), t3, (4, 5, 0, 6, 3, 1), (4, 5, 6, 2)) t2new.OOvV += np.transpose(tmp13, (1, 0, 3, 2)) * 0.5 - tmp12 = einsum(t3, (0, 1, 2, 3, 4, 5), v.OVvV, (2, 3, 6, 4), (0, 1, 5, 6)) + tmp12 = einsum(v.OVvV, (0, 1, 2, 3), t3, (4, 5, 0, 1, 3, 6), (4, 5, 6, 2)) t2new.OOvV += np.transpose(tmp12, (1, 0, 3, 2)) * -0.5 t2new.OOVv = np.copy(tmp12) * -0.5 del tmp12 @@ -77,15 +77,15 @@ def update_amps_external(f=None, t3=None, t4=None, t4a=None, v=None, **kwargs): del tmp10 tmp5 = einsum(f.OV, (0, 1), t3, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) t2new.OOVV = np.copy(tmp5) - tmp7 = einsum(v.OVOV, (0, 1, 2, 3), t4a, (4, 5, 2, 0, 6, 7, 3, 1), (4, 5, 6, 7)) + tmp7 = einsum(v.OVOV, (0, 1, 2, 3), t4a, (4, 5, 0, 2, 6, 7, 1, 3), (4, 5, 6, 7)) t2new.OOVV += tmp7 * 0.25 - tmp8 = einsum(v.OVOV, (0, 1, 2, 3), t4a, (4, 5, 0, 2, 6, 7, 3, 1), (4, 5, 6, 7)) + tmp8 = einsum(t4a, (0, 1, 2, 3, 4, 5, 6, 7), v.OVOV, (2, 7, 3, 6), (0, 1, 4, 5)) t2new.OOVV += tmp8 * -0.25 t2new.OOVV += np.transpose(tmp7, (1, 0, 3, 2)) * 0.25 del tmp7 t2new.OOVV += np.transpose(tmp8, (1, 0, 3, 2)) * -0.25 del tmp8 - tmp9 = einsum(v.OVOV, (0, 1, 2, 3), t4, (4, 5, 2, 0, 6, 7, 3, 1), (4, 5, 6, 7)) + tmp9 = einsum(t4, (0, 1, 2, 3, 4, 5, 6, 7), v.OVOV, (2, 6, 3, 7), (0, 1, 4, 5)) t2new.OOVV += tmp9 del tmp9 t2new.OOVV += np.transpose(tmp5, (1, 0, 3, 2)) @@ -105,25 +105,25 @@ def update_amps_mixed(t1=None, t3=None, v=None, **kwargs): t2new: """ - tmp0 = einsum(t1, (0, 1), v.oVOv, (0, 2, 3, 1), (3, 2)) - tmp1 = einsum(tmp0, (0, 1), t3, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) + tmp0 = einsum(v.oVOv, (0, 1, 2, 3), t1, (0, 3), (2, 1)) + tmp1 = einsum(t3, (0, 1, 2, 3, 4, 5), tmp0, (2, 5), (0, 1, 3, 4)) del tmp0 t2new = Namespace() t2new.OOVV = np.copy(tmp1) * -1 tmp2 = einsum(v.ovOV, (0, 1, 2, 3), t1, (0, 1), (2, 3)) - tmp3 = einsum(tmp2, (0, 1), t3, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) + tmp3 = einsum(t3, (0, 1, 2, 3, 4, 5), tmp2, (2, 5), (0, 1, 3, 4)) del tmp2 t2new.OOVV += tmp3 * 2 t2new.OOVV += np.transpose(tmp1, (1, 0, 3, 2)) * -1 del tmp1 t2new.OOVV += np.transpose(tmp3, (1, 0, 3, 2)) * 2 del tmp3 - tmp12 = einsum(t1, (0, 1), v.OVOv, (2, 3, 4, 1), (2, 4, 3, 0)) - tmp13 = einsum(tmp12, (0, 1, 2, 3), t3, (0, 4, 1, 2, 5, 6), (4, 6, 5, 3)) + tmp12 = einsum(v.OVOv, (0, 1, 2, 3), t1, (4, 3), (0, 2, 1, 4)) + tmp13 = einsum(t3, (0, 1, 2, 3, 4, 5), tmp12, (2, 0, 5, 6), (1, 3, 4, 6)) t2new.OoVV = np.copy(np.transpose(tmp13, (0, 3, 2, 1))) * -0.5 - tmp14 = einsum(tmp12, (0, 1, 2, 3), t3, (1, 4, 0, 2, 5, 6), (4, 6, 5, 3)) + tmp14 = einsum(t3, (0, 1, 2, 3, 4, 5), tmp12, (2, 0, 3, 6), (1, 5, 4, 6)) t2new.OoVV += np.transpose(tmp14, (0, 3, 2, 1)) * 0.5 - tmp15 = einsum(tmp12, (0, 1, 2, 3), t3, (4, 1, 0, 5, 6, 2), (4, 5, 6, 3)) + tmp15 = einsum(t3, (0, 1, 2, 3, 4, 5), tmp12, (2, 1, 5, 6), (0, 3, 4, 6)) t2new.OoVV += np.transpose(tmp15, (0, 3, 1, 2)) * -0.5 tmp16 = einsum(tmp12, (0, 1, 2, 3), t3, (4, 1, 0, 2, 5, 6), (4, 6, 5, 3)) del tmp12 @@ -145,7 +145,7 @@ def update_amps_mixed(t1=None, t3=None, v=None, **kwargs): del tmp6 t2new.OOvV += np.transpose(tmp7, (0, 1, 3, 2)) * 0.5 tmp10 = einsum(v.oVOV, (0, 1, 2, 3), t3, (4, 5, 2, 6, 1, 3), (4, 5, 6, 0)) - tmp11 = einsum(t1, (0, 1), tmp10, (2, 3, 4, 0), (2, 3, 4, 1)) + tmp11 = einsum(tmp10, (0, 1, 2, 3), t1, (3, 4), (0, 1, 2, 4)) del tmp10 t2new.OOvV += np.transpose(tmp11, (1, 0, 3, 2)) * -0.5 tmp8 = einsum(t3, (0, 1, 2, 3, 4, 5), v.oVOV, (6, 4, 2, 3), (0, 1, 5, 6)) @@ -188,7 +188,7 @@ def convert_c2_to_t2(c2=None, t1=None, **kwargs): t2: """ - t2 = einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) * -1 + t2 = einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) * -1 t2 += c2 return {"t2": t2} @@ -206,12 +206,12 @@ def convert_c3_to_t3(c3=None, t1=None, t2=None, **kwargs): """ t3 = np.copy(c3) - t3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) * -1 + t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 5, 2, 3)) * -1 t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 3, 2, 5)) - t3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 1, 5, 4)) + t3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 3, 2)) t3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) * -1 tmp0 = np.copy(t2) - tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) tmp1 = np.copy(np.transpose(tmp0, (0, 1, 3, 2))) * -1 tmp1 += tmp0 del tmp0 @@ -236,83 +236,236 @@ def convert_c4_to_t4(c4=None, c4a=None, t1=None, t2=None, t3=None, **kwargs): """ t4 = np.copy(c4) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 7, 6, 2, 3)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * -1 - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 3, 7, 6, 2)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 3, 2, 6, 7)) + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 7, 3, 2, 6)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 7, 6)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 6, 7, 2, 3)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 3, 6, 7)) * -1 t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 3, 2, 7)) t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 7, 6, 3)) - t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 6, 7)) * -1 + t4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * -1 t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 6, 2, 1, 3, 7, 5, 4)) * -1 t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 6, 2, 1, 5, 4, 3, 7)) * -1 - t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 5, 7, 3, 4)) * -1 - t4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 4, 5, 7)) * -1 + t4 += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 7, 1, 5, 6)) * -1 + t4 += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -1 tmp0 = np.copy(t2) - tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3)) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) + tmp2 = np.copy(np.transpose(tmp0, (0, 1, 3, 2))) + tmp2 += tmp0 * -1 tmp1 = np.copy(np.transpose(tmp0, (0, 1, 3, 2))) * -1 tmp1 += tmp0 - t4 += einsum(tmp1, (0, 1, 2, 3), tmp1, (4, 5, 6, 7), (5, 1, 4, 0, 7, 3, 6, 2)) * -1 - tmp2 = np.copy(np.transpose(t3, (0, 2, 1, 3, 5, 4))) - tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) - tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (0, 2, 3, 4, 1, 5)) * -1 - tmp2 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 1, 4, 5)) * -1 - tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) - t4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 7, 4, 5, 3)) * -1 - t4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 5, 3, 7, 4)) * -1 - t4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (4, 3, 0, 2, 1, 5, 7, 6)) * -1 - t4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (2, 1, 6, 0, 5, 4, 7, 3)) * -1 + del tmp0 + t4 += einsum(tmp2, (0, 1, 2, 3), tmp1, (4, 5, 6, 7), (5, 1, 4, 0, 7, 2, 6, 3)) * -1 + tmp3 = np.copy(np.transpose(t3, (0, 2, 1, 3, 5, 4))) + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 5, 2, 3)) + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 2, 5, 3)) * -1 + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) * -1 + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) + t4 += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 7, 4, 5, 3)) * -1 + t4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (0, 3, 4, 2, 7, 5, 1, 6)) * -1 + t4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (4, 3, 0, 2, 1, 5, 7, 6)) * -1 + t4 += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (4, 3, 0, 2, 7, 6, 1, 5)) * -1 t4a = np.copy(np.transpose(c4a, (0, 1, 3, 2, 4, 5, 7, 6))) t4a += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 0, 2, 7, 4, 3, 5)) * -1 t4a += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 0, 2, 5, 4, 7, 3)) * -1 t4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 6, 7, 5)) * -1 t4a += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 6, 2, 3, 4, 7, 5)) * -1 - t4a += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 7, 4, 5, 3)) - t4a += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 7, 6, 2, 3)) - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 7, 6, 3, 2)) * -1 - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * -1 - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 7, 2, 3, 6)) - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 7, 6, 2, 3)) * -1 + t4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 1, 6, 7, 5)) + t4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 1, 7)) + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 3, 2, 6, 7)) + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 3, 2, 7, 6)) * -1 + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) * -1 + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 3, 6, 7, 2)) + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 3, 2, 6, 7)) * -1 t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 7, 6, 3, 2)) - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 7, 3)) + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 3, 7)) t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 7, 2, 3, 6)) * -1 - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 3, 7, 6, 2)) * -1 - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 7, 6)) + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 7, 3, 2, 6)) * -1 + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 3, 2)) t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 7, 6, 3)) - t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 6, 7)) * -1 + t4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * -1 + tmp4 = np.copy(np.transpose(t3, (0, 2, 1, 5, 4, 3))) + tmp4 += np.transpose(t3, (0, 2, 1, 3, 5, 4)) + tmp4 += np.transpose(t3, (0, 2, 1, 4, 3, 5)) + tmp4 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 3, 2)) + tmp4 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) * -1 + tmp4 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 5, 1, 4)) * -1 + tmp4 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) + tmp4 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 5, 4, 1)) + tmp4 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) * -1 + tmp4 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 3, 2)) * -1 + tmp4 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) + tmp4 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 3, 5, 2)) + tmp4 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) * -1 + tmp4 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 3, 2, 5)) * -1 + tmp4 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) + tmp4 += einsum(tmp1, (0, 1, 2, 3), t1, (4, 5), (4, 1, 0, 5, 2, 3)) * -1 + tmp4 += einsum(tmp1, (0, 1, 2, 3), t1, (4, 5), (4, 1, 0, 3, 5, 2)) * -1 + tmp4 += einsum(tmp1, (0, 1, 2, 3), t1, (4, 5), (4, 1, 0, 3, 2, 5)) + t4a += einsum(t1, (0, 1), tmp4, (2, 3, 4, 5, 6, 7), (3, 0, 4, 2, 7, 1, 5, 6)) * -1 + del tmp4 + t4a += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 2, 1, 0, 3, 5, 4, 7)) + t4a += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (3, 4, 0, 2, 6, 7, 5, 1)) + t4a += einsum(t1, (0, 1), tmp3, (2, 3, 4, 5, 6, 7), (3, 4, 2, 0, 6, 7, 5, 1)) * -1 + del tmp3 + t4a += einsum(tmp2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 1, 0, 3, 7, 2, 6)) + t4a += einsum(tmp2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (1, 4, 0, 5, 3, 6, 2, 7)) + del tmp2 + t4a += einsum(tmp1, (0, 1, 2, 3), t2, (4, 5, 6, 7), (1, 4, 5, 0, 3, 6, 2, 7)) + del tmp1 + + return {"t4": t4, "t4a": t4a} + +def convert_t1_to_c1(t1=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + + Returns: + c1: + """ + + c1 = np.copy(t1) + + return {"c1": c1} + +def convert_t2_to_c2(t1=None, t2=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + + Returns: + c2: + """ + + c2 = einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) + c2 += t2 + + return {"c2": c2} + +def convert_t3_to_c3(t1=None, t2=None, t3=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + t3: + + Returns: + c3: + """ + + c3 = np.copy(t3) + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 5, 2, 3)) + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 3, 2, 5)) * -1 + c3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 3, 2)) * -1 + c3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) + tmp0 = np.copy(t2) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) + tmp1 = np.copy(np.transpose(tmp0, (0, 1, 3, 2))) + tmp1 += tmp0 * -1 + del tmp0 + c3 += einsum(tmp1, (0, 1, 2, 3), t1, (4, 5), (1, 4, 0, 3, 5, 2)) * -1 + del tmp1 + + return {"c3": c3} + +def convert_t4_to_c4(t1=None, t2=None, t3=None, t4=None, t4a=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + t3: + t4: + t4a: + + Returns: + c4: + c4a: + """ + + c4 = np.copy(t4) + c4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 6, 2, 1, 3, 7, 5, 4)) + c4 += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 6, 2, 1, 5, 4, 3, 7)) + c4 += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 7, 1, 5, 6)) + c4 += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 3, 2, 6, 7)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 7, 3, 2, 6)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 7, 6)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 3, 6, 7)) + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 3, 2, 7)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 2, 7, 6, 3)) * -1 + c4 += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) + tmp0 = np.copy(t2) + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1)) + tmp1 = np.copy(np.transpose(tmp0, (0, 1, 3, 2))) * -1 + tmp1 += tmp0 + c4 += einsum(tmp1, (0, 1, 2, 3), tmp1, (4, 5, 6, 7), (5, 1, 4, 0, 7, 2, 6, 3)) * -1 + tmp2 = np.copy(np.transpose(t3, (0, 2, 1, 3, 5, 4))) + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 5, 2, 3)) + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (4, 0, 1, 2, 5, 3)) * -1 + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) * -1 + tmp2 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) + c4 += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 1, 2, 0, 7, 4, 5, 3)) + c4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (0, 3, 4, 2, 7, 5, 1, 6)) + c4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (4, 3, 0, 2, 1, 5, 7, 6)) + c4 += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (4, 3, 0, 2, 7, 6, 1, 5)) + c4a = np.copy(np.transpose(t4a, (0, 1, 3, 2, 4, 5, 7, 6))) + c4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 6, 7, 5)) + c4a += einsum(t3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (0, 1, 6, 2, 3, 4, 7, 5)) + c4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 7, 1)) * -1 + c4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 1, 6, 7, 5)) * -1 + c4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 1, 7)) * -1 + c4a += einsum(t1, (0, 1), t3, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 3, 2, 6, 7)) * -1 + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 1, 5, 3, 2, 7, 6)) + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 3, 6, 7, 2)) * -1 + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 3, 7)) * -1 + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 5, 1, 3, 6, 2, 7)) + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 3, 2, 6, 7)) + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (0, 4, 1, 5, 7, 6, 3, 2)) * -1 + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 3, 7)) * -1 + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 7, 2, 3, 6)) + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) + c4a += einsum(t2, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 0, 5, 1, 7, 2, 6, 3)) * -1 tmp3 = np.copy(np.transpose(t3, (0, 2, 1, 5, 4, 3))) tmp3 += np.transpose(t3, (0, 2, 1, 3, 5, 4)) tmp3 += np.transpose(t3, (0, 2, 1, 4, 3, 5)) tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 3, 2)) - tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 1, 4, 5)) * -1 - tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 3, 5, 2)) * -1 + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 5, 2, 3)) * -1 + tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 5, 1, 4)) * -1 tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 2, 5, 3)) - tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 4, 1, 3, 2, 5)) + tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 5, 4, 1)) tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) * -1 - tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 1, 5, 4)) * -1 - tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 1, 4, 5)) + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 3, 2)) * -1 + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 5, 2, 3)) tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 3, 5, 2)) - tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 2, 5, 3)) * -1 - tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 5, 4, 1)) * -1 + tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) * -1 + tmp3 += einsum(t2, (0, 1, 2, 3), t1, (4, 5), (0, 1, 4, 3, 2, 5)) * -1 tmp3 += einsum(t1, (0, 1), t2, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) - tmp3 += einsum(t1, (0, 1), tmp1, (2, 3, 4, 5), (0, 3, 2, 1, 4, 5)) * -1 - tmp3 += einsum(t1, (0, 1), tmp1, (2, 3, 4, 5), (0, 3, 2, 5, 1, 4)) * -1 + tmp3 += einsum(tmp1, (0, 1, 2, 3), t1, (4, 5), (4, 1, 0, 5, 2, 3)) * -1 + tmp3 += einsum(tmp1, (0, 1, 2, 3), t1, (4, 5), (4, 1, 0, 3, 5, 2)) * -1 tmp3 += einsum(tmp1, (0, 1, 2, 3), t1, (4, 5), (4, 1, 0, 3, 2, 5)) - t4a += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 6, 2, 0, 5, 7, 3, 4)) * -1 + c4a += einsum(tmp3, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 6, 2, 0, 5, 7, 3, 4)) del tmp3 - t4a += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (0, 4, 3, 2, 5, 7, 6, 1)) - t4a += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 2, 6, 0, 4, 5, 3, 7)) - t4a += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (1, 2, 0, 6, 4, 5, 3, 7)) * -1 + c4a += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 2, 1, 0, 7, 5, 4, 3)) + c4a += einsum(t1, (0, 1), tmp2, (2, 3, 4, 5, 6, 7), (0, 4, 3, 2, 5, 7, 1, 6)) + c4a += einsum(tmp2, (0, 1, 2, 3, 4, 5), t1, (6, 7), (6, 2, 1, 0, 3, 5, 4, 7)) * -1 del tmp2 tmp4 = np.copy(np.transpose(tmp0, (0, 1, 3, 2))) tmp4 += tmp0 * -1 del tmp0 - t4a += einsum(tmp4, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 1, 0, 3, 7, 2, 6)) - t4a += einsum(tmp4, (0, 1, 2, 3), t2, (4, 5, 6, 7), (1, 4, 0, 5, 3, 6, 2, 7)) + c4a += einsum(tmp4, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 1, 0, 6, 7, 3, 2)) * -1 + c4a += einsum(tmp4, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 1, 0, 2, 7, 6, 3)) * -1 del tmp4 - t4a += einsum(tmp1, (0, 1, 2, 3), t2, (4, 5, 6, 7), (1, 4, 5, 0, 3, 6, 2, 7)) + c4a += einsum(tmp1, (0, 1, 2, 3), t2, (4, 5, 6, 7), (4, 5, 1, 0, 3, 7, 2, 6)) del tmp1 - return {"t4": t4, "t4a": t4a} + return {"c4": c4, "c4a": c4a} diff --git a/ebcc/codegen/UecCC.py b/ebcc/codegen/UecCC.py index 0cdfc80a..d1176919 100644 --- a/ebcc/codegen/UecCC.py +++ b/ebcc/codegen/UecCC.py @@ -1,6 +1,6 @@ """Code generated by `albert` version 0.0.0. - * date: 2024-12-02T16:39:34.690413 + * date: 2024-12-16T16:33:20.120215 * python version: 3.10.12 (main, Nov 6 2024, 20:22:13) [GCC 11.4.0] * albert version: 0.0.0 * caller: /home/ollie/git/albert/albert/code/einsum.py @@ -28,131 +28,131 @@ def update_amps_external(f=None, t3=None, t4=None, v=None, **kwargs): t2new: """ - tmp0 = einsum(v.aaaa.OVOV, (0, 1, 2, 3), t3.aaaaaa, (4, 0, 2, 5, 1, 3), (4, 5)) + tmp0 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), v.aaaa.OVOV, (1, 5, 2, 4), (0, 3)) * -1 t1new = Namespace() t1new.aa = Namespace() - t1new.aa.OV = np.copy(tmp0) * 0.5 + t1new.aa.OV = np.copy(tmp0) * 3 del tmp0 - tmp1 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.bbbb.OVOV, (0, 5, 2, 3), (1, 4)) * -1 - t1new.aa.OV += tmp1 * 0.5 + tmp1 = einsum(v.bbbb.OVOV, (0, 1, 2, 3), t3.babbab, (0, 4, 2, 1, 5, 3), (4, 5)) + t1new.aa.OV += tmp1 del tmp1 tmp2 = einsum(v.aabb.OVOV, (0, 1, 2, 3), t3.abaaba, (4, 2, 0, 5, 3, 1), (4, 5)) - t1new.aa.OV += tmp2 + t1new.aa.OV += tmp2 * 2 del tmp2 tmp6 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), v.aaaa.oOOV, (6, 2, 1, 4), (0, 3, 5, 6)) * -1 t2new = Namespace() t2new.aaaa = Namespace() - t2new.aaaa.OoVV = np.copy(np.transpose(tmp6, (0, 3, 2, 1))) * -1 + t2new.aaaa.OoVV = np.copy(np.transpose(tmp6, (0, 3, 2, 1))) * -6 tmp7 = einsum(v.aabb.oOOV, (0, 1, 2, 3), t3.abaaba, (4, 2, 1, 5, 3, 6), (4, 5, 6, 0)) - t2new.aaaa.OoVV += np.transpose(tmp7, (0, 3, 2, 1)) - t2new.aaaa.oOVV = np.copy(np.transpose(tmp6, (3, 0, 2, 1))) + t2new.aaaa.OoVV += np.transpose(tmp7, (0, 3, 2, 1)) * 2 + t2new.aaaa.oOVV = np.copy(np.transpose(tmp6, (3, 0, 2, 1))) * 6 del tmp6 - t2new.aaaa.oOVV += np.transpose(tmp7, (3, 0, 2, 1)) * -1 + t2new.aaaa.oOVV += np.transpose(tmp7, (3, 0, 2, 1)) * -2 del tmp7 - tmp13 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), v.aaaa.OVvV, (2, 5, 6, 4), (0, 1, 3, 6)) * -1 - t2new.aaaa.OOvV = np.copy(np.transpose(tmp13, (0, 1, 3, 2))) - tmp14 = einsum(v.aabb.vVOV, (0, 1, 2, 3), t3.abaaba, (4, 2, 5, 6, 3, 1), (4, 5, 6, 0)) - t2new.aaaa.OOvV += np.transpose(tmp14, (0, 1, 3, 2)) * -1 - t2new.aaaa.OOVv = np.copy(tmp13) * -1 + tmp13 = einsum(v.aaaa.OVvV, (0, 1, 2, 3), t3.aaaaaa, (4, 5, 0, 6, 1, 3), (4, 5, 6, 2)) + t2new.aaaa.OOvV = np.copy(np.transpose(tmp13, (0, 1, 3, 2))) * 6 + tmp14 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), v.aabb.vVOV, (6, 5, 1, 4), (0, 2, 3, 6)) + t2new.aaaa.OOvV += np.transpose(tmp14, (0, 1, 3, 2)) * -2 + t2new.aaaa.OOVv = np.copy(tmp13) * -6 del tmp13 - t2new.aaaa.OOVv += tmp14 + t2new.aaaa.OOVv += tmp14 * 2 del tmp14 - tmp16 = einsum(v.bbbb.oOOV, (0, 1, 2, 3), t3.babbab, (1, 4, 2, 3, 5, 6), (4, 5, 6, 0)) + tmp16 = einsum(v.bbbb.oOOV, (0, 1, 2, 3), t3.babbab, (2, 4, 1, 3, 5, 6), (4, 5, 6, 0)) * -1 t2new.abab = Namespace() - t2new.abab.OoVV = np.copy(np.transpose(tmp16, (0, 3, 1, 2))) + t2new.abab.OoVV = np.copy(np.transpose(tmp16, (0, 3, 1, 2))) * 2 del tmp16 tmp17 = einsum(v.aabb.OVoO, (0, 1, 2, 3), t3.abaaba, (4, 3, 0, 5, 6, 1), (4, 5, 6, 2)) - t2new.abab.OoVV += np.transpose(tmp17, (0, 3, 1, 2)) * -1 + t2new.abab.OoVV += np.transpose(tmp17, (0, 3, 1, 2)) * -2 del tmp17 - tmp25 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), v.aabb.OVvV, (2, 5, 6, 4), (0, 1, 3, 6)) - t2new.abab.OOVv = np.copy(tmp25) + tmp25 = einsum(v.aabb.OVvV, (0, 1, 2, 3), t3.abaaba, (4, 5, 0, 6, 3, 1), (4, 5, 6, 2)) + t2new.abab.OOVv = np.copy(tmp25) * 2 del tmp25 - tmp27 = einsum(v.bbbb.OVvV, (0, 1, 2, 3), t3.babbab, (4, 5, 0, 3, 6, 1), (5, 4, 6, 2)) * -1 - t2new.abab.OOVv += tmp27 * -1 + tmp27 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.bbbb.OVvV, (2, 5, 6, 3), (1, 0, 4, 6)) * -1 + t2new.abab.OOVv += tmp27 * -2 del tmp27 - tmp19 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), v.aaaa.oOOV, (6, 2, 0, 3), (1, 5, 4, 6)) * -1 - t2new.abab.oOVV = np.copy(np.transpose(tmp19, (3, 0, 1, 2))) + tmp19 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), v.aaaa.oOOV, (6, 0, 2, 3), (1, 5, 4, 6)) + t2new.abab.oOVV = np.copy(np.transpose(tmp19, (3, 0, 1, 2))) * 2 del tmp19 - tmp20 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.aabb.oOOV, (6, 1, 2, 5), (0, 4, 3, 6)) - t2new.abab.oOVV += np.transpose(tmp20, (3, 0, 1, 2)) * -1 + tmp20 = einsum(v.aabb.oOOV, (0, 1, 2, 3), t3.babbab, (4, 1, 2, 5, 6, 3), (4, 6, 5, 0)) + t2new.abab.oOVV += np.transpose(tmp20, (3, 0, 1, 2)) * -2 del tmp20 tmp24 = einsum(v.aaaa.OVvV, (0, 1, 2, 3), t3.abaaba, (4, 5, 0, 3, 6, 1), (4, 5, 6, 2)) * -1 - t2new.abab.OOvV = np.copy(np.transpose(tmp24, (0, 1, 3, 2))) * -1 + t2new.abab.OOvV = np.copy(np.transpose(tmp24, (0, 1, 3, 2))) * -2 del tmp24 - tmp26 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.aabb.vVOV, (6, 4, 2, 5), (1, 0, 3, 6)) - t2new.abab.OOvV += np.transpose(tmp26, (0, 1, 3, 2)) + tmp26 = einsum(v.aabb.vVOV, (0, 1, 2, 3), t3.babbab, (4, 5, 2, 6, 1, 3), (5, 4, 6, 0)) + t2new.abab.OOvV += np.transpose(tmp26, (0, 1, 3, 2)) * 2 del tmp26 - tmp28 = einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), v.bbbb.oOOV, (6, 2, 1, 4), (0, 3, 5, 6)) * -1 + tmp28 = einsum(v.bbbb.oOOV, (0, 1, 2, 3), t3.bbbbbb, (4, 2, 1, 5, 3, 6), (4, 5, 6, 0)) * -1 t2new.bbbb = Namespace() - t2new.bbbb.OoVV = np.copy(np.transpose(tmp28, (0, 3, 2, 1))) * -1 - tmp29 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.aabb.OVoO, (1, 4, 6, 2), (0, 3, 5, 6)) - t2new.bbbb.OoVV += np.transpose(tmp29, (0, 3, 2, 1)) - t2new.bbbb.oOVV = np.copy(np.transpose(tmp28, (3, 0, 2, 1))) + t2new.bbbb.OoVV = np.copy(np.transpose(tmp28, (0, 3, 2, 1))) * -6 + tmp29 = einsum(v.aabb.OVoO, (0, 1, 2, 3), t3.babbab, (4, 0, 3, 5, 1, 6), (4, 5, 6, 2)) + t2new.bbbb.OoVV += np.transpose(tmp29, (0, 3, 2, 1)) * 2 + t2new.bbbb.oOVV = np.copy(np.transpose(tmp28, (3, 0, 2, 1))) * 6 del tmp28 - t2new.bbbb.oOVV += np.transpose(tmp29, (3, 0, 2, 1)) * -1 + t2new.bbbb.oOVV += np.transpose(tmp29, (3, 0, 2, 1)) * -2 del tmp29 tmp35 = einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), v.bbbb.OVvV, (2, 4, 6, 5), (0, 1, 3, 6)) - t2new.bbbb.OOvV = np.copy(np.transpose(tmp35, (0, 1, 3, 2))) - tmp36 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.aabb.OVvV, (1, 4, 6, 5), (0, 2, 3, 6)) - t2new.bbbb.OOvV += np.transpose(tmp36, (0, 1, 3, 2)) * -1 - t2new.bbbb.OOVv = np.copy(tmp35) * -1 + t2new.bbbb.OOvV = np.copy(np.transpose(tmp35, (0, 1, 3, 2))) * 6 + tmp36 = einsum(v.aabb.OVvV, (0, 1, 2, 3), t3.babbab, (4, 0, 5, 6, 1, 3), (4, 5, 6, 2)) + t2new.bbbb.OOvV += np.transpose(tmp36, (0, 1, 3, 2)) * -2 + t2new.bbbb.OOVv = np.copy(tmp35) * -6 del tmp35 - t2new.bbbb.OOVv += tmp36 + t2new.bbbb.OOVv += tmp36 * 2 del tmp36 - tmp3 = einsum(v.aaaa.OVOV, (0, 1, 2, 3), t3.abaaba, (0, 4, 2, 1, 5, 3), (4, 5)) + tmp3 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), v.aaaa.OVOV, (0, 5, 2, 3), (1, 4)) * -1 t1new.bb = Namespace() - t1new.bb.OV = np.copy(tmp3) * 0.5 + t1new.bb.OV = np.copy(tmp3) del tmp3 tmp4 = einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), v.bbbb.OVOV, (1, 5, 2, 4), (0, 3)) * -1 - t1new.bb.OV += tmp4 * 0.5 + t1new.bb.OV += tmp4 * 3 del tmp4 - tmp5 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.aabb.OVOV, (1, 4, 2, 5), (0, 3)) - t1new.bb.OV += tmp5 + tmp5 = einsum(v.aabb.OVOV, (0, 1, 2, 3), t3.babbab, (4, 0, 2, 5, 1, 3), (4, 5)) + t1new.bb.OV += tmp5 * 2 del tmp5 tmp8 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), f.aa.OV, (2, 5), (0, 1, 3, 4)) - t2new.aaaa.OOVV = np.copy(np.transpose(tmp8, (1, 0, 3, 2))) + t2new.aaaa.OOVV = np.copy(np.transpose(tmp8, (1, 0, 3, 2))) * 6 del tmp8 tmp9 = einsum(f.bb.OV, (0, 1), t3.abaaba, (2, 0, 3, 4, 1, 5), (2, 3, 4, 5)) - t2new.aaaa.OOVV += np.transpose(tmp9, (1, 0, 3, 2)) + t2new.aaaa.OOVV += np.transpose(tmp9, (1, 0, 3, 2)) * 2 del tmp9 tmp10 = einsum(v.aaaa.OVOV, (0, 1, 2, 3), t4.aaaaaaaa, (4, 5, 0, 2, 6, 7, 1, 3), (4, 5, 6, 7)) - t2new.aaaa.OOVV += np.transpose(tmp10, (0, 1, 3, 2)) * -0.5 + t2new.aaaa.OOVV += np.transpose(tmp10, (0, 1, 3, 2)) * -12 del tmp10 - tmp11 = einsum(t4.abababab, (0, 1, 2, 3, 4, 5, 6, 7), v.bbbb.OVOV, (1, 5, 3, 7), (0, 2, 4, 6)) - t2new.aaaa.OOVV += np.transpose(tmp11, (0, 1, 3, 2)) * -0.5 + tmp11 = einsum(v.bbbb.OVOV, (0, 1, 2, 3), t4.abababab, (4, 0, 5, 2, 6, 3, 7, 1), (4, 5, 6, 7)) * -1 + t2new.aaaa.OOVV += np.transpose(tmp11, (0, 1, 3, 2)) * -2 del tmp11 tmp12 = einsum(t4.aaabaaab, (0, 1, 2, 3, 4, 5, 6, 7), v.aabb.OVOV, (2, 5, 3, 7), (0, 1, 4, 6)) * -1 - t2new.aaaa.OOVV += np.transpose(tmp12, (0, 1, 3, 2)) * -1 + t2new.aaaa.OOVV += np.transpose(tmp12, (0, 1, 3, 2)) * -6 del tmp12 tmp15 = einsum(f.bb.OV, (0, 1), t3.babbab, (2, 3, 0, 4, 5, 1), (3, 2, 5, 4)) - t2new.abab.OOVV = np.copy(tmp15) + t2new.abab.OOVV = np.copy(tmp15) * 2 del tmp15 tmp18 = einsum(f.aa.OV, (0, 1), t3.abaaba, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) - t2new.abab.OOVV += tmp18 + t2new.abab.OOVV += tmp18 * 2 del tmp18 - tmp21 = einsum(v.aaaa.OVOV, (0, 1, 2, 3), t4.aaabaaab, (4, 0, 2, 5, 6, 1, 3, 7), (4, 5, 6, 7)) - t2new.abab.OOVV += tmp21 * 0.5 + tmp21 = einsum(v.aaaa.OVOV, (0, 1, 2, 3), t4.aaabaaab, (4, 0, 2, 5, 6, 3, 1, 7), (4, 5, 6, 7)) * -1 + t2new.abab.OOVV += tmp21 * 3 del tmp21 tmp22 = einsum(t4.abbbabbb, (0, 1, 2, 3, 4, 5, 6, 7), v.bbbb.OVOV, (2, 7, 3, 6), (0, 1, 4, 5)) * -1 - t2new.abab.OOVV += tmp22 * 0.5 + t2new.abab.OOVV += tmp22 * 3 del tmp22 - tmp23 = einsum(t4.abababab, (0, 1, 2, 3, 4, 5, 6, 7), v.aabb.OVOV, (2, 6, 3, 7), (0, 1, 4, 5)) - t2new.abab.OOVV += tmp23 + tmp23 = einsum(v.aabb.OVOV, (0, 1, 2, 3), t4.abababab, (4, 5, 0, 2, 6, 7, 1, 3), (4, 5, 6, 7)) + t2new.abab.OOVV += tmp23 * 4 del tmp23 - tmp30 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), f.aa.OV, (1, 4), (0, 2, 3, 5)) - t2new.bbbb.OOVV = np.copy(np.transpose(tmp30, (1, 0, 3, 2))) + tmp30 = einsum(f.aa.OV, (0, 1), t3.babbab, (2, 0, 3, 4, 1, 5), (2, 3, 4, 5)) + t2new.bbbb.OOVV = np.copy(np.transpose(tmp30, (1, 0, 3, 2))) * 2 del tmp30 tmp31 = einsum(f.bb.OV, (0, 1), t3.bbbbbb, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) - t2new.bbbb.OOVV += np.transpose(tmp31, (1, 0, 3, 2)) + t2new.bbbb.OOVV += np.transpose(tmp31, (1, 0, 3, 2)) * 6 del tmp31 - tmp32 = einsum(t4.abababab, (0, 1, 2, 3, 4, 5, 6, 7), v.aaaa.OVOV, (0, 4, 2, 6), (1, 3, 7, 5)) * -1 - t2new.bbbb.OOVV += np.transpose(tmp32, (0, 1, 3, 2)) * -0.5 + tmp32 = einsum(v.aaaa.OVOV, (0, 1, 2, 3), t4.abababab, (0, 4, 2, 5, 3, 6, 1, 7), (4, 5, 7, 6)) + t2new.bbbb.OOVV += np.transpose(tmp32, (0, 1, 3, 2)) * -2 del tmp32 tmp33 = einsum(v.bbbb.OVOV, (0, 1, 2, 3), t4.bbbbbbbb, (4, 5, 0, 2, 6, 7, 3, 1), (4, 5, 6, 7)) * -1 - t2new.bbbb.OOVV += np.transpose(tmp33, (0, 1, 3, 2)) * -0.5 + t2new.bbbb.OOVV += np.transpose(tmp33, (0, 1, 3, 2)) * -12 del tmp33 tmp34 = einsum(v.aabb.OVOV, (0, 1, 2, 3), t4.abbbabbb, (0, 4, 5, 2, 1, 6, 3, 7), (4, 5, 6, 7)) * -1 - t2new.bbbb.OOVV += np.transpose(tmp34, (0, 1, 3, 2)) * -1 + t2new.bbbb.OOVV += np.transpose(tmp34, (0, 1, 3, 2)) * -6 del tmp34 return {"t1new": t1new, "t2new": t2new} @@ -169,155 +169,155 @@ def update_amps_mixed(t1=None, t3=None, v=None, **kwargs): t2new: """ - tmp12 = einsum(v.aaaa.oVOV, (0, 1, 2, 3), t3.aaaaaa, (4, 5, 2, 6, 1, 3), (4, 5, 6, 0)) * -1 - tmp13 = einsum(t1.aa, (0, 1), tmp12, (2, 3, 4, 0), (2, 3, 4, 1)) + tmp12 = einsum(v.aaaa.oVOV, (0, 1, 2, 3), t3.aaaaaa, (4, 5, 2, 6, 3, 1), (4, 5, 6, 0)) + tmp13 = einsum(tmp12, (0, 1, 2, 3), t1.aa, (3, 4), (0, 1, 2, 4)) del tmp12 t2new = Namespace() t2new.aaaa = Namespace() - t2new.aaaa.OOvV = np.copy(np.transpose(tmp13, (0, 1, 3, 2))) * -1 + t2new.aaaa.OOvV = np.copy(np.transpose(tmp13, (0, 1, 3, 2))) * -6 tmp14 = einsum(v.aabb.oVOV, (0, 1, 2, 3), t3.abaaba, (4, 2, 5, 6, 3, 1), (4, 5, 6, 0)) tmp15 = einsum(t1.aa, (0, 1), tmp14, (2, 3, 4, 0), (2, 3, 4, 1)) del tmp14 - t2new.aaaa.OOvV += np.transpose(tmp15, (0, 1, 3, 2)) - t2new.aaaa.OOVv = np.copy(tmp13) + t2new.aaaa.OOvV += np.transpose(tmp15, (0, 1, 3, 2)) * 2 + t2new.aaaa.OOVv = np.copy(tmp13) * 6 del tmp13 - t2new.aaaa.OOVv += tmp15 * -1 + t2new.aaaa.OOVv += tmp15 * -2 del tmp15 - tmp16 = einsum(t1.aa, (0, 1), v.aaaa.OVOv, (2, 3, 4, 1), (2, 4, 3, 0)) - tmp17 = einsum(tmp16, (0, 1, 2, 3), t3.aaaaaa, (4, 0, 1, 5, 2, 6), (4, 5, 6, 3)) * -1 - t2new.aaaa.OoVV = np.copy(np.transpose(tmp17, (0, 3, 2, 1))) * -1 + tmp16 = einsum(v.aaaa.OVOv, (0, 1, 2, 3), t1.aa, (4, 3), (0, 2, 1, 4)) + tmp17 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), tmp16, (1, 2, 4, 6), (0, 3, 5, 6)) * -1 + t2new.aaaa.OoVV = np.copy(np.transpose(tmp17, (0, 3, 2, 1))) * -6 tmp18 = einsum(t1.aa, (0, 1), v.aabb.OvOV, (2, 1, 3, 4), (2, 3, 4, 0)) - tmp19 = einsum(tmp18, (0, 1, 2, 3), t3.abaaba, (4, 1, 0, 5, 2, 6), (4, 5, 6, 3)) - t2new.aaaa.OoVV += np.transpose(tmp19, (0, 3, 2, 1)) - t2new.aaaa.oOVV = np.copy(np.transpose(tmp17, (3, 0, 2, 1))) + tmp19 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), tmp18, (2, 1, 4, 6), (0, 3, 5, 6)) + t2new.aaaa.OoVV += np.transpose(tmp19, (0, 3, 2, 1)) * 2 + t2new.aaaa.oOVV = np.copy(np.transpose(tmp17, (3, 0, 2, 1))) * 6 del tmp17 - t2new.aaaa.oOVV += np.transpose(tmp19, (3, 0, 2, 1)) * -1 + t2new.aaaa.oOVV += np.transpose(tmp19, (3, 0, 2, 1)) * -2 del tmp19 tmp28 = einsum(v.aabb.OVoV, (0, 1, 2, 3), t3.abaaba, (4, 5, 0, 6, 3, 1), (4, 5, 6, 2)) tmp29 = einsum(tmp28, (0, 1, 2, 3), t1.bb, (3, 4), (0, 1, 2, 4)) del tmp28 t2new.abab = Namespace() - t2new.abab.OOVv = np.copy(tmp29) * -1 + t2new.abab.OOVv = np.copy(tmp29) * -2 del tmp29 tmp38 = einsum(v.bbbb.oVOV, (0, 1, 2, 3), t3.babbab, (4, 5, 2, 1, 6, 3), (5, 4, 6, 0)) * -1 - tmp39 = einsum(tmp38, (0, 1, 2, 3), t1.bb, (3, 4), (0, 1, 2, 4)) + tmp39 = einsum(t1.bb, (0, 1), tmp38, (2, 3, 4, 0), (2, 3, 4, 1)) del tmp38 - t2new.abab.OOVv += tmp39 + t2new.abab.OOVv += tmp39 * 2 del tmp39 - tmp30 = einsum(v.bbbb.OVOv, (0, 1, 2, 3), t1.bb, (4, 3), (0, 2, 1, 4)) - tmp31 = einsum(tmp30, (0, 1, 2, 3), t3.babbab, (1, 4, 0, 2, 5, 6), (4, 5, 6, 3)) - t2new.abab.OoVV = np.copy(np.transpose(tmp31, (0, 3, 1, 2))) + tmp30 = einsum(t1.bb, (0, 1), v.bbbb.OVOv, (2, 3, 4, 1), (2, 4, 3, 0)) + tmp31 = einsum(tmp30, (0, 1, 2, 3), t3.babbab, (0, 4, 1, 2, 5, 6), (4, 5, 6, 3)) * -1 + t2new.abab.OoVV = np.copy(np.transpose(tmp31, (0, 3, 1, 2))) * 2 del tmp31 tmp32 = einsum(v.aabb.OVOv, (0, 1, 2, 3), t1.bb, (4, 3), (0, 2, 1, 4)) tmp33 = einsum(tmp32, (0, 1, 2, 3), t3.abaaba, (4, 1, 0, 5, 6, 2), (4, 5, 6, 3)) - t2new.abab.OoVV += np.transpose(tmp33, (0, 3, 1, 2)) * -1 + t2new.abab.OoVV += np.transpose(tmp33, (0, 3, 1, 2)) * -2 del tmp33 - tmp34 = einsum(tmp16, (0, 1, 2, 3), t3.abaaba, (0, 4, 1, 2, 5, 6), (4, 6, 5, 3)) * -1 + tmp34 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), tmp16, (2, 0, 3, 6), (1, 5, 4, 6)) del tmp16 - t2new.abab.oOVV = np.copy(np.transpose(tmp34, (3, 0, 1, 2))) + t2new.abab.oOVV = np.copy(np.transpose(tmp34, (3, 0, 1, 2))) * 2 del tmp34 tmp35 = einsum(tmp18, (0, 1, 2, 3), t3.babbab, (4, 0, 1, 5, 6, 2), (4, 6, 5, 3)) del tmp18 - t2new.abab.oOVV += np.transpose(tmp35, (3, 0, 1, 2)) * -1 + t2new.abab.oOVV += np.transpose(tmp35, (3, 0, 1, 2)) * -2 del tmp35 tmp50 = einsum(tmp30, (0, 1, 2, 3), t3.bbbbbb, (4, 0, 1, 5, 2, 6), (4, 5, 6, 3)) * -1 del tmp30 t2new.bbbb = Namespace() - t2new.bbbb.OoVV = np.copy(np.transpose(tmp50, (0, 3, 2, 1))) * -1 + t2new.bbbb.OoVV = np.copy(np.transpose(tmp50, (0, 3, 2, 1))) * -6 tmp51 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), tmp32, (1, 2, 4, 6), (0, 3, 5, 6)) del tmp32 - t2new.bbbb.OoVV += np.transpose(tmp51, (0, 3, 2, 1)) - t2new.bbbb.oOVV = np.copy(np.transpose(tmp50, (3, 0, 2, 1))) + t2new.bbbb.OoVV += np.transpose(tmp51, (0, 3, 2, 1)) * 2 + t2new.bbbb.oOVV = np.copy(np.transpose(tmp50, (3, 0, 2, 1))) * 6 del tmp50 - t2new.bbbb.oOVV += np.transpose(tmp51, (3, 0, 2, 1)) * -1 + t2new.bbbb.oOVV += np.transpose(tmp51, (3, 0, 2, 1)) * -2 del tmp51 - tmp26 = einsum(v.aaaa.oVOV, (0, 1, 2, 3), t3.abaaba, (4, 5, 2, 1, 6, 3), (4, 5, 6, 0)) * -1 - tmp27 = einsum(t1.aa, (0, 1), tmp26, (2, 3, 4, 0), (2, 3, 4, 1)) + tmp26 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), v.aaaa.oVOV, (6, 3, 2, 5), (0, 1, 4, 6)) * -1 + tmp27 = einsum(tmp26, (0, 1, 2, 3), t1.aa, (3, 4), (0, 1, 2, 4)) del tmp26 - t2new.abab.OOvV = np.copy(np.transpose(tmp27, (0, 1, 3, 2))) + t2new.abab.OOvV = np.copy(np.transpose(tmp27, (0, 1, 3, 2))) * 2 del tmp27 - tmp36 = einsum(v.aabb.oVOV, (0, 1, 2, 3), t3.babbab, (4, 5, 2, 6, 1, 3), (5, 4, 6, 0)) - tmp37 = einsum(t1.aa, (0, 1), tmp36, (2, 3, 4, 0), (2, 3, 4, 1)) + tmp36 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.aabb.oVOV, (6, 4, 2, 5), (1, 0, 3, 6)) + tmp37 = einsum(tmp36, (0, 1, 2, 3), t1.aa, (3, 4), (0, 1, 2, 4)) del tmp36 - t2new.abab.OOvV += np.transpose(tmp37, (0, 1, 3, 2)) * -1 + t2new.abab.OOvV += np.transpose(tmp37, (0, 1, 3, 2)) * -2 del tmp37 - tmp46 = einsum(v.bbbb.oVOV, (0, 1, 2, 3), t3.bbbbbb, (4, 5, 2, 6, 3, 1), (4, 5, 6, 0)) - tmp47 = einsum(tmp46, (0, 1, 2, 3), t1.bb, (3, 4), (0, 1, 2, 4)) + tmp46 = einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), v.bbbb.oVOV, (6, 5, 2, 4), (0, 1, 3, 6)) + tmp47 = einsum(t1.bb, (0, 1), tmp46, (2, 3, 4, 0), (2, 3, 4, 1)) del tmp46 - t2new.bbbb.OOvV = np.copy(np.transpose(tmp47, (0, 1, 3, 2))) * -1 - tmp48 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), v.aabb.OVoV, (1, 4, 6, 5), (0, 2, 3, 6)) - tmp49 = einsum(tmp48, (0, 1, 2, 3), t1.bb, (3, 4), (0, 1, 2, 4)) + t2new.bbbb.OOvV = np.copy(np.transpose(tmp47, (0, 1, 3, 2))) * -6 + tmp48 = einsum(v.aabb.OVoV, (0, 1, 2, 3), t3.babbab, (4, 0, 5, 6, 1, 3), (4, 5, 6, 2)) + tmp49 = einsum(t1.bb, (0, 1), tmp48, (2, 3, 4, 0), (2, 3, 4, 1)) del tmp48 - t2new.bbbb.OOvV += np.transpose(tmp49, (0, 1, 3, 2)) - t2new.bbbb.OOVv = np.copy(tmp47) + t2new.bbbb.OOvV += np.transpose(tmp49, (0, 1, 3, 2)) * 2 + t2new.bbbb.OOVv = np.copy(tmp47) * 6 del tmp47 - t2new.bbbb.OOVv += tmp49 * -1 + t2new.bbbb.OOVv += tmp49 * -2 del tmp49 - tmp0 = einsum(t1.aa, (0, 1), v.aaaa.oVOv, (0, 2, 3, 1), (3, 2)) - tmp1 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), tmp0, (2, 4), (0, 1, 3, 5)) * -1 - t2new.aaaa.OOVV = np.copy(np.transpose(tmp1, (0, 1, 3, 2))) + tmp0 = einsum(v.aaaa.oVOv, (0, 1, 2, 3), t1.aa, (0, 3), (2, 1)) + tmp1 = einsum(tmp0, (0, 1), t3.aaaaaa, (2, 3, 0, 4, 1, 5), (2, 3, 4, 5)) * -1 + t2new.aaaa.OOVV = np.copy(np.transpose(tmp1, (0, 1, 3, 2))) * 6 del tmp1 - tmp2 = einsum(t1.aa, (0, 1), v.aaaa.ovOV, (0, 1, 2, 3), (2, 3)) + tmp2 = einsum(v.aaaa.ovOV, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3)) tmp3 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), tmp2, (2, 4), (0, 1, 3, 5)) * -1 - t2new.aaaa.OOVV += np.transpose(tmp3, (0, 1, 3, 2)) * -1 + t2new.aaaa.OOVV += np.transpose(tmp3, (0, 1, 3, 2)) * -6 del tmp3 tmp4 = einsum(v.bbbb.oVOv, (0, 1, 2, 3), t1.bb, (0, 3), (2, 1)) - tmp5 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), tmp4, (1, 4), (0, 2, 5, 3)) * -1 - t2new.aaaa.OOVV += np.transpose(tmp5, (0, 1, 3, 2)) + tmp5 = einsum(tmp4, (0, 1), t3.abaaba, (2, 0, 3, 4, 1, 5), (2, 3, 5, 4)) * -1 + t2new.aaaa.OOVV += np.transpose(tmp5, (0, 1, 3, 2)) * 2 del tmp5 - tmp6 = einsum(v.bbbb.ovOV, (0, 1, 2, 3), t1.bb, (0, 1), (2, 3)) - tmp7 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), tmp6, (1, 4), (0, 2, 5, 3)) * -1 - t2new.aaaa.OOVV += np.transpose(tmp7, (0, 1, 3, 2)) * -1 + tmp6 = einsum(t1.bb, (0, 1), v.bbbb.ovOV, (0, 1, 2, 3), (2, 3)) + tmp7 = einsum(tmp6, (0, 1), t3.abaaba, (2, 0, 3, 4, 1, 5), (2, 3, 5, 4)) * -1 + t2new.aaaa.OOVV += np.transpose(tmp7, (0, 1, 3, 2)) * -2 del tmp7 tmp8 = einsum(v.aabb.OVov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1)) tmp9 = einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), tmp8, (2, 4), (0, 1, 3, 5)) * -1 - t2new.aaaa.OOVV += np.transpose(tmp9, (0, 1, 3, 2)) * -1 + t2new.aaaa.OOVV += np.transpose(tmp9, (0, 1, 3, 2)) * -6 del tmp9 - tmp10 = einsum(t1.aa, (0, 1), v.aabb.ovOV, (0, 1, 2, 3), (2, 3)) - tmp11 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), tmp10, (1, 4), (0, 2, 5, 3)) * -1 - t2new.aaaa.OOVV += np.transpose(tmp11, (0, 1, 3, 2)) * -1 + tmp10 = einsum(v.aabb.ovOV, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3)) + tmp11 = einsum(tmp10, (0, 1), t3.abaaba, (2, 0, 3, 4, 1, 5), (2, 3, 5, 4)) * -1 + t2new.aaaa.OOVV += np.transpose(tmp11, (0, 1, 3, 2)) * -2 del tmp11 - tmp20 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), tmp4, (2, 5), (1, 0, 4, 3)) - t2new.abab.OOVV = np.copy(tmp20) * -1 + tmp20 = einsum(tmp4, (0, 1), t3.babbab, (2, 3, 0, 4, 5, 1), (3, 2, 5, 4)) + t2new.abab.OOVV = np.copy(tmp20) * -2 del tmp20 - tmp21 = einsum(tmp6, (0, 1), t3.babbab, (2, 3, 0, 4, 5, 1), (3, 2, 5, 4)) - t2new.abab.OOVV += tmp21 + tmp21 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), tmp6, (2, 5), (1, 0, 4, 3)) + t2new.abab.OOVV += tmp21 * 2 del tmp21 - tmp22 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), tmp10, (2, 5), (1, 0, 4, 3)) - t2new.abab.OOVV += tmp22 + tmp22 = einsum(tmp10, (0, 1), t3.babbab, (2, 3, 0, 4, 5, 1), (3, 2, 5, 4)) + t2new.abab.OOVV += tmp22 * 2 del tmp22 tmp23 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), tmp0, (2, 5), (0, 1, 3, 4)) - t2new.abab.OOVV += tmp23 * -1 + t2new.abab.OOVV += tmp23 * -2 del tmp23 tmp24 = einsum(tmp2, (0, 1), t3.abaaba, (2, 3, 0, 4, 5, 1), (2, 3, 4, 5)) - t2new.abab.OOVV += tmp24 + t2new.abab.OOVV += tmp24 * 2 del tmp24 tmp25 = einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), tmp8, (2, 5), (0, 1, 3, 4)) - t2new.abab.OOVV += tmp25 + t2new.abab.OOVV += tmp25 * 2 del tmp25 tmp40 = einsum(tmp0, (0, 1), t3.babbab, (2, 0, 3, 4, 1, 5), (2, 3, 5, 4)) * -1 del tmp0 - t2new.bbbb.OOVV = np.copy(np.transpose(tmp40, (0, 1, 3, 2))) + t2new.bbbb.OOVV = np.copy(np.transpose(tmp40, (0, 1, 3, 2))) * 2 del tmp40 - tmp41 = einsum(tmp2, (0, 1), t3.babbab, (2, 0, 3, 4, 1, 5), (2, 3, 5, 4)) * -1 + tmp41 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), tmp2, (1, 4), (0, 2, 5, 3)) * -1 del tmp2 - t2new.bbbb.OOVV += np.transpose(tmp41, (0, 1, 3, 2)) * -1 + t2new.bbbb.OOVV += np.transpose(tmp41, (0, 1, 3, 2)) * -2 del tmp41 - tmp42 = einsum(tmp4, (0, 1), t3.bbbbbb, (2, 3, 0, 4, 1, 5), (2, 3, 4, 5)) * -1 + tmp42 = einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), tmp4, (2, 4), (0, 1, 3, 5)) * -1 del tmp4 - t2new.bbbb.OOVV += np.transpose(tmp42, (0, 1, 3, 2)) + t2new.bbbb.OOVV += np.transpose(tmp42, (0, 1, 3, 2)) * 6 del tmp42 - tmp43 = einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), tmp6, (2, 4), (0, 1, 3, 5)) * -1 + tmp43 = einsum(tmp6, (0, 1), t3.bbbbbb, (2, 3, 0, 4, 1, 5), (2, 3, 4, 5)) * -1 del tmp6 - t2new.bbbb.OOVV += np.transpose(tmp43, (0, 1, 3, 2)) * -1 + t2new.bbbb.OOVV += np.transpose(tmp43, (0, 1, 3, 2)) * -6 del tmp43 tmp44 = einsum(t3.babbab, (0, 1, 2, 3, 4, 5), tmp8, (1, 4), (0, 2, 5, 3)) * -1 del tmp8 - t2new.bbbb.OOVV += np.transpose(tmp44, (0, 1, 3, 2)) * -1 + t2new.bbbb.OOVV += np.transpose(tmp44, (0, 1, 3, 2)) * -2 del tmp44 tmp45 = einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), tmp10, (2, 4), (0, 1, 3, 5)) * -1 del tmp10 - t2new.bbbb.OOVV += np.transpose(tmp45, (0, 1, 3, 2)) * -1 + t2new.bbbb.OOVV += np.transpose(tmp45, (0, 1, 3, 2)) * -6 del tmp45 return {"t2new": t2new} @@ -351,13 +351,13 @@ def convert_c2_to_t2(c2=None, t1=None, **kwargs): t2 = Namespace() t2.aaaa = np.copy(c2.aaaa) - t2.aaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (0, 2, 1, 3)) * -1 + t2.aaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1)) * -1 t2.aaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3)) t2.abab = np.copy(c2.abab) - t2.abab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3)) * -1 + t2.abab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1)) * -1 t2.bbbb = np.copy(c2.bbbb) t2.bbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1)) * -1 - t2.bbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1)) + t2.bbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3)) return {"t2": t2} @@ -376,56 +376,56 @@ def convert_c3_to_t3(c3=None, t1=None, t2=None, **kwargs): t3 = Namespace() t3.aaaaaa = np.copy(c3.aaaaaa) * 0.5 t3.aaaaaa += c3.aaaaaa * 0.5 - t3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (0, 2, 3, 1, 4, 5)) * -1 + t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (4, 0, 1, 5, 2, 3)) * -1 t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (4, 0, 1, 2, 5, 3)) - t3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) * -1 - t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (0, 4, 1, 5, 2, 3)) + t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (4, 0, 1, 2, 3, 5)) * -1 + t3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 1, 4, 5)) t3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 4, 1, 5)) * -1 - t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (0, 4, 1, 2, 3, 5)) + t3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (0, 1, 4, 5, 2, 3)) * -1 - t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (0, 1, 4, 2, 5, 3)) - t3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) * -1 - t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (0, 2, 4, 1, 3, 5)) * -1 - t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (0, 2, 4, 1, 5, 3)) + t3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) + t3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (0, 1, 4, 2, 3, 5)) * -1 + t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (2, 0, 4, 3, 1, 5)) * -1 + t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (2, 4, 0, 3, 1, 5)) t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (4, 0, 2, 1, 5, 3)) t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (4, 2, 0, 1, 5, 3)) * -1 - t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (0, 2, 4, 3, 5, 1)) * -1 - t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (0, 2, 4, 5, 3, 1)) + t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (0, 4, 2, 5, 3, 1)) * -1 + t3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (2, 0, 4, 5, 1, 3)) t3.abaaba = np.copy(c3.abaaba) * 0.5 t3.abaaba += c3.abaaba * 0.5 t3.abaaba += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), (0, 3, 2, 1, 5, 4)) * -1 t3.abaaba += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), (4, 1, 0, 2, 3, 5)) t3.abaaba += einsum(t1.bb, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 4, 1, 5)) * -1 - t3.abaaba += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), (2, 3, 0, 1, 5, 4)) + t3.abaaba += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), (0, 1, 4, 5, 3, 2)) t3.abaaba += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) * -1 - t3.abaaba += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), (0, 4, 2, 1, 5, 3)) * -1 - t3.abaaba += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), (2, 4, 0, 1, 5, 3)) + t3.abaaba += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), (4, 2, 0, 5, 3, 1)) * -1 + t3.abaaba += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (4, 0, 2, 3, 1, 5)) t3.bbbbbb = np.copy(c3.bbbbbb) * 0.5 t3.bbbbbb += c3.bbbbbb * 0.5 t3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 5, 2, 3)) * -1 t3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 2, 5, 3)) t3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) * -1 - t3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 4, 1, 5, 2, 3)) + t3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 0, 3, 1, 4, 5)) t3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 4, 1, 2, 5, 3)) * -1 t3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) t3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 1, 4, 5, 2, 3)) * -1 - t3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 1, 4, 2, 5, 3)) - t3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) * -1 - t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 2, 0, 5, 3, 1)) * -1 + t3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) + t3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 1, 4, 2, 3, 5)) * -1 + t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 5, 1, 3)) * -1 t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 5, 3, 1)) - t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (2, 4, 0, 5, 3, 1)) - t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (2, 0, 4, 5, 3, 1)) * -1 - t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (0, 4, 2, 5, 3, 1)) * -1 - t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (0, 2, 4, 5, 3, 1)) + t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (2, 0, 4, 1, 3, 5)) + t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 3, 5, 1)) * -1 + t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (2, 0, 4, 1, 5, 3)) * -1 + t3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 3, 1, 5)) t3.babbab = np.copy(c3.babbab) * 0.5 t3.babbab += c3.babbab * 0.5 t3.babbab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 5, 2, 3)) * -1 - t3.babbab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), (0, 2, 3, 5, 4, 1)) - t3.babbab += einsum(t1.aa, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 0, 3, 4, 1, 5)) * -1 - t3.babbab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), (1, 0, 4, 5, 2, 3)) + t3.babbab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 3, 2, 5)) + t3.babbab += einsum(t2.bbbb, (0, 1, 2, 3), t1.aa, (4, 5), (0, 4, 1, 2, 5, 3)) * -1 + t3.babbab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), (3, 2, 0, 1, 4, 5)) t3.babbab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), (3, 2, 0, 5, 4, 1)) * -1 - t3.babbab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 5, 1, 3)) * -1 - t3.babbab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (2, 0, 4, 5, 1, 3)) + t3.babbab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), (2, 4, 0, 3, 5, 1)) * -1 + t3.babbab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), (2, 4, 0, 1, 5, 3)) return {"t3": t3} @@ -447,150 +447,150 @@ def convert_c4_to_t4(c4=None, t1=None, t2=None, t3=None, **kwargs): t4.aaaaaaaa += np.transpose(c4.aaaaaaaa, (0, 1, 2, 3, 4, 5, 7, 6)) * -0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 1, 6, 7)) * 0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 1, 6, 7)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 7, 4, 5)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 7, 4, 5)) * 0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 7, 5)) * -0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 7, 5)) * -0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * 0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * 0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 7, 3, 4, 5)) * 0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 7, 3, 4, 5)) * 0.5 - t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 3, 7, 4, 5)) * -0.5 - t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 3, 7, 4, 5)) * -0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 1, 7)) * 0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 1, 7)) * 0.5 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * -0.5 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * -0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 3, 4, 7, 5)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 3, 4, 7, 5)) * 0.5 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * -0.5 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * -0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 5, 6, 7)) * -0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 5, 6, 7)) * -0.5 - t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 7, 4, 5)) * 0.5 - t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 7, 4, 5)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 7, 3, 4, 5)) * -0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 7, 3, 4, 5)) * -0.5 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * 0.5 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * 0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 7, 5)) * -0.5 t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 7, 5)) * -0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 7, 1)) * 0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 7, 1)) * 0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 1, 5, 6, 7)) * 0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 1, 5, 6, 7)) * 0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 1, 6, 7)) * -0.5 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 1, 6, 7)) * -0.5 - t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) * 0.5 - t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 5, 7)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 5, 7)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * 0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * -0.5 + t4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * -0.5 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 1, 7)) * 0.5 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 1, 7)) * 0.5 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -0.5 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -0.5 t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 7, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 3, 7)) * -1 t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 3, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 7, 3)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 2, 3, 6, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 1, 5, 2, 3, 6, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 3, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 1, 4, 5, 6, 7, 2, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 7, 2, 3)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 7, 3)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 3, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 3, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 7, 3)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 3, 7)) * -1 t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 1, 5, 6, 7, 2, 3)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 6, 7)) * -1 t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 7, 3)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 6, 2, 3, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 3, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 7, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 6, 2, 7, 3)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 2, 3, 6, 7)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 2, 4, 5, 1, 3, 6, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 1, 5, 2, 7, 3)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 7, 1, 4, 5)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 2, 4, 5, 1, 6, 3, 7)) t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (2, 0, 4, 5, 3, 6, 7, 1)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 1, 7, 4, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 2, 5, 1, 6, 3, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 5, 2, 3, 7)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 3, 6, 1, 7, 4, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 3, 6, 1, 4, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 3, 6, 1, 4, 5, 7)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 1, 7, 4, 5)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 5, 7, 2, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 5, 2, 7, 3)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 1, 4, 5, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 5, 7, 2, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 2, 5, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 5, 2, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 5, 7, 2, 3)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 7, 5, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (2, 0, 4, 5, 6, 3, 7, 1)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 7, 5, 1)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 7, 2, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 0, 3, 4, 7, 1, 5)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 7, 5, 3)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 7, 3, 5)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 1, 7, 4, 5)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 2, 5, 7, 3)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 4, 7, 1, 5)) * -1 t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 2, 7, 3, 5)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 1, 7, 2, 5, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 2, 4, 5, 6, 3, 1, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 2, 4, 5, 3, 6, 1, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 1, 7, 5)) t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (2, 0, 4, 5, 6, 7, 3, 1)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 2, 5, 3, 6, 1, 7)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 4, 7, 1, 5)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 7, 2, 5, 3)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 2, 5, 6, 3, 1, 7)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 2, 5, 6, 7, 1, 3)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 3, 6, 7, 4, 1, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 3, 6, 4, 7, 1, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 2, 6, 7, 1, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 2, 4, 5, 3, 6, 7, 1)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (2, 0, 4, 5, 6, 1, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 1, 2, 3, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (2, 4, 0, 5, 1, 6, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 2, 7, 3, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 2, 5, 6, 7, 3, 1)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 5, 2, 7, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 2, 7, 5, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 2, 3, 5, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 5, 2, 3, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 1, 5, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 3, 5, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 2, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 5, 3, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 3, 5, 7)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 1, 4, 5, 7)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 2, 7, 3, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 3, 6, 4, 5, 7, 1)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 1, 7, 4, 5)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 7, 2, 5, 3)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 6, 0, 3, 7, 4, 5, 1)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 3, 1, 6, 7)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 5, 2, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 1, 4, 7, 2, 3, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 2, 5, 3, 1, 6, 7)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 2, 5, 6, 1, 3, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 2, 5, 3, 7)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 1, 3, 6, 7)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 3, 6, 4, 1, 7, 5)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 2, 5, 3, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 5, 2, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 2, 7, 5, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 2, 5, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 4, 5, 1, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 0, 5, 3, 1, 6, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 5, 2, 7, 3)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 0, 5, 3, 6, 7, 1)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 5, 7, 2, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 1, 4, 7, 2, 5, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 5, 2, 3, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 7, 1, 4, 5)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 1, 7, 5)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 1, 5, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 3, 1, 6, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 6, 1, 3, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 3, 6, 4, 1, 5, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 2, 5, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 2, 5, 7, 3)) t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 2, 3, 7, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 6, 3, 0, 1, 4, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 6, 1, 3, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 1, 4, 2, 3, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 2, 5, 3, 6, 7, 1)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 1, 4, 5, 2, 7, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 2, 7, 5, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 2, 3, 5, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 7, 4, 5, 1)) t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 7, 5, 1)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 5, 7, 1)) t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 3, 6, 7, 1)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 3, 6, 4, 7, 5, 1)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 3, 6, 4, 5, 7, 1)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 0, 6, 1, 7, 4, 5)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 5, 2, 7, 3)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 5, 2, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 6, 7, 3, 1)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 5, 2, 3)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 2, 5, 3)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 2, 3, 5)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 1, 7, 4, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 4, 7, 1, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 4, 7, 5, 1)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 5, 2, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 1, 7)) - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 2, 3, 5, 7)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 2, 0, 1, 6, 7, 3)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 4, 1, 5, 7)) * -1 - t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 2, 3, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 2, 4, 6, 1, 3, 5, 7)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 2, 4, 6, 1, 3, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 2, 1, 7, 5, 3)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 6, 4, 0, 3, 1, 7, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 3, 7, 5, 1)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 2, 0, 6, 3, 1, 7)) * -1 + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 2, 5, 3, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 1, 4, 7, 5)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 4, 1, 7, 5)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 4, 5, 7, 1)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 1, 4, 5, 7)) + t4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 2, 7, 3, 5)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 2, 0, 6, 7, 1, 3)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 3, 1, 7, 5)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 5, 1, 3, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 4, 0, 6, 3, 1, 5, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 2, 6, 4, 1, 5, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 5, 7, 3, 1)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 4, 6, 3, 7, 5, 1)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 2, 6, 1, 5, 3, 7)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 2, 6, 1, 5, 7, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 2, 0, 6, 1, 5, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 3, 7, 5, 1)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 5, 7, 1, 3)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 0, 4, 1, 7, 3, 5)) * -1 t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 1, 7, 5, 3)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 2, 6, 3, 5, 7, 1)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 5, 7, 3, 1)) t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 3, 7, 5, 1)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 2, 5, 7, 1, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 6, 4, 0, 7, 1, 3, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 2, 4, 6, 5, 3, 1, 7)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 2, 4, 6, 7, 3, 1, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 4, 6, 5, 7, 3, 1)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 5, 7, 3, 1)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 4, 6, 0, 5, 7, 1, 3)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 6, 4, 0, 7, 1, 5, 3)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 2, 0, 6, 1, 3, 7, 5)) * -1 - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 2, 6, 0, 1, 3, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 2, 0, 3, 1, 7, 5)) - t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 4, 6, 0, 1, 7, 5, 3)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 2, 6, 5, 3, 1, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 2, 6, 5, 7, 1, 3)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 7, 1, 3, 5)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 3, 1, 5, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 7, 5, 3, 1)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 4, 6, 7, 5, 3, 1)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 5, 3, 1, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 3, 1, 5, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 5, 1, 3, 7)) * -1 + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 3, 1, 5, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 0, 4, 1, 5, 3, 7)) + t4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 1, 3, 5, 7)) * -1 t4.aaabaaab = np.copy(c4.aaabaaab) * 0.5 t4.aaabaaab += c4.aaabaaab * 0.5 t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (0, 2, 4, 3, 1, 5, 7, 6)) * -0.5 @@ -599,90 +599,90 @@ def convert_c4_to_t4(c4=None, t1=None, t2=None, t3=None, **kwargs): t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 1, 3, 7, 5, 4)) * 0.5 t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (0, 2, 4, 3, 5, 7, 1, 6)) * -0.5 t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (0, 2, 4, 3, 5, 7, 1, 6)) * -0.5 - t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 2, 1, 7, 5, 3, 4)) * -0.5 - t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 2, 1, 7, 5, 3, 4)) * -0.5 + t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 1, 7, 5, 6)) * -0.5 + t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 1, 7, 5, 6)) * -0.5 t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * 0.5 t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * 0.5 - t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 2, 1, 5, 3, 7, 4)) * -0.5 - t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 2, 1, 5, 3, 7, 4)) * -0.5 + t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 5, 1, 6)) * -0.5 + t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 5, 1, 6)) * -0.5 t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 7, 5, 3, 4)) * 0.5 t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 7, 5, 3, 4)) * 0.5 t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 5, 7, 3, 4)) * -0.5 t4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 5, 7, 3, 4)) * -0.5 t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 4, 0, 3, 7, 5, 1, 6)) * 0.5 t4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 4, 0, 3, 7, 5, 1, 6)) * 0.5 - t4.aaabaaab += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 4, 5, 7)) * -0.5 - t4.aaabaaab += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 4, 5, 7)) * -0.5 - t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * -1 + t4.aaabaaab += einsum(t1.bb, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -0.5 + t4.aaabaaab += einsum(t1.bb, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -0.5 + t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 6, 7)) * -1 t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 3, 7)) * -1 + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 7, 3)) * -1 t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 7, 2, 3)) - t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) * -1 - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 3, 7)) + t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 3, 7)) * -1 + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 7, 3)) t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * -1 t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 3, 7)) - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 2, 3, 6, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (0, 2, 4, 5, 1, 3, 6, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (0, 2, 4, 5, 1, 6, 3, 7)) + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 6, 7, 2, 3)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (2, 0, 4, 5, 3, 1, 6, 7)) * -1 + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 1, 5, 2, 7, 3)) t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 5, 7, 2, 3)) t4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 1, 4, 7, 5)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 1, 4, 5, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 1, 7, 4, 5)) - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (2, 0, 4, 5, 6, 3, 1, 7)) * -1 + t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 2, 3, 5)) * -1 + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 5, 7, 2, 3)) + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 7, 5, 3)) * -1 t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 7, 2, 3)) * -1 t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 7, 5, 3)) - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 5, 3, 7)) - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (0, 2, 4, 5, 3, 6, 1, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (0, 2, 4, 5, 6, 3, 1, 7)) + t4.aaabaaab += einsum(t1.bb, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 4, 7, 5, 1)) + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 1, 7, 2, 5, 3)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 1, 7, 5)) t4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 7, 4, 1, 5)) - t4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 4, 7, 1, 5)) * -1 + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 2, 7, 5, 3)) * -1 t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 3, 5, 7)) * -1 - t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 5, 7, 2, 3)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 3, 6, 1, 7)) - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 5, 2, 3, 7)) - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 2, 5, 3, 1, 6, 7)) + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 7, 5, 2, 3)) * -1 + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 5, 2, 7, 3)) + t4.aaabaaab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 3, 6, 7, 1)) + t4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 7, 1, 4, 5)) t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 2, 5, 6, 1, 3, 7)) * -1 - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 5, 3, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 1, 6, 3, 7)) * -1 - t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 2, 7, 5, 3)) - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 3, 5, 7)) - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 2, 1, 6, 7, 3)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 1, 5, 7)) * -1 + t4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 2, 5, 3)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 1, 3, 7)) + t4.aaabaaab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 6, 7, 3, 1)) + t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 2, 3, 5)) * -1 t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 2, 7, 3, 5)) - t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 3, 5, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 2, 4, 6, 1, 3, 5, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 2, 6, 4, 1, 7, 3, 5)) - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 1, 5, 3, 7)) - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 1, 5, 3, 7)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 2, 6, 4, 3, 7, 1, 5)) * -1 - t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 2, 4, 6, 5, 3, 1, 7)) + t4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 2, 3, 7, 5)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 5, 1, 7, 3)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 2, 5, 1, 7, 3)) + t4.aaabaaab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 3, 7, 5, 1)) + t4.aaabaaab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 1, 7, 5, 3)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (2, 6, 0, 4, 7, 1, 3, 5)) * -1 + t4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 7, 1, 3, 5)) t4.bbbbbbbb = np.copy(np.transpose(c4.bbbbbbbb, (0, 1, 2, 3, 4, 5, 7, 6))) * -0.5 t4.bbbbbbbb += np.transpose(c4.bbbbbbbb, (0, 1, 2, 3, 4, 5, 7, 6)) * -0.5 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 1, 5, 6, 7)) * -0.5 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 1, 5, 6, 7)) * -0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 3, 7, 4, 5)) * 0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 3, 7, 4, 5)) * 0.5 + t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 + t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 1, 6, 7)) * 0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 1, 6, 7)) * 0.5 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 6, 1, 7)) * -0.5 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 6, 1, 7)) * -0.5 t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * 0.5 t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * 0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 7, 3, 4, 5)) * 0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 7, 3, 4, 5)) * 0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 3, 7, 4, 5)) * -0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 3, 7, 4, 5)) * -0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 3, 4, 7, 5)) * 0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 3, 4, 7, 5)) * 0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 3, 4, 5, 7)) * -0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 1, 2, 3, 4, 5, 7)) * -0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 6, 2, 7, 3, 4, 5)) * -0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 6, 2, 7, 3, 4, 5)) * -0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 6, 2, 3, 7, 4, 5)) * 0.5 - t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 6, 2, 3, 7, 4, 5)) * 0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 1, 5, 6, 7)) * 0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 1, 5, 6, 7)) * 0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * -0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * -0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 1, 7)) * 0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 1, 7)) * 0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * -0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * -0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 5, 6, 7)) * -0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 5, 6, 7)) * -0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * 0.5 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * 0.5 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 1, 7)) * -0.5 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 1, 7)) * -0.5 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 7, 1)) * 0.5 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 7, 1)) * 0.5 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 1, 5, 6, 7)) * 0.5 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 1, 5, 6, 7)) * 0.5 + t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * 0.5 + t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * 0.5 t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * -0.5 t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * -0.5 t4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) * 0.5 @@ -690,234 +690,833 @@ def convert_c4_to_t4(c4=None, t1=None, t2=None, t3=None, **kwargs): t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -0.5 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * -0.5 t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 6, 7)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 7, 3)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 7, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 7, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 7, 3)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 3, 7)) t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 6, 7, 2, 3)) * -1 t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 3, 6, 7)) t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 3, 7)) * -1 t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 3, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 3, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 7, 3)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 7, 3)) * -1 t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 1, 2, 3, 6, 7)) t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 6, 7)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 7, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 7, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 3, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 3, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 6, 2, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 6, 2, 7, 3)) t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 6, 7, 2, 3)) * -1 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 3, 1, 6, 7)) * -1 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 7, 4, 1, 5)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 1, 5, 2, 3, 7)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 4, 1, 7, 5, 2, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 7, 4, 5, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 1, 6, 7)) t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 6, 1, 7)) * -1 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 6, 7, 1)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 1, 4, 7, 5, 2, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 5, 2, 7, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 1, 4, 7, 2, 3, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 2, 4, 5, 3, 1, 6, 7)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 4, 7, 1, 5)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 1, 2, 5, 3, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 6, 1, 7, 5, 2, 3)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 5, 0, 3, 1, 6, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 1, 6, 3, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 5, 2, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 1, 3, 6, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 3, 1, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 4, 7, 5, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 1, 3, 6, 7)) * -1 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 3, 1, 7)) t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 3, 7, 1)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 1, 4, 5, 7, 2, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 5, 7, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 1, 4, 2, 7, 3, 5)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 3, 7, 4, 1, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 3, 4, 7, 1, 5)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 3, 4, 5, 1, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 6, 3, 7, 4, 1, 5)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 6, 3, 4, 7, 1, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 6, 3, 4, 5, 1, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 7, 5, 2, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 6, 1, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 5, 3, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 4, 0, 1, 5, 2, 7, 3)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 4, 0, 1, 2, 5, 7, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 7, 3, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 1, 6, 3, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 1, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 7, 3, 1)) t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 7, 4, 1, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 4, 7, 1, 5)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 6, 7, 1, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 1, 7, 2, 3, 5)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 1, 2, 7, 3, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 4, 5, 1, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 6, 1, 7, 2, 3, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 2, 5, 6, 3, 7, 1)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 4, 1, 2, 3, 5, 7)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 1, 4, 5, 2, 3, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 1, 4, 2, 5, 3, 7)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 3, 7, 5)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 7, 1, 4, 5)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 1, 7, 2, 5, 3)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 7, 4, 5, 1)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 7, 5, 2, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 5, 2, 7, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 7, 2, 3, 5)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 7, 5, 2, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 1, 2, 7, 5, 3)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 7, 5, 1)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 5, 7, 2, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 5, 7, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 7, 3, 5)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 7, 2, 5, 3)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 2, 7, 5, 3)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 2, 0, 5, 6, 7, 3, 1)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 7, 2, 5, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 7, 5, 3)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 2, 6, 7, 1, 3)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 1, 4, 5, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 1, 2, 5, 3, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 5, 1, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 5, 2, 3, 7)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 5, 3, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 3, 5, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 6, 0, 7, 1, 4, 5)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 6, 4, 7, 2, 5, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 6, 4, 7, 2, 3, 5)) * -1 - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 6, 4, 5, 7, 2, 3)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 5, 7, 3)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 6, 0, 4, 7, 5, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 6, 3, 1, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 3, 5, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 4, 0, 1, 5, 2, 3, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 1, 7, 3)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 7, 1, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 1, 6, 7, 3)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 1, 7, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 7, 1, 3)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 7, 2, 3, 5)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 7, 3, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 4, 5, 7, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 6, 3, 1, 7, 4, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 1, 6, 3, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 5, 2, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 1, 7, 4, 5)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 1, 4, 7, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 2, 1, 6, 7, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 3, 1, 6, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 1, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 2, 5, 3, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 7, 1, 4, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 1, 7, 5)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 5, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 6, 3, 7, 4, 1, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 3, 1, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 7, 1, 3)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 7, 4, 1, 5)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 7, 1, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 5, 1, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 3, 6, 7, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 3, 7, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 7, 3, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 7, 4, 5, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 7, 5, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 5, 7, 1)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 5, 7, 2, 3)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 2, 1, 6, 3, 7)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 5, 2, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 7, 5, 2, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 1, 7, 5)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 5, 3, 7)) t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 2, 3, 6, 1, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 1, 7)) - t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 3, 5, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 7, 4, 5, 1)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 7, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 7, 1, 5)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 5, 1, 7)) * -1 + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 7, 2, 3, 5)) + t4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 7, 3, 5)) * -1 t4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 5, 7, 1)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 2, 0, 4, 7, 3, 1, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 5, 3, 7, 1)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 2, 4, 0, 7, 5, 3, 1)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 2, 0, 4, 7, 5, 3, 1)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 2, 0, 5, 3, 1, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 2, 5, 3, 1, 7)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 2, 7, 5, 1, 3)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 4, 0, 6, 5, 3, 7, 1)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 6, 2, 7, 5, 1, 3)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 2, 0, 4, 5, 7, 3, 1)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 6, 0, 4, 1, 3, 5, 7)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 2, 3, 5, 1, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 2, 7, 5, 1, 3)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 2, 4, 7, 5, 1, 3)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 2, 7, 5, 1, 3)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 2, 4, 5, 7, 1, 3)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 2, 4, 3, 5, 1, 7)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 2, 3, 5, 1, 7)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 4, 0, 6, 5, 1, 7, 3)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 2, 7, 3, 1, 5)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 4, 6, 0, 7, 5, 1, 3)) * -1 - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 6, 0, 2, 3, 7, 1, 5)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 6, 2, 7, 3, 1, 5)) - t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 6, 2, 3, 7, 1, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 5, 1, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 3, 1, 5, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 5, 3, 1, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 2, 4, 7, 5, 1, 3)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 5, 3, 7, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 2, 4, 7, 5, 3, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 3, 7, 5)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 3, 5, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 5, 1, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 5, 1, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 5, 7, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 5, 3, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 7, 3, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 5, 3, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 1, 5, 7)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 5, 1, 3, 7)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 7, 5, 1)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 3, 5, 1)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 7, 5, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 5, 7, 3)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 1, 7, 5)) * -1 + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 5, 1, 7, 3)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 7, 1, 5)) + t4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 3, 1, 5)) * -1 t4.abababab = np.copy(c4.abababab) * 0.5 t4.abababab += c4.abababab * 0.5 - t4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 1, 5, 6, 7)) * -0.5 - t4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 1, 5, 6, 7)) * -0.5 - t4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 6, 5, 1, 7)) * 0.5 - t4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 6, 5, 1, 7)) * 0.5 - t4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 1, 5, 7, 3, 4)) * 0.5 - t4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 1, 5, 7, 3, 4)) * 0.5 - t4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 1, 5, 4, 3, 7)) * -0.5 - t4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 1, 5, 4, 3, 7)) * -0.5 + t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 + t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 + t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 4, 3, 7, 5)) * 0.5 + t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 4, 3, 7, 5)) * 0.5 + t4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * 0.5 + t4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * 0.5 + t4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 6, 5, 1)) * -0.5 + t4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 6, 5, 1)) * -0.5 t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (1, 0, 6, 2, 7, 3, 4, 5)) * 0.5 t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (1, 0, 6, 2, 7, 3, 4, 5)) * 0.5 - t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (1, 0, 6, 2, 4, 3, 7, 5)) * -0.5 - t4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (1, 0, 6, 2, 4, 3, 7, 5)) * -0.5 + t4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 1, 7)) * -0.5 + t4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 1, 7)) * -0.5 t4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 5, 7, 3, 4)) * -0.5 t4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 5, 7, 3, 4)) * -0.5 t4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 7, 6, 5, 1)) * 0.5 t4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 7, 6, 5, 1)) * 0.5 t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * -1 - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 2, 7, 6, 3)) - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 2, 7, 6, 3)) + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 3, 2, 7)) + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 6, 3, 2, 7)) t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 2, 3, 6, 7)) * -1 t4.abababab += einsum(t2.bbbb, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) * -1 - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 1, 0, 5, 6, 7, 2, 3)) - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 1, 0, 5, 6, 3, 2, 7)) * -1 + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 2, 3, 6, 7)) + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 2, 7, 6, 3)) * -1 t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 6, 3, 2, 7)) * -1 t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 6, 7, 2, 3)) - t4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 3, 1, 7, 4, 5)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (0, 6, 2, 3, 1, 5, 4, 7)) - t4.abababab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 2, 5, 1, 6, 3, 7)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (0, 3, 2, 6, 1, 7, 4, 5)) - t4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (0, 3, 2, 6, 1, 5, 4, 7)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (0, 2, 4, 5, 6, 3, 1, 7)) - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 6, 0, 1, 2, 3, 5, 7)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 0, 3, 1, 4, 7, 5)) - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 1, 0, 6, 2, 7, 5, 3)) * -1 - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 1, 0, 6, 2, 3, 5, 7)) - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 6, 4, 1, 5, 7, 2, 3)) + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 5, 2, 3)) * -1 + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 3, 2, 5)) + t4.abababab += einsum(t1.aa, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 0, 3, 7, 4, 1, 5)) * -1 + t4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 3, 2, 0, 7, 1, 4, 5)) + t4.abababab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (2, 5, 4, 0, 3, 7, 6, 1)) * -1 + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 5, 7, 3)) + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 3, 7, 5)) * -1 + t4.abababab += einsum(t2.bbbb, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 2, 7, 3)) + t4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 3, 2, 0, 4, 1, 7, 5)) * -1 + t4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 3, 2, 0, 4, 5, 7, 1)) + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 5, 2, 3)) t4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 7, 1, 5)) * -1 - t4.abababab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 7, 3, 5)) * -1 - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 6, 4, 1, 5, 3, 2, 7)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 7, 1, 3)) - t4.abababab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 7, 3, 5)) - t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 1, 3, 6, 7)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 1, 7, 6, 3)) - t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 7, 5, 3)) + t4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 6, 3, 7, 1)) * -1 + t4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 3, 2, 5)) * -1 + t4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 5, 1, 7)) + t4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 6, 1, 7, 3)) + t4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 7, 1, 4, 5)) * -1 + t4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 7, 5, 4, 1)) + t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 1, 7)) t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 7, 1, 3)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 2, 4, 1, 7, 3, 5)) * -1 - t4.abababab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 2, 6, 1, 7, 3, 5)) - t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 6, 0, 2, 1, 7, 5, 3)) - t4.abababab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 6, 0, 4, 1, 5, 3, 7)) * -1 + t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 5, 1, 3)) * -1 + t4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 3, 1, 5)) + t4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 5, 3, 7, 1)) + t4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 5, 1, 7, 3)) * -1 t4.abbbabbb = np.copy(c4.abbbabbb) * 0.5 t4.abbbabbb += c4.abbbabbb * 0.5 t4.abbbabbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 t4.abbbabbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * -0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 7, 3, 5)) * -0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 7, 3, 5)) * -0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 3, 7, 5)) * 0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 3, 7, 5)) * 0.5 - t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 5, 7, 1)) * -0.5 - t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 5, 7, 1)) * -0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 6, 2, 4, 7, 3, 5)) * 0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 6, 2, 4, 7, 3, 5)) * 0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 1, 5, 7)) * -0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 1, 5, 7)) * -0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 5, 1, 7)) * 0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 5, 1, 7)) * 0.5 + t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 3, 5, 7)) * -0.5 + t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 3, 5, 7)) * -0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 1, 5, 7)) * 0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 1, 5, 7)) * 0.5 t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 6, 2, 4, 3, 7, 5)) * -0.5 t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 6, 2, 4, 3, 7, 5)) * -0.5 t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 7, 1)) * 0.5 t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 7, 1)) * 0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 2, 6, 4, 7, 3, 5)) * -0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 2, 6, 4, 7, 3, 5)) * -0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 2, 6, 4, 3, 7, 5)) * 0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 2, 6, 4, 3, 7, 5)) * 0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 2, 6, 4, 3, 5, 7)) * -0.5 - t4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 2, 6, 4, 3, 5, 7)) * -0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 1, 5, 7)) * -0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 1, 5, 7)) * -0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 1, 7)) * 0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 1, 7)) * 0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 7, 1)) * -0.5 + t4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 7, 1)) * -0.5 t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 7, 3)) t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 3, 7)) * -1 - t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 5, 1, 6, 7, 2, 3)) - t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) * -1 + t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 3, 6, 7)) + t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 3, 7)) * -1 t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 7, 3)) t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 6, 7, 2, 3)) * -1 - t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 7, 3)) - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) * -1 - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 2, 4, 5, 1, 3, 6, 7)) * -1 - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 2, 4, 5, 1, 6, 3, 7)) - t4.abbbabbb += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 3, 6, 7, 1)) * -1 - t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 0, 6, 1, 5, 7, 2, 3)) - t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 0, 6, 1, 5, 2, 7, 3)) * -1 - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 2, 5, 1, 6, 7, 3)) - t4.abbbabbb += einsum(t1.aa, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 1, 7, 4, 5)) * -1 - t4.abbbabbb += einsum(t1.aa, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 1, 4, 7, 5)) - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 1, 6, 7, 3)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 1, 2, 7, 5, 3)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 1, 2, 7, 3, 5)) + t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 3, 7)) + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * -1 + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 5, 2, 3)) * -1 + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 2, 5, 3)) + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 2, 3, 5)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 1, 6, 7)) + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 7, 2, 5, 3)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 0, 3, 7, 4, 5, 1)) + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 5, 2, 3)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 7, 4, 1, 5)) + t4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 2, 3, 5)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 7, 1, 5)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 7, 5, 1)) t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 7, 5, 3)) - t4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 3, 0, 4, 7, 5, 1)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 2, 7, 5, 3)) + t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 7, 3, 5)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 1, 3, 7)) t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 7, 3, 1)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 7, 5, 3)) * -1 + t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 5, 7, 3)) * -1 t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 5, 0, 6, 7, 3, 1)) - t4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 6, 3, 4, 7, 5, 1)) * -1 - t4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 6, 3, 4, 5, 7, 1)) - t4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 7, 5, 1)) - t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 5, 2, 6, 7, 3, 1)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 6, 4, 2, 7, 5, 3)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 6, 4, 2, 7, 3, 5)) - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 7, 5, 3)) - t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 2, 0, 6, 7, 3, 1)) * -1 - t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 7, 3, 5)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 1, 5, 7)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 7, 1, 3)) + t4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 5, 3, 7)) + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 5, 0, 6, 7, 1, 3)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 1, 3, 7)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 1, 7, 3)) + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 1, 7)) + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 7, 1, 3)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 7, 1)) * -1 t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 7, 3, 1)) - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 4, 2, 1, 7, 5, 3)) * -1 - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 2, 4, 1, 7, 5, 3)) - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 2, 1, 7, 5, 3)) - t4.abbbabbb += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 2, 6, 1, 7, 5, 3)) * -1 - t4.abbbabbb += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 3, 7, 5, 1)) * -1 - t4.abbbabbb += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 4, 6, 3, 7, 5, 1)) + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 5, 3, 1, 7)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 5, 3, 1)) + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 5, 1, 3, 7)) + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 3, 5, 1)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 5, 1, 7, 3)) * -1 + t4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 3, 1, 5)) return {"t4": t4} +def convert_t1_to_c1(t1=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + + Returns: + c1: + """ + + c1 = Namespace() + c1.aa = np.copy(t1.aa) + c1.bb = np.copy(t1.bb) + + return {"c1": c1} + +def convert_t2_to_c2(t1=None, t2=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + + Returns: + c2: + """ + + c2 = Namespace() + c2.aaaa = np.copy(t2.aaaa) * 2 + c2.aaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3)) * -1 + c2.aaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1)) + c2.abab = np.copy(t2.abab) + c2.abab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1)) + c2.bbbb = np.copy(t2.bbbb) * 2 + c2.bbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3)) * -1 + c2.bbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1)) + + return {"c2": c2} + +def convert_t3_to_c3(t1=None, t2=None, t3=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + t3: + + Returns: + c3: + """ + + c3 = Namespace() + c3.aaaaaa = np.copy(t3.aaaaaa) * 3 + c3.aaaaaa += t3.aaaaaa * 3 + c3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (0, 1, 4, 5, 2, 3)) * 2 + c3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 1, 4, 5)) * -2 + c3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) * -2 + c3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 4, 1, 5)) * 2 + c3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (4, 0, 1, 5, 2, 3)) * 2 + c3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (4, 0, 1, 2, 5, 3)) * -2 + c3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (0, 1, 4, 2, 3, 5)) * 2 + c3.aaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) * -2 + c3.aaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), (4, 0, 1, 2, 3, 5)) * 2 + c3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (2, 0, 4, 5, 1, 3)) * -1 + c3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (4, 2, 0, 1, 5, 3)) + c3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (0, 4, 2, 5, 3, 1)) + c3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (4, 0, 2, 1, 5, 3)) * -1 + c3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (2, 4, 0, 3, 1, 5)) * -1 + c3.aaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (2, 0, 4, 3, 1, 5)) + c3.abaaba = np.copy(t3.abaaba) + c3.abaaba += t3.abaaba + c3.abaaba += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), (0, 1, 4, 5, 3, 2)) * -1 + c3.abaaba += einsum(t1.bb, (0, 1), t2.aaaa, (2, 3, 4, 5), (2, 0, 3, 4, 1, 5)) * 2 + c3.abaaba += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), (0, 3, 2, 1, 5, 4)) + c3.abaaba += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), (2, 3, 0, 4, 5, 1)) + c3.abaaba += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), (4, 1, 0, 2, 3, 5)) * -1 + c3.abaaba += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), (4, 0, 2, 3, 1, 5)) * -1 + c3.abaaba += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), (4, 2, 0, 5, 3, 1)) + c3.bbbbbb = np.copy(t3.bbbbbb) * 3 + c3.bbbbbb += t3.bbbbbb * 3 + c3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 1, 4, 5, 2, 3)) * 2 + c3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 0, 3, 1, 4, 5)) * -2 + c3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 3, 0, 4, 1, 5)) * -2 + c3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 4, 1, 2, 5, 3)) * 2 + c3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 5, 2, 3)) * 2 + c3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 2, 5, 3)) * -2 + c3.bbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), (0, 1, 4, 2, 3, 5)) * 2 + c3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (2, 0, 3, 4, 5, 1)) * -2 + c3.bbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), (0, 2, 3, 4, 5, 1)) * 2 + c3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 3, 1, 5)) * -1 + c3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 3, 5, 1)) + c3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (2, 0, 4, 1, 5, 3)) + c3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (2, 0, 4, 1, 3, 5)) * -1 + c3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 5, 3, 1)) * -1 + c3.bbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), (4, 0, 2, 5, 1, 3)) + c3.babbab = np.copy(t3.babbab) + c3.babbab += t3.babbab + c3.babbab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), (3, 2, 0, 1, 4, 5)) * -1 + c3.babbab += einsum(t2.bbbb, (0, 1, 2, 3), t1.aa, (4, 5), (0, 4, 1, 2, 5, 3)) * 2 + c3.babbab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 5, 2, 3)) + c3.babbab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), (3, 2, 0, 5, 4, 1)) + c3.babbab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), (4, 0, 1, 3, 2, 5)) * -1 + c3.babbab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), (2, 4, 0, 1, 5, 3)) * -1 + c3.babbab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), (2, 4, 0, 3, 5, 1)) + + return {"c3": c3} + +def convert_t4_to_c4(t1=None, t2=None, t3=None, t4=None, **kwargs): + """Code generated by `albert` 0.0.0. + + Args: + t1: + t2: + t3: + t4: + + Returns: + c4: + """ + + c4 = Namespace() + c4.aaaaaaaa = np.copy(np.transpose(t4.aaaaaaaa, (0, 1, 2, 3, 4, 5, 7, 6))) * -12 + c4.aaaaaaaa += np.transpose(t4.aaaaaaaa, (0, 1, 2, 3, 4, 5, 7, 6)) * -12 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 7, 3, 4, 5)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 7, 3, 4, 5)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * 3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * -3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 7, 3, 4, 5)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 7, 3, 4, 5)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * 3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * 3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 7, 4, 5)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 7, 4, 5)) * -3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 1, 7)) * -3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 1, 7)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 7, 5)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 7, 5)) * 3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * 3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 5, 7)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 1, 6, 2, 3, 4, 5, 7)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 3, 4, 7, 5)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 6, 1, 2, 3, 4, 7, 5)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 7, 5)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 7, 5)) * 3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * 3 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * 3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * -3 + c4.aaaaaaaa += einsum(t3.aaaaaa, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * -3 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 1, 4, 5, 6, 7, 2, 3)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 1, 5, 6, 7, 2, 3)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 3, 7)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 3, 7)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 6, 7)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 7, 2, 3)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 7, 3)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 2, 3, 6, 7)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 6, 2, 7, 3)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 3, 7)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 7, 3)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 3, 7)) * -4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 7, 3)) * 4 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 3, 7)) * 4 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 1, 7, 4, 5)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 3, 1, 6, 7)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 1, 4, 7, 5)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 1, 4, 5, 2, 7, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 1, 7, 4, 5)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 7, 2, 3)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 5, 2, 7, 3)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 7, 2, 5, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 1, 4, 5, 7)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 3, 6, 7, 1)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 2, 7, 3, 5)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 3, 6, 4, 7, 5, 1)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 1, 4, 5, 7)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 2, 3, 7)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 5, 2, 3, 7)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 1, 4, 5, 7)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 5, 2, 3)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 7, 1, 4, 5)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 2, 5, 3)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 2, 5, 3)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 2, 3, 5)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 7, 4, 5, 1)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 1, 4, 6, 2, 5, 3, 7)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 7, 5, 1)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 5, 7, 2, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 0, 5, 3, 1, 6, 7)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 1, 4, 7, 2, 5, 3)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 5, 2, 7, 3)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 5, 7, 2, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 7, 1, 4, 5)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 2, 4, 5, 3, 6, 1, 7)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 2, 4, 5, 1, 6, 3, 7)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 5, 2, 3, 7)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 0, 5, 3, 6, 7, 1)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 3, 6, 4, 1, 5, 7)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 1, 5, 7)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 5, 2, 3, 7)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (2, 0, 4, 5, 3, 6, 7, 1)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 1, 5, 7)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 7, 5, 1)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 5, 7, 2, 3)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 5, 7, 2, 3)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 2, 5, 3)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 5, 2, 7, 3)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 4, 1, 7, 5)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 2, 7, 5, 3)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 2, 7, 5, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 2, 5, 6, 3, 1, 7)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 2, 5, 3, 7)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 5, 3, 7)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 2, 0, 6, 3, 1, 7)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 2, 5, 7, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 6, 1, 3, 7)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 1, 7, 5)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 1, 7, 5)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 7, 5, 3)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 4, 7, 1, 5)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 7, 5, 3)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 2, 7, 3, 5)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 7, 3, 5)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 2, 0, 6, 7, 1, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 2, 6, 7, 3, 1)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 4, 5, 1, 7)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 3, 5, 7)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 1, 6, 2, 3, 5, 7)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 2, 5, 6, 7, 1, 3)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 4, 5, 7, 1)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 4, 5, 7, 1)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 1, 6, 2, 3, 5, 7)) * -2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 2, 3, 7, 5)) * 2 + c4.aaaaaaaa += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 3, 5, 7)) * -2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (2, 0, 4, 5, 6, 7, 3, 1)) * 2 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 1, 3, 5, 7)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 4, 6, 7, 5, 3, 1)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 0, 4, 1, 5, 3, 7)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 7, 5, 3, 1)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 3, 1, 5, 7)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 3, 1, 5, 7)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 3, 1, 5, 7)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 2, 6, 5, 7, 1, 3)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 3, 7, 5, 1)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 1, 7, 5, 3)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 4, 6, 3, 7, 5, 1)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 2, 6, 4, 1, 5, 3, 7)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 5, 1, 3, 7)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 7, 1, 3, 5)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 5, 3, 1, 7)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 2, 6, 5, 3, 1, 7)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 2, 5, 7, 3, 1)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 0, 4, 1, 7, 3, 5)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 5, 7, 3, 1)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 4, 0, 6, 3, 1, 5, 7)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 2, 0, 5, 7, 1, 3)) + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 3, 7, 5, 1)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 5, 1, 3, 7)) * -1 + c4.aaaaaaaa += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 3, 1, 7, 5)) + c4.aaabaaab = np.copy(t4.aaabaaab) * 3 + c4.aaabaaab += t4.aaabaaab * 3 + c4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 7, 5, 3, 4)) * -1 + c4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 7, 5, 3, 4)) * -1 + c4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 5, 7, 3, 4)) + c4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 1, 5, 7, 3, 4)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 1, 7, 5, 6)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 1, 7, 5, 6)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (0, 2, 4, 3, 1, 5, 7, 6)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (0, 2, 4, 3, 1, 5, 7, 6)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * -1 + c4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 1, 3, 7, 5, 4)) * -1 + c4.aaabaaab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 1, 3, 7, 5, 4)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 4, 0, 3, 7, 5, 1, 6)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 4, 0, 3, 7, 5, 1, 6)) * -1 + c4.aaabaaab += einsum(t1.bb, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * 3 + c4.aaabaaab += einsum(t1.bb, (0, 1), t3.aaaaaa, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * 3 + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 5, 1, 6)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 5, 1, 6)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (0, 2, 4, 3, 5, 7, 1, 6)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (0, 2, 4, 3, 5, 7, 1, 6)) + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 7, 2, 3)) * -2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 3, 7)) * 2 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (0, 4, 5, 1, 6, 7, 2, 3)) * 2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 6, 7)) * 2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 2, 6, 3, 7)) * -2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) * -2 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 7, 3)) * 2 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 7, 3)) * -2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * 2 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 7, 2, 3)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 7, 4, 1, 5)) * -1 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 2, 3, 5)) * 2 + c4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (2, 0, 6, 3, 7, 1, 4, 5)) * -1 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 2, 5, 3)) + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 7, 2, 3, 5)) * 2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 2, 7, 3, 5)) * -2 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 6, 4, 1, 7, 5, 2, 3)) + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 5, 2, 7, 3)) * -1 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 5, 7, 2, 3)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (2, 0, 4, 5, 3, 1, 6, 7)) + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 1, 7, 2, 5, 3)) + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 1, 5, 2, 7, 3)) * -1 + c4.aaabaaab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 3, 6, 7, 1)) * -2 + c4.aaabaaab += einsum(t1.aa, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 1, 5, 7)) * 2 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 5, 7, 2, 3)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (0, 2, 6, 3, 1, 4, 7, 5)) + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 1, 2, 7, 5, 3)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 1, 3, 7)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 2, 5, 6, 1, 3, 7)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 2, 3, 4, 1, 7, 5)) * -1 + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 7, 5, 3)) + c4.aaabaaab += einsum(t2.abab, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 2, 7, 5, 3)) * -1 + c4.aaabaaab += einsum(t1.bb, (0, 1), t2.aaaa, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 4, 7, 5, 1)) * -2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 3, 5, 7)) * 2 + c4.aaabaaab += einsum(t2.aaaa, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 1, 6, 4, 2, 3, 7, 5)) * 2 + c4.aaabaaab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 6, 7, 3, 1)) * -2 + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (2, 0, 6, 4, 7, 1, 3, 5)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.aa, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (2, 6, 0, 4, 7, 1, 3, 5)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 1, 7, 5, 3)) + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 6, 0, 2, 5, 1, 7, 3)) * -1 + c4.aaabaaab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 3, 7, 5, 1)) * -1 + c4.aaabaaab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (4, 0, 6, 2, 5, 1, 7, 3)) + c4.bbbbbbbb = np.copy(np.transpose(t4.bbbbbbbb, (0, 1, 2, 3, 4, 5, 7, 6))) * -12 + c4.bbbbbbbb += np.transpose(t4.bbbbbbbb, (0, 1, 2, 3, 4, 5, 7, 6)) * -12 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * -3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 7, 3, 4, 5)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 5, 6, 7)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 1, 5, 6, 7)) * 3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * 3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 7, 4, 5)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 1, 6, 7)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 1, 5, 6, 7)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 1, 5, 6, 7)) * -3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * 3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 1, 6, 7)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 1, 6, 7)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 1, 6, 7)) * -3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) * -3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 3, 4, 7, 5)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 1, 7)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 1, 7)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 5, 6, 7, 1)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 7, 1)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 3, 0, 4, 5, 6, 7, 1)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 1, 7)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 1, 7)) * -3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 6, 1, 7)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (0, 2, 3, 4, 5, 6, 1, 7)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * 3 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t3.bbbbbb, (2, 3, 4, 5, 6, 7), (2, 0, 3, 4, 5, 6, 7, 1)) * 3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * -3 + c4.bbbbbbbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 1, 2, 3, 4, 5, 7)) * -3 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 6, 7, 2, 3)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 1, 2, 3, 6, 7)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 1, 2, 6, 3, 7)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 6, 2, 7, 3)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 3, 6, 7)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 3, 6, 7)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 3, 7)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 3, 7)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 6, 7, 2, 3)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 2, 3, 6, 7)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 6, 2, 7, 3)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 3, 7)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 6, 2, 3, 7)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 1, 2, 6, 7, 3)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 7, 3)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 3, 7)) * -4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 6, 2, 3, 7)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 1, 4, 5, 2, 6, 7, 3)) * 4 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 7, 5, 2, 3)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 7, 1, 4, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 2, 3, 6, 1, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 7, 4, 1, 5)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 7, 5, 2, 3)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 1, 3, 6, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 7, 4, 1, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 1, 6, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 7, 2, 3, 5)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 7, 4, 5, 1)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 7, 3, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 7, 5, 1)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 7, 2, 3, 5)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 1, 6, 7, 3)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 5, 2, 3, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 6, 7, 1)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 5, 7, 2, 3)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 3, 1, 6, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 5, 0, 2, 1, 6, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 6, 3, 7, 4, 1, 5)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 5, 2, 3, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 3, 6, 7, 1)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 1, 4, 6, 2, 5, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 3, 7, 1)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 1, 7, 4, 5)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 6, 3, 1, 7, 4, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 1, 4, 7, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 1, 6, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 1, 3, 6, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 3, 1, 6, 7)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 4, 0, 1, 5, 2, 7, 3)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 7, 4, 1, 5)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 5, 2, 1, 6, 7, 3)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 5, 2, 3, 7)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 1, 6, 2, 5, 3, 7)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 4, 6, 1, 2, 5, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 4, 0, 1, 5, 2, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 7, 4, 5, 1)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 1, 7, 3)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (6, 0, 2, 3, 4, 7, 5, 1)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 5, 0, 3, 1, 6, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 1, 6, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 1, 6, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 6, 1, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 7, 1, 5)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 7, 1, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 6, 3, 1, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 1, 3, 7)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 7, 3, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 1, 7, 3)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 1, 7, 5)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 3, 1, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 1, 7, 5)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 1, 3, 7)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 4, 0, 1, 2, 5, 7, 3)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 3, 1, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 2, 6, 1, 3, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 3, 1, 7)) * -2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 5, 3, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 3, 7, 1)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 5, 7, 1)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 5, 7, 1)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (0, 2, 3, 6, 4, 5, 7, 1)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 7, 1, 3)) * 2 + c4.bbbbbbbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 1, 6, 2, 3, 5, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 6, 7, 3, 1)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 3, 0, 6, 4, 5, 1, 7)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 7, 3, 1)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.bb, (6, 7), (2, 0, 3, 6, 4, 5, 1, 7)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (4, 0, 2, 5, 6, 7, 1, 3)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 7, 1, 3)) * -2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 0, 4, 5, 6, 7, 3, 1)) * 2 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 3, 1, 5)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 3, 5, 1)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 7, 1, 5)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 7, 5, 1)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 5, 1, 7, 3)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 5, 1, 3, 7)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 5, 7, 3)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 5, 3, 7)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 5, 3, 1)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 7, 5, 1, 3)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 2, 4, 7, 5, 3, 1)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (6, 0, 2, 4, 7, 5, 1, 3)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 1, 7, 5)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 1, 5, 7)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 7, 5, 3)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 7, 3, 5)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 5, 7, 1)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 3, 5, 1, 7)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 5, 3, 7, 1)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 5, 3, 1, 7)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 3, 5, 7)) + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 1, 3, 7, 5)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (2, 0, 6, 4, 3, 1, 5, 7)) * -1 + c4.bbbbbbbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (4, 0, 2, 6, 5, 1, 3, 7)) + c4.abababab = np.copy(t4.abababab) * 2 + c4.abababab += t4.abababab * 2 + c4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (1, 0, 6, 2, 7, 3, 4, 5)) * -1 + c4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (1, 0, 6, 2, 7, 3, 4, 5)) * -1 + c4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 5, 7, 3, 4)) + c4.abababab += einsum(t3.abaaba, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (0, 1, 2, 6, 5, 7, 3, 4)) + c4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) + c4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) + c4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 1, 5, 6)) * -1 + c4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 1, 7)) + c4.abababab += einsum(t1.aa, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 1, 7)) + c4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 7, 6, 5, 1)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 3, 4, 0, 7, 6, 5, 1)) * -1 + c4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 4, 3, 7, 5)) * -1 + c4.abababab += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 4, 3, 7, 5)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 6, 5, 1)) + c4.abababab += einsum(t1.bb, (0, 1), t3.abaaba, (2, 3, 4, 5, 6, 7), (2, 0, 4, 3, 7, 6, 5, 1)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 2, 3, 6, 7)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 2, 3, 6, 7)) * -1 + c4.abababab += einsum(t2.bbbb, (0, 1, 2, 3), t2.aaaa, (4, 5, 6, 7), (4, 0, 5, 1, 6, 2, 7, 3)) * 4 + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 6, 7, 2, 3)) * -1 + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 1, 4, 5, 6, 3, 2, 7)) * -1 + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 2, 7, 6, 3)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (0, 5, 4, 1, 6, 3, 2, 7)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 3, 2, 7)) * -1 + c4.abababab += einsum(t2.bbbb, (0, 1, 2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 5, 2, 7, 3)) * -2 + c4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 6, 1, 7, 3)) * -2 + c4.abababab += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.abab, (4, 5, 6, 7), (2, 5, 4, 0, 3, 7, 6, 1)) + c4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 7, 1, 4, 5)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 5, 2, 3)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (2, 3, 6, 0, 7, 5, 4, 1)) * -1 + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (0, 4, 6, 1, 7, 3, 2, 5)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 5, 2, 3)) + c4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.aaaa, (4, 5, 6, 7), (4, 2, 5, 0, 6, 3, 7, 1)) * 2 + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 3, 2, 5)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 3, 2, 0, 7, 1, 4, 5)) * -1 + c4.abababab += einsum(t1.aa, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 0, 3, 7, 4, 1, 5)) * 2 + c4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 1, 7)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 3, 2, 0, 4, 1, 7, 5)) + c4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 7, 1, 5)) + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 5, 7, 3)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.aa, (6, 7), (6, 3, 2, 0, 4, 5, 7, 1)) * -1 + c4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 7, 1, 3)) + c4.abababab += einsum(t1.aa, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 5, 1, 7)) * -1 + c4.abababab += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 2, 3, 7, 5)) + c4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 5, 1, 7, 3)) + c4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 3, 1, 5)) * -1 + c4.abababab += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.aa, (6, 7), (6, 2, 4, 0, 5, 3, 7, 1)) * -1 + c4.abababab += einsum(t1.aa, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 5, 1, 3)) + c4.abbbabbb = np.copy(t4.abbbabbb) * 3 + c4.abbbabbb += t4.abbbabbb * 3 + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 1, 5, 7)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 1, 5, 7)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 1, 5, 7)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 1, 5, 7)) * -1 + c4.abbbabbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * 3 + c4.abbbabbb += einsum(t3.bbbbbb, (0, 1, 2, 3, 4, 5), t1.aa, (6, 7), (6, 0, 1, 2, 7, 3, 4, 5)) * 3 + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 1, 5, 7)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 1, 5, 7)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 1, 7)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 1, 7)) * -1 + c4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 6, 2, 4, 3, 7, 5)) + c4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 0, 6, 2, 4, 3, 7, 5)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 7, 1)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 4, 0, 6, 5, 7, 1)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 7, 1)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 2, 0, 4, 6, 5, 7, 1)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 5, 1, 7)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t3.babbab, (2, 3, 4, 5, 6, 7), (3, 0, 2, 4, 6, 5, 1, 7)) * -1 + c4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 3, 5, 7)) + c4.abbbabbb += einsum(t3.babbab, (0, 1, 2, 3, 4, 5), t1.bb, (6, 7), (1, 6, 0, 2, 4, 3, 5, 7)) + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 6, 7, 2, 3)) * 2 + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 3, 6, 7)) * -2 + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 5, 1, 2, 6, 3, 7)) * -2 + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 3, 7)) * 2 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 7, 2, 3)) * 2 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 7, 3)) * -2 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 0, 1, 5, 6, 2, 3, 7)) * 2 + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t2.bbbb, (4, 5, 6, 7), (0, 4, 1, 5, 2, 6, 7, 3)) * -2 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 1, 6, 2, 3, 7)) * 2 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 7, 1)) + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 5, 3, 7)) * -1 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 2, 3, 5)) * 2 + c4.abbbabbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 0, 3, 7, 4, 5, 1)) * -2 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 1, 7, 3)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 1, 5, 7)) + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 5, 2, 3)) * 2 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 2, 5, 3)) * -2 + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 7, 3, 5)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 7, 5, 1)) * -1 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 1, 7, 2, 3, 5)) * 2 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 1, 4, 7, 5, 2, 3)) * 2 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.aa, (2, 3), t2.bbbb, (4, 5, 6, 7), (2, 4, 0, 5, 3, 1, 6, 7)) * -2 + c4.abbbabbb += einsum(t1.bb, (0, 1), t2.bbbb, (2, 3, 4, 5), t1.aa, (6, 7), (6, 2, 3, 0, 7, 4, 1, 5)) * -2 + c4.abbbabbb += einsum(t2.bbbb, (0, 1, 2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 0, 4, 1, 7, 2, 5, 3)) * 2 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 3, 1, 7)) * -1 + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 5, 7, 3)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 1, 3, 7)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 1, 3, 7)) * -1 + c4.abbbabbb += einsum(t2.abab, (0, 1, 2, 3), t1.bb, (4, 5), t1.bb, (6, 7), (0, 6, 1, 4, 2, 7, 5, 3)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t2.abab, (2, 3, 4, 5), t1.bb, (6, 7), (2, 6, 0, 3, 4, 7, 1, 5)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 7, 3, 1)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 5, 0, 6, 7, 1, 3)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 5, 0, 2, 6, 7, 1, 3)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 7, 1, 3)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 5, 0, 6, 7, 3, 1)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t2.abab, (4, 5, 6, 7), (4, 2, 0, 5, 6, 7, 3, 1)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 3, 1, 5)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 3, 5, 1)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 5, 1, 7, 3)) + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 5, 1, 3, 7)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.bb, (4, 5), t1.aa, (6, 7), (6, 4, 0, 2, 7, 5, 3, 1)) * -1 + c4.abbbabbb += einsum(t1.bb, (0, 1), t1.bb, (2, 3), t1.aa, (4, 5), t1.bb, (6, 7), (4, 2, 0, 6, 5, 3, 1, 7)) + + return {"c4": c4} + diff --git a/ebcc/ext/fci.py b/ebcc/ext/fci.py index d695dcc1..03194c39 100644 --- a/ebcc/ext/fci.py +++ b/ebcc/ext/fci.py @@ -8,7 +8,9 @@ from ebcc import numpy as np from ebcc import util +from ebcc.backend import _put from ebcc.codegen import RecCC, UecCC +from ebcc.core.precision import types if TYPE_CHECKING: from typing import Iterator, Union @@ -17,10 +19,13 @@ from numpy.typing import NDArray from pyscf.fci import FCI - from ebcc.cc.rebcc import SpinArrayType + from ebcc.cc.rebcc import SpinArrayType as RSpinArrayType + from ebcc.cc.uebcc import SpinArrayType as USpinArrayType from ebcc.ham import Space from ebcc.util import Namespace + T = floating + def _tn_addrs_signs(norb: int, nocc: int, order: int) -> tuple[NDArray[integer], NDArray[integer]]: """Get the addresses and signs for the given order. @@ -37,9 +42,9 @@ def _tn_addrs_signs(norb: int, nocc: int, order: int) -> tuple[NDArray[integer], return np.asarray(addrs, dtype=np.int64), np.asarray(signs, dtype=np.int64) -def extract_amplitudes_restricted( +def fci_to_amplitudes_restricted( fci: FCI, space: Space, max_order: int = 4 -) -> Namespace[SpinArrayType]: +) -> Namespace[RSpinArrayType]: """Extract amplitudes from an FCI calculation with restricted symmetry. The FCI calculatiion should have been performed in the active space according to the given @@ -50,6 +55,52 @@ def extract_amplitudes_restricted( space: Space containing the frozen, correlated, and active fermionic spaces. max_order: Maximum order of the excitation. + Returns: + Cluster amplitudes in the active space. + """ + return _ci_vector_to_amplitudes_restricted(fci.ci, space, max_order=max_order) + + +def _coefficients_to_amplitudes_restricted( + camps: Namespace[RSpinArrayType], max_order: int = 4 +) -> Namespace[RSpinArrayType]: + """Convert coefficient amplitudes to cluster amplitudes with restricted symmetry. + + Args: + camps: Coefficient amplitudes. + space: Space containing the frozen, correlated, and active fermionic spaces. + max_order: Maximum order of the excitation. + + Returns: + Cluster amplitudes in the active space. + """ + amps: Namespace[RSpinArrayType] = util.Namespace() + amps.t1 = RecCC.convert_c1_to_t1(c1=camps.c1)["t1"] # type: ignore + if max_order > 1: + amps.t2 = RecCC.convert_c2_to_t2(c2=camps.c2, **dict(amps))["t2"] # type: ignore + if max_order > 2: + amps.t3 = RecCC.convert_c3_to_t3(c3=camps.c3, **dict(amps))["t3"] # type: ignore + if max_order > 3: + t4s = RecCC.convert_c4_to_t4(c4=camps.c4, c4a=camps.c4a, **dict(amps)) # type: ignore + amps.t4 = t4s["t4"] # type: ignore + amps.t4a = t4s["t4a"] # type: ignore + + # FIXME: There should probably be some scaling here as in UHF, but instead the scaling is + # done in a hacky way in `_amplitudes_to_ci_vector_restricted` + + return amps + + +def _ci_vector_to_coefficients_restricted( + ci: NDArray[T], space: Space, max_order: int = 4 +) -> Namespace[RSpinArrayType]: + """Extract coefficient amplitudes from a CI vector with restricted symmetry. + + Args: + ci: CI vector. + space: Space containing the frozen, correlated, and active fermionic spaces. + max_order: Maximum order of the excitation. + Returns: Cluster amplitudes in the active space. """ @@ -63,7 +114,7 @@ def extract_amplitudes_restricted( for order in range(1, max_order + 1): addrs[order], signs[order] = _tn_addrs_signs(space.nact, space.naocc, order) - def _get_c(spins: str) -> NDArray[floating]: + def _get_c(spins: str) -> NDArray[T]: """Get the C amplitudes for a given spin configuration.""" # Find the spins nalph = spins.count("a") @@ -86,7 +137,7 @@ def _get_c(spins: str) -> NDArray[floating]: signsj = signsj[None, :] # type: ignore # Get the amplitudes - cn = fci.ci[addrsi, addrsj] * signsi * signsj + cn = ci[addrsi, addrsj] * signsi * signsj # Decompress the axes shape = tuple( @@ -105,38 +156,119 @@ def _get_c(spins: str) -> NDArray[floating]: cn = np.transpose(cn, perm) # Scale by reference energy - cn /= fci.ci[0, 0] + cn /= ci[0, 0] return cn # Get the C amplitudes - c1 = _get_c("b") + camps: Namespace[RSpinArrayType] = util.Namespace() + camps.c1 = _get_c("b") if max_order > 1: - c2 = _get_c("ab") + camps.c2 = _get_c("ab") if max_order > 2: - c3 = _get_c("aba") + camps.c3 = _get_c("aba") if max_order > 3: - c4 = _get_c("abab") - c4a = _get_c("abaa") + camps.c4 = _get_c("abab") + camps.c4a = _get_c("abaa") + + return camps + + +def _ci_vector_to_amplitudes_restricted( + ci: NDArray[T], space: Space, max_order: int = 4 +) -> Namespace[RSpinArrayType]: + """Extract amplitudes from a CI vector with restricted symmetry. + + Args: + ci: CI vector. + space: Space containing the frozen, correlated, and active fermionic spaces. + max_order: Maximum order of the excitation. + + Returns: + Cluster amplitudes in the active space. + """ + # Extract the C amplitudes + camps = _ci_vector_to_coefficients_restricted(ci, space, max_order=max_order) # Transform to T amplitudes - amps: Namespace[SpinArrayType] = util.Namespace() - amps.t1 = RecCC.convert_c1_to_t1(c1=c1)["t1"] # type: ignore + amps = _coefficients_to_amplitudes_restricted(camps, max_order=max_order) + + return amps + + +def _amplitudes_to_ci_vector_restricted( + amps: Namespace[RSpinArrayType], max_order: int = 4, normalise: bool = True +) -> NDArray[T]: + """Pack the amplitudes into a CI vector with restricted symmetry. + + Args: + amps: Cluster amplitudes. + space: Space containing the frozen, correlated, and active fermionic spaces. + max_order: Maximum order of the excitation. + normalise: Whether to normalise the CI vector. If the vector is not normalised, the + reference energy term (`ci[0, 0]`) will be `1.0`. + + Returns: + CI vector. + + Note: + This function converts the amplitudes to an unrestricted representation and calls + `_pack_vector_unrestricted`, and so the restricted T->C conversion routines are never + called. This makes the spin cases easier to handle, and there is no loss in performance + since the CI vector needs all spin cases to be included anyway. + """ + if max_order > 4: + # TODO: Just to match extract_amplitudes_restricted + raise NotImplementedError("Only up to 4th order amplitudes are supported.") + + # FIXME: I have literally no idea why this works but it does, if you want well defined + # behaviour, you should probably use the unrestricted version + + amps_uhf: Namespace[USpinArrayType] = util.Namespace() + amps_uhf.t1 = util.Namespace( + aa=amps.t1, + bb=amps.t1, + ) if max_order > 1: - amps.t2 = RecCC.convert_c2_to_t2(c2=c2, **dict(amps))["t2"] # type: ignore + t2_aa = util.symmetrise("iiaa", amps.t2, apply_factor=False) / (2**2) + t2_ab = amps.t2 + amps_uhf.t2 = util.Namespace( + aaaa=t2_aa, + abab=t2_ab, + bbbb=t2_aa, + ) if max_order > 2: - amps.t3 = RecCC.convert_c3_to_t3(c3=c3, **dict(amps))["t3"] # type: ignore + t3_aaa = util.symmetrise("iiiaaa", amps.t3, apply_factor=False) / (6**2 * 2) + t3_aba = util.symmetrise("ijiaba", amps.t3, apply_factor=False) / (2**2 * 2) + amps_uhf.t3 = util.Namespace( + aaaaaa=t3_aaa, + abaaba=t3_aba, + babbab=t3_aba, + bbbbbb=t3_aaa, + ) if max_order > 3: - t4s = RecCC.convert_c4_to_t4(c4=c4, c4a=c4a, **dict(amps)) # type: ignore - amps.t4 = t4s["t4"] # type: ignore - amps.t4a = t4s["t4a"] # type: ignore + t4_aaaa = util.symmetrise("iiiiaaaa", amps.t4, apply_factor=False) / (24**2 * 4) + t4_aaab = util.symmetrise( + "iiijaaab", amps.t4a.transpose(0, 2, 3, 1, 4, 6, 7, 5), apply_factor=False + ) / (6**2 * 6) + t4_baaa = util.symmetrise( + "jiiibaaa", amps.t4a.transpose(1, 0, 2, 3, 5, 4, 6, 7), apply_factor=False + ) / (6**2 * 6) + t4_abab = util.symmetrise("ijijabab", amps.t4, apply_factor=False) / (2**6) + amps_uhf.t4 = util.Namespace( + aaaaaaaa=t4_aaaa, + aaabaaab=t4_aaab, + abababab=t4_abab, + abbbabbb=t4_baaa, + bbbbbbbb=t4_aaaa, + ) - return amps + return _amplitudes_to_ci_vector_unrestricted(amps_uhf, max_order=max_order, normalise=normalise) -def extract_amplitudes_unrestricted( +def fci_to_amplitudes_unrestricted( fci: FCI, space: tuple[Space, Space], max_order: int = 4 -) -> Namespace[SpinArrayType]: +) -> Namespace[USpinArrayType]: """Extract amplitudes from an FCI calculation with unrestricted symmetry. The FCI calculatiion should have been performed in the active space according to the given @@ -148,6 +280,83 @@ def extract_amplitudes_unrestricted( channel. max_order: Maximum order of the excitation. + Returns: + Cluster amplitudes in the active space. + """ + return _ci_vector_to_amplitudes_unrestricted(fci.ci, space, max_order=max_order) + + +def _coefficients_to_amplitudes_unrestricted( + camps: Namespace[USpinArrayType], max_order: int = 4 +) -> Namespace[USpinArrayType]: + """Convert coefficient amplitudes to cluster amplitudes with unrestricted symmetry. + + Args: + camps: Coefficient amplitudes. + space: Space containing the frozen, correlated, and active fermionic spaces for each spin + channel. + max_order: Maximum order of the excitation. + + Returns: + Cluster amplitudes in the active space. + """ + amps: Namespace[USpinArrayType] = util.Namespace() + amps.t1 = UecCC.convert_c1_to_t1(c1=camps.c1)["t1"] # type: ignore + if max_order > 1: + amps.t2 = UecCC.convert_c2_to_t2(c2=camps.c2, **dict(amps))["t2"] # type: ignore + if max_order > 2: + amps.t3 = UecCC.convert_c3_to_t3(c3=camps.c3, **dict(amps))["t3"] # type: ignore + if max_order > 3: + amps.t4 = UecCC.convert_c4_to_t4(c4=camps.c4, **dict(amps))["t4"] # type: ignore + + # FIXME: This is probably a convention issue -- I multiply by the factor in the C->T generated + # code, but removing that doesn't seem to work. This works for now. + for order in range(1, max_order + 1): + name = f"t{order}" + for spins in util.generate_spin_combinations(order, unique=True): + factor_a = util.factorial(spins[:order].count("a")) + factor_b = util.factorial(spins[:order].count("b")) + amps[name][spins] /= factor_a * factor_b + + return amps + + +def _amplitudes_to_coefficients_unrestricted( + amps: Namespace[USpinArrayType], max_order: int = 4 +) -> Namespace[USpinArrayType]: + """Convert cluster amplitudes to coefficient amplitudes with unrestricted symmetry. + + Args: + amps: Cluster amplitudes. + space: Space containing the frozen, correlated, and active fermionic spaces for each spin + channel. + max_order: Maximum order of the excitation. + + Returns: + Coefficient amplitudes. + """ + camps: Namespace[USpinArrayType] = util.Namespace() + camps.c1 = UecCC.convert_t1_to_c1(**dict(amps))["c1"] # type: ignore + if max_order > 1: + camps.c2 = UecCC.convert_t2_to_c2(**dict(amps))["c2"] # type: ignore + if max_order > 2: + camps.c3 = UecCC.convert_t3_to_c3(**dict(amps))["c3"] # type: ignore + if max_order > 3: + camps.c4 = UecCC.convert_t4_to_c4(**dict(amps))["c4"] # type: ignore + return camps + + +def _ci_vector_to_coefficients_unrestricted( + ci: NDArray[T], space: tuple[Space, Space], max_order: int = 4 +) -> Namespace[USpinArrayType]: + """Extract coefficient amplitudes from a CI vector with unrestricted symmetry. + + Args: + ci: CI vector. + space: Space containing the frozen, correlated, and active fermionic spaces for each spin + channel. + max_order: Maximum order of the excitation. + Returns: Cluster amplitudes in the active space. """ @@ -164,7 +373,7 @@ def extract_amplitudes_unrestricted( addrsa[order], signsa[order] = _tn_addrs_signs(space[0].nact, space[0].naocc, order) addrsb[order], signsb[order] = _tn_addrs_signs(space[1].nact, space[1].naocc, order) - def _get_c(spins: str) -> NDArray[floating]: + def _get_c(spins: str) -> NDArray[T]: """Get the C amplitudes for a given spin configuration.""" # Find the spins nalph = spins.count("a") @@ -187,7 +396,7 @@ def _get_c(spins: str) -> NDArray[floating]: signsj = signsj[None, :] # type: ignore # Get the amplitudes - cn = fci.ci[addrsi, addrsj] * signsi * signsj + cn = ci[addrsi, addrsj] * signsi * signsj # Decompress the axes shape = tuple( @@ -207,37 +416,176 @@ def _get_c(spins: str) -> NDArray[floating]: cn = np.transpose(cn, perm) # Scale by reference energy - cn /= fci.ci[0, 0] + cn /= ci[0, 0] return cn - def _generator(order: int) -> Iterator[tuple[str, NDArray[floating]]]: + def _generator(order: int) -> Iterator[tuple[str, NDArray[T]]]: """Generate the key-value pairs for the spin cases.""" for comb in util.generate_spin_combinations(order, unique=True): yield (comb, _get_c(comb[:order])) # Get the C amplitudes - c1 = util.Namespace(**dict(_generator(1))) + camps: Namespace[USpinArrayType] = util.Namespace() + camps.c1 = util.Namespace(**dict(_generator(1))) if max_order > 1: - c2 = util.Namespace(**dict(_generator(2))) + camps.c2 = util.Namespace(**dict(_generator(2))) if max_order > 2: - c3 = util.Namespace(**dict(_generator(3))) + camps.c3 = util.Namespace(**dict(_generator(3))) if max_order > 3: - c4 = util.Namespace(**dict(_generator(4))) + camps.c4 = util.Namespace(**dict(_generator(4))) - # Transform to T amplitudes - amps: Namespace[SpinArrayType] = util.Namespace() - amps.t1 = UecCC.convert_c1_to_t1(c1=c1)["t1"] # type: ignore - if max_order > 1: - amps.t2 = UecCC.convert_c2_to_t2(c2=c2, **dict(amps))["t2"] # type: ignore - if max_order > 2: - amps.t3 = UecCC.convert_c3_to_t3(c3=c3, **dict(amps))["t3"] # type: ignore - if max_order > 3: - amps.t4 = UecCC.convert_c4_to_t4(c4=c4, **dict(amps))["t4"] # type: ignore + return camps - # FIXME: This is some representational issue to ensure that tCC is correct -- why is it 0.25 - # and not 0.5, and should we generalise with util.symmetrise? - amps.t2.aaaa = (amps.t2.aaaa - amps.t2.aaaa.swapaxes(0, 1)) * 0.25 # type: ignore - amps.t2.bbbb = (amps.t2.bbbb - amps.t2.bbbb.swapaxes(0, 1)) * 0.25 # type: ignore + +def _ci_vector_to_amplitudes_unrestricted( + ci: NDArray[T], space: tuple[Space, Space], max_order: int = 4 +) -> Namespace[USpinArrayType]: + """Extract amplitudes from a CI vector with unrestricted symmetry. + + Args: + ci: CI vector. + space: Space containing the frozen, correlated, and active fermionic spaces for each spin + channel. + max_order: Maximum order of the excitation. + + Returns: + Cluster amplitudes in the active space. + """ + # Extract the C amplitudes + camps = _ci_vector_to_coefficients_unrestricted(ci, space, max_order=max_order) + + # Transform to T amplitudes + amps = _coefficients_to_amplitudes_unrestricted(camps, max_order=max_order) return amps + + +def _amplitudes_to_ci_vector_unrestricted( + amps: Namespace[USpinArrayType], max_order: int = 4, normalise: bool = True +) -> NDArray[T]: + """Pack the amplitudes into a CI vector with unrestricted symmetry. + + Args: + amps: Cluster amplitudes. + max_order: Maximum order of the excitation. + normalise: Whether to normalise the CI vector. If the vector is not normalised, the + reference energy term (`ci[0, 0]`) will be `1.0`. + + Returns: + CI vector. + """ + if max_order > 4: + # TODO: Just to match extract_amplitudes_unrestricted + raise NotImplementedError("Only up to 4th order amplitudes are supported.") + + # Get the adresses for each order + nocca, nvira = amps.t1.aa.shape + noccb, nvirb = amps.t1.bb.shape + nocc = (nocca, noccb) + nvir = (nvira, nvirb) + addrsa: dict[int, NDArray[integer]] = {} + signsa: dict[int, NDArray[integer]] = {} + addrsb: dict[int, NDArray[integer]] = {} + signsb: dict[int, NDArray[integer]] = {} + for order in range(1, max_order + 1): + addrsa[order], signsa[order] = _tn_addrs_signs(nocca + nvira, nocca, order) + addrsb[order], signsb[order] = _tn_addrs_signs(noccb + nvirb, noccb, order) + + def _pack_vector( + spins: str, cn: NDArray[T] + ) -> tuple[tuple[Union[int, NDArray[integer]], Union[int, NDArray[integer]]], NDArray[T]]: + """Get the CI vector for a given spin configuration and T amplitude. + + Also returns the indices for the given block of the CI vector. + """ + # Find the spins + nalph = spins.count("a") + nbeta = spins.count("b") + + # Get the addresses and signs + addrsi: Union[int, NDArray[integer]] = 0 + addrsj: Union[int, NDArray[integer]] = 0 + signsi: Union[int, NDArray[integer]] = 1 + signsj: Union[int, NDArray[integer]] = 1 + if nalph != 0: + addrsi = addrsa[nalph] + signsi = signsa[nalph] + if nbeta != 0: + addrsj = addrsb[nbeta] + signsj = signsb[nbeta] + if nalph != 0 and nbeta != 0: + addrsi, addrsj = np.ix_(addrsi, addrsj) # type: ignore + signsi = signsi[:, None] # type: ignore + signsj = signsj[None, :] # type: ignore + + # Transpose the axes + subscript = "i" * nalph + "a" * nalph + "j" * nbeta + "b" * nbeta + subscript_target = "" + for spin in spins: + subscript_target += "i" if spin == "a" else "j" + for spin in spins: + subscript_target += spin + perm = util.get_string_permutation(subscript, subscript_target) + perm = np.argsort(perm) + cn = np.transpose(cn, perm) + + # Compress the axes + cn = util.compress_axes(subscript, cn) + shape: tuple[int, ...] = ( + util.get_compressed_size( + "".join([s for s in subscript if s in "ia"]), i=nocc[0], a=nvir[0] + ), + util.get_compressed_size( + "".join([s for s in subscript if s in "jb"]), j=nocc[1], b=nvir[1] + ), + ) + if "j" not in subscript and "b" not in subscript: + shape = shape[:-1] + if "i" not in subscript and "a" not in subscript: + shape = shape[1:] + cn = cn.reshape(shape) + + # Scale by the signs + cn *= signsi + cn *= signsj + + return (addrsi, addrsj), cn.ravel() + + # Get the C amplitudes + camps = _amplitudes_to_coefficients_unrestricted(amps, max_order=max_order) + + # Get the contributions to the CI vector + indices_i: list[Union[int, NDArray[integer]]] = [] + indices_j: list[Union[int, NDArray[integer]]] = [] + values_ij: list[NDArray[T]] = [] + for order in range(1, max_order + 1): + for spins in util.generate_spin_combinations(order, unique=True): + ij, c = _pack_vector(spins[:order], camps[f"c{order}"][spins]) + indices_i.append(ij[0]) + indices_j.append(ij[1]) + values_ij.append(c) + + # Find the shape of the CI vector + shape = ( + max([np.max(i) if np.asarray(i).size else 0 for i in indices_i]) + 1, + max([np.max(j) if np.asarray(j).size else 0 for j in indices_j]) + 1, + ) + + # Build the CI vector + ci = np.zeros(shape, dtype=types[float]) + for i, j, val in zip(indices_i, indices_j, values_ij): + ci = _put( + ci, + (i, j), # type: ignore + val, + ) + + # Set to intermediate normalisation + ci[0, 0] = 1.0 + + # Normalise + if normalise: + ci /= np.linalg.norm(ci) + + return ci diff --git a/ebcc/util/__init__.py b/ebcc/util/__init__.py index 1b314f58..c4a4daa1 100644 --- a/ebcc/util/__init__.py +++ b/ebcc/util/__init__.py @@ -27,6 +27,7 @@ permutations_with_signs, permute_string, symmetrise, + symmetry_factor, tril_indices_ndim, unique, ) diff --git a/ebcc/util/permutations.py b/ebcc/util/permutations.py index cd8c03a8..ddb5e0d0 100644 --- a/ebcc/util/permutations.py +++ b/ebcc/util/permutations.py @@ -230,6 +230,19 @@ def get_symmetry_factor(*numbers: int) -> float: return 1.0 / (2.0**ntot) +def symmetry_factor(subscript: str) -> float: + """Get the symmetry factor for a given subscript. + + Args: + subscript: Subscript to get the symmetry factor for. + + Returns: + Symmetry factor. + """ + counts = {char: subscript.count(char) for char in set(subscript)} + return get_symmetry_factor(*counts.values()) + + def antisymmetrise_array(v: NDArray[T], axes: Optional[tuple[int, ...]] = None) -> NDArray[T]: """Antisymmetrise an array. diff --git a/examples/16-external_correction.py b/examples/16-external_correction.py index 85916ed3..518e6c21 100644 --- a/examples/16-external_correction.py +++ b/examples/16-external_correction.py @@ -6,7 +6,7 @@ from pyscf import gto, scf, fci, ao2mo from ebcc import REBCC, Space -from ebcc.ext.fci import extract_amplitudes_restricted +from ebcc.ext.fci import fci_to_amplitudes_restricted # Define the molecule using PySCF mol = gto.Mole() @@ -38,7 +38,7 @@ ci.kernel(h1e, h2e, space.nact, space.naocc * 2) # Extract the amplitudes from the FCI calculation -amplitudes = extract_amplitudes_restricted(ci, space) +amplitudes = fci_to_amplitudes_restricted(ci, space) # Run an ecCC calculation eccc = REBCC(mf, ansatz="CCSD", space=space) diff --git a/tests/test_RCCSD.py b/tests/test_RCCSD.py index cb609c47..984167d8 100644 --- a/tests/test_RCCSD.py +++ b/tests/test_RCCSD.py @@ -12,9 +12,14 @@ import scipy.linalg from pyscf import cc, dft, gto, lib, scf, fci -from ebcc import REBCC, NullLogger, Space, BACKEND +from ebcc import REBCC, NullLogger, Space, BACKEND, util from ebcc.ham.space import construct_fno_space -from ebcc.ext.fci import extract_amplitudes_restricted +from ebcc.ext.fci import ( + fci_to_amplitudes_restricted, + _amplitudes_to_ci_vector_restricted, + _ci_vector_to_amplitudes_restricted, + _tn_addrs_signs, +) @pytest.mark.reference @@ -559,8 +564,32 @@ def setUpClass(cls): def tearDownClass(cls): del cls.mf, cls.ci, cls.space + def test_conversion(self): + amps1 = _ci_vector_to_amplitudes_restricted(self.ci.ci, self.space, max_order=4) + ci = _amplitudes_to_ci_vector_restricted(amps1, normalise=False, max_order=4) + amps2 = _ci_vector_to_amplitudes_restricted(ci, self.space, max_order=4) + + for order in range(1, 5): + for spins in util.generate_spin_combinations(order, unique=True): + i, _ = _tn_addrs_signs(self.space.nact, self.space.naocc, spins.count("a") // 2) + j, _ = _tn_addrs_signs(self.space.nact, self.space.naocc, spins.count("b") // 2) + if spins.count("a") and spins.count("b"): + i, j = np.ix_(i, j) + assert np.allclose(ci[i, j] * self.ci.ci[0, 0], self.ci.ci[i, j]), (order, spins) + + with pytest.raises(AssertionError): + # Expect a fail since the excitation space goes beyond fourth order -- we have + # checked the individual orders above + assert np.allclose(ci * self.ci.ci[0, 0], self.ci.ci) + + assert np.allclose(amps1.t1, amps2.t1) + assert np.allclose(amps1.t2, amps2.t2) + assert np.allclose(amps1.t3, amps2.t3) + assert np.allclose(amps1.t4, amps2.t4) + assert np.allclose(amps1.t4a, amps2.t4a) + def test_external_correction(self): - amplitudes = extract_amplitudes_restricted(self.ci, self.space) + amplitudes = fci_to_amplitudes_restricted(self.ci, self.space) ccsd = REBCC( self.mf, ansatz="CCSD", @@ -578,7 +607,7 @@ def test_external_correction(self): self.assertAlmostEqual(a, b, 7) def test_tailor(self): - amplitudes = extract_amplitudes_restricted(self.ci, self.space, max_order=2) + amplitudes = fci_to_amplitudes_restricted(self.ci, self.space, max_order=2) ccsd = REBCC( self.mf, ansatz="CCSD", diff --git a/tests/test_UCCSD.py b/tests/test_UCCSD.py index 6b9a1af3..76f6493c 100644 --- a/tests/test_UCCSD.py +++ b/tests/test_UCCSD.py @@ -12,8 +12,13 @@ import scipy.linalg from pyscf import cc, gto, scf, fci -from ebcc import REBCC, UEBCC, GEBCC, NullLogger, Space, BACKEND -from ebcc.ext.fci import extract_amplitudes_unrestricted +from ebcc import REBCC, UEBCC, GEBCC, NullLogger, Space, BACKEND, util +from ebcc.ext.fci import ( + fci_to_amplitudes_unrestricted, + _amplitudes_to_ci_vector_unrestricted, + _ci_vector_to_amplitudes_unrestricted, + _tn_addrs_signs, +) @pytest.mark.reference @@ -514,7 +519,6 @@ def setUpClass(cls): ci = fci.FCI(mf, mo=(mf.mo_coeff[0][:, space[0].active], mf.mo_coeff[1][:, space[1].active])) ci.conv_tol = 1e-12 - ci.davidson_only = True ci.kernel() cls.mf, cls.ci, cls.space = mf, ci, space @@ -523,8 +527,41 @@ def setUpClass(cls): def tearDownClass(cls): del cls.mf, cls.ci, cls.space + def test_conversion(self): + amps1 = _ci_vector_to_amplitudes_unrestricted(self.ci.ci, self.space, max_order=4) + ci = _amplitudes_to_ci_vector_unrestricted(amps1, normalise=False, max_order=4) + amps2 = _ci_vector_to_amplitudes_unrestricted(ci, self.space, max_order=4) + + for order in range(1, 5): + for spins in util.generate_spin_combinations(order, unique=True): + i, _ = _tn_addrs_signs(self.space[0].nact, self.space[0].naocc, spins.count("a") // 2) + j, _ = _tn_addrs_signs(self.space[1].nact, self.space[1].naocc, spins.count("b") // 2) + if spins.count("a") and spins.count("b"): + i, j = np.ix_(i, j) + assert np.allclose(ci[i, j] * self.ci.ci[0, 0], self.ci.ci[i, j]), (order, spins) + + with pytest.raises(AssertionError): + # Expect a fail since the excitation space goes beyond fourth order -- we have + # checked the individual orders above + assert np.allclose(ci * self.ci.ci[0, 0], self.ci.ci) + + assert np.allclose(amps1.t1.aa, amps2.t1.aa) + assert np.allclose(amps1.t1.bb, amps2.t1.bb) + assert np.allclose(amps1.t2.aaaa, amps2.t2.aaaa) + assert np.allclose(amps1.t2.abab, amps2.t2.abab) + assert np.allclose(amps1.t2.bbbb, amps2.t2.bbbb) + assert np.allclose(amps1.t3.aaaaaa, amps2.t3.aaaaaa) + assert np.allclose(amps1.t3.abaaba, amps2.t3.abaaba) + assert np.allclose(amps1.t3.babbab, amps2.t3.babbab) + assert np.allclose(amps1.t3.bbbbbb, amps2.t3.bbbbbb) + assert np.allclose(amps1.t4.aaaaaaaa, amps2.t4.aaaaaaaa) + assert np.allclose(amps1.t4.aaabaaab, amps2.t4.aaabaaab) + assert np.allclose(amps1.t4.abababab, amps2.t4.abababab) + assert np.allclose(amps1.t4.abbbabbb, amps2.t4.abbbabbb) + assert np.allclose(amps1.t4.bbbbbbbb, amps2.t4.bbbbbbbb) + def test_external_correction(self): - amplitudes = extract_amplitudes_unrestricted(self.ci, self.space) + amplitudes = fci_to_amplitudes_unrestricted(self.ci, self.space) ccsd = UEBCC( self.mf, ansatz="CCSD", @@ -541,7 +578,7 @@ def test_external_correction(self): self.assertAlmostEqual(a, b, 7) def test_tailor(self): - amplitudes = extract_amplitudes_unrestricted(self.ci, self.space, max_order=2) + amplitudes = fci_to_amplitudes_unrestricted(self.ci, self.space, max_order=2) ccsd = UEBCC( self.mf, ansatz="CCSD", diff --git a/tutorials/02-Spaces.ipynb b/tutorials/02-Spaces.ipynb index c542a8ea..9abb62d4 100644 --- a/tutorials/02-Spaces.ipynb +++ b/tutorials/02-Spaces.ipynb @@ -164,7 +164,7 @@ " \\___||_.__/ \\___| \\___|\n", " \u001b[1m1.5.0\u001b[m\u001b[m\n", "numpy:\n", - " > Version: 1.26.4\n", + " > Version: 2.2.0\n", " > Git hash: N/A\n", "pyscf:\n", " > Version: 2.6.2\n", @@ -212,14 +212,14 @@ "E(corr) = -0.3097811009\n", "E(tot) = -109.2635773418\n", "\n", - "Time elapsed: 132 ms\n", + "Time elapsed: 144 ms\n", "\n" ] }, { "data": { "text/plain": [ - "-0.30978110088277533" + "np.float64(-0.30978110088277533)" ] }, "execution_count": 5, @@ -296,14 +296,14 @@ "E(corr) = -0.3097811009\n", "E(tot) = -109.2635773418\n", "\n", - "Time elapsed: 361 ms\n", + "Time elapsed: 389 ms\n", "\n" ] }, { "data": { "text/plain": [ - "-0.309781100882775" + "np.float64(-0.309781100882775)" ] }, "execution_count": 6, @@ -382,14 +382,14 @@ "E(corr) = -0.3044036749\n", "E(tot) = -109.2581999158\n", "\n", - "Time elapsed: 141 ms\n", + "Time elapsed: 137 ms\n", "\n" ] }, { "data": { "text/plain": [ - "-0.30440367492534665" + "np.float64(-0.30440367492534665)" ] }, "execution_count": 7, @@ -472,7 +472,7 @@ { "data": { "text/plain": [ - "-0.31391123618855044" + "np.float64(-0.31391123618855044)" ] }, "execution_count": 8, @@ -482,7 +482,7 @@ ], "source": [ "from pyscf import fci, ao2mo\n", - "from ebcc.ext.fci import extract_amplitudes_restricted\n", + "from ebcc.ext.fci import fci_to_amplitudes_restricted\n", "\n", "occupied = mf.mo_occ > 0\n", "frozen = np.zeros_like(occupied)\n", @@ -495,7 +495,7 @@ "h2e = ao2mo.kernel(mf._eri, mo, compact=False).reshape((mo.shape[-1],) * 4)\n", "ci = fci.direct_spin1.FCI()\n", "ci.kernel(h1e, h2e, space.nact, space.naocc * 2)\n", - "amplitudes = extract_amplitudes_restricted(ci, space)\n", + "amplitudes = fci_to_amplitudes_restricted(ci, space)\n", "\n", "eccc = REBCC(mf, ansatz=\"CCSD\", space=space, log=log)\n", "eccc.external_correction(amplitudes, mixed_term_strategy=\"update\")" @@ -559,14 +559,14 @@ "E(corr) = -0.2856259026\n", "E(tot) = -109.2394221435\n", "\n", - "Time elapsed: 207 ms\n", + "Time elapsed: 196 ms\n", "\n" ] }, { "data": { "text/plain": [ - "-0.2856259026309606" + "np.float64(-0.2856259026309606)" ] }, "execution_count": 9,