diff --git a/ebcc/codegen/GCCD.py b/ebcc/codegen/GCCD.py new file mode 100644 index 00000000..4258e243 --- /dev/null +++ b/ebcc/codegen/GCCD.py @@ -0,0 +1,284 @@ +""" +Code generated by `albert`: +https://github.com/obackhouse/albert + + * date: 2024-07-18T20:05:00.813398 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + * albert version: 0.0.0 + * caller: /home/ollie/git/albert/albert/codegen/einsum.py + * node: ollie-desktop + * system: Linux + * processor: x86_64 + * release: 6.5.0-44-generic +""" + +from ebcc import numpy as np +from ebcc.util import pack_2e, einsum, direct_sum, Namespace + + +def energy(t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:05:00.853940. + + Parameters + ---------- + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + e_cc : float + Coupled cluster energy. + """ + + e_cc = einsum(t2, (0, 1, 2, 3), v.oovv, (0, 1, 2, 3), (), optimize=True) * 0.25 + + return e_cc + +def update_amps(f=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:05:01.637880. + + Parameters + ---------- + f : array + Fock matrix. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + t2new : array + Updated T2 residuals. + """ + + tmp7 = einsum(t2, (0, 1, 2, 3), v.oovv, (1, 4, 2, 3), (0, 4), optimize=True) * -1 + tmp5 = einsum(t2, (0, 1, 2, 3), v.oovv, (0, 1, 3, 4), (2, 4), optimize=True) * -1 + tmp3 = einsum(v.oovv, (0, 1, 2, 3), t2, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + tmp9 = v.oooo.transpose((2, 3, 1, 0)).copy() * -2 + tmp9 += einsum(t2, (0, 1, 2, 3), v.oovv, (4, 5, 2, 3), (5, 4, 1, 0), optimize=True) + t2new = einsum(tmp9, (0, 1, 2, 3), t2, (0, 1, 4, 5), (2, 3, 5, 4), optimize=True) * -0.25 + del tmp9 + tmp2 = einsum(t2, (0, 1, 2, 3), f.oo, (4, 1), (4, 0, 2, 3), optimize=True) + t2new += tmp2.transpose((1, 0, 3, 2)) + t2new += tmp2.transpose((0, 1, 3, 2)) * -1 + del tmp2 + tmp8 = einsum(t2, (0, 1, 2, 3), tmp7, (4, 1), (0, 4, 2, 3), optimize=True) + del tmp7 + t2new += tmp8.transpose((1, 0, 3, 2)) * -0.5 + t2new += tmp8.transpose((0, 1, 3, 2)) * 0.5 + del tmp8 + tmp0 = einsum(f.vv, (0, 1), t2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + t2new += tmp0.transpose((1, 0, 3, 2)) * -1 + t2new += tmp0.transpose((1, 0, 2, 3)) + del tmp0 + tmp1 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 3, 1, 5), (0, 4, 2, 5), optimize=True) + t2new += tmp1.transpose((1, 0, 3, 2)) * -1 + t2new += tmp1.transpose((1, 0, 2, 3)) + t2new += tmp1.transpose((0, 1, 3, 2)) + t2new += tmp1 * -1 + del tmp1 + tmp6 = einsum(tmp5, (0, 1), t2, (2, 3, 4, 1), (2, 3, 4, 0), optimize=True) + del tmp5 + t2new += tmp6.transpose((0, 1, 3, 2)) * 0.5 + t2new += tmp6 * -0.5 + del tmp6 + tmp4 = einsum(t2, (0, 1, 2, 3), tmp3, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp3 + t2new += tmp4.transpose((0, 1, 3, 2)) * -1 + t2new += tmp4 + del tmp4 + t2new += einsum(t2, (0, 1, 2, 3), v.vvvv, (4, 5, 3, 2), (1, 0, 5, 4), optimize=True) * -0.5 + t2new += v.oovv.transpose((1, 0, 3, 2)) + + return {f"t2new": t2new} + +def update_lams(f=None, l2=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:05:02.761881. + + Parameters + ---------- + f : array + Fock matrix. + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + l2new : array + Updated L2 residuals. + """ + + tmp13 = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 1, 4), (0, 4), optimize=True) * -1 + tmp11 = einsum(t2, (0, 1, 2, 3), v.oovv, (0, 1, 4, 2), (3, 4), optimize=True) * -1 + tmp6 = einsum(t2, (0, 1, 2, 3), v.oovv, (4, 0, 2, 3), (1, 4), optimize=True) * -1 + tmp8 = einsum(l2, (0, 1, 2, 3), t2, (3, 4, 0, 1), (2, 4), optimize=True) * -1 + tmp2 = einsum(v.oovv, (0, 1, 2, 3), t2, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + tmp14 = einsum(v.oovv, (0, 1, 2, 3), tmp13, (4, 3), (0, 1, 4, 2), optimize=True) * -1 + del tmp13 + tmp12 = einsum(tmp11, (0, 1), l2, (2, 0, 3, 4), (3, 4, 2, 1), optimize=True) + del tmp11 + tmp7 = einsum(l2, (0, 1, 2, 3), tmp6, (3, 4), (2, 4, 0, 1), optimize=True) + del tmp6 + tmp9 = einsum(v.oovv, (0, 1, 2, 3), tmp8, (4, 1), (4, 0, 2, 3), optimize=True) * -1 + del tmp8 + tmp3 = v.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp3 += tmp2 + del tmp2 + tmp16 = v.oooo.transpose((2, 3, 1, 0)).copy() * -1 + tmp16 += einsum(t2, (0, 1, 2, 3), v.oovv, (4, 5, 2, 3), (1, 0, 5, 4), optimize=True) * 0.5 + l2new = einsum(l2, (0, 1, 2, 3), tmp16, (2, 3, 4, 5), (1, 0, 4, 5), optimize=True) * -0.5 + del tmp16 + tmp15 = tmp12.copy() * 0.5 + del tmp12 + tmp15 += tmp14 * 0.5 + del tmp14 + l2new += tmp15.transpose((3, 2, 1, 0)) * -1 + l2new += tmp15.transpose((2, 3, 1, 0)) + del tmp15 + tmp5 = einsum(l2, (0, 1, 2, 3), f.oo, (4, 3), (4, 2, 0, 1), optimize=True) + l2new += tmp5.transpose((3, 2, 1, 0)) + l2new += tmp5.transpose((3, 2, 0, 1)) * -1 + del tmp5 + tmp0 = einsum(t2, (0, 1, 2, 3), l2, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + l2new += einsum(v.oovv, (0, 1, 2, 3), tmp0, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) * 0.25 + del tmp0 + tmp1 = einsum(l2, (0, 1, 2, 3), f.vv, (4, 1), (2, 3, 4, 0), optimize=True) + l2new += tmp1.transpose((3, 2, 1, 0)) * -1 + l2new += tmp1.transpose((2, 3, 1, 0)) + del tmp1 + tmp10 = tmp7.transpose((0, 1, 3, 2)).copy() * -0.5 + del tmp7 + tmp10 += tmp9.transpose((0, 1, 3, 2)) * -0.5 + del tmp9 + l2new += tmp10.transpose((3, 2, 1, 0)) * -1 + l2new += tmp10.transpose((3, 2, 0, 1)) + del tmp10 + tmp4 = einsum(tmp3, (0, 1, 2, 3), l2, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) + del tmp3 + l2new += tmp4.transpose((3, 2, 1, 0)) + l2new += tmp4.transpose((2, 3, 1, 0)) * -1 + l2new += tmp4.transpose((3, 2, 0, 1)) * -1 + l2new += tmp4.transpose((2, 3, 0, 1)) + del tmp4 + l2new += einsum(v.vvvv, (0, 1, 2, 3), l2, (3, 2, 4, 5), (1, 0, 5, 4), optimize=True) * -0.5 + l2new += v.oovv.transpose((3, 2, 1, 0)) + + return {f"l2new": l2new} + +def make_rdm1_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:05:02.857428. + + Parameters + ---------- + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm1 : array + One-particle reduced density matrix. + """ + + rdm1 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + rdm1.oo = delta.oo.transpose((1, 0)).copy() + del delta + rdm1.oo += einsum(l2, (0, 1, 2, 3), t2, (4, 3, 0, 1), (4, 2), optimize=True) * -0.5 + rdm1.vv = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 4, 1), (0, 4), optimize=True) * 0.5 + rdm1.ov = np.zeros((t2.shape[0], t2.shape[-1])) + rdm1.vo = np.zeros((t2.shape[-1], t2.shape[0])) + rdm1 = np.block([[rdm1.oo, rdm1.ov], [rdm1.vo, rdm1.vv]]) + + return rdm1 + +def make_rdm2_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:05:03.861067. + + Parameters + ---------- + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm2 : array + Two-particle reduced density matrix. + """ + + rdm2 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + tmp4 = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 4, 0), (1, 4), optimize=True) * -1 + rdm2.vovo = einsum(tmp4, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 0.5 + rdm2.voov = einsum(tmp4, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -0.5 + rdm2.ovvo = einsum(tmp4, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) * -0.5 + rdm2.ovov = einsum(tmp4, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * 0.5 + tmp2 = einsum(t2, (0, 1, 2, 3), l2, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + rdm2.vovo += tmp2.transpose((2, 1, 3, 0)) * -1 + rdm2.voov += tmp2.transpose((2, 1, 0, 3)) + rdm2.ovvo += tmp2.transpose((1, 2, 3, 0)) + rdm2.ovov += tmp2.transpose((1, 2, 0, 3)) * -1 + tmp1 = einsum(l2, (0, 1, 2, 3), t2, (4, 3, 0, 1), (2, 4), optimize=True) + rdm2.oooo = einsum(delta.oo, (0, 1), tmp1, (2, 3), (0, 3, 1, 2), optimize=True) * -0.5 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) * 0.5 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) * 0.5 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (3, 1, 2, 0), optimize=True) * -0.5 + tmp5 = einsum(tmp4, (0, 1), t2, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) + del tmp4 + rdm2.oovv = tmp5.transpose((0, 1, 3, 2)).copy() * 0.5 + rdm2.oovv += tmp5 * -0.5 + del tmp5 + tmp0 = einsum(t2, (0, 1, 2, 3), l2, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + rdm2.oovv += einsum(t2, (0, 1, 2, 3), tmp0, (0, 1, 4, 5), (5, 4, 3, 2), optimize=True) * 0.25 + rdm2.oooo += tmp0.transpose((3, 2, 1, 0)) * 0.5 + del tmp0 + tmp3 = einsum(t2, (0, 1, 2, 3), tmp2, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp2 + rdm2.oovv += tmp3.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp3 + del tmp3 + tmp6 = einsum(t2, (0, 1, 2, 3), tmp1, (1, 4), (0, 4, 2, 3), optimize=True) + del tmp1 + rdm2.oovv += tmp6.transpose((1, 0, 3, 2)) * -0.5 + rdm2.oovv += tmp6.transpose((0, 1, 3, 2)) * 0.5 + del tmp6 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + del delta + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.vvoo = l2.transpose((1, 0, 3, 2)).copy() + rdm2.vvvv = einsum(t2, (0, 1, 2, 3), l2, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * 0.5 + rdm2.ooov = np.zeros((t2.shape[0], t2.shape[0], t2.shape[0], t2.shape[-1])) + rdm2.oovo = np.zeros((t2.shape[0], t2.shape[0], t2.shape[-1], t2.shape[0])) + rdm2.ovoo = np.zeros((t2.shape[0], t2.shape[-1], t2.shape[0], t2.shape[0])) + rdm2.vooo = np.zeros((t2.shape[-1], t2.shape[0], t2.shape[0], t2.shape[0])) + rdm2.ovvv = np.zeros((t2.shape[0], t2.shape[-1], t2.shape[-1], t2.shape[-1])) + rdm2.vovv = np.zeros((t2.shape[-1], t2.shape[0], t2.shape[-1], t2.shape[-1])) + rdm2.vvov = np.zeros((t2.shape[-1], t2.shape[-1], t2.shape[0], t2.shape[-1])) + rdm2.vvvo = np.zeros((t2.shape[-1], t2.shape[-1], t2.shape[-1], t2.shape[0])) + rdm2 = pack_2e(rdm2.oooo, rdm2.ooov, rdm2.oovo, rdm2.ovoo, rdm2.vooo, rdm2.oovv, rdm2.ovov, rdm2.ovvo, rdm2.voov, rdm2.vovo, rdm2.vvoo, rdm2.ovvv, rdm2.vovv, rdm2.vvov, rdm2.vvvo, rdm2.vvvv) + rdm2 = rdm2.swapaxes(1, 2) + + return rdm2 + diff --git a/ebcc/codegen/GCCSD.py b/ebcc/codegen/GCCSD.py index 95f3dc37..69f97dd8 100644 --- a/ebcc/codegen/GCCSD.py +++ b/ebcc/codegen/GCCSD.py @@ -2,23 +2,23 @@ Code generated by `albert`: https://github.com/obackhouse/albert - * date: 2024-03-02T15:24:42.798018 - * python version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] + * date: 2024-07-18T20:10:22.664181 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] * albert version: 0.0.0 * caller: /home/ollie/git/albert/albert/codegen/einsum.py * node: ollie-desktop * system: Linux * processor: x86_64 - * release: 6.5.0-21-generic + * release: 6.5.0-44-generic """ from ebcc import numpy as np -from ebcc.util import pack_2e, einsum, Namespace +from ebcc.util import pack_2e, einsum, direct_sum, Namespace def energy(f=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:24:42.982804. + Code generated by `albert` 0.0.0 on 2024-07-18T20:10:22.833677. Parameters ---------- @@ -37,9 +37,9 @@ def energy(f=None, t1=None, t2=None, v=None, **kwargs): Coupled cluster energy. """ - tmp0 = einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * 2 - tmp0 += t2.transpose((1, 0, 3, 2)) - e_cc = einsum(tmp0, (0, 1, 2, 3), v.oovv, (0, 1, 2, 3), (), optimize=True) * 0.25 + tmp0 = t2.transpose((1, 0, 3, 2)).copy() + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * 2 + e_cc = einsum(v.oovv, (0, 1, 2, 3), tmp0, (0, 1, 2, 3), (), optimize=True) * 0.25 del tmp0 e_cc += einsum(f.ov, (0, 1), t1, (0, 1), (), optimize=True) @@ -47,7 +47,7 @@ def energy(f=None, t1=None, t2=None, v=None, **kwargs): def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:24:49.127945. + Code generated by `albert` 0.0.0 on 2024-07-18T20:10:27.948736. Parameters ---------- @@ -68,167 +68,167 @@ def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): Updated T2 residuals. """ - tmp2 = einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - tmp2 += t2.transpose((1, 0, 3, 2)) * 0.5 - t2new = einsum(tmp2, (0, 1, 2, 3), v.vvvv, (2, 3, 4, 5), (1, 0, 4, 5), optimize=True) * -1 - tmp7 = einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * 2 - tmp7 += t2.transpose((1, 0, 3, 2)) - tmp49 = einsum(v.oovv, (0, 1, 2, 3), tmp7, (4, 5, 2, 3), (1, 0, 5, 4), optimize=True) - tmp49 += v.oooo.transpose((2, 3, 1, 0)) * -2 - t2new += einsum(tmp7, (0, 1, 2, 3), tmp49, (0, 1, 4, 5), (4, 5, 3, 2), optimize=True) * -0.25 - del tmp49 - tmp45 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp47 = einsum(t1, (0, 1), tmp45, (2, 3, 4, 1), (2, 0, 3, 4), optimize=True) * -1 - tmp48 = einsum(tmp47, (0, 1, 2, 3), t1, (2, 4), (1, 0, 4, 3), optimize=True) * -1 - del tmp47 - t2new += tmp48.transpose((0, 1, 3, 2)) - t2new += tmp48 * -1 - del tmp48 - tmp46 = einsum(tmp45, (0, 1, 2, 3), t2, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) * -1 - del tmp45 - t2new += tmp46.transpose((1, 0, 3, 2)) - t2new += tmp46.transpose((1, 0, 2, 3)) * -1 - t2new += tmp46.transpose((0, 1, 3, 2)) * -1 - t2new += tmp46 - del tmp46 - tmp44 = einsum(f.oo, (0, 1), t2, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - t2new += tmp44.transpose((1, 0, 3, 2)) - t2new += tmp44.transpose((0, 1, 3, 2)) * -1 - del tmp44 - tmp42 = einsum(f.vv, (0, 1), t2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) - tmp43 = tmp42.transpose((1, 0, 2, 3)).copy() * -1 - del tmp42 - tmp41 = einsum(t1, (0, 1), v.ooov, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) - tmp43 += tmp41.transpose((1, 0, 2, 3)) * -1 - del tmp41 - t2new += tmp43.transpose((0, 1, 3, 2)) - t2new += tmp43 * -1 - del tmp43 - tmp38 = einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - tmp38 += t2.transpose((1, 0, 3, 2)) - tmp39 = einsum(tmp38, (0, 1, 2, 3), v.ovov, (0, 4, 5, 2), (1, 5, 3, 4), optimize=True) - del tmp38 - tmp40 = tmp39.copy() * -1 - del tmp39 - tmp36 = einsum(v.ooov, (0, 1, 2, 3), t2, (4, 0, 5, 3), (4, 1, 2, 5), optimize=True) * -1 - tmp37 = einsum(t1, (0, 1), tmp36, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) - del tmp36 - tmp40 += tmp37 - del tmp37 - t2new += tmp40.transpose((1, 0, 3, 2)) - t2new += tmp40.transpose((1, 0, 2, 3)) * -1 - t2new += tmp40.transpose((0, 1, 3, 2)) * -1 - t2new += tmp40 - del tmp40 - tmp3 = einsum(t1, (0, 1), v.oovv, (2, 0, 3, 1), (2, 3), optimize=True) - tmp33 = einsum(tmp3, (0, 1), t1, (2, 1), (2, 0), optimize=True) - tmp34 = einsum(t2, (0, 1, 2, 3), tmp33, (4, 1), (4, 0, 2, 3), optimize=True) * -1 - del tmp33 - tmp35 = tmp34.transpose((0, 1, 3, 2)).copy() * -1 - del tmp34 - tmp6 = einsum(v.ooov, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) * -1 - tmp32 = einsum(tmp6, (0, 1), t2, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 - tmp35 += tmp32.transpose((0, 1, 3, 2)) - del tmp32 - tmp31 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 1), (4, 0, 2, 3), optimize=True) - tmp35 += tmp31.transpose((0, 1, 3, 2)) * -1 - del tmp31 - t2new += tmp35.transpose((1, 0, 2, 3)) - t2new += tmp35 * -1 - del tmp35 + tmp3 = einsum(v.oovv, (0, 1, 2, 3), t1, (1, 3), (0, 2), optimize=True) + tmp21 = einsum(t2, (0, 1, 2, 3), v.ovvv, (4, 5, 2, 3), (0, 1, 4, 5), optimize=True) + tmp20 = einsum(f.ov, (0, 1), t2, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp9 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) + tmp39 = einsum(v.ooov, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) + tmp7 = t2.transpose((1, 0, 3, 2)).copy() + tmp7 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * 2 + tmp37 = einsum(t2, (0, 1, 2, 3), v.oovv, (1, 4, 2, 3), (0, 4), optimize=True) * -1 + tmp5 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) + tmp44 = einsum(tmp3, (0, 1), t1, (2, 1), (2, 0), optimize=True) + tmp6 = einsum(t1, (0, 1), v.ooov, (0, 2, 3, 1), (2, 3), optimize=True) * -1 tmp0 = einsum(t1, (0, 1), v.oovv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - tmp29 = einsum(t2, (0, 1, 2, 3), tmp0, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) - tmp30 = einsum(tmp29, (0, 1, 2, 3), t1, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp29 - t2new += tmp30.transpose((1, 0, 3, 2)) * -1 - t2new += tmp30.transpose((1, 0, 2, 3)) - t2new += tmp30.transpose((0, 1, 3, 2)) - t2new += tmp30 * -1 - del tmp30 - tmp26 = einsum(v.ooov, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp27 = einsum(tmp7, (0, 1, 2, 3), tmp26, (4, 0, 1, 5), (4, 5, 2, 3), optimize=True) * 0.5 - del tmp26 - tmp28 = tmp27.transpose((0, 1, 3, 2)).copy() * -1 - del tmp27 - tmp24 = einsum(t2, (0, 1, 2, 3), v.oovv, (1, 4, 2, 3), (0, 4), optimize=True) * -1 - tmp25 = einsum(tmp24, (0, 1), t2, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) - del tmp24 - tmp28 += tmp25.transpose((0, 1, 3, 2)) * -0.5 - del tmp25 - tmp5 = einsum(t1, (0, 1), f.ov, (2, 1), (2, 0), optimize=True) - tmp23 = einsum(t2, (0, 1, 2, 3), tmp5, (1, 4), (4, 0, 2, 3), optimize=True) - tmp28 += tmp23.transpose((0, 1, 3, 2)) - del tmp23 - t2new += tmp28.transpose((1, 0, 2, 3)) - t2new += tmp28 * -1 - del tmp28 - tmp19 = einsum(t2, (0, 1, 2, 3), v.ovvv, (4, 5, 2, 3), (0, 1, 4, 5), optimize=True) - tmp20 = tmp19.transpose((2, 1, 0, 3)).copy() * 0.5 - del tmp19 - tmp18 = einsum(t2, (0, 1, 2, 3), f.ov, (4, 3), (4, 0, 1, 2), optimize=True) - tmp20 += tmp18.transpose((0, 2, 1, 3)) * -1 - del tmp18 - tmp21 = einsum(tmp20, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + tmp13 = einsum(t2, (0, 1, 2, 3), v.oovv, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) + tmp15 = einsum(tmp3, (0, 1), t2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) * -1 + tmp11 = einsum(v.ovvv, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) * -1 + tmp31 = einsum(v.ooov, (0, 1, 2, 3), t2, (4, 0, 5, 3), (4, 1, 2, 5), optimize=True) * -1 + tmp33 = t2.transpose((1, 0, 3, 2)).copy() + tmp33 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + tmp22 = tmp20.transpose((0, 2, 1, 3)).copy() * -1 del tmp20 - tmp22 = tmp21.transpose((1, 0, 3, 2)).copy() + tmp22 += tmp21.transpose((2, 1, 0, 3)) * 0.5 del tmp21 - tmp16 = einsum(v.oovv, (0, 1, 2, 3), t2, (0, 1, 4, 2), (4, 3), optimize=True) * -1 - tmp17 = einsum(t2, (0, 1, 2, 3), tmp16, (4, 3), (0, 1, 2, 4), optimize=True) - del tmp16 - tmp22 += tmp17 * 0.5 - del tmp17 - t2new += tmp22.transpose((0, 1, 3, 2)) - t2new += tmp22 * -1 - del tmp22 - tmp13 = einsum(t2, (0, 1, 2, 3), tmp3, (4, 3), (0, 1, 4, 2), optimize=True) * -1 - tmp14 = einsum(t1, (0, 1), tmp13, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + tmp18 = einsum(v.oovv, (0, 1, 2, 3), t2, (0, 1, 4, 2), (4, 3), optimize=True) * -1 + tmp27 = einsum(v.ooov, (0, 1, 2, 3), t1, (2, 4), (0, 1, 4, 3), optimize=True) + tmp28 = einsum(f.vv, (0, 1), t2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + tmp25 = einsum(tmp9, (0, 1, 2, 3), t1, (4, 3), (0, 4, 1, 2), optimize=True) * -1 + tmp40 = einsum(tmp7, (0, 1, 2, 3), tmp39, (4, 0, 1, 5), (4, 5, 2, 3), optimize=True) * 0.5 + del tmp39 + tmp38 = einsum(tmp37, (0, 1), t2, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) + del tmp37 + tmp36 = einsum(t2, (0, 1, 2, 3), tmp5, (1, 4), (4, 0, 2, 3), optimize=True) + tmp45 = einsum(tmp44, (0, 1), t2, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) * -1 + del tmp44 + tmp42 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 1), (4, 0, 2, 3), optimize=True) + tmp43 = einsum(tmp6, (0, 1), t2, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + tmp47 = einsum(t2, (0, 1, 2, 3), tmp0, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + tmp14 = einsum(tmp13, (0, 1, 2, 3), t2, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) del tmp13 - tmp15 = tmp14.copy() * -1 - del tmp14 - tmp11 = einsum(t2, (0, 1, 2, 3), v.oovv, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) - tmp12 = einsum(t2, (0, 1, 2, 3), tmp11, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) + tmp16 = einsum(t1, (0, 1), tmp15, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp15 + tmp12 = einsum(tmp11, (0, 1), t2, (2, 3, 4, 1), (2, 3, 4, 0), optimize=True) * -1 del tmp11 - tmp15 += tmp12 - del tmp12 - tmp9 = einsum(t1, (0, 1), v.ovvv, (0, 2, 1, 3), (2, 3), optimize=True) * -1 - tmp10 = einsum(tmp9, (0, 1), t2, (2, 3, 4, 1), (2, 3, 4, 0), optimize=True) * -1 + tmp32 = einsum(tmp31, (0, 1, 2, 3), t1, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp31 + tmp34 = einsum(v.ovov, (0, 1, 2, 3), tmp33, (0, 4, 3, 5), (4, 2, 5, 1), optimize=True) + del tmp33 + tmp23 = einsum(t1, (0, 1), tmp22, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp22 + tmp19 = einsum(t2, (0, 1, 2, 3), tmp18, (4, 3), (0, 1, 2, 4), optimize=True) + del tmp18 + tmp29 = tmp27.transpose((1, 0, 2, 3)).copy() * -1 + del tmp27 + tmp29 += tmp28.transpose((1, 0, 2, 3)) * -1 + del tmp28 + t2new = tmp29.transpose((0, 1, 3, 2)).copy() + t2new += tmp29 * -1 + del tmp29 + tmp26 = einsum(t1, (0, 1), tmp25, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * -1 + del tmp25 + t2new += tmp26.transpose((0, 1, 3, 2)) + t2new += tmp26 * -1 + del tmp26 + tmp30 = einsum(t2, (0, 1, 2, 3), f.oo, (4, 1), (4, 0, 2, 3), optimize=True) + t2new += tmp30.transpose((1, 0, 3, 2)) + t2new += tmp30.transpose((0, 1, 3, 2)) * -1 + del tmp30 + tmp41 = tmp36.transpose((0, 1, 3, 2)).copy() + del tmp36 + tmp41 += tmp38.transpose((0, 1, 3, 2)) * -0.5 + del tmp38 + tmp41 += tmp40.transpose((0, 1, 3, 2)) * -1 + del tmp40 + t2new += tmp41.transpose((1, 0, 2, 3)) + t2new += tmp41 * -1 + del tmp41 + tmp46 = tmp42.transpose((0, 1, 3, 2)).copy() * -1 + del tmp42 + tmp46 += tmp43.transpose((0, 1, 3, 2)) + del tmp43 + tmp46 += tmp45.transpose((0, 1, 3, 2)) * -1 + del tmp45 + t2new += tmp46.transpose((1, 0, 2, 3)) + t2new += tmp46 * -1 + del tmp46 + tmp10 = einsum(tmp9, (0, 1, 2, 3), t2, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) * -1 del tmp9 - tmp15 += tmp10 + t2new += tmp10.transpose((1, 0, 3, 2)) + t2new += tmp10.transpose((1, 0, 2, 3)) * -1 + t2new += tmp10.transpose((0, 1, 3, 2)) * -1 + t2new += tmp10 del tmp10 - t2new += tmp15.transpose((0, 1, 3, 2)) * -1 - t2new += tmp15 - del tmp15 - t2new += v.oovv.transpose((1, 0, 3, 2)) - tmp8 = einsum(tmp7, (0, 1, 2, 3), v.oovv, (0, 4, 2, 3), (4, 1), optimize=True) - del tmp7 - tmp8 += tmp6 * 2 - del tmp6 + tmp48 = einsum(t1, (0, 1), tmp47, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp47 + t2new += tmp48.transpose((1, 0, 3, 2)) * -1 + t2new += tmp48.transpose((1, 0, 2, 3)) + t2new += tmp48.transpose((0, 1, 3, 2)) + t2new += tmp48 * -1 + del tmp48 + tmp17 = tmp12.copy() + del tmp12 + tmp17 += tmp14 + del tmp14 + tmp17 += tmp16 * -1 + del tmp16 + t2new += tmp17.transpose((0, 1, 3, 2)) * -1 + t2new += tmp17 + del tmp17 + tmp35 = tmp32.copy() + del tmp32 + tmp35 += tmp34 * -1 + del tmp34 + t2new += tmp35.transpose((1, 0, 3, 2)) + t2new += tmp35.transpose((1, 0, 2, 3)) * -1 + t2new += tmp35.transpose((0, 1, 3, 2)) * -1 + t2new += tmp35 + del tmp35 + tmp24 = tmp19.copy() * 0.5 + del tmp19 + tmp24 += tmp23.transpose((1, 0, 3, 2)) + del tmp23 + t2new += tmp24.transpose((0, 1, 3, 2)) + t2new += tmp24 * -1 + del tmp24 + tmp49 = v.oooo.transpose((2, 3, 1, 0)).copy() * -1 + tmp49 += einsum(v.oovv, (0, 1, 2, 3), tmp7, (4, 5, 2, 3), (1, 0, 5, 4), optimize=True) * 0.5 + t2new += einsum(tmp7, (0, 1, 2, 3), tmp49, (0, 1, 4, 5), (4, 5, 3, 2), optimize=True) * -0.5 + del tmp49 + tmp2 = t2.transpose((1, 0, 3, 2)).copy() * 0.5 + tmp2 += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + t2new += einsum(tmp2, (0, 1, 2, 3), v.vvvv, (2, 3, 4, 5), (1, 0, 4, 5), optimize=True) * -1 + t1new = einsum(tmp2, (0, 1, 2, 3), v.ovvv, (0, 4, 2, 3), (1, 4), optimize=True) + del tmp2 + tmp8 = f.oo.transpose((1, 0)).copy() * 2 tmp8 += tmp5 * 2 del tmp5 - tmp8 += f.oo.transpose((1, 0)) * 2 - t1new = einsum(tmp8, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -0.5 + tmp8 += tmp6 * 2 + del tmp6 + tmp8 += einsum(v.oovv, (0, 1, 2, 3), tmp7, (0, 4, 2, 3), (1, 4), optimize=True) + del tmp7 + t1new += einsum(tmp8, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -0.5 del tmp8 - tmp4 = tmp3.copy() + tmp4 = f.ov.copy() + tmp4 += tmp3 del tmp3 - tmp4 += f.ov t1new += einsum(t2, (0, 1, 2, 3), tmp4, (0, 2), (1, 3), optimize=True) del tmp4 - t1new += einsum(v.ovvv, (0, 1, 2, 3), tmp2, (0, 4, 2, 3), (4, 1), optimize=True) - del tmp2 - tmp1 = tmp0.transpose((0, 2, 1, 3)).copy() * -1 + tmp1 = v.ooov.transpose((2, 1, 0, 3)).copy() + tmp1 += tmp0.transpose((0, 2, 1, 3)) * -1 del tmp0 - tmp1 += v.ooov.transpose((2, 1, 0, 3)) t1new += einsum(tmp1, (0, 1, 2, 3), t2, (1, 2, 3, 4), (0, 4), optimize=True) * -0.5 del tmp1 - t1new += einsum(t1, (0, 1), f.vv, (2, 1), (0, 2), optimize=True) t1new += f.ov t1new += einsum(v.ovov, (0, 1, 2, 3), t1, (2, 1), (0, 3), optimize=True) * -1 + t1new += einsum(f.vv, (0, 1), t1, (2, 1), (2, 0), optimize=True) + t2new += v.oovv.transpose((1, 0, 3, 2)) return {f"t1new": t1new, f"t2new": t2new} def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:24:59.466285. + Code generated by `albert` 0.0.0 on 2024-07-18T20:10:35.470671. Parameters ---------- @@ -253,215 +253,216 @@ def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): Updated L2 residuals. """ - tmp1 = einsum(l2, (0, 1, 2, 3), t1, (4, 1), (2, 3, 4, 0), optimize=True) - tmp2 = einsum(t1, (0, 1), tmp1, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) - tmp59 = tmp2.transpose((0, 1, 3, 2)).copy() * 2 - tmp0 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) - tmp59 += tmp0.transpose((1, 0, 3, 2)) * -1 - l2new = einsum(v.oovv, (0, 1, 2, 3), tmp59, (4, 5, 0, 1), (3, 2, 5, 4), optimize=True) * -0.25 - del tmp59 + tmp27 = einsum(v.oovv, (0, 1, 2, 3), t2, (1, 4, 2, 3), (4, 0), optimize=True) * -1 + tmp26 = einsum(t1, (0, 1), v.ooov, (2, 0, 3, 1), (2, 3), optimize=True) + tmp19 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + tmp20 = einsum(l2, (0, 1, 2, 3), t2, (2, 4, 0, 1), (3, 4), optimize=True) + tmp35 = einsum(t2, (0, 1, 2, 3), v.oovv, (0, 1, 4, 2), (3, 4), optimize=True) * -1 + tmp24 = einsum(v.ovvv, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) tmp5 = einsum(t1, (0, 1), v.oovv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - tmp11 = tmp5.transpose((2, 1, 0, 3)).copy() * 0.5 - tmp11 += v.ooov.transpose((1, 0, 2, 3)) * -1 - tmp58 = einsum(t1, (0, 1), tmp11, (2, 3, 4, 1), (4, 0, 3, 2), optimize=True) * -4 - tmp10 = einsum(t2, (0, 1, 2, 3), v.oovv, (4, 5, 2, 3), (0, 1, 4, 5), optimize=True) - tmp58 += tmp10.transpose((1, 0, 3, 2)) - tmp58 += v.oooo.transpose((2, 3, 1, 0)) * -2 - l2new += einsum(l2, (0, 1, 2, 3), tmp58, (2, 3, 4, 5), (1, 0, 4, 5), optimize=True) * -0.25 - del tmp58 - l2new += einsum(f.ov, (0, 1), l1, (2, 3), (2, 1, 3, 0), optimize=True) - l2new += einsum(l1, (0, 1), f.ov, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - l2new += einsum(l1, (0, 1), f.ov, (2, 3), (0, 3, 2, 1), optimize=True) * -1 - l2new += einsum(l1, (0, 1), f.ov, (2, 3), (3, 0, 2, 1), optimize=True) - tmp56 = einsum(v.ovvv, (0, 1, 2, 3), l1, (1, 4), (4, 0, 2, 3), optimize=True) - tmp57 = tmp56.transpose((0, 1, 3, 2)).copy() - del tmp56 - tmp55 = einsum(f.oo, (0, 1), l2, (2, 3, 4, 1), (0, 4, 2, 3), optimize=True) - tmp57 += tmp55.transpose((0, 1, 3, 2)) * -1 - del tmp55 - l2new += tmp57.transpose((2, 3, 1, 0)) * -1 - l2new += tmp57.transpose((2, 3, 0, 1)) - del tmp57 tmp4 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp52 = tmp4.copy() - tmp52 += v.ovov.transpose((2, 0, 1, 3)) * -1 - tmp53 = einsum(tmp52, (0, 1, 2, 3), l2, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) + tmp1 = einsum(l2, (0, 1, 2, 3), t1, (4, 1), (2, 3, 4, 0), optimize=True) + l2new = einsum(v.ovvv, (0, 1, 2, 3), tmp1, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + l1new = einsum(v.ovov, (0, 1, 2, 3), tmp1, (4, 0, 2, 3), (1, 4), optimize=True) * -1 + l1new += einsum(tmp1, (0, 1, 2, 3), tmp4, (1, 2, 3, 4), (4, 0), optimize=True) + tmp52 = einsum(t2, (0, 1, 2, 3), v.oovv, (4, 0, 2, 5), (1, 4, 3, 5), optimize=True) * -1 + tmp43 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) + tmp46 = tmp26.copy() * 2 + tmp46 += tmp27.transpose((1, 0)) + tmp23 = tmp19.copy() + tmp23 += tmp20 * 0.5 + l1new += einsum(tmp23, (0, 1), v.ooov, (1, 2, 0, 3), (3, 2), optimize=True) * -1 + tmp36 = tmp24.copy() + tmp36 += tmp35 * 0.5 + del tmp35 + tmp6 = v.ooov.transpose((2, 1, 0, 3)).copy() + tmp6 += tmp5.transpose((0, 2, 1, 3)) * -1 + tmp17 = einsum(t2, (0, 1, 2, 3), l2, (2, 4, 0, 1), (4, 3), optimize=True) + tmp7 = einsum(v.oovv, (0, 1, 2, 3), t1, (1, 3), (0, 2), optimize=True) + tmp30 = v.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp30 += tmp4 + tmp0 = einsum(t2, (0, 1, 2, 3), l2, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + l1new += einsum(v.ooov, (0, 1, 2, 3), tmp0, (4, 2, 0, 1), (3, 4), optimize=True) * -0.25 + tmp2 = einsum(tmp1, (0, 1, 2, 3), t1, (4, 3), (0, 1, 4, 2), optimize=True) + l1new += einsum(tmp2, (0, 1, 2, 3), v.ooov, (3, 2, 1, 4), (4, 0), optimize=True) * 0.5 + tmp11 = v.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp11 += tmp5.transpose((2, 1, 0, 3)) * 0.5 + tmp10 = einsum(t2, (0, 1, 2, 3), v.oovv, (4, 5, 2, 3), (0, 1, 4, 5), optimize=True) + tmp53 = einsum(tmp52, (0, 1, 2, 3), l2, (4, 2, 0, 5), (5, 1, 4, 3), optimize=True) * -1 del tmp52 - tmp54 = tmp53.transpose((1, 0, 3, 2)).copy() + tmp54 = einsum(tmp5, (0, 1, 2, 3), tmp1, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 + del tmp5 + tmp44 = einsum(l2, (0, 1, 2, 3), tmp43, (4, 3), (4, 2, 0, 1), optimize=True) + del tmp43 + tmp47 = einsum(l2, (0, 1, 2, 3), tmp46, (4, 2), (4, 3, 0, 1), optimize=True) * 0.5 + del tmp46 + tmp45 = einsum(tmp23, (0, 1), v.oovv, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) + tmp40 = einsum(l2, (0, 1, 2, 3), f.oo, (4, 3), (4, 2, 0, 1), optimize=True) + tmp41 = einsum(v.ovvv, (0, 1, 2, 3), l1, (1, 4), (4, 0, 2, 3), optimize=True) + tmp37 = einsum(l2, (0, 1, 2, 3), tmp36, (0, 4), (2, 3, 4, 1), optimize=True) + del tmp36 + tmp38 = einsum(tmp6, (0, 1, 2, 3), l1, (4, 0), (1, 2, 3, 4), optimize=True) + tmp33 = einsum(f.ov, (0, 1), tmp1, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + tmp34 = einsum(v.oovv, (0, 1, 2, 3), tmp17, (4, 3), (1, 0, 4, 2), optimize=True) + tmp49 = einsum(f.vv, (0, 1), l2, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + tmp50 = einsum(tmp7, (0, 1), tmp1, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) + tmp29 = einsum(tmp1, (0, 1, 2, 3), v.ooov, (4, 2, 1, 5), (0, 4, 3, 5), optimize=True) + tmp31 = einsum(l2, (0, 1, 2, 3), tmp30, (2, 4, 0, 5), (4, 3, 5, 1), optimize=True) + del tmp30 + tmp56 = einsum(tmp7, (0, 1), t1, (2, 1), (2, 0), optimize=True) + tmp21 = tmp19.copy() * 2 + del tmp19 + tmp21 += tmp20 + del tmp20 + tmp15 = tmp0.transpose((1, 0, 3, 2)).copy() * -0.5 + tmp15 += tmp2.transpose((0, 1, 3, 2)) + tmp8 = f.ov.copy() + tmp8 += tmp7 + l1new += einsum(tmp8, (0, 1), tmp23, (2, 0), (1, 2), optimize=True) * -1 + del tmp23 + tmp12 = v.oooo.transpose((2, 3, 1, 0)).copy() * 0.5 + tmp12 += tmp10.transpose((3, 2, 1, 0)) * -0.25 + tmp12 += einsum(tmp11, (0, 1, 2, 3), t1, (4, 3), (1, 0, 4, 2), optimize=True) * -1 + tmp9 = v.ovov.transpose((2, 0, 3, 1)).copy() + tmp9 += tmp4.transpose((0, 1, 3, 2)) * -0.5 + del tmp4 + tmp55 = tmp53.copy() del tmp53 - tmp51 = einsum(tmp1, (0, 1, 2, 3), v.ooov, (4, 2, 1, 5), (0, 4, 3, 5), optimize=True) - tmp54 += tmp51 - del tmp51 - tmp7 = einsum(t1, (0, 1), v.oovv, (2, 0, 3, 1), (2, 3), optimize=True) - tmp54 += einsum(l1, (0, 1), tmp7, (2, 3), (1, 2, 0, 3), optimize=True) - l2new += tmp54.transpose((3, 2, 1, 0)) - l2new += tmp54.transpose((2, 3, 1, 0)) * -1 - l2new += tmp54.transpose((3, 2, 0, 1)) * -1 - l2new += tmp54.transpose((2, 3, 0, 1)) + tmp55 += tmp54 * -1 del tmp54 - tmp49 = einsum(tmp7, (0, 1), tmp1, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) - tmp50 = tmp49.copy() - del tmp49 - tmp48 = einsum(f.vv, (0, 1), l2, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) - tmp50 += tmp48.transpose((1, 0, 2, 3)) * -1 - del tmp48 - l2new += tmp50.transpose((3, 2, 0, 1)) - l2new += tmp50.transpose((2, 3, 0, 1)) * -1 - del tmp50 - tmp46 = einsum(tmp7, (0, 1), t1, (2, 1), (2, 0), optimize=True) - tmp47 = einsum(l2, (0, 1, 2, 3), tmp46, (3, 4), (2, 4, 0, 1), optimize=True) - del tmp46 - l2new += tmp47.transpose((2, 3, 1, 0)) - l2new += tmp47.transpose((2, 3, 0, 1)) * -1 - del tmp47 - tmp6 = tmp5.transpose((0, 2, 1, 3)).copy() * -1 - tmp6 += v.ooov.transpose((2, 1, 0, 3)) - tmp44 = einsum(tmp6, (0, 1, 2, 3), l1, (4, 0), (1, 2, 3, 4), optimize=True) - tmp45 = tmp44.transpose((1, 0, 3, 2)).copy() + l2new += tmp55.transpose((3, 2, 1, 0)) + l2new += tmp55.transpose((2, 3, 1, 0)) * -1 + l2new += tmp55.transpose((3, 2, 0, 1)) * -1 + l2new += tmp55.transpose((2, 3, 0, 1)) + del tmp55 + tmp59 = tmp0.transpose((1, 0, 3, 2)).copy() * -1 + del tmp0 + tmp59 += tmp2.transpose((0, 1, 3, 2)) * 2 + del tmp2 + l2new += einsum(tmp59, (0, 1, 2, 3), v.oovv, (2, 3, 4, 5), (5, 4, 1, 0), optimize=True) * -0.25 + del tmp59 + tmp48 = tmp44.transpose((0, 1, 3, 2)).copy() del tmp44 - tmp41 = einsum(t2, (0, 1, 2, 3), v.oovv, (0, 1, 4, 2), (3, 4), optimize=True) * -1 - tmp42 = tmp41.copy() * 0.5 + tmp48 += tmp45.transpose((0, 1, 3, 2)) * -1 + del tmp45 + tmp48 += tmp47.transpose((1, 0, 3, 2)) + del tmp47 + l2new += tmp48.transpose((3, 2, 1, 0)) * -1 + l2new += tmp48.transpose((3, 2, 0, 1)) + del tmp48 + tmp42 = tmp40.transpose((0, 1, 3, 2)).copy() * -1 + del tmp40 + tmp42 += tmp41.transpose((0, 1, 3, 2)) del tmp41 - tmp24 = einsum(v.ovvv, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) - tmp42 += tmp24 - tmp43 = einsum(l2, (0, 1, 2, 3), tmp42, (0, 4), (2, 3, 4, 1), optimize=True) + l2new += tmp42.transpose((2, 3, 1, 0)) * -1 + l2new += tmp42.transpose((2, 3, 0, 1)) del tmp42 - tmp45 += tmp43.transpose((1, 0, 3, 2)) - del tmp43 - tmp17 = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 0, 4), (1, 4), optimize=True) - tmp40 = einsum(tmp17, (0, 1), v.oovv, (2, 3, 4, 1), (3, 2, 0, 4), optimize=True) - tmp45 += tmp40 * 0.5 - del tmp40 - tmp39 = einsum(f.ov, (0, 1), tmp1, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) - tmp45 += tmp39 * -1 - del tmp39 - l2new += tmp45.transpose((3, 2, 0, 1)) - l2new += tmp45.transpose((2, 3, 0, 1)) * -1 - del tmp45 - tmp27 = einsum(v.oovv, (0, 1, 2, 3), t2, (1, 4, 2, 3), (4, 0), optimize=True) * -1 - tmp36 = tmp27.transpose((1, 0)).copy() - tmp26 = einsum(v.ooov, (0, 1, 2, 3), t1, (1, 3), (0, 2), optimize=True) - tmp36 += tmp26 * 2 - tmp37 = einsum(l2, (0, 1, 2, 3), tmp36, (4, 2), (4, 3, 0, 1), optimize=True) * 0.5 - del tmp36 - tmp38 = tmp37.transpose((1, 0, 3, 2)).copy() - del tmp37 - tmp20 = einsum(l2, (0, 1, 2, 3), t2, (2, 4, 0, 1), (3, 4), optimize=True) - tmp23 = tmp20.copy() * 0.5 - tmp19 = einsum(t1, (0, 1), l1, (1, 2), (2, 0), optimize=True) - tmp23 += tmp19 - tmp35 = einsum(tmp23, (0, 1), v.oovv, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) - tmp38 += tmp35.transpose((0, 1, 3, 2)) * -1 - del tmp35 - tmp33 = einsum(t1, (0, 1), f.ov, (2, 1), (2, 0), optimize=True) - tmp34 = einsum(tmp33, (0, 1), l2, (2, 3, 4, 1), (0, 4, 2, 3), optimize=True) + tmp58 = v.oooo.transpose((2, 3, 1, 0)).copy() * -1 + tmp58 += tmp10.transpose((1, 0, 3, 2)) * 0.5 + del tmp10 + tmp58 += einsum(tmp11, (0, 1, 2, 3), t1, (4, 3), (2, 4, 1, 0), optimize=True) * -2 + del tmp11 + l2new += einsum(l2, (0, 1, 2, 3), tmp58, (2, 3, 4, 5), (1, 0, 4, 5), optimize=True) * -0.5 + del tmp58 + tmp39 = tmp33.copy() * -1 del tmp33 - tmp38 += tmp34.transpose((0, 1, 3, 2)) + tmp39 += tmp34 * 0.5 del tmp34 - l2new += tmp38.transpose((3, 2, 1, 0)) * -1 - l2new += tmp38.transpose((3, 2, 0, 1)) + tmp39 += tmp37.transpose((1, 0, 3, 2)) + del tmp37 + tmp39 += tmp38.transpose((1, 0, 3, 2)) del tmp38 - tmp31 = einsum(tmp1, (0, 1, 2, 3), tmp5, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -1 - del tmp5 - tmp32 = tmp31.copy() * -1 - del tmp31 - tmp29 = einsum(v.oovv, (0, 1, 2, 3), t2, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) * -1 - tmp30 = einsum(tmp29, (0, 1, 2, 3), l2, (4, 2, 0, 5), (5, 1, 4, 3), optimize=True) * -1 + l2new += tmp39.transpose((3, 2, 0, 1)) + l2new += tmp39.transpose((2, 3, 0, 1)) * -1 + del tmp39 + tmp51 = tmp49.transpose((1, 0, 2, 3)).copy() * -1 + del tmp49 + tmp51 += tmp50 + del tmp50 + l2new += tmp51.transpose((3, 2, 0, 1)) + l2new += tmp51.transpose((2, 3, 0, 1)) * -1 + del tmp51 + tmp32 = einsum(tmp7, (0, 1), l1, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp7 + tmp32 += tmp29 del tmp29 - tmp32 += tmp30 - del tmp30 + tmp32 += tmp31.transpose((1, 0, 3, 2)) + del tmp31 l2new += tmp32.transpose((3, 2, 1, 0)) l2new += tmp32.transpose((2, 3, 1, 0)) * -1 l2new += tmp32.transpose((3, 2, 0, 1)) * -1 l2new += tmp32.transpose((2, 3, 0, 1)) del tmp32 - l2new += einsum(tmp1, (0, 1, 2, 3), v.ovvv, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) - l2new += v.oovv.transpose((3, 2, 1, 0)) - l2new += einsum(l2, (0, 1, 2, 3), v.vvvv, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * 0.5 - tmp8 = tmp7.copy() - del tmp7 - tmp8 += f.ov - l1new = einsum(tmp23, (0, 1), tmp8, (1, 2), (2, 0), optimize=True) * -1 - tmp28 = einsum(tmp8, (0, 1), t1, (2, 1), (2, 0), optimize=True) - tmp28 += tmp27 * 0.5 - del tmp27 - tmp28 += tmp26.transpose((1, 0)) - del tmp26 - tmp28 += f.oo.transpose((1, 0)) - l1new += einsum(l1, (0, 1), tmp28, (1, 2), (0, 2), optimize=True) * -1 - del tmp28 - tmp25 = tmp24.copy() * -1 - del tmp24 - tmp25 += f.vv.transpose((1, 0)) - l1new += einsum(l1, (0, 1), tmp25, (0, 2), (2, 1), optimize=True) - del tmp25 - l1new += einsum(v.ooov, (0, 1, 2, 3), tmp23, (2, 0), (3, 1), optimize=True) * -1 - del tmp23 - tmp21 = tmp20.copy() - del tmp20 - tmp21 += tmp19 * 2 - del tmp19 - tmp22 = einsum(t1, (0, 1), tmp21, (0, 2), (2, 1), optimize=True) * 0.5 - del tmp21 - tmp22 += einsum(tmp1, (0, 1, 2, 3), t2, (0, 1, 3, 4), (2, 4), optimize=True) * 0.5 - tmp22 += einsum(l1, (0, 1), t2, (2, 1, 3, 0), (2, 3), optimize=True) * -1 - tmp22 += t1 * -1 - l1new += einsum(v.oovv, (0, 1, 2, 3), tmp22, (0, 2), (3, 1), optimize=True) * -1 - del tmp22 - tmp18 = tmp17.copy() * 0.5 + tmp57 = einsum(tmp56, (0, 1), l2, (2, 3, 4, 0), (4, 1, 2, 3), optimize=True) + del tmp56 + l2new += tmp57.transpose((2, 3, 1, 0)) + l2new += tmp57.transpose((2, 3, 0, 1)) * -1 + del tmp57 + tmp18 = einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) * 2 + tmp18 += tmp17 del tmp17 - tmp18 += einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) - l1new += einsum(tmp18, (0, 1), v.ovvv, (2, 0, 1, 3), (3, 2), optimize=True) * -1 + l1new += einsum(v.ovvv, (0, 1, 2, 3), tmp18, (1, 2), (3, 0), optimize=True) * -0.5 del tmp18 - tmp15 = tmp2.transpose((0, 1, 3, 2)).copy() - tmp15 += tmp0.transpose((1, 0, 3, 2)) * -0.5 - tmp16 = einsum(t1, (0, 1), tmp15, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) * -0.5 - del tmp15 + tmp22 = t1.copy() * -1 + tmp22 += einsum(l1, (0, 1), t2, (2, 1, 3, 0), (2, 3), optimize=True) * -1 + tmp22 += einsum(t2, (0, 1, 2, 3), tmp1, (0, 1, 4, 2), (4, 3), optimize=True) * 0.5 + tmp22 += einsum(tmp21, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 0.5 + del tmp21 + l1new += einsum(tmp22, (0, 1), v.oovv, (0, 2, 1, 3), (3, 2), optimize=True) * -1 + del tmp22 + tmp16 = einsum(t2, (0, 1, 2, 3), l1, (3, 4), (4, 1, 0, 2), optimize=True) * -0.5 tmp16 += einsum(tmp1, (0, 1, 2, 3), t2, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) * -1 - tmp16 += einsum(t2, (0, 1, 2, 3), l1, (3, 4), (4, 1, 0, 2), optimize=True) * -0.5 - l1new += einsum(tmp16, (0, 1, 2, 3), v.oovv, (1, 2, 3, 4), (4, 0), optimize=True) * -1 + del tmp1 + tmp16 += einsum(tmp15, (0, 1, 2, 3), t1, (0, 4), (1, 3, 2, 4), optimize=True) * -0.5 + del tmp15 + l1new += einsum(v.oovv, (0, 1, 2, 3), tmp16, (4, 0, 1, 2), (3, 4), optimize=True) * -1 del tmp16 - tmp14 = einsum(v.vvvv, (0, 1, 2, 3), t1, (4, 1), (4, 0, 3, 2), optimize=True) - tmp14 += v.ovvv.transpose((0, 1, 3, 2)) * -1 - l1new += einsum(l2, (0, 1, 2, 3), tmp14, (2, 4, 0, 1), (4, 3), optimize=True) * 0.5 - del tmp14 - tmp12 = einsum(tmp11, (0, 1, 2, 3), t1, (4, 3), (1, 0, 4, 2), optimize=True) * -1 - del tmp11 - tmp12 += tmp10.transpose((3, 2, 1, 0)) * -0.25 - del tmp10 - tmp12 += v.oooo.transpose((2, 3, 1, 0)) * 0.5 - tmp13 = einsum(t1, (0, 1), tmp12, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) * -1 - del tmp12 - tmp9 = tmp4.transpose((0, 1, 3, 2)).copy() * -0.5 - tmp9 += v.ovov.transpose((2, 0, 3, 1)) - tmp13 += einsum(tmp9, (0, 1, 2, 3), t1, (4, 2), (1, 0, 4, 3), optimize=True) * -1 - del tmp9 - tmp13 += einsum(tmp8, (0, 1), t2, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) * 0.5 - del tmp8 - tmp13 += einsum(t2, (0, 1, 2, 3), tmp6, (4, 0, 5, 2), (5, 1, 4, 3), optimize=True) + tmp13 = v.ooov.transpose((2, 1, 0, 3)).copy() + tmp13 += einsum(v.ovvv, (0, 1, 2, 3), t2, (4, 5, 2, 3), (0, 5, 4, 1), optimize=True) * 0.5 + tmp13 += einsum(tmp6, (0, 1, 2, 3), t2, (1, 4, 3, 5), (2, 4, 0, 5), optimize=True) * 2 del tmp6 - tmp13 += einsum(t2, (0, 1, 2, 3), v.ovvv, (4, 5, 2, 3), (4, 1, 0, 5), optimize=True) * 0.25 - tmp13 += v.ooov.transpose((2, 1, 0, 3)) * 0.5 - l1new += einsum(tmp13, (0, 1, 2, 3), l2, (3, 4, 1, 2), (4, 0), optimize=True) * -1 + tmp13 += einsum(tmp8, (0, 1), t2, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) + tmp13 += einsum(t1, (0, 1), tmp9, (2, 3, 1, 4), (3, 2, 0, 4), optimize=True) * -2 + del tmp9 + tmp13 += einsum(tmp12, (0, 1, 2, 3), t1, (0, 4), (1, 3, 2, 4), optimize=True) * -2 + del tmp12 + l1new += einsum(tmp13, (0, 1, 2, 3), l2, (3, 4, 1, 2), (4, 0), optimize=True) * -0.5 del tmp13 - l1new += einsum(v.ovov, (0, 1, 2, 3), tmp1, (4, 0, 2, 3), (1, 4), optimize=True) * -1 - l1new += f.ov.transpose((1, 0)) - l1new += einsum(tmp4, (0, 1, 2, 3), tmp1, (4, 0, 1, 2), (3, 4), optimize=True) - del tmp1, tmp4 - tmp3 = einsum(t2, (0, 1, 2, 3), l2, (4, 3, 1, 5), (5, 0, 4, 2), optimize=True) * -1 + tmp3 = einsum(l2, (0, 1, 2, 3), t2, (4, 2, 5, 1), (3, 4, 0, 5), optimize=True) * -1 l1new += einsum(tmp3, (0, 1, 2, 3), v.ovvv, (1, 2, 4, 3), (4, 0), optimize=True) * -1 del tmp3 - l1new += einsum(v.ovov, (0, 1, 2, 3), l1, (1, 2), (3, 0), optimize=True) * -1 - l1new += einsum(v.ooov, (0, 1, 2, 3), tmp2, (4, 2, 1, 0), (3, 4), optimize=True) * 0.5 - del tmp2 - l1new += einsum(v.ooov, (0, 1, 2, 3), tmp0, (4, 2, 0, 1), (3, 4), optimize=True) * -0.25 - del tmp0 + tmp28 = f.oo.transpose((1, 0)).copy() + tmp28 += tmp26.transpose((1, 0)) + del tmp26 + tmp28 += tmp27 * 0.5 + del tmp27 + tmp28 += einsum(tmp8, (0, 1), t1, (2, 1), (2, 0), optimize=True) + del tmp8 + l1new += einsum(tmp28, (0, 1), l1, (2, 0), (2, 1), optimize=True) * -1 + del tmp28 + tmp14 = v.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp14 += einsum(t1, (0, 1), v.vvvv, (2, 1, 3, 4), (0, 2, 4, 3), optimize=True) + l1new += einsum(tmp14, (0, 1, 2, 3), l2, (2, 3, 0, 4), (1, 4), optimize=True) * 0.5 + del tmp14 + tmp25 = f.vv.transpose((1, 0)).copy() + tmp25 += tmp24 * -1 + del tmp24 + l1new += einsum(tmp25, (0, 1), l1, (0, 2), (1, 2), optimize=True) + del tmp25 + l1new += f.ov.transpose((1, 0)) + l1new += einsum(l1, (0, 1), v.ovov, (2, 0, 1, 3), (3, 2), optimize=True) * -1 + l2new += v.oovv.transpose((3, 2, 1, 0)) + l2new += einsum(l2, (0, 1, 2, 3), v.vvvv, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * 0.5 + l2new += einsum(l1, (0, 1), f.ov, (2, 3), (3, 0, 2, 1), optimize=True) + l2new += einsum(f.ov, (0, 1), l1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + l2new += einsum(f.ov, (0, 1), l1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + l2new += einsum(l1, (0, 1), f.ov, (2, 3), (0, 3, 1, 2), optimize=True) return {f"l1new": l1new, f"l2new": l2new} def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:24:59.948892. + Code generated by `albert` 0.0.0 on 2024-07-18T20:10:35.909741. Parameters ---------- @@ -482,36 +483,36 @@ def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): rdm1 = Namespace() delta = Namespace( - oo=np.eye(t1.shape[0]), - vv=np.eye(t1.shape[1]), + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), ) - rdm1.vv = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 4, 0), (1, 4), optimize=True) * -0.5 - rdm1.vv += einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) - rdm1.vo = l1.copy() + tmp1 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + rdm1.oo = tmp1.transpose((1, 0)).copy() * -1 tmp0 = einsum(l2, (0, 1, 2, 3), t2, (4, 3, 0, 1), (2, 4), optimize=True) - tmp3 = tmp0.copy() * 0.5 - tmp1 = einsum(t1, (0, 1), l1, (1, 2), (2, 0), optimize=True) - tmp3 += tmp1 - rdm1.ov = einsum(t1, (0, 1), tmp3, (0, 2), (2, 1), optimize=True) * -1 + rdm1.oo += tmp0.transpose((1, 0)) * -0.5 + tmp3 = tmp1.copy() * 2 + del tmp1 + tmp3 += tmp0 + del tmp0 + rdm1.ov = einsum(tmp3, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -0.5 del tmp3 - rdm1.ov += einsum(l1, (0, 1), t2, (2, 1, 3, 0), (2, 3), optimize=True) - rdm1.ov += t1 tmp2 = einsum(l2, (0, 1, 2, 3), t1, (4, 1), (2, 3, 4, 0), optimize=True) - rdm1.ov += einsum(tmp2, (0, 1, 2, 3), t2, (0, 1, 4, 3), (2, 4), optimize=True) * 0.5 + rdm1.ov += einsum(t2, (0, 1, 2, 3), tmp2, (0, 1, 4, 3), (4, 2), optimize=True) * 0.5 del tmp2 - rdm1.oo = tmp1.transpose((1, 0)).copy() * -1 - del tmp1 rdm1.oo += delta.oo.transpose((1, 0)) del delta - rdm1.oo += tmp0.transpose((1, 0)) * -0.5 - del tmp0 + rdm1.ov += einsum(l1, (0, 1), t2, (2, 1, 3, 0), (2, 3), optimize=True) + rdm1.ov += t1 + rdm1.vo = l1.copy() + rdm1.vv = einsum(t2, (0, 1, 2, 3), l2, (3, 4, 0, 1), (4, 2), optimize=True) * -0.5 + rdm1.vv += einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) rdm1 = np.block([[rdm1.oo, rdm1.ov], [rdm1.vo, rdm1.vv]]) return rdm1 def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:25:08.561385. + Code generated by `albert` 0.0.0 on 2024-07-18T20:10:43.285135. Parameters ---------- @@ -532,197 +533,200 @@ def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): rdm2 = Namespace() delta = Namespace( - oo=np.eye(t1.shape[0]), - vv=np.eye(t1.shape[1]), + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), ) + tmp3 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + rdm2.oovo = einsum(tmp3, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) + rdm2.oovo += einsum(tmp3, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.ooov = einsum(tmp3, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(tmp3, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo = einsum(tmp3, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp3, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp3, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(tmp3, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp1 = einsum(l2, (0, 1, 2, 3), t1, (4, 1), (2, 3, 4, 0), optimize=True) + rdm2.vooo = tmp1.transpose((3, 2, 1, 0)).copy() + rdm2.ovoo = tmp1.transpose((2, 3, 1, 0)).copy() * -1 + tmp4 = einsum(l2, (0, 1, 2, 3), t2, (4, 3, 0, 1), (2, 4), optimize=True) + rdm2.oovo += einsum(tmp4, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) * 0.5 + rdm2.oovo += einsum(tmp4, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) * -0.5 + rdm2.ooov += einsum(tmp4, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -0.5 + rdm2.ooov += einsum(tmp4, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * 0.5 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp4, (2, 3), (0, 3, 1, 2), optimize=True) * -0.5 + rdm2.oooo += einsum(tmp4, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) * 0.5 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp4, (2, 3), (0, 3, 2, 1), optimize=True) * 0.5 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp4, (2, 3), (3, 1, 2, 0), optimize=True) * -0.5 + tmp21 = einsum(t2, (0, 1, 2, 3), l2, (3, 4, 5, 1), (5, 0, 4, 2), optimize=True) * -1 + rdm2.vovo = tmp21.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.voov = tmp21.transpose((2, 1, 0, 3)).copy() + rdm2.ovvo = tmp21.transpose((1, 2, 3, 0)).copy() + rdm2.ovov = tmp21.transpose((1, 2, 0, 3)).copy() * -1 + tmp6 = einsum(l1, (0, 1), t2, (2, 1, 3, 0), (2, 3), optimize=True) + tmp7 = einsum(tmp3, (0, 1), t1, (0, 2), (1, 2), optimize=True) + tmp9 = einsum(tmp1, (0, 1, 2, 3), t2, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 + rdm2.oovo += tmp9.transpose((2, 1, 3, 0)) * -1 + rdm2.oovo += tmp9.transpose((1, 2, 3, 0)) + rdm2.ooov += tmp9.transpose((2, 1, 0, 3)) + rdm2.ooov += tmp9.transpose((1, 2, 0, 3)) * -1 + tmp5 = einsum(t2, (0, 1, 2, 3), l1, (3, 4), (4, 0, 1, 2), optimize=True) + rdm2.oovo += tmp5.transpose((2, 1, 3, 0)) + rdm2.ooov += tmp5.transpose((2, 1, 0, 3)) * -1 + tmp0 = einsum(t2, (0, 1, 2, 3), l2, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + rdm2.oooo += tmp0.transpose((3, 2, 1, 0)) * 0.5 + tmp2 = einsum(tmp1, (0, 1, 2, 3), t1, (4, 3), (0, 1, 4, 2), optimize=True) + rdm2.oooo += tmp2.transpose((2, 3, 1, 0)) * -1 + tmp14 = tmp3.copy() * 2 + tmp14 += tmp4 + tmp29 = einsum(t1, (0, 1), tmp1, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + rdm2.vovo += tmp29.transpose((2, 1, 3, 0)) + rdm2.voov += tmp29.transpose((2, 1, 0, 3)) * -1 + rdm2.ovvo += tmp29.transpose((1, 2, 3, 0)) * -1 + rdm2.ovov += tmp29.transpose((1, 2, 0, 3)) + tmp30 = einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) + rdm2.ovvv = einsum(tmp30, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.ovvv += einsum(t1, (0, 1), tmp30, (2, 3), (0, 2, 1, 3), optimize=True) + tmp25 = einsum(t2, (0, 1, 2, 3), l2, (3, 4, 0, 1), (4, 2), optimize=True) * -1 + tmp36 = einsum(tmp21, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + rdm2.vovv = tmp36.transpose((1, 0, 3, 2)).copy() * -1 + rdm2.vovv += tmp36.transpose((1, 0, 2, 3)) + tmp8 = tmp6.copy() + tmp8 += tmp7 * -1 + del tmp7 + rdm2.ooov += einsum(tmp8, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.ooov += einsum(tmp8, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + tmp18 = einsum(t1, (0, 1), tmp9, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp9 + tmp22 = einsum(t2, (0, 1, 2, 3), tmp21, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) + del tmp21 + tmp20 = einsum(tmp5, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp5 + tmp13 = tmp0.transpose((1, 0, 3, 2)).copy() * -0.5 + tmp13 += tmp2.transpose((0, 1, 3, 2)) + rdm2.oovv = einsum(tmp13, (0, 1, 2, 3), t2, (0, 1, 4, 5), (3, 2, 5, 4), optimize=True) * -0.5 + rdm2.ooov += einsum(tmp13, (0, 1, 2, 3), t1, (0, 4), (3, 2, 1, 4), optimize=True) * -1 + tmp11 = einsum(tmp4, (0, 1), t1, (0, 2), (1, 2), optimize=True) + tmp10 = einsum(t2, (0, 1, 2, 3), tmp1, (0, 1, 4, 3), (4, 2), optimize=True) * -1 + tmp15 = einsum(tmp14, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 0.5 + del tmp14 tmp38 = einsum(l2, (0, 1, 2, 3), t1, (3, 4), (2, 0, 1, 4), optimize=True) rdm2.vvvv = einsum(tmp38, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) - rdm2.vvvv += einsum(l2, (0, 1, 2, 3), t2, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 0.5 rdm2.vvvo = tmp38.transpose((2, 1, 3, 0)).copy() rdm2.vvov = tmp38.transpose((2, 1, 0, 3)).copy() * -1 del tmp38 - tmp15 = einsum(t2, (0, 1, 2, 3), l2, (3, 4, 5, 1), (5, 0, 4, 2), optimize=True) * -1 - tmp36 = einsum(t1, (0, 1), tmp15, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) - rdm2.vovv = tmp36.transpose((1, 0, 3, 2)).copy() * -1 - rdm2.vovv += tmp36.transpose((1, 0, 2, 3)) - tmp18 = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 4, 0), (1, 4), optimize=True) * -1 - tmp31 = tmp18.copy() * 0.5 - tmp30 = einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) - tmp31 += tmp30 - rdm2.vovv += einsum(t1, (0, 1), tmp31, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.vovv += einsum(t1, (0, 1), tmp31, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - tmp1 = einsum(l2, (0, 1, 2, 3), t1, (4, 1), (2, 3, 4, 0), optimize=True) - tmp29 = einsum(tmp1, (0, 1, 2, 3), t1, (1, 4), (0, 2, 3, 4), optimize=True) - tmp35 = einsum(tmp29, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) * -1 - rdm2.vovv += tmp35.transpose((1, 0, 3, 2)) - tmp34 = einsum(t2, (0, 1, 2, 3), tmp1, (0, 1, 4, 5), (4, 5, 2, 3), optimize=True) + tmp34 = einsum(tmp1, (0, 1, 2, 3), t2, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) + del tmp1 rdm2.vovv += tmp34.transpose((1, 0, 3, 2)) * 0.5 - tmp33 = einsum(l1, (0, 1), t2, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) - rdm2.vovv += tmp33.transpose((1, 0, 3, 2)) - tmp37 = einsum(t1, (0, 1), tmp18, (2, 3), (0, 2, 1, 3), optimize=True) * -0.5 - tmp37 += tmp36 - del tmp36 - rdm2.ovvv = tmp37.transpose((0, 1, 3, 2)).copy() - rdm2.ovvv += tmp37 * -1 - del tmp37 - rdm2.ovvv += einsum(tmp30, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.ovvv += einsum(t1, (0, 1), tmp30, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.ovvv += tmp35.transpose((0, 1, 3, 2)) * -1 - del tmp35 rdm2.ovvv += tmp34.transpose((0, 1, 3, 2)) * -0.5 del tmp34 + tmp33 = einsum(t2, (0, 1, 2, 3), l1, (4, 1), (0, 4, 2, 3), optimize=True) + rdm2.vovv += tmp33.transpose((1, 0, 3, 2)) rdm2.ovvv += tmp33.transpose((0, 1, 3, 2)) * -1 del tmp33 - rdm2.vvoo = l2.transpose((1, 0, 3, 2)).copy() - tmp32 = tmp18.copy() - tmp32 += tmp30 * 2 - del tmp30 - rdm2.vovo = einsum(tmp32, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 0.5 - rdm2.vovo += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.vovo += tmp29.transpose((2, 1, 3, 0)) - rdm2.vovo += tmp15.transpose((2, 1, 3, 0)) * -1 - rdm2.voov = einsum(tmp32, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -0.5 + tmp35 = einsum(tmp29, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) * -1 + del tmp29 + rdm2.vovv += tmp35.transpose((1, 0, 3, 2)) + rdm2.ovvv += tmp35.transpose((0, 1, 3, 2)) * -1 + del tmp35 + tmp32 = tmp30.copy() + tmp32 += tmp25 * 0.5 + rdm2.vovv += einsum(tmp32, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.vovv += einsum(tmp32, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.vovo += einsum(tmp32, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.ovvo += einsum(tmp32, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 del tmp32 - rdm2.voov += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.voov += tmp29.transpose((2, 1, 0, 3)) * -1 - rdm2.voov += tmp15.transpose((2, 1, 0, 3)) - rdm2.ovvo = einsum(tmp31, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.ovvo += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.ovvo += tmp29.transpose((1, 2, 3, 0)) * -1 - rdm2.ovvo += tmp15.transpose((1, 2, 3, 0)) - rdm2.ovov = einsum(tmp31, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) + tmp37 = tmp36.copy() + del tmp36 + tmp37 += einsum(t1, (0, 1), tmp25, (2, 3), (0, 2, 1, 3), optimize=True) * -0.5 + rdm2.ovvv += tmp37.transpose((0, 1, 3, 2)) + rdm2.ovvv += tmp37 * -1 + del tmp37 + tmp31 = tmp30.copy() * 2 + del tmp30 + tmp31 += tmp25 + rdm2.voov += einsum(delta.oo, (0, 1), tmp31, (2, 3), (2, 1, 0, 3), optimize=True) * -0.5 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp31, (2, 3), (1, 2, 0, 3), optimize=True) * 0.5 del tmp31 - rdm2.ovov += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.ovov += tmp29.transpose((1, 2, 0, 3)) - del tmp29 - rdm2.ovov += tmp15.transpose((1, 2, 0, 3)) * -1 - tmp2 = einsum(t1, (0, 1), tmp1, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) - tmp12 = tmp2.transpose((0, 1, 3, 2)).copy() - tmp0 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) - tmp12 += tmp0.transpose((1, 0, 3, 2)) * -0.5 - tmp28 = einsum(t1, (0, 1), tmp12, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) * -2 - rdm2.oovv = einsum(tmp28, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) * 0.5 - del tmp28 - rdm2.oovv += einsum(t2, (0, 1, 2, 3), tmp12, (0, 1, 4, 5), (5, 4, 3, 2), optimize=True) * -0.5 - rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - tmp4 = einsum(t1, (0, 1), l1, (1, 2), (2, 0), optimize=True) - tmp27 = einsum(tmp4, (0, 1), t2, (2, 0, 3, 4), (1, 2, 3, 4), optimize=True) - rdm2.oovv += tmp27.transpose((1, 0, 3, 2)) - rdm2.oovv += tmp27.transpose((0, 1, 3, 2)) * -1 + tmp27 = einsum(tmp4, (0, 1), t2, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) + del tmp4 + rdm2.oovv += tmp27.transpose((1, 0, 3, 2)) * -0.5 + rdm2.oovv += tmp27.transpose((0, 1, 3, 2)) * 0.5 del tmp27 - tmp3 = einsum(l2, (0, 1, 2, 3), t2, (4, 3, 0, 1), (2, 4), optimize=True) - tmp25 = einsum(t1, (0, 1), tmp3, (0, 2), (2, 1), optimize=True) - tmp26 = tmp25.copy() + tmp19 = tmp18.copy() + del tmp18 + tmp19 += einsum(tmp8, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + del tmp8 + rdm2.oovv += tmp19.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp19.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp19.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp19 * -1 + del tmp19 + tmp26 = einsum(t2, (0, 1, 2, 3), tmp25, (3, 4), (0, 1, 2, 4), optimize=True) del tmp25 - tmp8 = einsum(tmp1, (0, 1, 2, 3), t2, (0, 1, 4, 3), (2, 4), optimize=True) * -1 - tmp26 += tmp8 - rdm2.oovv += einsum(tmp26, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) * -0.5 - rdm2.oovv += einsum(t1, (0, 1), tmp26, (2, 3), (2, 0, 1, 3), optimize=True) * 0.5 - rdm2.oovv += einsum(t1, (0, 1), tmp26, (2, 3), (0, 2, 3, 1), optimize=True) * 0.5 - rdm2.oovv += einsum(tmp26, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -0.5 + rdm2.oovv += tmp26.transpose((0, 1, 3, 2)) * 0.5 + rdm2.oovv += tmp26 * -0.5 del tmp26 - tmp22 = einsum(t1, (0, 1), tmp4, (0, 2), (2, 1), optimize=True) - tmp23 = tmp22.copy() * -1 + tmp23 = tmp20.copy() + del tmp20 + tmp23 += tmp22 del tmp22 - tmp7 = einsum(l1, (0, 1), t2, (2, 1, 3, 0), (2, 3), optimize=True) - tmp23 += tmp7 - tmp24 = einsum(tmp23, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.oovv += tmp23.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp23 del tmp23 - tmp6 = einsum(tmp1, (0, 1, 2, 3), t2, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 - tmp21 = einsum(tmp6, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) - tmp24 += tmp21 - del tmp21 - rdm2.oovv += tmp24.transpose((1, 0, 3, 2)) * -1 - rdm2.oovv += tmp24.transpose((1, 0, 2, 3)) - rdm2.oovv += tmp24.transpose((0, 1, 3, 2)) - rdm2.oovv += tmp24 * -1 - del tmp24 - tmp20 = einsum(t2, (0, 1, 2, 3), tmp3, (1, 4), (0, 4, 2, 3), optimize=True) - rdm2.oovv += tmp20.transpose((1, 0, 3, 2)) * -0.5 - rdm2.oovv += tmp20.transpose((0, 1, 3, 2)) * 0.5 - del tmp20 - tmp19 = einsum(tmp18, (0, 1), t2, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) - del tmp18 - rdm2.oovv += tmp19.transpose((0, 1, 3, 2)) * 0.5 - rdm2.oovv += tmp19 * -0.5 - del tmp19 - tmp16 = einsum(t2, (0, 1, 2, 3), tmp15, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) - del tmp15 - tmp17 = tmp16.copy() - del tmp16 - tmp5 = einsum(t2, (0, 1, 2, 3), l1, (3, 4), (4, 0, 1, 2), optimize=True) - tmp14 = einsum(tmp5, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) - tmp17 += tmp14 - del tmp14 - rdm2.oovv += tmp17.transpose((0, 1, 3, 2)) * -1 - rdm2.oovv += tmp17 - del tmp17 - rdm2.oovv += t2.transpose((1, 0, 3, 2)) - rdm2.vooo = einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 - rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) - rdm2.vooo += tmp1.transpose((3, 2, 1, 0)) - rdm2.ovoo = einsum(l1, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.ovoo += einsum(l1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.ovoo += tmp1.transpose((2, 3, 1, 0)) * -1 - del tmp1 - tmp13 = tmp2.transpose((0, 1, 3, 2)).copy() * 2 - tmp13 += tmp0.transpose((1, 0, 3, 2)) * -1 - rdm2.oovo = einsum(t1, (0, 1), tmp13, (0, 2, 3, 4), (4, 3, 1, 2), optimize=True) * 0.5 + tmp28 = einsum(tmp13, (0, 1, 2, 3), t1, (0, 4), (1, 3, 2, 4), optimize=True) * -2 del tmp13 - rdm2.oovo += einsum(tmp4, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) - rdm2.oovo += einsum(tmp4, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) * -1 - tmp9 = tmp3.copy() - tmp9 += tmp4 * 2 - tmp10 = einsum(t1, (0, 1), tmp9, (0, 2), (2, 1), optimize=True) * 0.5 - del tmp9 - tmp11 = tmp10.copy() - del tmp10 - tmp11 += tmp8 * 0.5 - del tmp8 - tmp11 += tmp7 * -1 - del tmp7 - rdm2.oovo += einsum(tmp11, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) - rdm2.oovo += einsum(tmp11, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - rdm2.oovo += einsum(t1, (0, 1), tmp3, (2, 3), (3, 0, 1, 2), optimize=True) * 0.5 - rdm2.oovo += einsum(tmp3, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) * -0.5 - rdm2.oovo += tmp6.transpose((2, 1, 3, 0)) * -1 - rdm2.oovo += tmp6.transpose((1, 2, 3, 0)) - rdm2.oovo += einsum(t1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.oovo += tmp5.transpose((2, 1, 3, 0)) - rdm2.ooov = einsum(t1, (0, 1), tmp12, (0, 2, 3, 4), (4, 3, 2, 1), optimize=True) * -1 - del tmp12 - rdm2.ooov += einsum(tmp4, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 - rdm2.ooov += einsum(tmp4, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) - rdm2.ooov += einsum(tmp11, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - rdm2.ooov += einsum(tmp11, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) + rdm2.oovv += einsum(tmp28, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) * 0.5 + del tmp28 + tmp12 = tmp10.copy() + tmp12 += tmp11 del tmp11 - rdm2.ooov += einsum(t1, (0, 1), tmp3, (2, 3), (3, 0, 2, 1), optimize=True) * -0.5 - rdm2.ooov += einsum(tmp3, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * 0.5 - rdm2.ooov += tmp6.transpose((2, 1, 0, 3)) - rdm2.ooov += tmp6.transpose((1, 2, 0, 3)) * -1 + rdm2.oovv += einsum(t1, (0, 1), tmp12, (2, 3), (2, 0, 3, 1), optimize=True) * -0.5 + rdm2.oovv += einsum(tmp12, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * 0.5 + rdm2.oovv += einsum(t1, (0, 1), tmp12, (2, 3), (0, 2, 3, 1), optimize=True) * 0.5 + rdm2.oovv += einsum(tmp12, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -0.5 + rdm2.ooov += einsum(delta.oo, (0, 1), tmp12, (2, 3), (0, 2, 1, 3), optimize=True) * -0.5 + rdm2.ooov += einsum(delta.oo, (0, 1), tmp12, (2, 3), (2, 1, 0, 3), optimize=True) * 0.5 + del tmp12 + tmp24 = einsum(tmp3, (0, 1), t2, (2, 0, 3, 4), (1, 2, 3, 4), optimize=True) + del tmp3 + rdm2.oovv += tmp24.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp24.transpose((0, 1, 3, 2)) * -1 + del tmp24 + tmp17 = tmp0.transpose((1, 0, 3, 2)).copy() * -1 + del tmp0 + tmp17 += tmp2.transpose((0, 1, 3, 2)) * 2 + del tmp2 + rdm2.oovo += einsum(tmp17, (0, 1, 2, 3), t1, (0, 4), (3, 2, 4, 1), optimize=True) * 0.5 + del tmp17 + tmp16 = tmp6.copy() * -1 del tmp6 - rdm2.ooov += einsum(t1, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.ooov += tmp5.transpose((2, 1, 0, 3)) * -1 - del tmp5 - rdm2.oooo = einsum(tmp4, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp4, (2, 3), (3, 1, 0, 2), optimize=True) - rdm2.oooo += einsum(delta.oo, (0, 1), tmp4, (2, 3), (1, 3, 2, 0), optimize=True) - rdm2.oooo += einsum(tmp4, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - del tmp4 - rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + tmp16 += tmp10 * 0.5 + del tmp10 + tmp16 += tmp15 + del tmp15 + rdm2.oovo += einsum(delta.oo, (0, 1), tmp16, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), tmp16, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + del tmp16 rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) - rdm2.oooo += einsum(delta.oo, (0, 1), tmp3, (2, 3), (0, 3, 1, 2), optimize=True) * -0.5 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp3, (2, 3), (3, 1, 0, 2), optimize=True) * 0.5 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp3, (2, 3), (0, 3, 2, 1), optimize=True) * 0.5 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp3, (2, 3), (3, 1, 2, 0), optimize=True) * -0.5 - del delta, tmp3 - rdm2.oooo += tmp2.transpose((2, 3, 1, 0)) * -1 - del tmp2 - rdm2.oooo += tmp0.transpose((3, 2, 1, 0)) * 0.5 - del tmp0 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovoo += einsum(l1, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + del delta + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.ovov += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.ovvo += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.voov += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.vovo += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.vvoo = l2.transpose((1, 0, 3, 2)).copy() + rdm2.vvvv += einsum(t2, (0, 1, 2, 3), l2, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * 0.5 rdm2 = pack_2e(rdm2.oooo, rdm2.ooov, rdm2.oovo, rdm2.ovoo, rdm2.vooo, rdm2.oovv, rdm2.ovov, rdm2.ovvo, rdm2.voov, rdm2.vovo, rdm2.vvoo, rdm2.ovvv, rdm2.vovv, rdm2.vvov, rdm2.vvvo, rdm2.vvvv) rdm2 = rdm2.swapaxes(1, 2) diff --git a/ebcc/codegen/RCCD.py b/ebcc/codegen/RCCD.py new file mode 100644 index 00000000..176b7cf3 --- /dev/null +++ b/ebcc/codegen/RCCD.py @@ -0,0 +1,498 @@ +""" +Code generated by `albert`: +https://github.com/obackhouse/albert + + * date: 2024-07-18T20:23:43.462621 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + * albert version: 0.0.0 + * caller: /home/ollie/git/albert/albert/codegen/einsum.py + * node: ollie-desktop + * system: Linux + * processor: x86_64 + * release: 6.5.0-44-generic +""" + +from ebcc import numpy as np +from ebcc.util import pack_2e, einsum, direct_sum, Namespace + + +def energy(t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:43.617209. + + Parameters + ---------- + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + e_cc : float + Coupled cluster energy. + """ + + e_cc = einsum(v.ovov, (0, 1, 2, 3), t2, (0, 2, 1, 3), (), optimize=True) * 2 + e_cc += einsum(v.ovov, (0, 1, 2, 3), t2, (0, 2, 3, 1), (), optimize=True) * -1 + + return e_cc + +def update_amps(f=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:45.808392. + + Parameters + ---------- + f : array + Fock matrix. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + t2new : array + Updated T2 residuals. + """ + + tmp6 = v.ovov.transpose((2, 0, 1, 3)).copy() * -0.5 + tmp6 += v.ovov.transpose((2, 0, 3, 1)) + tmp3 = v.ovov.transpose((2, 0, 1, 3)).copy() * 2 + tmp3 += v.ovov.transpose((2, 0, 3, 1)) * -1 + tmp9 = einsum(tmp6, (0, 1, 2, 3), t2, (0, 4, 2, 3), (4, 1), optimize=True) * 2 + tmp7 = einsum(t2, (0, 1, 2, 3), tmp6, (0, 1, 4, 3), (2, 4), optimize=True) + del tmp6 + tmp0 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 5, 1, 2), (0, 4, 3, 5), optimize=True) + t2new = tmp0.transpose((1, 0, 3, 2)).copy() * -1 + tmp4 = einsum(t2, (0, 1, 2, 3), tmp3, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp3 + tmp10 = einsum(t2, (0, 1, 2, 3), tmp9, (4, 0), (1, 4, 2, 3), optimize=True) + del tmp9 + tmp8 = einsum(t2, (0, 1, 2, 3), tmp7, (4, 2), (0, 1, 3, 4), optimize=True) * 2 + del tmp7 + tmp14 = v.ovov.transpose((2, 0, 3, 1)).copy() * -1 + tmp14 += tmp0 + del tmp0 + t2new += einsum(t2, (0, 1, 2, 3), tmp14, (4, 0, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp14 + tmp5 = einsum(t2, (0, 1, 2, 3), tmp4, (4, 0, 5, 3), (1, 4, 2, 5), optimize=True) + t2new += tmp5 * -1 + t2new += tmp5.transpose((1, 0, 3, 2)) * -1 + del tmp5 + tmp15 = v.oovv.transpose((1, 0, 3, 2)).copy() * -1 + tmp15 += einsum(t2, (0, 1, 2, 3), v.ovov, (1, 4, 5, 2), (0, 5, 3, 4), optimize=True) + t2new += einsum(t2, (0, 1, 2, 3), tmp15, (4, 0, 5, 3), (1, 4, 5, 2), optimize=True) + del tmp15 + tmp2 = einsum(f.vv, (0, 1), t2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + t2new += tmp2.transpose((1, 0, 2, 3)) + t2new += tmp2.transpose((0, 1, 3, 2)) + del tmp2 + tmp11 = tmp8.transpose((1, 0, 2, 3)).copy() + del tmp8 + tmp11 += tmp10.transpose((0, 1, 3, 2)) + del tmp10 + t2new += tmp11.transpose((1, 0, 3, 2)) * -1 + t2new += tmp11 * -1 + del tmp11 + tmp1 = einsum(f.oo, (0, 1), t2, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + t2new += tmp1.transpose((1, 0, 2, 3)) * -1 + t2new += tmp1.transpose((0, 1, 3, 2)) * -1 + del tmp1 + tmp13 = v.oooo.transpose((2, 3, 1, 0)).copy() + tmp13 += einsum(t2, (0, 1, 2, 3), v.ovov, (4, 2, 5, 3), (5, 1, 0, 4), optimize=True) + t2new += einsum(tmp13, (0, 1, 2, 3), t2, (0, 3, 4, 5), (2, 1, 5, 4), optimize=True) + del tmp13 + tmp12 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 + tmp12 += v.oovv.transpose((1, 0, 3, 2)) * -1 + tmp12 += tmp4 * 2 + del tmp4 + t2new += einsum(t2, (0, 1, 2, 3), tmp12, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp12 + t2new += v.ovov.transpose((2, 0, 3, 1)) + t2new += einsum(t2, (0, 1, 2, 3), v.vvvv, (4, 3, 2, 5), (1, 0, 4, 5), optimize=True) + t2new += einsum(t2, (0, 1, 2, 3), v.oovv, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) * -1 + t2new += einsum(v.oovv, (0, 1, 2, 3), t2, (4, 1, 3, 5), (0, 4, 5, 2), optimize=True) * -1 + t2new += einsum(t2, (0, 1, 2, 3), v.ovov, (4, 5, 1, 3), (0, 4, 2, 5), optimize=True) * 2 + + return {f"t2new": t2new} + +def update_lams(f=None, l2=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:49.488980. + + Parameters + ---------- + f : array + Fock matrix. + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + l2new : array + Updated L2 residuals. + """ + + tmp10 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp10 += l2.transpose((3, 2, 1, 0)) * -1 + tmp22 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp22 += t2.transpose((1, 0, 3, 2)) * -1 + tmp19 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp19 += t2.transpose((1, 0, 3, 2)) * 2 + tmp4 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 3, 0, 5), (1, 4, 2, 5), optimize=True) + tmp26 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp26 += t2.transpose((1, 0, 3, 2)) + tmp15 = einsum(t2, (0, 1, 2, 3), l2, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) + tmp9 = einsum(t2, (0, 1, 2, 3), l2, (4, 2, 5, 1), (5, 0, 4, 3), optimize=True) + tmp11 = einsum(t2, (0, 1, 2, 3), tmp10, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp10 + tmp23 = einsum(v.ovov, (0, 1, 2, 3), tmp22, (0, 4, 3, 1), (2, 4), optimize=True) + del tmp22 + tmp20 = einsum(tmp19, (0, 1, 2, 3), v.ovov, (0, 4, 1, 3), (4, 2), optimize=True) * 0.5 + del tmp19 + tmp5 = v.oovv.transpose((1, 0, 3, 2)).copy() * -1 + tmp5 += tmp4 + del tmp4 + tmp27 = einsum(l2, (0, 1, 2, 3), tmp26, (2, 3, 4, 1), (0, 4), optimize=True) * 2 + tmp29 = einsum(tmp26, (0, 1, 2, 3), l2, (2, 3, 0, 4), (4, 1), optimize=True) * 2 + del tmp26 + tmp16 = tmp15.copy() + del tmp15 + tmp16 += l2.transpose((3, 2, 0, 1)) * -1 + tmp16 += l2.transpose((3, 2, 1, 0)) * 2 + tmp13 = v.ovov.transpose((2, 0, 1, 3)).copy() * 2 + tmp13 += v.ovov.transpose((2, 0, 3, 1)) * -1 + tmp12 = tmp9.copy() + del tmp9 + tmp12 += tmp11.transpose((1, 0, 3, 2)) * -1 + del tmp11 + tmp24 = einsum(tmp23, (0, 1), l2, (2, 3, 1, 4), (4, 0, 2, 3), optimize=True) + del tmp23 + tmp21 = einsum(l2, (0, 1, 2, 3), tmp20, (4, 0), (2, 3, 1, 4), optimize=True) * 2 + del tmp20 + tmp6 = einsum(tmp5, (0, 1, 2, 3), l2, (4, 2, 0, 5), (5, 1, 4, 3), optimize=True) + del tmp5 + tmp3 = einsum(f.vv, (0, 1), l2, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + tmp28 = einsum(v.ovov, (0, 1, 2, 3), tmp27, (4, 1), (0, 2, 3, 4), optimize=True) + del tmp27 + tmp30 = einsum(v.ovov, (0, 1, 2, 3), tmp29, (4, 0), (2, 4, 1, 3), optimize=True) + del tmp29 + tmp17 = einsum(tmp16, (0, 1, 2, 3), v.ovov, (1, 3, 4, 5), (4, 0, 5, 2), optimize=True) + del tmp16 + tmp14 = einsum(tmp13, (0, 1, 2, 3), tmp12, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) + del tmp13, tmp12 + tmp8 = einsum(v.oovv, (0, 1, 2, 3), l2, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + tmp25 = tmp21.transpose((1, 0, 2, 3)).copy() + del tmp21 + tmp25 += tmp24.transpose((0, 1, 3, 2)) + del tmp24 + l2new = tmp25.transpose((3, 2, 1, 0)).copy() * -1 + l2new += tmp25.transpose((2, 3, 0, 1)) * -1 + del tmp25 + tmp7 = tmp3.copy() + del tmp3 + tmp7 += tmp6 + del tmp6 + l2new += tmp7.transpose((2, 3, 1, 0)) + l2new += tmp7.transpose((3, 2, 0, 1)) + del tmp7 + tmp2 = einsum(f.oo, (0, 1), l2, (2, 3, 4, 1), (0, 4, 2, 3), optimize=True) + l2new += tmp2.transpose((2, 3, 1, 0)) * -1 + l2new += tmp2.transpose((3, 2, 0, 1)) * -1 + del tmp2 + tmp0 = einsum(v.ovov, (0, 1, 2, 3), t2, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + l2new += einsum(l2, (0, 1, 2, 3), tmp0, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) + del tmp0 + tmp1 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + l2new += einsum(tmp1, (0, 1, 2, 3), v.ovov, (2, 4, 3, 5), (4, 5, 0, 1), optimize=True) + del tmp1 + tmp31 = tmp28.transpose((1, 0, 3, 2)).copy() + del tmp28 + tmp31 += tmp30.transpose((1, 0, 3, 2)) + del tmp30 + l2new += tmp31.transpose((2, 3, 1, 0)) * -1 + l2new += tmp31.transpose((3, 2, 0, 1)) * -1 + del tmp31 + tmp18 = tmp8.copy() + del tmp8 + tmp18 += tmp14 + del tmp14 + tmp18 += tmp17.transpose((1, 0, 3, 2)) * -1 + del tmp17 + l2new += tmp18.transpose((3, 2, 1, 0)) * -1 + l2new += tmp18.transpose((2, 3, 0, 1)) * -1 + del tmp18 + l2new += v.ovov.transpose((3, 1, 2, 0)) + l2new += einsum(l2, (0, 1, 2, 3), v.vvvv, (4, 1, 0, 5), (4, 5, 3, 2), optimize=True) + l2new += einsum(v.oooo, (0, 1, 2, 3), l2, (4, 5, 1, 2), (5, 4, 3, 0), optimize=True) + + return {f"l2new": l2new} + +def make_rdm1_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:49.789244. + + Parameters + ---------- + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm1 : array + One-particle reduced density matrix. + """ + + rdm1 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + tmp0 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp0 += t2.transpose((1, 0, 3, 2)) + rdm1.vv = einsum(l2, (0, 1, 2, 3), tmp0, (2, 3, 4, 1), (0, 4), optimize=True) * 4 + rdm1.oo = einsum(l2, (0, 1, 2, 3), tmp0, (2, 4, 0, 1), (4, 3), optimize=True) * -4 + del tmp0 + rdm1.oo += delta.oo.transpose((1, 0)) * 2 + del delta + rdm1.ov = np.zeros((t2.shape[0], t2.shape[-1])) + rdm1.vo = np.zeros((t2.shape[-1], t2.shape[0])) + rdm1 = np.block([[rdm1.oo, rdm1.ov], [rdm1.vo, rdm1.vv]]) + + return rdm1 + +def make_rdm2_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:24:00.844357. + + Parameters + ---------- + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm2 : array + Two-particle reduced density matrix. + """ + + rdm2 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + tmp0 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp0 += t2.transpose((1, 0, 3, 2)) + tmp13 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp13 += l2.transpose((3, 2, 1, 0)) * 2 + tmp6 = l2.transpose((3, 2, 0, 1)).copy() + tmp6 += l2.transpose((3, 2, 1, 0)) * -1 + tmp3 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp3 += l2.transpose((3, 2, 1, 0)) * -1 + tmp1 = einsum(tmp0, (0, 1, 2, 3), l2, (2, 3, 0, 4), (4, 1), optimize=True) * 2 + del tmp0 + rdm2.oooo = einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (0, 3, 2, 1), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (0, 3, 2, 1), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + tmp14 = einsum(t2, (0, 1, 2, 3), tmp13, (0, 1, 4, 3), (2, 4), optimize=True) * 0.5 + rdm2.ovvo = einsum(delta.oo, (0, 1), tmp14, (2, 3), (1, 3, 2, 0), optimize=True) * -2 + rdm2.ovvo += einsum(delta.oo, (0, 1), tmp14, (2, 3), (1, 3, 2, 0), optimize=True) * -2 + rdm2.ovov = einsum(delta.oo, (0, 1), tmp14, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp14, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp14, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp14, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + tmp7 = einsum(tmp6, (0, 1, 2, 3), t2, (0, 4, 5, 3), (4, 1, 5, 2), optimize=True) + del tmp6 + rdm2.ovvo += tmp7.transpose((0, 3, 2, 1)) * -1 + rdm2.ovvo += tmp7.transpose((0, 3, 2, 1)) * -1 + tmp4 = einsum(t2, (0, 1, 2, 3), tmp3, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + rdm2.vovo = tmp4.transpose((3, 0, 2, 1)).copy() * -1 + rdm2.vovo += tmp4.transpose((3, 0, 2, 1)) * -1 + rdm2.voov = tmp4.transpose((3, 0, 1, 2)).copy() + rdm2.voov += tmp4.transpose((3, 0, 1, 2)) + rdm2.ovvo += tmp4.transpose((0, 3, 2, 1)) + rdm2.ovvo += tmp4.transpose((0, 3, 2, 1)) + rdm2.ovvo += tmp4.transpose((0, 3, 2, 1)) + rdm2.ovvo += tmp4.transpose((0, 3, 2, 1)) + tmp27 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp27 += l2.transpose((3, 2, 1, 0)) + tmp24 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp24 += t2.transpose((1, 0, 3, 2)) * -1 + tmp22 = t2.transpose((1, 0, 2, 3)).copy() + tmp22 += t2.transpose((1, 0, 3, 2)) * -1 + tmp16 = einsum(t2, (0, 1, 2, 3), tmp1, (0, 4), (1, 4, 2, 3), optimize=True) + del tmp1 + tmp15 = einsum(t2, (0, 1, 2, 3), tmp14, (4, 2), (0, 1, 3, 4), optimize=True) * 2 + del tmp14 + tmp8 = einsum(tmp7, (0, 1, 2, 3), t2, (1, 4, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp7 + tmp5 = einsum(t2, (0, 1, 2, 3), tmp4, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp4 + rdm2.oovv = tmp5.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.oovv += tmp5.transpose((1, 0, 3, 2)) * 2 + tmp10 = einsum(t2, (0, 1, 2, 3), tmp3, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp3 + tmp18 = einsum(t2, (0, 1, 2, 3), l2, (4, 2, 5, 1), (5, 0, 4, 3), optimize=True) + rdm2.voov += tmp18.transpose((2, 1, 0, 3)) * -1 + rdm2.voov += tmp18.transpose((2, 1, 0, 3)) * -1 + rdm2.ovvo += tmp18.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp18.transpose((1, 2, 3, 0)) * -1 + tmp20 = einsum(t2, (0, 1, 2, 3), l2, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) + rdm2.vovo += tmp20.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp20.transpose((2, 1, 3, 0)) * -1 + rdm2.ovov += tmp20.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp20.transpose((1, 2, 0, 3)) * -1 + tmp2 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((2, 3, 1, 0)) * -1 + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((2, 3, 1, 0)) * -1 + tmp29 = einsum(t2, (0, 1, 2, 3), l2, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + rdm2.vvvv = tmp29.transpose((1, 0, 3, 2)).copy() + rdm2.vvvv += tmp29.transpose((1, 0, 2, 3)) * -1 + rdm2.vvvv += tmp29.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp29.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp29.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp29.transpose((1, 0, 2, 3)) * -1 + del tmp29 + tmp28 = einsum(t2, (0, 1, 2, 3), tmp27, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp27 + rdm2.vovo += tmp28.transpose((3, 0, 2, 1)) * -1 + rdm2.vovo += tmp28.transpose((3, 0, 2, 1)) * -1 + del tmp28 + tmp26 = einsum(t2, (0, 1, 2, 3), tmp13, (0, 1, 4, 3), (2, 4), optimize=True) + del tmp13 + rdm2.vovo += einsum(tmp26, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.vovo += einsum(tmp26, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.vovo += einsum(tmp26, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.vovo += einsum(tmp26, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.voov += einsum(tmp26, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) * -1 + rdm2.voov += einsum(tmp26, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) * -1 + del tmp26 + tmp25 = einsum(l2, (0, 1, 2, 3), tmp24, (2, 4, 5, 0), (3, 4, 1, 5), optimize=True) + del tmp24 + rdm2.voov += tmp25.transpose((2, 1, 0, 3)) + rdm2.voov += tmp25.transpose((2, 1, 0, 3)) + rdm2.ovov += tmp25.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp25.transpose((1, 2, 0, 3)) * -1 + del tmp25 + tmp23 = einsum(tmp22, (0, 1, 2, 3), l2, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) + del tmp22 + rdm2.voov += tmp23.transpose((2, 1, 0, 3)) * -1 + rdm2.voov += tmp23.transpose((2, 1, 0, 3)) * -1 + rdm2.ovov += tmp23.transpose((1, 2, 0, 3)) + rdm2.ovov += tmp23.transpose((1, 2, 0, 3)) + del tmp23 + tmp17 = tmp15.transpose((1, 0, 2, 3)).copy() + del tmp15 + tmp17 += tmp16.transpose((0, 1, 3, 2)) + del tmp16 + rdm2.oovv += tmp17.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp17.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp17.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp17 * -1 + rdm2.oovv += tmp17.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp17 * -1 + rdm2.oovv += tmp17.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp17 * -1 + rdm2.oovv += tmp17.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp17.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp17.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp17 * -1 + del tmp17 + tmp9 = tmp5.copy() * 2 + del tmp5 + tmp9 += tmp8.transpose((1, 0, 3, 2)) + del tmp8 + rdm2.oovv += tmp9.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp9 + rdm2.oovv += tmp9.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp9 + del tmp9 + tmp11 = einsum(t2, (0, 1, 2, 3), tmp10, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp10 + rdm2.oovv += tmp11.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp11.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp11.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp11 * -1 + rdm2.oovv += tmp11.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp11 * -1 + rdm2.oovv += tmp11.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp11 * -1 + rdm2.oovv += tmp11.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp11.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp11.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp11 * -1 + del tmp11 + tmp19 = einsum(t2, (0, 1, 2, 3), tmp18, (1, 4, 2, 5), (0, 4, 3, 5), optimize=True) + del tmp18 + rdm2.oovv += tmp19 + rdm2.oovv += tmp19 + del tmp19 + tmp21 = einsum(t2, (0, 1, 2, 3), tmp20, (1, 4, 2, 5), (0, 4, 3, 5), optimize=True) + del tmp20 + rdm2.oovv += tmp21.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp21.transpose((0, 1, 3, 2)) + del tmp21 + tmp12 = einsum(t2, (0, 1, 2, 3), tmp2, (0, 1, 4, 5), (5, 4, 3, 2), optimize=True) + del tmp2 + rdm2.oovv += tmp12.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp12 + rdm2.oovv += tmp12 + rdm2.oovv += tmp12 + rdm2.oovv += tmp12.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp12 + del tmp12 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + del delta + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.vvoo = l2.transpose((0, 1, 3, 2)).copy() * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((0, 1, 3, 2)) * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.ooov = np.zeros((t2.shape[0], t2.shape[0], t2.shape[0], t2.shape[-1])) + rdm2.oovo = np.zeros((t2.shape[0], t2.shape[0], t2.shape[-1], t2.shape[0])) + rdm2.ovoo = np.zeros((t2.shape[0], t2.shape[-1], t2.shape[0], t2.shape[0])) + rdm2.vooo = np.zeros((t2.shape[-1], t2.shape[0], t2.shape[0], t2.shape[0])) + rdm2.ovvv = np.zeros((t2.shape[0], t2.shape[-1], t2.shape[-1], t2.shape[-1])) + rdm2.vovv = np.zeros((t2.shape[-1], t2.shape[0], t2.shape[-1], t2.shape[-1])) + rdm2.vvov = np.zeros((t2.shape[-1], t2.shape[-1], t2.shape[0], t2.shape[-1])) + rdm2.vvvo = np.zeros((t2.shape[-1], t2.shape[-1], t2.shape[-1], t2.shape[0])) + rdm2 = pack_2e(rdm2.oooo, rdm2.ooov, rdm2.oovo, rdm2.ovoo, rdm2.vooo, rdm2.oovv, rdm2.ovov, rdm2.ovvo, rdm2.voov, rdm2.vovo, rdm2.vvoo, rdm2.ovvv, rdm2.vovv, rdm2.vvov, rdm2.vvvo, rdm2.vvvv) + rdm2 = rdm2.swapaxes(1, 2) + + return rdm2 + diff --git a/ebcc/codegen/RCCSD.py b/ebcc/codegen/RCCSD.py index e8a540b1..6ed2baa2 100644 --- a/ebcc/codegen/RCCSD.py +++ b/ebcc/codegen/RCCSD.py @@ -2,23 +2,23 @@ Code generated by `albert`: https://github.com/obackhouse/albert - * date: 2024-03-02T15:24:42.798019 - * python version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] + * date: 2024-07-18T20:20:43.113666 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] * albert version: 0.0.0 * caller: /home/ollie/git/albert/albert/codegen/einsum.py * node: ollie-desktop * system: Linux * processor: x86_64 - * release: 6.5.0-21-generic + * release: 6.5.0-44-generic """ from ebcc import numpy as np -from ebcc.util import pack_2e, einsum, Namespace +from ebcc.util import pack_2e, einsum, direct_sum, Namespace def energy(f=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:24:43.336038. + Code generated by `albert` 0.0.0 on 2024-07-18T20:20:43.567964. Parameters ---------- @@ -37,21 +37,21 @@ def energy(f=None, t1=None, t2=None, v=None, **kwargs): Coupled cluster energy. """ - tmp0 = v.ovov.transpose((2, 0, 3, 1)).copy() - tmp0 += v.ovov.transpose((2, 0, 1, 3)) * -0.5 - tmp1 = einsum(tmp0, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) + tmp0 = v.ovov.transpose((2, 0, 1, 3)).copy() + tmp0 += v.ovov.transpose((2, 0, 3, 1)) * -0.5 + tmp1 = f.ov.copy() + tmp1 += einsum(tmp0, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) del tmp0 - tmp1 += f.ov e_cc = einsum(tmp1, (0, 1), t1, (0, 1), (), optimize=True) * 2 del tmp1 - e_cc += einsum(v.ovov, (0, 1, 2, 3), t2, (0, 2, 3, 1), (), optimize=True) * -1 e_cc += einsum(v.ovov, (0, 1, 2, 3), t2, (0, 2, 1, 3), (), optimize=True) * 2 + e_cc += einsum(t2, (0, 1, 2, 3), v.ovov, (0, 3, 1, 2), (), optimize=True) * -1 return e_cc def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:24:55.456799. + Code generated by `albert` 0.0.0 on 2024-07-18T20:20:54.656399. Parameters ---------- @@ -72,241 +72,228 @@ def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): Updated T2 residuals. """ - tmp18 = einsum(v.ovov, (0, 1, 2, 3), t2, (4, 0, 1, 5), (4, 2, 5, 3), optimize=True) - tmp73 = tmp18.copy() - tmp73 += v.ovov.transpose((2, 0, 3, 1)) * -1 - t2new = einsum(t2, (0, 1, 2, 3), tmp73, (4, 0, 5, 3), (1, 4, 2, 5), optimize=True) - del tmp73 - tmp72 = einsum(v.ovov, (0, 1, 2, 3), t2, (4, 0, 3, 5), (4, 2, 5, 1), optimize=True) - tmp72 += v.oovv.transpose((1, 0, 3, 2)) * -1 - t2new += einsum(tmp72, (0, 1, 2, 3), t2, (1, 4, 5, 3), (4, 0, 2, 5), optimize=True) - del tmp72 - tmp1 = einsum(v.ovov, (0, 1, 2, 3), t1, (4, 3), (4, 0, 2, 1), optimize=True) - tmp17 = einsum(tmp1, (0, 1, 2, 3), t1, (4, 3), (0, 4, 2, 1), optimize=True) - tmp70 = tmp17.transpose((3, 1, 0, 2)).copy() - tmp68 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 3, 5, 2), (0, 1, 5, 4), optimize=True) - tmp70 += tmp68.transpose((3, 1, 0, 2)) - tmp70 += v.oooo.transpose((2, 3, 1, 0)) - tmp71 = einsum(t1, (0, 1), tmp70, (0, 2, 3, 4), (3, 2, 4, 1), optimize=True) - del tmp70 - tmp71 += v.ooov.transpose((1, 2, 0, 3)) * -1 - t2new += einsum(tmp71, (0, 1, 2, 3), t1, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp71 - tmp69 = tmp68.transpose((3, 1, 2, 0)).copy() - del tmp68 - tmp69 += v.oooo.transpose((2, 3, 1, 0)) - t2new += einsum(t2, (0, 1, 2, 3), tmp69, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) - del tmp69 - tmp3 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 - tmp3 += v.ovov.transpose((2, 0, 1, 3)) * -1 - tmp38 = einsum(t2, (0, 1, 2, 3), tmp3, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) - tmp67 = tmp38.transpose((1, 0, 3, 2)).copy() * 2 - tmp67 += v.oovv.transpose((1, 0, 3, 2)) * -1 - tmp67 += v.ovov.transpose((2, 0, 3, 1)) * 2 - t2new += einsum(tmp67, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) - del tmp67 - tmp65 = einsum(v.ooov, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp66 = einsum(tmp65, (0, 1, 2, 3), t2, (3, 2, 4, 5), (0, 1, 5, 4), optimize=True) - del tmp65 - t2new += tmp66.transpose((1, 0, 2, 3)) - t2new += tmp66.transpose((0, 1, 3, 2)) - del tmp66 - tmp61 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) - tmp62 = tmp61.copy() - del tmp61 - tmp62 += f.oo.transpose((1, 0)) - tmp63 = einsum(tmp62, (0, 1), t2, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) - del tmp62 - tmp64 = tmp63.transpose((0, 1, 3, 2)).copy() - del tmp63 - tmp59 = einsum(t2, (0, 1, 2, 3), f.ov, (4, 3), (4, 0, 1, 2), optimize=True) - tmp60 = einsum(tmp59, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) - del tmp59 - tmp64 += tmp60 - del tmp60 - t2new += tmp64.transpose((1, 0, 2, 3)) * -1 - t2new += tmp64.transpose((0, 1, 3, 2)) * -1 - del tmp64 - tmp13 = v.ovov.transpose((2, 0, 3, 1)).copy() - tmp13 += v.ovov.transpose((2, 0, 1, 3)) * -0.5 - tmp56 = einsum(t2, (0, 1, 2, 3), tmp13, (0, 4, 2, 3), (4, 1), optimize=True) * 2 - tmp57 = einsum(t2, (0, 1, 2, 3), tmp56, (0, 4), (4, 1, 2, 3), optimize=True) - del tmp56 - tmp58 = tmp57.transpose((1, 0, 3, 2)).copy() - del tmp57 - tmp53 = v.ovov.transpose((2, 0, 3, 1)).copy() * -0.5 - tmp53 += v.ovov.transpose((2, 0, 1, 3)) - tmp54 = einsum(t2, (0, 1, 2, 3), tmp53, (0, 1, 3, 4), (4, 2), optimize=True) - del tmp53 - tmp55 = einsum(tmp54, (0, 1), t2, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * 2 - del tmp54 - tmp58 += tmp55.transpose((1, 0, 3, 2)) - del tmp55 - tmp51 = einsum(v.ovvv, (0, 1, 2, 3), t2, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) - tmp52 = einsum(tmp51, (0, 1, 2, 3), t1, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp51 - tmp58 += tmp52 - del tmp52 - t2new += tmp58.transpose((1, 0, 3, 2)) * -1 - t2new += tmp58 * -1 - del tmp58 - tmp47 = v.ooov.transpose((2, 1, 0, 3)).copy() * 2 - tmp47 += v.ooov.transpose((1, 0, 2, 3)) * -1 - tmp48 = einsum(tmp47, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) - del tmp47 - tmp49 = einsum(t2, (0, 1, 2, 3), tmp48, (4, 0), (4, 1, 2, 3), optimize=True) - del tmp48 - tmp50 = tmp49.transpose((1, 0, 3, 2)).copy() * -1 - del tmp49 - tmp43 = tmp1.transpose((0, 2, 1, 3)).copy() * -1 - tmp43 += tmp1 * 2 - tmp44 = einsum(tmp43, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) - del tmp43 - tmp45 = tmp44.transpose((0, 2, 1, 3)).copy() - del tmp44 - tmp42 = einsum(t2, (0, 1, 2, 3), v.ooov, (4, 1, 5, 2), (0, 4, 5, 3), optimize=True) - tmp45 += tmp42 * -1 + tmp4 = v.ovov.transpose((2, 0, 1, 3)).copy() * 2 + tmp4 += v.ovov.transpose((2, 0, 3, 1)) * -1 + tmp2 = einsum(t1, (0, 1), v.ovov, (2, 1, 3, 4), (0, 3, 2, 4), optimize=True) + tmp26 = einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + tmp26 += t2.transpose((1, 0, 2, 3)) * -2 + tmp26 += t2.transpose((1, 0, 3, 2)) + tmp5 = einsum(tmp4, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) + tmp42 = tmp2.copy() * 2 + tmp42 += tmp2.transpose((0, 2, 1, 3)) * -1 + tmp9 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) + tmp24 = einsum(t2, (0, 1, 2, 3), v.ooov, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) + tmp25 = einsum(tmp2, (0, 1, 2, 3), t2, (4, 2, 3, 5), (0, 4, 1, 5), optimize=True) + tmp27 = einsum(tmp26, (0, 1, 2, 3), v.ooov, (4, 5, 0, 3), (4, 5, 1, 2), optimize=True) + del tmp26 + tmp28 = einsum(t2, (0, 1, 2, 3), tmp5, (4, 2), (4, 0, 1, 3), optimize=True) + tmp23 = einsum(v.oovv, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) + tmp46 = v.ooov.transpose((1, 0, 2, 3)).copy() * 2 + tmp46 += v.ooov.transpose((1, 2, 0, 3)) * -1 + tmp38 = v.ovvv.transpose((0, 1, 3, 2)).copy() * 2 + tmp38 += v.ovvv.transpose((0, 3, 2, 1)) * -1 + tmp35 = einsum(tmp4, (0, 1, 2, 3), t2, (0, 4, 3, 5), (1, 4, 2, 5), optimize=True) + del tmp4 + tmp34 = einsum(t1, (0, 1), tmp2, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + tmp43 = einsum(tmp42, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) del tmp42 - tmp45 += tmp1 - tmp46 = einsum(tmp45, (0, 1, 2, 3), t1, (2, 4), (0, 1, 3, 4), optimize=True) - del tmp45 - tmp50 += tmp46.transpose((0, 1, 3, 2)) * -1 + tmp41 = einsum(v.ooov, (0, 1, 2, 3), t2, (4, 1, 3, 5), (4, 0, 2, 5), optimize=True) + tmp52 = v.ovov.transpose((2, 0, 1, 3)).copy() * -0.5 + tmp52 += v.ovov.transpose((2, 0, 3, 1)) + tmp58 = einsum(f.ov, (0, 1), t2, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp60 = f.oo.transpose((1, 0)).copy() + tmp60 += tmp9 + tmp29 = tmp23.transpose((0, 2, 1, 3)).copy() * -1 + del tmp23 + tmp29 += tmp24.transpose((0, 2, 1, 3)) + del tmp24 + tmp29 += tmp25.transpose((0, 2, 1, 3)) + del tmp25 + tmp29 += tmp27.transpose((2, 1, 0, 3)) + del tmp27 + tmp29 += tmp28.transpose((2, 0, 1, 3)) * -1 + del tmp28 + tmp16 = einsum(t1, (0, 1), v.ovvv, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + tmp20 = einsum(t1, (0, 1), v.ovvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp7 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp7 += t2.transpose((1, 0, 3, 2)) * -1 + tmp31 = einsum(t1, (0, 1), tmp5, (2, 1), (2, 0), optimize=True) + tmp47 = einsum(t1, (0, 1), tmp46, (2, 3, 0, 1), (2, 3), optimize=True) del tmp46 - tmp8 = v.ovvv.transpose((0, 3, 2, 1)).copy() * -1 - tmp8 += v.ovvv.transpose((0, 1, 3, 2)) * 2 - tmp9 = einsum(tmp8, (0, 1, 2, 3), t1, (0, 1), (2, 3), optimize=True) - del tmp8 - tmp41 = einsum(t2, (0, 1, 2, 3), tmp9, (4, 2), (0, 1, 4, 3), optimize=True) - tmp50 += tmp41.transpose((1, 0, 3, 2)) - del tmp41 - tmp39 = tmp38.transpose((1, 0, 3, 2)).copy() * -1 + tmp39 = einsum(t1, (0, 1), tmp38, (0, 1, 2, 3), (2, 3), optimize=True) del tmp38 - tmp37 = einsum(tmp1, (0, 1, 2, 3), t1, (2, 4), (0, 1, 4, 3), optimize=True) - tmp39 += tmp37 - del tmp37 - tmp40 = einsum(t2, (0, 1, 2, 3), tmp39, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) - del tmp39 - tmp50 += tmp40 - del tmp40 - t2new += tmp50.transpose((1, 0, 3, 2)) - t2new += tmp50 - del tmp50 - tmp4 = einsum(tmp3, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) - del tmp3 - tmp34 = einsum(tmp4, (0, 1), t1, (2, 1), (0, 2), optimize=True) - tmp35 = einsum(tmp34, (0, 1), t2, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) + tmp36 = tmp34.copy() del tmp34 - tmp36 = tmp35.transpose((0, 1, 3, 2)).copy() * -1 - del tmp35 - tmp31 = einsum(t2, (0, 1, 2, 3), tmp4, (4, 2), (4, 0, 1, 3), optimize=True) - tmp32 = tmp31.transpose((2, 0, 1, 3)).copy() * -1 - del tmp31 - tmp29 = t2.transpose((1, 0, 3, 2)).copy() - tmp29 += t2.transpose((1, 0, 2, 3)) * -2 - tmp29 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - tmp30 = einsum(tmp29, (0, 1, 2, 3), v.ooov, (4, 5, 0, 3), (4, 5, 1, 2), optimize=True) + tmp36 += tmp35.transpose((1, 0, 3, 2)) * -1 + tmp44 = tmp2.copy() + tmp44 += tmp41 * -1 + del tmp41 + tmp44 += tmp43.transpose((0, 2, 1, 3)) + del tmp43 + tmp50 = einsum(v.ovvv, (0, 1, 2, 3), t2, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + tmp55 = einsum(tmp52, (0, 1, 2, 3), t2, (0, 4, 2, 3), (1, 4), optimize=True) * 2 + tmp53 = einsum(tmp52, (0, 1, 2, 3), t2, (0, 1, 2, 4), (3, 4), optimize=True) + del tmp52 + tmp17 = t2.transpose((1, 0, 3, 2)).copy() + tmp17 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + tmp14 = einsum(v.ovov, (0, 1, 2, 3), t2, (4, 0, 1, 5), (4, 2, 5, 3), optimize=True) + t2new = tmp14.copy() * -1 + tmp63 = einsum(t1, (0, 1), v.ooov, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp15 = einsum(tmp2, (0, 1, 2, 3), t1, (4, 3), (0, 4, 2, 1), optimize=True) + t2new += einsum(tmp15, (0, 1, 2, 3), t2, (3, 2, 4, 5), (1, 0, 4, 5), optimize=True) + tmp59 = einsum(t1, (0, 1), tmp58, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp58 + tmp61 = einsum(tmp60, (0, 1), t2, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) + del tmp60 + tmp19 = einsum(f.vv, (0, 1), t2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + tmp30 = einsum(tmp29, (0, 1, 2, 3), t1, (1, 4), (0, 2, 3, 4), optimize=True) del tmp29 - tmp32 += tmp30.transpose((2, 1, 0, 3)) - del tmp30 - tmp28 = einsum(tmp1, (0, 1, 2, 3), t2, (4, 2, 3, 5), (0, 4, 1, 5), optimize=True) - tmp32 += tmp28.transpose((0, 2, 1, 3)) - del tmp28 - tmp27 = einsum(t2, (0, 1, 2, 3), v.ooov, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) - tmp32 += tmp27.transpose((0, 2, 1, 3)) - del tmp27 - tmp26 = einsum(t1, (0, 1), v.oovv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - tmp32 += tmp26.transpose((0, 2, 1, 3)) * -1 - del tmp26 - tmp33 = einsum(tmp32, (0, 1, 2, 3), t1, (1, 4), (0, 2, 3, 4), optimize=True) - del tmp32 - tmp36 += tmp33.transpose((0, 1, 3, 2)) - del tmp33 - tmp23 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp6 = t2.transpose((1, 0, 3, 2)).copy() * 2 - tmp6 += t2.transpose((1, 0, 2, 3)) * -1 - tmp25 = einsum(tmp23, (0, 1, 2, 3), tmp6, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) - tmp36 += tmp25.transpose((1, 0, 2, 3)) - del tmp25 - tmp19 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 1), (4, 0, 2, 3), optimize=True) - tmp24 = einsum(t2, (0, 1, 2, 3), tmp19, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) - tmp36 += tmp24 * -1 - del tmp24 - tmp36 += tmp23 - del tmp23 - tmp22 = einsum(t2, (0, 1, 2, 3), f.vv, (4, 3), (0, 1, 4, 2), optimize=True) - tmp36 += tmp22 - del tmp22 - t2new += tmp36.transpose((1, 0, 2, 3)) - t2new += tmp36.transpose((0, 1, 3, 2)) + tmp21 = einsum(tmp16, (0, 1, 2, 3), t2, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) + tmp22 = einsum(tmp20, (0, 1, 2, 3), tmp7, (1, 4, 5, 2), (4, 0, 5, 3), optimize=True) + tmp32 = einsum(tmp31, (0, 1), t2, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) + del tmp31 + tmp48 = einsum(tmp47, (0, 1), t2, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) + del tmp47 + tmp40 = einsum(tmp39, (0, 1), t2, (2, 3, 1, 4), (2, 3, 0, 4), optimize=True) + del tmp39 + tmp37 = einsum(t2, (0, 1, 2, 3), tmp36, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) del tmp36 - tmp20 = einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - tmp20 += t2.transpose((1, 0, 3, 2)) - tmp21 = einsum(tmp19, (0, 1, 2, 3), tmp20, (1, 4, 5, 2), (0, 4, 3, 5), optimize=True) - del tmp19, tmp20 - t2new += tmp21.transpose((1, 0, 2, 3)) * -1 - t2new += tmp21.transpose((0, 1, 3, 2)) * -1 - del tmp21 - t2new += einsum(v.ooov, (0, 1, 2, 3), t1, (1, 4), (2, 0, 3, 4), optimize=True) * -1 - t2new += einsum(v.ovov, (0, 1, 2, 3), t2, (4, 0, 5, 1), (4, 2, 5, 3), optimize=True) * 2 - t2new += einsum(v.oovv, (0, 1, 2, 3), t2, (4, 1, 3, 5), (0, 4, 5, 2), optimize=True) * -1 - t2new += tmp18.transpose((1, 0, 3, 2)) * -1 + tmp45 = einsum(t1, (0, 1), tmp44, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) + del tmp44 + tmp51 = einsum(t1, (0, 1), tmp50, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp50 + tmp56 = einsum(tmp55, (0, 1), t2, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) + del tmp55 + tmp54 = einsum(tmp53, (0, 1), t2, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * 2 + del tmp53 + tmp10 = v.ovov.transpose((2, 0, 1, 3)).copy() * 2 + tmp10 += v.ovov.transpose((2, 0, 3, 1)) * -1 + tmp0 = t2.transpose((1, 0, 3, 2)).copy() + tmp0 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + tmp11 = v.ooov.transpose((1, 0, 2, 3)).copy() + tmp11 += v.ooov.transpose((1, 2, 0, 3)) * -0.5 + tmp66 = v.oooo.transpose((2, 3, 1, 0)).copy() + tmp66 += einsum(v.ovov, (0, 1, 2, 3), t2, (4, 5, 1, 3), (2, 5, 4, 0), optimize=True) + t2new += einsum(tmp66, (0, 1, 2, 3), tmp0, (0, 3, 4, 5), (2, 1, 5, 4), optimize=True) + del tmp66 + tmp18 = einsum(tmp16, (0, 1, 2, 3), tmp17, (1, 4, 5, 2), (0, 4, 3, 5), optimize=True) + del tmp16, tmp17 + t2new += tmp18.transpose((1, 0, 2, 3)) * -1 + t2new += tmp18.transpose((0, 1, 3, 2)) * -1 del tmp18 - t2new += einsum(v.oovv, (0, 1, 2, 3), t2, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) * -1 - t2new += v.ovov.transpose((2, 0, 3, 1)) - t2new += einsum(tmp17, (0, 1, 2, 3), t2, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) - del tmp17 - tmp16 = einsum(v.vvvv, (0, 1, 2, 3), t1, (4, 2), (4, 0, 1, 3), optimize=True) - t2new += einsum(tmp16, (0, 1, 2, 3), t1, (4, 2), (4, 0, 1, 3), optimize=True) - del tmp16 - t2new += einsum(v.vvvv, (0, 1, 2, 3), t2, (4, 5, 2, 1), (5, 4, 0, 3), optimize=True) - tmp14 = einsum(tmp13, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) - del tmp13 - tmp14 += f.ov * 0.5 - tmp15 = einsum(tmp14, (0, 1), t1, (2, 1), (0, 2), optimize=True) * 2 + tmp69 = v.ovov.transpose((2, 0, 3, 1)).copy() * -1 + tmp69 += tmp14 del tmp14 - tmp12 = v.ooov.transpose((2, 1, 0, 3)).copy() - tmp12 += v.ooov.transpose((1, 0, 2, 3)) * -0.5 - tmp15 += einsum(tmp12, (0, 1, 2, 3), t1, (0, 3), (2, 1), optimize=True) * 2 - del tmp12 - tmp11 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 - tmp11 += v.ovov.transpose((2, 0, 1, 3)) * -1 - tmp15 += einsum(tmp11, (0, 1, 2, 3), t2, (0, 4, 2, 3), (1, 4), optimize=True) - del tmp11 - tmp15 += f.oo.transpose((1, 0)) - t1new = einsum(tmp15, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -1 + t2new += einsum(tmp69, (0, 1, 2, 3), t2, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp69 + tmp64 = einsum(t2, (0, 1, 2, 3), tmp63, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + del tmp63 + t2new += tmp64.transpose((1, 0, 2, 3)) + t2new += tmp64.transpose((0, 1, 3, 2)) + del tmp64 + tmp67 = v.ooov.transpose((1, 2, 0, 3)).copy() * -1 + tmp67 += einsum(t1, (0, 1), tmp15, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) del tmp15 - tmp10 = tmp9.transpose((1, 0)).copy() + t2new += einsum(t1, (0, 1), tmp67, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp67 + tmp62 = tmp59.copy() + del tmp59 + tmp62 += tmp61.transpose((0, 1, 3, 2)) + del tmp61 + t2new += tmp62.transpose((1, 0, 2, 3)) * -1 + t2new += tmp62.transpose((0, 1, 3, 2)) * -1 + del tmp62 + tmp13 = einsum(t1, (0, 1), v.vvvv, (2, 1, 3, 4), (0, 3, 4, 2), optimize=True) + t2new += einsum(tmp13, (0, 1, 2, 3), t1, (4, 2), (4, 0, 1, 3), optimize=True) + del tmp13 + tmp33 = tmp19.copy() + del tmp19 + tmp33 += tmp20 + del tmp20 + tmp33 += tmp21 * -1 + del tmp21 + tmp33 += tmp22.transpose((1, 0, 2, 3)) + del tmp22 + tmp33 += tmp30.transpose((0, 1, 3, 2)) + del tmp30 + tmp33 += tmp32.transpose((0, 1, 3, 2)) * -1 + del tmp32 + t2new += tmp33.transpose((1, 0, 2, 3)) + t2new += tmp33.transpose((0, 1, 3, 2)) + del tmp33 + tmp68 = v.oovv.transpose((1, 0, 3, 2)).copy() * -1 + tmp68 += einsum(v.ovov, (0, 1, 2, 3), t2, (4, 0, 3, 5), (4, 2, 5, 1), optimize=True) + t2new += einsum(t2, (0, 1, 2, 3), tmp68, (4, 0, 5, 3), (4, 1, 2, 5), optimize=True) + del tmp68 + tmp49 = tmp37.copy() + del tmp37 + tmp49 += tmp40.transpose((1, 0, 3, 2)) + del tmp40 + tmp49 += tmp45.transpose((0, 1, 3, 2)) * -1 + del tmp45 + tmp49 += tmp48.transpose((1, 0, 3, 2)) * -1 + del tmp48 + t2new += tmp49.transpose((1, 0, 3, 2)) + t2new += tmp49 + del tmp49 + tmp57 = tmp51.copy() + del tmp51 + tmp57 += tmp54.transpose((1, 0, 3, 2)) + del tmp54 + tmp57 += tmp56.transpose((1, 0, 3, 2)) + del tmp56 + t2new += tmp57.transpose((1, 0, 3, 2)) * -1 + t2new += tmp57 * -1 + del tmp57 + tmp65 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 + tmp65 += v.oovv.transpose((1, 0, 3, 2)) * -1 + tmp65 += tmp35.transpose((1, 0, 3, 2)) * 2 + del tmp35 + t2new += einsum(t2, (0, 1, 2, 3), tmp65, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp65 + tmp12 = f.oo.transpose((1, 0)).copy() * 0.5 + tmp12 += tmp9 * 0.5 del tmp9 - tmp10 += f.vv.transpose((1, 0)) - t1new += einsum(t1, (0, 1), tmp10, (1, 2), (0, 2), optimize=True) + tmp12 += einsum(tmp0, (0, 1, 2, 3), tmp10, (0, 4, 3, 2), (4, 1), optimize=True) * 0.5 del tmp10 - tmp7 = v.oovv.transpose((1, 0, 3, 2)).copy() * -1 - tmp7 += v.ovov.transpose((2, 0, 3, 1)) * 2 - t1new += einsum(tmp7, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) - del tmp7 - tmp5 = tmp4.copy() - del tmp4 - tmp5 += f.ov - t1new += einsum(tmp6, (0, 1, 2, 3), tmp5, (0, 2), (1, 3), optimize=True) - del tmp6, tmp5 - tmp2 = tmp1.transpose((0, 2, 1, 3)).copy() - tmp2 += tmp1 * -0.5 - del tmp1 - tmp2 += v.ooov.transpose((1, 2, 0, 3)) * -0.5 - tmp2 += v.ooov.transpose((1, 0, 2, 3)) - t1new += einsum(t2, (0, 1, 2, 3), tmp2, (4, 0, 1, 3), (4, 2), optimize=True) * -2 + tmp12 += einsum(t1, (0, 1), tmp11, (2, 3, 0, 1), (3, 2), optimize=True) + del tmp11 + t1new = einsum(tmp12, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -2 + del tmp12 + tmp8 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 + tmp8 += v.oovv.transpose((1, 0, 3, 2)) * -1 + t1new += einsum(t1, (0, 1), tmp8, (0, 2, 1, 3), (2, 3), optimize=True) + del tmp8 + tmp1 = v.ovvv.transpose((0, 1, 3, 2)).copy() * -0.5 + tmp1 += v.ovvv.transpose((0, 3, 1, 2)) + t1new += einsum(tmp0, (0, 1, 2, 3), tmp1, (0, 3, 2, 4), (1, 4), optimize=True) * 2 + del tmp0, tmp1 + tmp3 = v.ooov.transpose((1, 0, 2, 3)).copy() + tmp3 += v.ooov.transpose((1, 2, 0, 3)) * -0.5 + tmp3 += tmp2 * -0.5 + tmp3 += tmp2.transpose((0, 2, 1, 3)) del tmp2 - tmp0 = v.ovvv.transpose((0, 3, 1, 2)).copy() * -0.5 - tmp0 += v.ovvv.transpose((0, 1, 3, 2)) - t1new += einsum(t2, (0, 1, 2, 3), tmp0, (0, 2, 3, 4), (1, 4), optimize=True) * 2 - del tmp0 + t1new += einsum(tmp3, (0, 1, 2, 3), t2, (2, 1, 3, 4), (0, 4), optimize=True) * -2 + del tmp3 + tmp6 = f.ov.copy() + tmp6 += tmp5 + del tmp5 + t1new += einsum(tmp6, (0, 1), tmp7, (0, 2, 3, 1), (2, 3), optimize=True) + del tmp7, tmp6 + t1new += einsum(f.vv, (0, 1), t1, (2, 1), (2, 0), optimize=True) t1new += f.ov + t2new += einsum(v.ooov, (0, 1, 2, 3), t1, (1, 4), (2, 0, 3, 4), optimize=True) * -1 + t2new += v.ovov.transpose((2, 0, 3, 1)) + t2new += einsum(v.vvvv, (0, 1, 2, 3), t2, (4, 5, 1, 3), (5, 4, 2, 0), optimize=True) + t2new += einsum(t2, (0, 1, 2, 3), v.oovv, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) * -1 + t2new += einsum(v.oovv, (0, 1, 2, 3), t2, (4, 1, 3, 5), (4, 0, 2, 5), optimize=True) * -1 + t2new += einsum(t2, (0, 1, 2, 3), v.ovov, (1, 3, 4, 5), (4, 0, 5, 2), optimize=True) * 2 return {f"t1new": t1new, f"t2new": t2new} def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:25:32.906278. + Code generated by `albert` 0.0.0 on 2024-07-18T20:21:35.071705. Parameters ---------- @@ -331,383 +318,378 @@ def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): Updated L2 residuals. """ - tmp8 = einsum(v.ovov, (0, 1, 2, 3), t1, (4, 1), (4, 2, 0, 3), optimize=True) - tmp27 = einsum(tmp8, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp116 = tmp27.transpose((0, 2, 3, 1)).copy() - tmp116 += v.oooo.transpose((2, 3, 1, 0)) - l2new = einsum(tmp116, (0, 1, 2, 3), l2, (4, 5, 0, 3), (5, 4, 2, 1), optimize=True) - del tmp116 - tmp17 = einsum(l2, (0, 1, 2, 3), t1, (4, 0), (3, 2, 4, 1), optimize=True) - tmp37 = einsum(t1, (0, 1), tmp17, (2, 3, 4, 1), (3, 2, 4, 0), optimize=True) - tmp38 = tmp37.copy() - tmp36 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) - tmp38 += tmp36.transpose((1, 0, 3, 2)) - l2new += einsum(tmp38, (0, 1, 2, 3), v.ovov, (2, 4, 3, 5), (5, 4, 1, 0), optimize=True) - tmp16 = t2.transpose((1, 0, 3, 2)).copy() - tmp16 += t2.transpose((1, 0, 2, 3)) * -0.5 - tmp60 = einsum(tmp16, (0, 1, 2, 3), l2, (2, 3, 0, 4), (4, 1), optimize=True) * 2 - tmp61 = tmp60.copy() - del tmp60 - tmp50 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) - tmp61 += tmp50 - tmp114 = einsum(v.ovov, (0, 1, 2, 3), tmp61, (4, 0), (2, 4, 1, 3), optimize=True) - tmp115 = tmp114.transpose((1, 0, 3, 2)).copy() - del tmp114 - tmp47 = t2.transpose((1, 0, 3, 2)).copy() * -0.5 - tmp47 += t2.transpose((1, 0, 2, 3)) - tmp112 = einsum(l2, (0, 1, 2, 3), tmp47, (2, 3, 1, 4), (0, 4), optimize=True) * 2 - tmp113 = einsum(v.ovov, (0, 1, 2, 3), tmp112, (4, 1), (0, 2, 3, 4), optimize=True) - del tmp112 - tmp115 += tmp113.transpose((1, 0, 3, 2)) - del tmp113 - tmp111 = einsum(tmp8, (0, 1, 2, 3), l1, (4, 0), (1, 2, 4, 3), optimize=True) - tmp115 += tmp111 - del tmp111 - tmp110 = einsum(f.oo, (0, 1), l2, (2, 3, 4, 1), (0, 4, 2, 3), optimize=True) - tmp115 += tmp110 - del tmp110 - l2new += tmp115.transpose((2, 3, 1, 0)) * -1 - l2new += tmp115.transpose((3, 2, 0, 1)) * -1 - del tmp115 - tmp23 = t2.transpose((1, 0, 3, 2)).copy() * 2 - tmp23 += t2.transpose((1, 0, 2, 3)) * -1 - tmp106 = einsum(v.ovov, (0, 1, 2, 3), tmp23, (0, 4, 1, 3), (2, 4), optimize=True) * 0.5 - tmp107 = tmp106.transpose((1, 0)).copy() - del tmp106 - tmp105 = einsum(t1, (0, 1), v.ooov, (2, 3, 0, 1), (2, 3), optimize=True) - tmp107 += tmp105.transpose((1, 0)) - del tmp105 - tmp108 = einsum(tmp107, (0, 1), l2, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) * 2 - del tmp107 - tmp109 = tmp108.transpose((0, 1, 3, 2)).copy() - del tmp108 - tmp15 = t2.transpose((1, 0, 3, 2)).copy() * -1 - tmp15 += t2.transpose((1, 0, 2, 3)) * 2 - tmp103 = einsum(v.ovov, (0, 1, 2, 3), tmp15, (0, 2, 3, 4), (1, 4), optimize=True) * 0.5 - tmp104 = einsum(tmp103, (0, 1), l2, (1, 2, 3, 4), (3, 4, 2, 0), optimize=True) * 2 - del tmp103 - tmp109 += tmp104.transpose((1, 0, 2, 3)) - del tmp104 - tmp102 = einsum(v.ooov, (0, 1, 2, 3), l1, (4, 1), (0, 2, 4, 3), optimize=True) - tmp109 += tmp102 - del tmp102 - l2new += tmp109.transpose((3, 2, 1, 0)) * -1 - l2new += tmp109.transpose((2, 3, 0, 1)) * -1 + tmp81 = v.ovov.transpose((2, 0, 1, 3)).copy() * 2 + tmp81 += v.ovov.transpose((2, 0, 3, 1)) * -1 + tmp5 = einsum(t1, (0, 1), v.ovov, (2, 1, 3, 4), (0, 3, 2, 4), optimize=True) + tmp82 = einsum(tmp81, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) + del tmp81 + tmp69 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp69 += t2.transpose((1, 0, 3, 2)) * -1 + tmp37 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp37 += t2.transpose((1, 0, 3, 2)) + tmp46 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp46 += t2.transpose((1, 0, 3, 2)) * -1 + tmp6 = einsum(t1, (0, 1), tmp5, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp4 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 3, 5, 2), (0, 1, 5, 4), optimize=True) + tmp73 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 3, 0, 5), (1, 4, 2, 5), optimize=True) + tmp2 = einsum(t1, (0, 1), v.ovvv, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + tmp80 = einsum(t1, (0, 1), v.ooov, (0, 2, 3, 1), (2, 3), optimize=True) + tmp83 = einsum(t1, (0, 1), tmp82, (2, 1), (0, 2), optimize=True) + tmp68 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 2, 0, 5), (1, 4, 3, 5), optimize=True) + tmp70 = einsum(tmp69, (0, 1, 2, 3), v.ovov, (0, 3, 4, 5), (4, 1, 5, 2), optimize=True) + del tmp69 + tmp67 = einsum(t1, (0, 1), v.ovvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp20 = einsum(t1, (0, 1), l2, (1, 2, 3, 4), (4, 3, 0, 2), optimize=True) + tmp57 = einsum(l2, (0, 1, 2, 3), tmp37, (2, 4, 0, 1), (3, 4), optimize=True) * 2 + tmp47 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + tmp110 = einsum(v.ovov, (0, 1, 2, 3), tmp46, (0, 4, 3, 1), (2, 4), optimize=True) * 0.5 + tmp109 = einsum(t1, (0, 1), v.ooov, (2, 3, 0, 1), (2, 3), optimize=True) + tmp10 = v.ovov.transpose((2, 0, 1, 3)).copy() + tmp10 += v.ovov.transpose((2, 0, 3, 1)) * -0.5 + tmp7 = tmp4.transpose((1, 0, 3, 2)).copy() + del tmp4 + tmp7 += tmp6 + del tmp6 + l2new = einsum(tmp7, (0, 1, 2, 3), l2, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) + tmp92 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) + tmp74 = v.oovv.transpose((1, 0, 3, 2)).copy() + tmp74 += tmp2.transpose((0, 1, 3, 2)) + tmp74 += tmp73 * -1 + del tmp73 + tmp16 = einsum(t1, (0, 1), v.ooov, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp78 = tmp5.copy() * -1 + tmp78 += tmp5.transpose((0, 2, 1, 3)) * 2 + tmp84 = tmp80.copy() + del tmp80 + tmp84 += tmp83 * -1 + del tmp83 + tmp62 = einsum(t1, (0, 1), v.ovvv, (0, 1, 2, 3), (2, 3), optimize=True) + tmp66 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp66 += l2.transpose((3, 2, 1, 0)) * -1 + tmp71 = v.ovov.transpose((2, 0, 3, 1)).copy() + tmp71 += tmp67.transpose((0, 1, 3, 2)) + del tmp67 + tmp71 += tmp68 * -1 + del tmp68 + tmp71 += tmp70.transpose((1, 0, 3, 2)) + del tmp70 + tmp76 = tmp20.copy() * 2 + tmp76 += tmp20.transpose((1, 0, 2, 3)) * -1 + tmp58 = tmp47.copy() + tmp58 += tmp57 + del tmp57 + tmp102 = einsum(tmp37, (0, 1, 2, 3), l2, (2, 4, 0, 1), (4, 3), optimize=True) * 2 + tmp111 = tmp109.transpose((1, 0)).copy() del tmp109 - tmp76 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 3, 0, 5), (1, 4, 2, 5), optimize=True) - tmp77 = tmp76.copy() * -1 - del tmp76 - tmp25 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 1), (4, 0, 2, 3), optimize=True) - tmp77 += tmp25.transpose((0, 1, 3, 2)) - tmp77 += v.oovv.transpose((1, 0, 3, 2)) - tmp100 = einsum(l2, (0, 1, 2, 3), tmp77, (2, 4, 1, 5), (3, 4, 0, 5), optimize=True) - tmp101 = tmp100.copy() * -1 - del tmp100 - tmp99 = einsum(tmp17, (0, 1, 2, 3), tmp8, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) - tmp101 += tmp99 - del tmp99 - tmp98 = einsum(v.ooov, (0, 1, 2, 3), tmp17, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) - tmp101 += tmp98 - del tmp98 - tmp12 = einsum(v.ooov, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp97 = einsum(l2, (0, 1, 2, 3), tmp12, (3, 2, 4, 5), (4, 5, 1, 0), optimize=True) - tmp101 += tmp97 - del tmp97 - tmp96 = einsum(f.ov, (0, 1), tmp17, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) - tmp101 += tmp96 * -1 - del tmp96 - tmp94 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) - tmp95 = einsum(l2, (0, 1, 2, 3), tmp94, (4, 3), (4, 2, 0, 1), optimize=True) - del tmp94 - tmp101 += tmp95 * -1 - del tmp95 - tmp93 = einsum(v.ovvv, (0, 1, 2, 3), l1, (3, 4), (4, 0, 1, 2), optimize=True) - tmp101 += tmp93 - del tmp93 - tmp92 = einsum(l2, (0, 1, 2, 3), f.vv, (4, 1), (2, 3, 4, 0), optimize=True) - tmp101 += tmp92 + tmp111 += tmp110.transpose((1, 0)) + del tmp110 + tmp107 = einsum(tmp46, (0, 1, 2, 3), v.ovov, (0, 3, 1, 4), (4, 2), optimize=True) * 0.5 + tmp48 = einsum(l2, (0, 1, 2, 3), tmp37, (2, 4, 0, 1), (3, 4), optimize=True) + tmp11 = einsum(t1, (0, 1), tmp10, (0, 2, 3, 1), (2, 3), optimize=True) * 2 + del tmp10 + tmp8 = einsum(t1, (0, 1), tmp7, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) * 2 + del tmp7 + tmp1 = einsum(v.ovvv, (0, 1, 2, 3), t2, (4, 5, 1, 2), (4, 5, 0, 3), optimize=True) + tmp3 = einsum(tmp2, (0, 1, 2, 3), t1, (4, 3), (0, 4, 1, 2), optimize=True) + del tmp2 + tmp39 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 1, 0), (2, 3, 5, 4), optimize=True) + l2new += einsum(tmp39, (0, 1, 2, 3), v.ovov, (2, 4, 3, 5), (4, 5, 0, 1), optimize=True) + tmp35 = einsum(t1, (0, 1), tmp20, (2, 3, 4, 1), (3, 2, 4, 0), optimize=True) + l2new += einsum(tmp35, (0, 1, 2, 3), v.ovov, (2, 4, 3, 5), (5, 4, 1, 0), optimize=True) + tmp97 = einsum(tmp5, (0, 1, 2, 3), tmp20, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) + tmp93 = einsum(l2, (0, 1, 2, 3), tmp92, (4, 3), (4, 2, 0, 1), optimize=True) del tmp92 - l2new += tmp101.transpose((2, 3, 1, 0)) - l2new += tmp101.transpose((3, 2, 0, 1)) - del tmp101 - tmp90 = einsum(v.ovvv, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) - tmp91 = einsum(l2, (0, 1, 2, 3), tmp90, (4, 1), (2, 3, 0, 4), optimize=True) + tmp96 = einsum(v.ooov, (0, 1, 2, 3), tmp20, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) + tmp91 = einsum(l1, (0, 1), v.ovvv, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) + tmp94 = einsum(tmp20, (0, 1, 2, 3), f.ov, (2, 4), (0, 1, 4, 3), optimize=True) + tmp98 = einsum(tmp74, (0, 1, 2, 3), l2, (4, 2, 0, 5), (5, 1, 4, 3), optimize=True) + tmp90 = einsum(f.vv, (0, 1), l2, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + tmp95 = einsum(l2, (0, 1, 2, 3), tmp16, (3, 2, 4, 5), (4, 5, 1, 0), optimize=True) + tmp79 = einsum(tmp20, (0, 1, 2, 3), tmp78, (1, 2, 4, 5), (0, 4, 3, 5), optimize=True) + del tmp78 + tmp65 = einsum(tmp5, (0, 1, 2, 3), tmp20, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + tmp61 = einsum(tmp20, (0, 1, 2, 3), v.ooov, (4, 1, 2, 5), (0, 4, 3, 5), optimize=True) + tmp85 = einsum(l2, (0, 1, 2, 3), tmp84, (2, 4), (3, 4, 0, 1), optimize=True) + del tmp84 + tmp63 = einsum(l2, (0, 1, 2, 3), tmp62, (4, 1), (2, 3, 0, 4), optimize=True) + del tmp62 + tmp72 = einsum(tmp66, (0, 1, 2, 3), tmp71, (0, 4, 3, 5), (1, 4, 2, 5), optimize=True) + del tmp66, tmp71 + tmp75 = einsum(tmp74, (0, 1, 2, 3), l2, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) + del tmp74 + tmp86 = einsum(tmp82, (0, 1), tmp20, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) + tmp77 = einsum(v.ooov, (0, 1, 2, 3), tmp76, (4, 0, 1, 5), (2, 4, 3, 5), optimize=True) + del tmp76 + tmp64 = einsum(v.ovvv, (0, 1, 2, 3), tmp20, (4, 5, 0, 3), (5, 4, 1, 2), optimize=True) + tmp104 = einsum(tmp58, (0, 1), v.ovov, (1, 2, 3, 4), (3, 0, 2, 4), optimize=True) + tmp103 = einsum(v.ovov, (0, 1, 2, 3), tmp102, (4, 1), (0, 2, 3, 4), optimize=True) + del tmp102 + tmp100 = einsum(l2, (0, 1, 2, 3), f.oo, (4, 3), (4, 2, 0, 1), optimize=True) + tmp101 = einsum(tmp5, (0, 1, 2, 3), l1, (4, 0), (1, 2, 4, 3), optimize=True) + tmp88 = einsum(t1, (0, 1), v.ovvv, (0, 2, 1, 3), (2, 3), optimize=True) + tmp112 = einsum(l2, (0, 1, 2, 3), tmp111, (2, 4), (3, 4, 0, 1), optimize=True) * 2 + del tmp111 + tmp106 = einsum(v.ooov, (0, 1, 2, 3), l1, (4, 1), (0, 2, 4, 3), optimize=True) + tmp108 = einsum(tmp107, (0, 1), l2, (1, 2, 3, 4), (3, 4, 2, 0), optimize=True) * 2 + del tmp107 + tmp49 = tmp47.copy() * 0.5 + del tmp47 + tmp49 += tmp48 + del tmp48 + tmp15 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 + tmp15 += v.oovv.transpose((1, 0, 3, 2)) * -1 + tmp0 = einsum(f.ov, (0, 1), t2, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) + tmp13 = v.ooov.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp13 += v.ooov.transpose((1, 2, 0, 3)) + tmp13 += tmp5 + tmp13 += tmp5.transpose((0, 2, 1, 3)) * -0.5 + tmp14 = t2.transpose((1, 0, 2, 3)).copy() + tmp14 += t2.transpose((1, 0, 3, 2)) * -0.5 + tmp12 = einsum(t2, (0, 1, 2, 3), tmp11, (4, 2), (0, 1, 4, 3), optimize=True) + tmp9 = tmp1.copy() * 2 + del tmp1 + tmp9 += tmp3 * 2 + del tmp3 + tmp9 += tmp8.transpose((1, 0, 2, 3)) * -1 + del tmp8 + tmp17 = v.oooo.transpose((1, 3, 2, 0)).copy() * 2 + tmp17 += v.oooo.transpose((2, 3, 1, 0)) * -1 + tmp17 += tmp16.transpose((2, 0, 3, 1)) * 2 + tmp17 += tmp16.transpose((3, 0, 2, 1)) * -1 + tmp54 = v.ovvv.transpose((0, 1, 3, 2)).copy() + tmp54 += v.ovvv.transpose((0, 3, 1, 2)) * -0.5 + tmp32 = tmp20.copy() * -1 + tmp32 += tmp20.transpose((1, 0, 2, 3)) * 2 + tmp40 = einsum(t1, (0, 1), tmp39, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + tmp21 = tmp20.copy() + tmp21 += tmp20.transpose((1, 0, 2, 3)) * -0.5 + tmp25 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp25 += l2.transpose((3, 2, 1, 0)) * -1 + tmp36 = einsum(t1, (0, 1), tmp35, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) + tmp34 = einsum(l1, (0, 1), t2, (2, 3, 0, 4), (1, 3, 2, 4), optimize=True) + tmp19 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp19 += t2.transpose((1, 0, 3, 2)) * 2 + tmp59 = v.ooov.transpose((1, 0, 2, 3)).copy() + tmp59 += v.ooov.transpose((2, 1, 0, 3)) * -0.5 + tmp56 = f.ov.copy() + tmp56 += tmp11 + del tmp11 + l1new = einsum(tmp56, (0, 1), tmp58, (2, 0), (1, 2), optimize=True) * -1 + del tmp58 + tmp29 = v.ovov.transpose((2, 0, 3, 1)).copy() * -1 + tmp29 += v.oovv.transpose((1, 0, 3, 2)) * 2 + tmp27 = v.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp27 += v.ooov.transpose((1, 2, 0, 3)) * 2 + tmp27 += tmp5 * 2 + tmp27 += tmp5.transpose((0, 2, 1, 3)) * -1 + tmp30 = tmp16.transpose((0, 2, 1, 3)).copy() * -1 + tmp30 += tmp16.transpose((0, 3, 2, 1)) * 2 + del tmp16 + tmp28 = v.ooov.transpose((1, 0, 2, 3)).copy() * 2 + tmp28 += v.ooov.transpose((1, 2, 0, 3)) * -1 + tmp28 += tmp5 * -1 + tmp28 += tmp5.transpose((0, 2, 1, 3)) * 2 + del tmp5 + tmp99 = tmp90.copy() del tmp90 - l2new += tmp91.transpose((3, 2, 1, 0)) * -1 - l2new += tmp91.transpose((2, 3, 0, 1)) * -1 + tmp99 += tmp91 del tmp91 - tmp83 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 - tmp83 += v.ovov.transpose((2, 0, 1, 3)) * -1 - tmp84 = einsum(tmp83, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) - del tmp83 - tmp89 = einsum(tmp84, (0, 1), l1, (2, 3), (3, 0, 2, 1), optimize=True) - tmp88 = einsum(tmp84, (0, 1), tmp17, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) - tmp89 += tmp88 * -1 - del tmp88 - tmp85 = einsum(tmp84, (0, 1), t1, (2, 1), (2, 0), optimize=True) - del tmp84 - tmp86 = tmp85.copy() * -1 + tmp99 += tmp93 * -1 + del tmp93 + tmp99 += tmp94 * -1 + del tmp94 + tmp99 += tmp95 + del tmp95 + tmp99 += tmp96 + del tmp96 + tmp99 += tmp97 + del tmp97 + tmp99 += tmp98 * -1 + del tmp98 + l2new += tmp99.transpose((2, 3, 1, 0)) + l2new += tmp99.transpose((3, 2, 0, 1)) + del tmp99 + tmp87 = einsum(f.ov, (0, 1), l1, (2, 3), (0, 3, 1, 2), optimize=True) + tmp87 += tmp61 + del tmp61 + tmp87 += tmp63 * 2 + del tmp63 + tmp87 += tmp64 * -1 + del tmp64 + tmp87 += tmp65 + del tmp65 + tmp87 += tmp72 + del tmp72 + tmp87 += tmp75 * -1 + del tmp75 + tmp87 += tmp77.transpose((1, 0, 3, 2)) * -1 + del tmp77 + tmp87 += tmp79 * -1 + del tmp79 + tmp87 += tmp85.transpose((0, 1, 3, 2)) del tmp85 - tmp82 = einsum(t1, (0, 1), v.ooov, (0, 2, 3, 1), (2, 3), optimize=True) - tmp86 += tmp82 - del tmp82 - tmp87 = einsum(tmp86, (0, 1), l2, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) + tmp87 += tmp86 * -1 del tmp86 - tmp89 += tmp87.transpose((0, 1, 3, 2)) + tmp87 += einsum(l1, (0, 1), tmp82, (2, 3), (1, 2, 0, 3), optimize=True) + del tmp82 + l2new += tmp87.transpose((3, 2, 1, 0)) + l2new += tmp87.transpose((2, 3, 0, 1)) del tmp87 - tmp80 = tmp8.transpose((0, 2, 1, 3)).copy() * -1 - tmp80 += tmp8 * 2 - tmp81 = einsum(tmp80, (0, 1, 2, 3), tmp17, (4, 0, 2, 5), (4, 1, 5, 3), optimize=True) - del tmp80 - tmp89 += tmp81 * -1 - del tmp81 - tmp44 = tmp17.transpose((1, 0, 2, 3)).copy() * -1 - tmp44 += tmp17 * 2 - tmp79 = einsum(v.ooov, (0, 1, 2, 3), tmp44, (4, 0, 1, 5), (2, 4, 3, 5), optimize=True) - tmp89 += tmp79.transpose((1, 0, 3, 2)) * -1 - del tmp79 - tmp78 = einsum(l2, (0, 1, 2, 3), tmp77, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) - del tmp77 - tmp89 += tmp78 * -1 - del tmp78 - tmp72 = t2.transpose((1, 0, 3, 2)).copy() * 2 - tmp72 += t2.transpose((1, 0, 2, 3)) * -1 - tmp73 = einsum(tmp72, (0, 1, 2, 3), v.ovov, (0, 2, 4, 5), (4, 1, 5, 3), optimize=True) - del tmp72 - tmp74 = tmp73.transpose((1, 0, 3, 2)).copy() - del tmp73 - tmp71 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 2, 0, 5), (1, 4, 3, 5), optimize=True) - tmp74 += tmp71 * -1 - del tmp71 - tmp70 = einsum(v.ovvv, (0, 1, 2, 3), t1, (4, 3), (4, 0, 1, 2), optimize=True) - tmp74 += tmp70.transpose((0, 1, 3, 2)) - del tmp70 - tmp74 += v.ovov.transpose((2, 0, 3, 1)) - tmp69 = l2.transpose((3, 2, 1, 0)).copy() * 2 - tmp69 += l2.transpose((3, 2, 0, 1)) * -1 - tmp75 = einsum(tmp69, (0, 1, 2, 3), tmp74, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp69, tmp74 - tmp89 += tmp75 - del tmp75 - tmp68 = einsum(tmp17, (0, 1, 2, 3), tmp8, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - tmp89 += tmp68 - del tmp68 - tmp67 = einsum(v.ovvv, (0, 1, 2, 3), tmp17, (4, 5, 0, 3), (5, 4, 1, 2), optimize=True) - tmp89 += tmp67 * -1 - del tmp67 - tmp65 = einsum(v.ovvv, (0, 1, 2, 3), t1, (0, 1), (2, 3), optimize=True) - tmp66 = einsum(tmp65, (0, 1), l2, (2, 1, 3, 4), (3, 4, 2, 0), optimize=True) - del tmp65 - tmp89 += tmp66 * 2 - del tmp66 - tmp64 = einsum(v.ooov, (0, 1, 2, 3), tmp17, (4, 1, 2, 5), (4, 0, 5, 3), optimize=True) - tmp89 += tmp64 - del tmp64 - tmp89 += einsum(f.ov, (0, 1), l1, (2, 3), (0, 3, 1, 2), optimize=True) - l2new += tmp89.transpose((3, 2, 1, 0)) - l2new += tmp89.transpose((2, 3, 0, 1)) + tmp105 = tmp100.copy() + del tmp100 + tmp105 += tmp101 + del tmp101 + tmp105 += tmp103.transpose((1, 0, 3, 2)) + del tmp103 + tmp105 += tmp104.transpose((1, 0, 3, 2)) + del tmp104 + l2new += tmp105.transpose((2, 3, 1, 0)) * -1 + l2new += tmp105.transpose((3, 2, 0, 1)) * -1 + del tmp105 + tmp89 = einsum(tmp88, (0, 1), l2, (2, 1, 3, 4), (3, 4, 2, 0), optimize=True) + del tmp88 + l2new += tmp89.transpose((3, 2, 1, 0)) * -1 + l2new += tmp89.transpose((2, 3, 0, 1)) * -1 del tmp89 - l2new += v.ovov.transpose((3, 1, 2, 0)) - tmp2 = einsum(t2, (0, 1, 2, 3), v.ovov, (4, 2, 5, 3), (0, 1, 4, 5), optimize=True) - l2new += einsum(tmp2, (0, 1, 2, 3), l2, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) - l2new += einsum(l2, (0, 1, 2, 3), v.vvvv, (4, 0, 5, 1), (5, 4, 3, 2), optimize=True) - tmp5 = v.ovov.transpose((2, 0, 3, 1)).copy() - tmp5 += v.ovov.transpose((2, 0, 1, 3)) * -0.5 - tmp6 = einsum(tmp5, (0, 1, 2, 3), t1, (0, 2), (1, 3), optimize=True) * 2 - del tmp5 - tmp59 = tmp6.copy() - tmp59 += f.ov - tmp63 = einsum(tmp59, (0, 1), t1, (2, 1), (2, 0), optimize=True) - tmp62 = v.ooov.transpose((2, 1, 0, 3)).copy() - tmp62 += v.ooov.transpose((1, 0, 2, 3)) * -0.5 - tmp63 += einsum(tmp62, (0, 1, 2, 3), t1, (0, 3), (1, 2), optimize=True) * 2 - del tmp62 - tmp63 += einsum(tmp23, (0, 1, 2, 3), v.ovov, (0, 2, 4, 3), (1, 4), optimize=True) - tmp63 += f.oo.transpose((1, 0)) - l1new = einsum(l1, (0, 1), tmp63, (1, 2), (0, 2), optimize=True) * -1 - del tmp63 - l1new += einsum(tmp59, (0, 1), tmp61, (2, 0), (1, 2), optimize=True) * -1 - del tmp61, tmp59 - tmp57 = v.ovvv.transpose((0, 3, 1, 2)).copy() - tmp57 += v.ovvv.transpose((0, 1, 3, 2)) * -0.5 - tmp58 = einsum(tmp57, (0, 1, 2, 3), t1, (0, 2), (3, 1), optimize=True) * 2 - del tmp57 - tmp58 += f.vv.transpose((1, 0)) - l1new += einsum(l1, (0, 1), tmp58, (0, 2), (2, 1), optimize=True) - del tmp58 - tmp56 = v.oovv.transpose((1, 0, 3, 2)).copy() * -1 - tmp56 += v.ovov.transpose((2, 0, 3, 1)) * 2 - l1new += einsum(tmp56, (0, 1, 2, 3), l1, (2, 0), (3, 1), optimize=True) - del tmp56 - tmp55 = v.ooov.transpose((2, 1, 0, 3)).copy() * -0.5 - tmp55 += v.ooov.transpose((1, 0, 2, 3)) - tmp51 = einsum(tmp16, (0, 1, 2, 3), l2, (2, 3, 0, 4), (4, 1), optimize=True) - tmp52 = tmp51.copy() - del tmp51 - tmp52 += tmp50 * 0.5 - del tmp50 - l1new += einsum(tmp55, (0, 1, 2, 3), tmp52, (1, 0), (3, 2), optimize=True) * -4 + tmp113 = tmp106.copy() + del tmp106 + tmp113 += tmp108.transpose((1, 0, 2, 3)) + del tmp108 + tmp113 += tmp112.transpose((0, 1, 3, 2)) + del tmp112 + l2new += tmp113.transpose((3, 2, 1, 0)) * -1 + l2new += tmp113.transpose((2, 3, 0, 1)) * -1 + del tmp113 + tmp50 = t1.copy() * -0.5 + tmp50 += einsum(tmp37, (0, 1, 2, 3), tmp20, (0, 1, 4, 2), (4, 3), optimize=True) + tmp50 += einsum(l1, (0, 1), tmp46, (1, 2, 3, 0), (2, 3), optimize=True) * -0.5 + tmp50 += einsum(t1, (0, 1), tmp49, (0, 2), (2, 1), optimize=True) + tmp18 = v.ooov.transpose((1, 2, 0, 3)).copy() * -2 + tmp18 += v.ooov.transpose((2, 1, 0, 3)) + tmp18 += tmp0.transpose((1, 2, 0, 3)) + tmp18 += tmp0.transpose((2, 1, 0, 3)) * -2 + del tmp0 + tmp18 += tmp9 * -1 + tmp18 += tmp9.transpose((1, 0, 2, 3)) * 0.5 + del tmp9 + tmp18 += tmp12.transpose((1, 0, 2, 3)) + tmp18 += tmp12 * -2 + del tmp12 + tmp18 += einsum(tmp13, (0, 1, 2, 3), tmp14, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) * -4 + del tmp13 + tmp18 += einsum(tmp15, (0, 1, 2, 3), t1, (4, 2), (4, 1, 0, 3), optimize=True) * -1 + del tmp15 + tmp18 += einsum(t1, (0, 1), tmp17, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) + del tmp17 + l1new += einsum(l2, (0, 1, 2, 3), tmp18, (3, 2, 4, 0), (1, 4), optimize=True) + del tmp18 + tmp52 = v.ooov.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp52 += v.ooov.transpose((1, 2, 0, 3)) + l1new += einsum(tmp49, (0, 1), tmp52, (0, 2, 1, 3), (3, 2), optimize=True) * -4 + del tmp49, tmp52 + tmp51 = v.ovov.transpose((2, 0, 1, 3)).copy() * 2 + tmp51 += v.ovov.transpose((2, 0, 3, 1)) * -1 + l1new += einsum(tmp50, (0, 1), tmp51, (0, 2, 3, 1), (3, 2), optimize=True) * -2 + del tmp50, tmp51 + tmp55 = f.vv.transpose((1, 0)).copy() * 0.5 + tmp55 += einsum(tmp54, (0, 1, 2, 3), t1, (0, 1), (3, 2), optimize=True) + del tmp54 + l1new += einsum(l1, (0, 1), tmp55, (0, 2), (2, 1), optimize=True) * 2 del tmp55 - tmp54 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 - tmp54 += v.ovov.transpose((2, 0, 1, 3)) * -1 - tmp53 = einsum(tmp52, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 2 - del tmp52 - tmp53 += einsum(l1, (0, 1), tmp23, (1, 2, 0, 3), (2, 3), optimize=True) * -1 - tmp53 += einsum(tmp17, (0, 1, 2, 3), tmp16, (1, 0, 4, 3), (2, 4), optimize=True) * 2 - tmp53 += t1 * -1 - l1new += einsum(tmp53, (0, 1), tmp54, (0, 2, 1, 3), (3, 2), optimize=True) * -1 - del tmp53, tmp54 - tmp49 = v.ovvv.transpose((0, 3, 2, 1)).copy() * 2 - tmp49 += v.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp48 = einsum(l2, (0, 1, 2, 3), tmp47, (2, 3, 1, 4), (0, 4), optimize=True) - del tmp47 - tmp48 += einsum(l1, (0, 1), t1, (1, 2), (0, 2), optimize=True) * 0.5 - l1new += einsum(tmp49, (0, 1, 2, 3), tmp48, (2, 1), (3, 0), optimize=True) * 2 - del tmp49, tmp48 - tmp46 = tmp36.transpose((1, 0, 3, 2)).copy() * -0.5 - tmp46 += tmp36.transpose((1, 0, 2, 3)) - del tmp36 - l1new += einsum(tmp46, (0, 1, 2, 3), v.ooov, (3, 0, 2, 4), (4, 1), optimize=True) * 2 - del tmp46 - tmp45 = tmp37.transpose((0, 1, 3, 2)).copy() - tmp45 += tmp37 * -0.5 - del tmp37 - l1new += einsum(tmp45, (0, 1, 2, 3), v.ooov, (1, 2, 3, 4), (4, 0), optimize=True) * 2 - del tmp45 - l1new += einsum(tmp44, (0, 1, 2, 3), v.oovv, (1, 2, 3, 4), (4, 0), optimize=True) * -1 - del tmp44 - tmp34 = tmp17.transpose((1, 0, 2, 3)).copy() * -0.5 - tmp34 += tmp17 - tmp43 = einsum(tmp34, (0, 1, 2, 3), t2, (1, 4, 5, 3), (0, 2, 4, 5), optimize=True) * 2 - tmp40 = tmp17.transpose((1, 0, 2, 3)).copy() * 2 - tmp40 += tmp17 * -1 - tmp43 += einsum(tmp40, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) - tmp42 = einsum(l1, (0, 1), t2, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) - tmp43 += tmp42.transpose((0, 2, 1, 3)) - tmp43 += tmp42 * -2 - del tmp42 - l1new += einsum(tmp43, (0, 1, 2, 3), v.ovov, (2, 4, 1, 3), (4, 0), optimize=True) - del tmp43 - tmp41 = einsum(tmp40, (0, 1, 2, 3), tmp15, (1, 4, 5, 3), (0, 2, 4, 5), optimize=True) * -0.5 + tmp41 = tmp40.copy() * -1 + tmp41 += tmp40.transpose((0, 2, 1, 3)) * 2 del tmp40 - tmp39 = einsum(t1, (0, 1), tmp38, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) - del tmp38 - tmp41 += tmp39 * -0.5 - tmp41 += tmp39.transpose((0, 2, 1, 3)) - del tmp39 - tmp41 += tmp17.transpose((1, 2, 0, 3)) * -1 - tmp41 += tmp17.transpose((0, 2, 1, 3)) * 0.5 - l1new += einsum(v.ovov, (0, 1, 2, 3), tmp41, (4, 2, 0, 1), (3, 4), optimize=True) * 2 + tmp41 += einsum(tmp32, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) + tmp41 += einsum(tmp21, (0, 1, 2, 3), t2, (1, 4, 5, 3), (0, 2, 4, 5), optimize=True) * 2 + l1new += einsum(v.ovov, (0, 1, 2, 3), tmp41, (4, 2, 0, 3), (1, 4), optimize=True) del tmp41 - tmp35 = einsum(tmp34, (0, 1, 2, 3), t1, (1, 4), (0, 2, 3, 4), optimize=True) * -2 - del tmp34 - tmp35 += l2.transpose((3, 2, 1, 0)) * 2 - l1new += einsum(tmp35, (0, 1, 2, 3), v.ovvv, (1, 3, 2, 4), (4, 0), optimize=True) - del tmp35 - tmp32 = tmp12.transpose((0, 3, 2, 1)).copy() * 2 - tmp32 += tmp12.transpose((0, 2, 1, 3)) * -1 - tmp33 = einsum(tmp32, (0, 1, 2, 3), t1, (3, 4), (0, 2, 1, 4), optimize=True) - del tmp32 - tmp31 = v.oovv.transpose((1, 0, 3, 2)).copy() * -1 - tmp31 += v.ovov.transpose((2, 0, 3, 1)) * 2 - tmp33 += einsum(tmp31, (0, 1, 2, 3), t1, (4, 2), (4, 1, 0, 3), optimize=True) * -1 - del tmp31 - tmp30 = tmp8.transpose((0, 2, 1, 3)).copy() * -0.5 - tmp30 += tmp8 - tmp30 += v.ooov.transpose((1, 2, 0, 3)) - tmp30 += v.ooov.transpose((1, 0, 2, 3)) * -0.5 - tmp33 += einsum(tmp30, (0, 1, 2, 3), tmp16, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * -4 - del tmp30 - tmp28 = einsum(t1, (0, 1), tmp27, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) - del tmp27 - tmp29 = tmp28.copy() * -2 - del tmp28 - tmp26 = einsum(tmp25, (0, 1, 2, 3), t1, (4, 3), (0, 4, 1, 2), optimize=True) + tmp42 = tmp20.copy() * -1 + tmp42 += tmp20.transpose((1, 0, 2, 3)) * 2 + l1new += einsum(v.oovv, (0, 1, 2, 3), tmp42, (0, 4, 1, 2), (3, 4), optimize=True) * -1 + del tmp42 + tmp33 = l2.transpose((3, 2, 0, 1)).copy() + tmp33 += einsum(t1, (0, 1), tmp32, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + l1new += einsum(tmp33, (0, 1, 2, 3), v.ovvv, (1, 3, 2, 4), (4, 0), optimize=True) * -1 + del tmp33 + tmp26 = l2.transpose((3, 2, 1, 0)).copy() + tmp26 += einsum(tmp25, (0, 1, 2, 3), tmp14, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) del tmp25 - tmp29 += tmp26 * 2 + l1new += einsum(tmp26, (0, 1, 2, 3), v.ovvv, (1, 3, 2, 4), (4, 0), optimize=True) * 2 del tmp26 - tmp33 += tmp29.transpose((1, 0, 2, 3)) * 0.5 - tmp33 += tmp29 * -1 - del tmp29 - l1new += einsum(tmp33, (0, 1, 2, 3), l2, (3, 4, 1, 0), (4, 2), optimize=True) - del tmp33 - tmp22 = l2.transpose((3, 2, 1, 0)).copy() * 2 - tmp22 += l2.transpose((3, 2, 0, 1)) * -1 - tmp24 = einsum(tmp23, (0, 1, 2, 3), tmp22, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -0.5 - del tmp23, tmp22 - tmp24 += l2.transpose((3, 2, 0, 1)) * 0.5 - l1new += einsum(v.ovvv, (0, 1, 2, 3), tmp24, (4, 0, 2, 1), (3, 4), optimize=True) * -2 - del tmp24 - tmp21 = v.vvvv.transpose((2, 3, 1, 0)).copy() * 2 - tmp21 += v.vvvv.transpose((1, 3, 2, 0)) * -1 - tmp20 = einsum(l2, (0, 1, 2, 3), t1, (3, 4), (2, 0, 1, 4), optimize=True) - l1new += einsum(tmp21, (0, 1, 2, 3), tmp20, (4, 0, 2, 3), (1, 4), optimize=True) - del tmp21, tmp20 - tmp18 = tmp17.transpose((1, 0, 2, 3)).copy() - tmp18 += tmp17 * -0.5 - del tmp17 - tmp19 = einsum(t1, (0, 1), tmp18, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) * 2 - del tmp18 - tmp19 += einsum(tmp16, (0, 1, 2, 3), l2, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) * 2 - del tmp16 - tmp19 += einsum(l2, (0, 1, 2, 3), tmp15, (2, 4, 1, 5), (3, 4, 0, 5), optimize=True) - del tmp15 - l1new += einsum(v.ovvv, (0, 1, 2, 3), tmp19, (4, 0, 3, 2), (1, 4), optimize=True) * -1 + tmp24 = v.vvvv.transpose((2, 1, 3, 0)).copy() * -1 + tmp24 += v.vvvv.transpose((2, 3, 1, 0)) * 2 + tmp43 = tmp39.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp43 += tmp39.transpose((1, 0, 3, 2)) + del tmp39 + tmp43 += tmp35.transpose((2, 1, 0, 3)) + tmp43 += tmp35.transpose((3, 1, 0, 2)) * -0.5 + del tmp35 + l1new += einsum(tmp43, (0, 1, 2, 3), v.ooov, (2, 0, 3, 4), (4, 1), optimize=True) * 2 + del tmp43 + tmp45 = v.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp45 += v.ovvv.transpose((0, 3, 2, 1)) * 2 + tmp38 = tmp34.copy() * -0.5 + tmp38 += tmp34.transpose((0, 2, 1, 3)) + del tmp34 + tmp38 += tmp20.transpose((0, 2, 1, 3)) * -0.5 + tmp38 += tmp20.transpose((1, 2, 0, 3)) + del tmp20 + tmp38 += tmp36 * -1 + tmp38 += tmp36.transpose((0, 2, 1, 3)) * 0.5 + del tmp36 + tmp38 += einsum(tmp37, (0, 1, 2, 3), tmp32, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) + del tmp32 + l1new += einsum(v.ovov, (0, 1, 2, 3), tmp38, (4, 2, 0, 1), (3, 4), optimize=True) * -2 + del tmp38 + tmp23 = einsum(t1, (0, 1), l2, (2, 3, 4, 0), (4, 2, 3, 1), optimize=True) + l1new += einsum(tmp23, (0, 1, 2, 3), tmp24, (2, 3, 4, 1), (4, 0), optimize=True) + del tmp23, tmp24 + tmp22 = einsum(tmp19, (0, 1, 2, 3), l2, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) del tmp19 - tmp13 = tmp12.transpose((3, 0, 2, 1)).copy() * 2 - tmp13 += tmp12.transpose((2, 0, 3, 1)) * -1 - del tmp12 - tmp13 += v.oooo.transpose((2, 3, 1, 0)) * 2 - tmp13 += v.oooo.transpose((1, 3, 2, 0)) * -1 - tmp14 = einsum(tmp13, (0, 1, 2, 3), t1, (0, 4), (1, 3, 2, 4), optimize=True) * 0.5 - del tmp13 - tmp11 = v.ovov.transpose((2, 0, 3, 1)).copy() * -1 - tmp11 += v.oovv.transpose((1, 0, 3, 2)) * 2 - tmp14 += einsum(tmp11, (0, 1, 2, 3), t1, (4, 2), (4, 1, 0, 3), optimize=True) * -0.5 - del tmp11 - tmp10 = tmp8.transpose((0, 2, 1, 3)).copy() - tmp10 += tmp8 * -0.5 - tmp10 += v.ooov.transpose((1, 2, 0, 3)) * -0.5 - tmp10 += v.ooov.transpose((1, 0, 2, 3)) - tmp14 += einsum(t2, (0, 1, 2, 3), tmp10, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) - del tmp10 - tmp9 = tmp8.transpose((0, 2, 1, 3)).copy() * -1 - tmp9 += tmp8 * 2 - del tmp8 - tmp9 += v.ooov.transpose((1, 2, 0, 3)) * 2 - tmp9 += v.ooov.transpose((1, 0, 2, 3)) * -1 - tmp14 += einsum(tmp9, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 0.5 - del tmp9 - tmp7 = einsum(tmp6, (0, 1), t2, (2, 3, 1, 4), (2, 3, 0, 4), optimize=True) - del tmp6 - tmp14 += tmp7 * 0.5 - tmp14 += tmp7.transpose((1, 0, 2, 3)) * -1 - del tmp7 - tmp3 = einsum(tmp2, (0, 1, 2, 3), t1, (3, 4), (0, 1, 2, 4), optimize=True) - del tmp2 - tmp4 = tmp3.copy() * -0.5 - del tmp3 - tmp1 = einsum(t2, (0, 1, 2, 3), v.ovvv, (4, 3, 2, 5), (1, 0, 4, 5), optimize=True) - tmp4 += tmp1 * 0.5 - del tmp1 - tmp14 += tmp4.transpose((1, 0, 2, 3)) * -2 - tmp14 += tmp4 - del tmp4 - tmp0 = einsum(t2, (0, 1, 2, 3), f.ov, (4, 3), (4, 0, 1, 2), optimize=True) - tmp14 += tmp0.transpose((2, 1, 0, 3)) * 0.5 - tmp14 += tmp0.transpose((1, 2, 0, 3)) * -1 - del tmp0 - tmp14 += v.ooov.transpose((2, 1, 0, 3)) * -1 - tmp14 += v.ooov.transpose((1, 2, 0, 3)) * 0.5 - l1new += einsum(l2, (0, 1, 2, 3), tmp14, (3, 2, 4, 1), (0, 4), optimize=True) * 2 + tmp22 += einsum(tmp14, (0, 1, 2, 3), l2, (3, 4, 0, 5), (5, 1, 4, 2), optimize=True) * 2 del tmp14 + tmp22 += einsum(t1, (0, 1), tmp21, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * 2 + del tmp21 + l1new += einsum(tmp22, (0, 1, 2, 3), v.ovvv, (1, 4, 3, 2), (4, 0), optimize=True) * -1 + del tmp22 + tmp53 = v.ovov.transpose((2, 0, 3, 1)).copy() * 2 + tmp53 += v.oovv.transpose((1, 0, 3, 2)) * -1 + l1new += einsum(l1, (0, 1), tmp53, (1, 2, 0, 3), (3, 2), optimize=True) + del tmp53 + tmp60 = f.oo.transpose((1, 0)).copy() + tmp60 += einsum(tmp46, (0, 1, 2, 3), v.ovov, (0, 3, 4, 2), (1, 4), optimize=True) + del tmp46 + tmp60 += einsum(t1, (0, 1), tmp59, (2, 3, 0, 1), (3, 2), optimize=True) * 2 + del tmp59 + tmp60 += einsum(tmp56, (0, 1), t1, (2, 1), (2, 0), optimize=True) + del tmp56 + l1new += einsum(l1, (0, 1), tmp60, (1, 2), (0, 2), optimize=True) * -1 + del tmp60 + tmp44 = einsum(l1, (0, 1), t1, (1, 2), (0, 2), optimize=True) * 0.5 + tmp44 += einsum(tmp37, (0, 1, 2, 3), l2, (2, 4, 0, 1), (4, 3), optimize=True) + del tmp37 + l1new += einsum(tmp44, (0, 1), tmp45, (2, 1, 0, 3), (3, 2), optimize=True) * 2 + del tmp44, tmp45 + tmp31 = einsum(tmp27, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) + del tmp27 + tmp31 += einsum(tmp28, (0, 1, 2, 3), t2, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp28 + tmp31 += einsum(t1, (0, 1), tmp29, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) * -1 + del tmp29 + tmp31 += einsum(t1, (0, 1), tmp30, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp30 + l1new += einsum(l2, (0, 1, 2, 3), tmp31, (3, 2, 4, 1), (0, 4), optimize=True) + del tmp31 l1new += f.ov.transpose((1, 0)) + l2new += einsum(l2, (0, 1, 2, 3), v.oooo, (4, 3, 5, 2), (0, 1, 5, 4), optimize=True) + l2new += v.ovov.transpose((3, 1, 2, 0)) + l2new += einsum(v.vvvv, (0, 1, 2, 3), l2, (1, 3, 4, 5), (2, 0, 5, 4), optimize=True) return {f"l1new": l1new, f"l2new": l2new} def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:25:33.920507. + Code generated by `albert` 0.0.0 on 2024-07-18T20:21:36.123023. Parameters ---------- @@ -728,46 +710,49 @@ def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): rdm1 = Namespace() delta = Namespace( - oo=np.eye(t1.shape[0]), - vv=np.eye(t1.shape[1]), + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), ) - tmp6 = l2.transpose((3, 2, 1, 0)).copy() * -1 - tmp6 += l2.transpose((3, 2, 0, 1)) * 2 - rdm1.vv = einsum(t2, (0, 1, 2, 3), tmp6, (0, 1, 3, 4), (4, 2), optimize=True) * 2 - del tmp6 - rdm1.vv += einsum(l1, (0, 1), t1, (1, 2), (0, 2), optimize=True) * 2 - rdm1.vo = l1.copy() * 2 - tmp1 = t2.transpose((1, 0, 3, 2)).copy() * -0.5 - tmp1 += t2.transpose((1, 0, 2, 3)) - tmp5 = einsum(l2, (0, 1, 2, 3), tmp1, (2, 4, 1, 0), (3, 4), optimize=True) * 2 + tmp2 = einsum(t1, (0, 1), l2, (1, 2, 3, 4), (4, 3, 0, 2), optimize=True) + tmp5 = t2.transpose((1, 0, 2, 3)).copy() + tmp5 += t2.transpose((1, 0, 3, 2)) * -0.5 tmp0 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) - tmp5 += tmp0 - rdm1.ov = einsum(tmp5, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -2 - del tmp5 - tmp4 = t2.transpose((1, 0, 3, 2)).copy() * 2 - tmp4 += t2.transpose((1, 0, 2, 3)) * -1 - rdm1.ov += einsum(l1, (0, 1), tmp4, (1, 2, 0, 3), (2, 3), optimize=True) * 2 + rdm1.oo = tmp0.transpose((1, 0)).copy() * -2 + tmp7 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp7 += l2.transpose((3, 2, 1, 0)) * -1 + rdm1.vv = einsum(tmp7, (0, 1, 2, 3), t2, (0, 1, 3, 4), (2, 4), optimize=True) * 2 + del tmp7 + tmp4 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp4 += t2.transpose((1, 0, 3, 2)) * -1 + rdm1.ov = einsum(l1, (0, 1), tmp4, (1, 2, 3, 0), (2, 3), optimize=True) * 2 del tmp4 - tmp2 = einsum(l2, (0, 1, 2, 3), t1, (4, 1), (2, 3, 4, 0), optimize=True) - tmp3 = tmp2.transpose((1, 0, 2, 3)).copy() * -0.5 - tmp3 += tmp2 + tmp3 = tmp2.copy() * -0.5 + tmp3 += tmp2.transpose((1, 0, 2, 3)) del tmp2 - rdm1.ov += einsum(t2, (0, 1, 2, 3), tmp3, (1, 0, 4, 3), (4, 2), optimize=True) * -4 + rdm1.ov += einsum(tmp3, (0, 1, 2, 3), t2, (1, 0, 3, 4), (2, 4), optimize=True) * -4 del tmp3 - rdm1.ov += t1 * 2 - rdm1.oo = einsum(l2, (0, 1, 2, 3), tmp1, (2, 4, 1, 0), (4, 3), optimize=True) * -4 - del tmp1 - rdm1.oo += tmp0.transpose((1, 0)) * -2 + tmp6 = tmp0.copy() * 0.5 del tmp0 + tmp6 += einsum(l2, (0, 1, 2, 3), tmp5, (2, 4, 1, 0), (3, 4), optimize=True) + del tmp5 + rdm1.ov += einsum(tmp6, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -4 + del tmp6 + tmp1 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp1 += t2.transpose((1, 0, 3, 2)) + rdm1.oo += einsum(tmp1, (0, 1, 2, 3), l2, (2, 3, 0, 4), (1, 4), optimize=True) * -4 + del tmp1 rdm1.oo += delta.oo.transpose((1, 0)) * 2 del delta + rdm1.ov += t1 * 2 + rdm1.vo = l1.copy() * 2 + rdm1.vv += einsum(l1, (0, 1), t1, (1, 2), (0, 2), optimize=True) * 2 rdm1 = np.block([[rdm1.oo, rdm1.ov], [rdm1.vo, rdm1.vv]]) return rdm1 def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:26:24.048838. + Code generated by `albert` 0.0.0 on 2024-07-18T20:22:22.891603. Parameters ---------- @@ -788,25 +773,113 @@ def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): rdm2 = Namespace() delta = Namespace( - oo=np.eye(t1.shape[0]), - vv=np.eye(t1.shape[1]), + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), ) - tmp110 = einsum(l2, (0, 1, 2, 3), t1, (3, 4), (2, 0, 1, 4), optimize=True) - tmp112 = einsum(tmp110, (0, 1, 2, 3), t1, (0, 4), (2, 1, 3, 4), optimize=True) - tmp113 = tmp112.transpose((1, 0, 3, 2)).copy() - tmp111 = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) - tmp113 += tmp111.transpose((1, 0, 3, 2)) - rdm2.vvvv = tmp113.copy() - rdm2.vvvv += tmp113.transpose((0, 1, 3, 2)) * -1 - rdm2.vvvv += tmp112.transpose((1, 0, 3, 2)) - rdm2.vvvv += tmp111.transpose((1, 0, 3, 2)) - rdm2.vvvv += tmp112.transpose((1, 0, 3, 2)) - del tmp112 - rdm2.vvvv += tmp111.transpose((1, 0, 3, 2)) - del tmp111 - rdm2.vvvv += tmp113 - rdm2.vvvv += tmp113.transpose((0, 1, 3, 2)) * -1 - del tmp113 + tmp4 = einsum(t1, (0, 1), l2, (1, 2, 3, 4), (4, 3, 0, 2), optimize=True) + rdm2.vooo = tmp4.transpose((3, 2, 1, 0)).copy() + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.vooo += tmp4.transpose((3, 2, 1, 0)) + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.ovoo = tmp4.transpose((2, 3, 1, 0)).copy() * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 0, 1)) + rdm2.ovoo += tmp4.transpose((2, 3, 1, 0)) * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 1, 0)) * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 1, 0)) * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 0, 1)) + tmp16 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp16 += t2.transpose((1, 0, 3, 2)) * -1 + tmp78 = t2.transpose((1, 0, 2, 3)).copy() + tmp78 += t2.transpose((1, 0, 3, 2)) * -1 + tmp0 = t2.transpose((1, 0, 2, 3)).copy() + tmp0 += t2.transpose((1, 0, 3, 2)) * -0.5 + tmp10 = tmp4.copy() * -1 + tmp10 += tmp4.transpose((1, 0, 2, 3)) + tmp12 = tmp4.copy() * -1 + tmp12 += tmp4.transpose((1, 0, 2, 3)) * 2 + tmp80 = einsum(tmp16, (0, 1, 2, 3), l2, (3, 4, 0, 5), (1, 5, 2, 4), optimize=True) + rdm2.voov = tmp80.transpose((3, 0, 1, 2)).copy() + rdm2.voov += tmp80.transpose((3, 0, 1, 2)) + rdm2.ovov = tmp80.transpose((0, 3, 1, 2)).copy() * -1 + rdm2.ovov += tmp80.transpose((0, 3, 1, 2)) * -1 + tmp87 = einsum(tmp4, (0, 1, 2, 3), t1, (1, 4), (0, 2, 3, 4), optimize=True) + rdm2.voov += tmp87.transpose((2, 1, 0, 3)) * -1 + rdm2.voov += tmp87.transpose((2, 1, 0, 3)) * -1 + rdm2.ovvo = tmp87.transpose((1, 2, 3, 0)).copy() * -1 + rdm2.ovvo += tmp87.transpose((1, 2, 3, 0)) * -1 + tmp79 = einsum(l2, (0, 1, 2, 3), tmp78, (2, 4, 5, 1), (4, 3, 5, 0), optimize=True) + del tmp78 + rdm2.voov += tmp79.transpose((3, 0, 1, 2)) * -1 + rdm2.voov += tmp79.transpose((3, 0, 1, 2)) * -1 + rdm2.ovov += tmp79.transpose((0, 3, 1, 2)) + rdm2.ovov += tmp79.transpose((0, 3, 1, 2)) + tmp62 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp62 += l2.transpose((3, 2, 1, 0)) * -1 + tmp45 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp45 += l2.transpose((3, 2, 1, 0)) * -1 + tmp1 = einsum(l2, (0, 1, 2, 3), tmp0, (2, 4, 1, 0), (3, 4), optimize=True) * 2 + rdm2.oooo = einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp1, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp21 = tmp4.copy() * -1 + tmp21 += tmp4.transpose((1, 0, 2, 3)) * 2 + tmp11 = einsum(tmp10, (0, 1, 2, 3), t2, (1, 4, 5, 3), (0, 2, 4, 5), optimize=True) + tmp8 = einsum(l1, (0, 1), t2, (2, 3, 0, 4), (1, 3, 2, 4), optimize=True) + rdm2.oovo = tmp8.transpose((1, 2, 3, 0)).copy() * -1 + rdm2.oovo += tmp8.transpose((1, 2, 3, 0)) * -1 + rdm2.ooov = tmp8.transpose((2, 1, 0, 3)).copy() * -1 + rdm2.ooov += tmp8.transpose((2, 1, 0, 3)) * -1 + tmp13 = einsum(tmp12, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) + del tmp12 + rdm2.oovo += tmp13.transpose((2, 1, 3, 0)) * -1 + rdm2.oovo += tmp13.transpose((2, 1, 3, 0)) * -1 + tmp2 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + rdm2.ooov += einsum(tmp2, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(tmp2, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.ooov += einsum(tmp2, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(tmp2, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp2, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp2, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp2, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp2, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp2, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp2, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp26 = einsum(tmp4, (0, 1, 2, 3), t2, (4, 1, 3, 5), (0, 2, 4, 5), optimize=True) + rdm2.oovo += tmp26.transpose((1, 2, 3, 0)) + rdm2.oovo += tmp26.transpose((1, 2, 3, 0)) + rdm2.ooov += tmp26.transpose((2, 1, 0, 3)) + rdm2.ooov += tmp26.transpose((2, 1, 0, 3)) + tmp5 = einsum(t1, (0, 1), tmp4, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + rdm2.oooo += tmp5.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp5.transpose((3, 2, 1, 0)) + tmp54 = l2.transpose((3, 2, 0, 1)).copy() + tmp54 += l2.transpose((3, 2, 1, 0)) * -1 + tmp25 = einsum(tmp4, (0, 1, 2, 3), t2, (4, 0, 3, 5), (1, 2, 4, 5), optimize=True) + rdm2.oovo += tmp25.transpose((2, 1, 3, 0)) + rdm2.oovo += tmp25.transpose((2, 1, 3, 0)) + rdm2.ooov += tmp25.transpose((1, 2, 0, 3)) + rdm2.ooov += tmp25.transpose((1, 2, 0, 3)) + tmp33 = einsum(l2, (0, 1, 2, 3), tmp0, (2, 4, 1, 0), (3, 4), optimize=True) + del tmp0 + tmp3 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + rdm2.oooo += tmp3.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp3.transpose((3, 2, 1, 0)) + tmp110 = einsum(t1, (0, 1), l2, (2, 3, 4, 0), (4, 2, 3, 1), optimize=True) rdm2.vvvo = tmp110.transpose((2, 1, 3, 0)).copy() rdm2.vvvo += tmp110.transpose((1, 2, 3, 0)) * -1 rdm2.vvvo += tmp110.transpose((2, 1, 3, 0)) @@ -819,606 +892,513 @@ def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): rdm2.vvov += tmp110.transpose((1, 2, 0, 3)) rdm2.vvov += tmp110.transpose((2, 1, 0, 3)) * -1 rdm2.vvov += tmp110.transpose((1, 2, 0, 3)) - del tmp110 - tmp61 = l2.transpose((3, 2, 1, 0)).copy() * -1 - tmp61 += l2.transpose((3, 2, 0, 1)) * 2 - tmp83 = einsum(t2, (0, 1, 2, 3), tmp61, (0, 1, 3, 4), (4, 2), optimize=True) - tmp84 = tmp83.copy() - del tmp83 - tmp82 = einsum(l1, (0, 1), t1, (1, 2), (0, 2), optimize=True) - tmp84 += tmp82 - tmp107 = einsum(tmp84, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - tmp2 = einsum(l2, (0, 1, 2, 3), t1, (4, 0), (3, 2, 4, 1), optimize=True) - tmp96 = einsum(tmp2, (0, 1, 2, 3), t2, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) - tmp107 += tmp96 - rdm2.vovv = tmp107.transpose((1, 0, 3, 2)).copy() - rdm2.vovv += tmp107.transpose((1, 0, 2, 3)) * -1 - tmp12 = t2.transpose((1, 0, 3, 2)).copy() * 2 - tmp12 += t2.transpose((1, 0, 2, 3)) * -1 - tmp80 = einsum(tmp12, (0, 1, 2, 3), l2, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) - tmp104 = tmp80.transpose((1, 0, 3, 2)).copy() * -1 - tmp78 = t2.transpose((1, 0, 3, 2)).copy() - tmp78 += t2.transpose((1, 0, 2, 3)) * -1 - tmp79 = einsum(l2, (0, 1, 2, 3), tmp78, (2, 4, 1, 5), (4, 3, 5, 0), optimize=True) - del tmp78 + tmp104 = tmp87.copy() tmp104 += tmp79.transpose((1, 0, 3, 2)) - tmp86 = einsum(tmp2, (0, 1, 2, 3), t1, (1, 4), (0, 2, 3, 4), optimize=True) - tmp104 += tmp86 - tmp105 = einsum(tmp104, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + tmp104 += tmp80.transpose((1, 0, 3, 2)) * -1 + tmp83 = einsum(l1, (0, 1), t1, (1, 2), (0, 2), optimize=True) + tmp84 = einsum(tmp62, (0, 1, 2, 3), t2, (0, 1, 3, 4), (2, 4), optimize=True) + tmp67 = einsum(t2, (0, 1, 2, 3), l2, (4, 2, 5, 1), (5, 0, 4, 3), optimize=True) + rdm2.voov += tmp67.transpose((2, 1, 0, 3)) * -1 + rdm2.voov += tmp67.transpose((2, 1, 0, 3)) * -1 + rdm2.ovvo += tmp67.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp67.transpose((1, 2, 3, 0)) * -1 + tmp52 = einsum(t2, (0, 1, 2, 3), tmp45, (0, 4, 5, 2), (4, 1, 5, 3), optimize=True) + rdm2.voov += tmp52.transpose((2, 1, 0, 3)) + rdm2.voov += tmp52.transpose((2, 1, 0, 3)) + rdm2.ovvo += tmp52.transpose((1, 2, 3, 0)) + rdm2.ovvo += tmp52.transpose((1, 2, 3, 0)) + tmp101 = einsum(t2, (0, 1, 2, 3), tmp62, (0, 4, 5, 2), (4, 1, 5, 3), optimize=True) + tmp94 = tmp80.transpose((1, 0, 3, 2)).copy() + del tmp80 + tmp94 += tmp79.transpose((1, 0, 3, 2)) * -1 + del tmp79 + tmp63 = einsum(tmp62, (0, 1, 2, 3), t2, (0, 1, 3, 4), (2, 4), optimize=True) * 0.5 + del tmp62 + tmp23 = einsum(tmp1, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 0.5 + tmp22 = einsum(tmp21, (0, 1, 2, 3), t2, (1, 0, 3, 4), (2, 4), optimize=True) * 0.5 + tmp48 = tmp8.copy() + tmp48 += tmp11 + tmp48 += tmp13 * -1 + tmp15 = einsum(t1, (0, 1), tmp2, (0, 2), (2, 1), optimize=True) + rdm2.oovv = einsum(tmp15, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.oovv += einsum(tmp15, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + tmp17 = einsum(l1, (0, 1), tmp16, (1, 2, 3, 0), (2, 3), optimize=True) + del tmp16 + rdm2.oovo += einsum(tmp17, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.oovo += einsum(delta.oo, (0, 1), tmp17, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.oovo += einsum(tmp17, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.oovo += einsum(delta.oo, (0, 1), tmp17, (2, 3), (2, 1, 3, 0), optimize=True) + tmp46 = einsum(t2, (0, 1, 2, 3), tmp45, (0, 4, 5, 3), (4, 1, 5, 2), optimize=True) + del tmp45 + tmp74 = tmp8.copy() + tmp74 += tmp26 * -1 + del tmp26 + tmp59 = t2.transpose((1, 0, 3, 2)).copy() + tmp59 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + tmp9 = einsum(t1, (0, 1), tmp5, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) + tmp55 = einsum(t2, (0, 1, 2, 3), tmp54, (0, 4, 5, 3), (4, 1, 5, 2), optimize=True) + rdm2.ovvo += tmp55.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp55.transpose((1, 2, 3, 0)) * -1 + tmp71 = tmp25.copy() + del tmp25 + tmp71 += tmp13 * -1 + tmp34 = tmp2.copy() * 0.5 + tmp34 += tmp33 + del tmp33 + tmp31 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp31 += t2.transpose((1, 0, 3, 2)) * -1 + tmp6 = tmp3.transpose((1, 0, 3, 2)).copy() + tmp6 += tmp5 + rdm2.oooo += tmp6.transpose((2, 3, 0, 1)) + rdm2.oooo += tmp6.transpose((3, 2, 0, 1)) * -1 + rdm2.oooo += tmp6.transpose((2, 3, 0, 1)) + rdm2.oooo += tmp6.transpose((3, 2, 0, 1)) * -1 + tmp112 = einsum(tmp110, (0, 1, 2, 3), t1, (0, 4), (2, 1, 3, 4), optimize=True) + del tmp110 + rdm2.vvvv = tmp112.transpose((1, 0, 3, 2)).copy() + rdm2.vvvv += tmp112.transpose((1, 0, 3, 2)) + tmp111 = einsum(t2, (0, 1, 2, 3), l2, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + rdm2.vvvv += tmp111.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp111.transpose((1, 0, 3, 2)) + tmp69 = einsum(t2, (0, 1, 2, 3), l2, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) + rdm2.vovo = tmp69.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.vovo += tmp69.transpose((2, 1, 3, 0)) * -1 + rdm2.ovov += tmp69.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp69.transpose((1, 2, 0, 3)) * -1 + tmp93 = einsum(l1, (0, 1), t2, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) + rdm2.vovv = tmp93.transpose((1, 0, 3, 2)).copy() + rdm2.vovv += tmp93.transpose((1, 0, 3, 2)) + rdm2.ovvv = tmp93.copy() + rdm2.ovvv += tmp93 + tmp105 = einsum(t1, (0, 1), tmp104, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) del tmp104 - tmp106 = tmp105.transpose((0, 1, 3, 2)).copy() + tmp97 = einsum(t2, (0, 1, 2, 3), tmp4, (1, 0, 4, 5), (4, 5, 3, 2), optimize=True) + rdm2.vovv += tmp97.transpose((1, 0, 2, 3)) * -1 + rdm2.vovv += tmp97.transpose((1, 0, 2, 3)) * -1 + rdm2.ovvv += tmp97.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp97.transpose((0, 1, 3, 2)) * -1 + tmp85 = tmp83.copy() + tmp85 += tmp84 + del tmp84 + rdm2.vovv += einsum(t1, (0, 1), tmp85, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.vovv += einsum(t1, (0, 1), tmp85, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.voov += einsum(tmp85, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.voov += einsum(tmp85, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.ovvo += einsum(tmp85, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.ovvo += einsum(tmp85, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.ovov += einsum(tmp85, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.ovov += einsum(tmp85, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.ovov += einsum(tmp85, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.ovov += einsum(tmp85, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) + tmp108 = tmp67.copy() + tmp108 += tmp87 + tmp108 += tmp52 * -1 + tmp102 = tmp67.copy() + tmp102 += tmp87 + tmp102 += tmp101 * -1 + del tmp101 + tmp95 = einsum(t1, (0, 1), tmp94, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp94 + tmp88 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp88 += l2.transpose((3, 2, 1, 0)) * 2 + tmp81 = tmp4.copy() + tmp81 += tmp4.transpose((1, 0, 2, 3)) * -1 + tmp65 = einsum(tmp1, (0, 1), t2, (0, 2, 3, 4), (2, 1, 3, 4), optimize=True) + tmp64 = einsum(tmp63, (0, 1), t2, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * 2 + tmp24 = tmp22.copy() + tmp24 += tmp23 + del tmp23 + rdm2.ooov += einsum(tmp24, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -2 + rdm2.ooov += einsum(delta.oo, (0, 1), tmp24, (2, 3), (2, 1, 0, 3), optimize=True) * 2 + rdm2.ooov += einsum(tmp24, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -2 + rdm2.ooov += einsum(delta.oo, (0, 1), tmp24, (2, 3), (2, 1, 0, 3), optimize=True) * 2 + tmp49 = einsum(tmp48, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + del tmp48 + tmp44 = einsum(tmp2, (0, 1), t2, (2, 0, 3, 4), (1, 2, 3, 4), optimize=True) + tmp18 = tmp15.copy() + tmp18 += tmp17 * -1 + rdm2.ooov += einsum(tmp18, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), tmp18, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.ooov += einsum(tmp18, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), tmp18, (2, 3), (2, 1, 0, 3), optimize=True) + tmp47 = einsum(t2, (0, 1, 2, 3), tmp46, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp46 + tmp75 = einsum(t1, (0, 1), tmp74, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp74 + tmp60 = einsum(tmp3, (0, 1, 2, 3), tmp59, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) + del tmp59 + rdm2.oovv += tmp60.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp60.transpose((1, 0, 3, 2)) + tmp58 = einsum(t2, (0, 1, 2, 3), tmp5, (1, 0, 4, 5), (5, 4, 2, 3), optimize=True) + del tmp5 + rdm2.oovv += tmp58 + rdm2.oovv += tmp58 + tmp51 = einsum(t1, (0, 1), tmp9, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + rdm2.oovv += tmp51 + rdm2.oovv += tmp51 + tmp53 = einsum(tmp52, (0, 1, 2, 3), t2, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp52 + rdm2.oovv += tmp53 * 2 + rdm2.oovv += tmp53 * 2 + tmp56 = einsum(t2, (0, 1, 2, 3), tmp55, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) + del tmp55 + tmp72 = einsum(t1, (0, 1), tmp71, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp71 + tmp42 = einsum(tmp34, (0, 1), t1, (0, 2), (1, 2), optimize=True) + tmp41 = einsum(l1, (0, 1), tmp31, (1, 2, 3, 0), (2, 3), optimize=True) * 0.5 + tmp29 = einsum(t1, (0, 1), tmp6, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp6 + rdm2.oovo += tmp29.transpose((1, 2, 3, 0)) + rdm2.oovo += tmp29.transpose((1, 2, 3, 0)) + rdm2.ooov += tmp29.transpose((2, 1, 0, 3)) + rdm2.ooov += tmp29.transpose((2, 1, 0, 3)) + tmp35 = einsum(tmp34, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 2 + del tmp34 + tmp30 = einsum(tmp21, (0, 1, 2, 3), t2, (1, 0, 3, 4), (2, 4), optimize=True) + del tmp21 + tmp19 = einsum(t1, (0, 1), tmp3, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp3 + tmp27 = tmp4.copy() * 2 + tmp27 += tmp4.transpose((1, 0, 2, 3)) * -1 + tmp32 = einsum(l1, (0, 1), tmp31, (1, 2, 3, 0), (2, 3), optimize=True) + del tmp31 + tmp113 = tmp111.transpose((1, 0, 3, 2)).copy() + del tmp111 + tmp113 += tmp112.transpose((1, 0, 3, 2)) + del tmp112 + rdm2.vvvv += tmp113 + rdm2.vvvv += tmp113.transpose((0, 1, 3, 2)) * -1 + rdm2.vvvv += tmp113 + rdm2.vvvv += tmp113.transpose((0, 1, 3, 2)) * -1 + del tmp113 + tmp100 = einsum(tmp69, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + rdm2.vovv += tmp100.transpose((1, 0, 3, 2)) * -1 + rdm2.vovv += tmp100.transpose((1, 0, 3, 2)) * -1 + rdm2.ovvv += tmp100 * -1 + rdm2.ovvv += tmp100 * -1 + del tmp100 + tmp106 = tmp93.copy() + tmp106 += tmp105.transpose((0, 1, 3, 2)) del tmp105 - tmp92 = einsum(l1, (0, 1), t2, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) - tmp106 += tmp92 rdm2.vovv += tmp106.transpose((1, 0, 3, 2)) rdm2.vovv += tmp106.transpose((1, 0, 2, 3)) * -1 - tmp62 = einsum(t2, (0, 1, 2, 3), tmp61, (0, 1, 3, 4), (4, 2), optimize=True) * 0.5 - del tmp61 - tmp91 = tmp62.copy() - tmp91 += tmp82 * 0.5 - rdm2.vovv += einsum(tmp91, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) * 2 - tmp44 = l2.transpose((3, 2, 1, 0)).copy() * 2 - tmp44 += l2.transpose((3, 2, 0, 1)) * -1 - tmp45 = einsum(tmp44, (0, 1, 2, 3), t2, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp44 - tmp108 = tmp45.copy() * -1 - tmp108 += tmp86 - tmp66 = einsum(t2, (0, 1, 2, 3), l2, (4, 2, 5, 1), (5, 0, 4, 3), optimize=True) - tmp108 += tmp66 + rdm2.vovv += tmp106.transpose((1, 0, 3, 2)) + rdm2.vovv += tmp106.transpose((1, 0, 2, 3)) * -1 + del tmp106 + tmp107 = tmp97.copy() + tmp107 += einsum(t1, (0, 1), tmp85, (2, 3), (0, 2, 1, 3), optimize=True) + del tmp85 + rdm2.vovv += tmp107.transpose((1, 0, 3, 2)) + rdm2.vovv += tmp107.transpose((1, 0, 2, 3)) * -1 + rdm2.vovv += tmp107.transpose((1, 0, 3, 2)) + rdm2.vovv += tmp107.transpose((1, 0, 2, 3)) * -1 + del tmp107 tmp109 = einsum(t1, (0, 1), tmp108, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) del tmp108 rdm2.vovv += tmp109.transpose((1, 0, 3, 2)) * -1 - rdm2.vovv += tmp96.transpose((1, 0, 2, 3)) * -1 - tmp68 = einsum(t2, (0, 1, 2, 3), l2, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) - tmp99 = einsum(tmp68, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) - rdm2.vovv += tmp99.transpose((1, 0, 3, 2)) * -1 - rdm2.vovv += tmp92.transpose((1, 0, 3, 2)) - rdm2.vovv += einsum(tmp91, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) * 2 rdm2.vovv += tmp109.transpose((1, 0, 3, 2)) * -1 del tmp109 - rdm2.vovv += tmp96.transpose((1, 0, 2, 3)) * -1 - rdm2.vovv += tmp99.transpose((1, 0, 3, 2)) * -1 - rdm2.vovv += tmp92.transpose((1, 0, 3, 2)) - rdm2.vovv += tmp107.transpose((1, 0, 3, 2)) - rdm2.vovv += tmp107.transpose((1, 0, 2, 3)) * -1 - del tmp107 - rdm2.vovv += tmp106.transpose((1, 0, 3, 2)) - rdm2.vovv += tmp106.transpose((1, 0, 2, 3)) * -1 - del tmp106 - tmp98 = einsum(tmp86, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) - rdm2.ovvv = tmp98.transpose((0, 1, 3, 2)).copy() * -1 - rdm2.ovvv += tmp98 - tmp97 = einsum(tmp62, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * 2 - tmp97 += tmp96 - rdm2.ovvv += tmp97.transpose((0, 1, 3, 2)) * -1 - rdm2.ovvv += tmp97 - tmp93 = tmp79.transpose((1, 0, 3, 2)).copy() * -1 - tmp93 += tmp80.transpose((1, 0, 3, 2)) - tmp94 = einsum(tmp93, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) - del tmp93 - tmp95 = tmp94.transpose((0, 1, 3, 2)).copy() * -1 - del tmp94 - tmp95 += einsum(tmp82, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - del tmp82 - tmp95 += tmp92 - rdm2.ovvv += tmp95.transpose((0, 1, 3, 2)) * -1 - rdm2.ovvv += tmp95 - rdm2.ovvv += einsum(tmp84, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - tmp100 = l2.transpose((3, 2, 1, 0)).copy() * 2 - tmp100 += l2.transpose((3, 2, 0, 1)) * -1 - tmp101 = einsum(t2, (0, 1, 2, 3), tmp100, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) - del tmp100 - tmp102 = tmp101.copy() * -1 - del tmp101 - tmp102 += tmp86 - tmp102 += tmp66 - tmp103 = einsum(tmp102, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + tmp99 = einsum(tmp87, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp87 + rdm2.ovvv += tmp99.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp99 + rdm2.ovvv += tmp99.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp99 + del tmp99 + tmp103 = einsum(t1, (0, 1), tmp102, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) del tmp102 rdm2.ovvv += tmp103 * -1 - rdm2.ovvv += tmp99 * -1 - rdm2.ovvv += tmp96.transpose((0, 1, 3, 2)) * -1 - rdm2.ovvv += tmp92 - rdm2.ovvv += einsum(tmp84, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) rdm2.ovvv += tmp103 * -1 del tmp103 - rdm2.ovvv += tmp99 * -1 - del tmp99 + tmp92 = tmp83.copy() * 0.5 + tmp92 += tmp63 + rdm2.ovvv += einsum(t1, (0, 1), tmp92, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + rdm2.ovvv += einsum(t1, (0, 1), tmp92, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + rdm2.vovo += einsum(tmp92, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 + rdm2.vovo += einsum(tmp92, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 + rdm2.vovo += einsum(tmp92, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 + rdm2.vovo += einsum(tmp92, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 + del tmp92 + tmp96 = tmp93.copy() + del tmp93 + tmp96 += einsum(tmp83, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + del tmp83 + tmp96 += tmp95.transpose((0, 1, 3, 2)) * -1 + del tmp95 + rdm2.ovvv += tmp96.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp96 rdm2.ovvv += tmp96.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp96 del tmp96 - rdm2.ovvv += tmp92 - del tmp92 + tmp98 = tmp97.copy() + del tmp97 + tmp98 += einsum(tmp63, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * 2 + del tmp63 + rdm2.ovvv += tmp98.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp98 rdm2.ovvv += tmp98.transpose((0, 1, 3, 2)) * -1 rdm2.ovvv += tmp98 del tmp98 - rdm2.ovvv += tmp97.transpose((0, 1, 3, 2)) * -1 - rdm2.ovvv += tmp97 - del tmp97 - rdm2.ovvv += tmp95.transpose((0, 1, 3, 2)) * -1 - rdm2.ovvv += tmp95 - del tmp95 - rdm2.vvoo = l2.transpose((1, 0, 3, 2)).copy() - rdm2.vvoo += l2.transpose((0, 1, 3, 2)) * -1 - rdm2.vvoo += l2.transpose((1, 0, 3, 2)) - rdm2.vvoo += l2.transpose((1, 0, 3, 2)) - rdm2.vvoo += l2.transpose((1, 0, 3, 2)) - rdm2.vvoo += l2.transpose((0, 1, 3, 2)) * -1 - rdm2.vovo = einsum(tmp91, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 - tmp87 = tmp2.transpose((1, 0, 2, 3)).copy() * -1 - tmp87 += tmp2 - tmp88 = einsum(t1, (0, 1), tmp87, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) - del tmp87 - rdm2.vovo += tmp88.transpose((2, 1, 3, 0)) * -1 - tmp89 = l2.transpose((3, 2, 1, 0)).copy() * -1 - tmp89 += l2.transpose((3, 2, 0, 1)) - tmp90 = einsum(tmp89, (0, 1, 2, 3), t2, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) - del tmp89 - rdm2.vovo += tmp90.transpose((2, 1, 3, 0)) * -1 - rdm2.vovo += tmp45.transpose((2, 1, 3, 0)) * -1 - rdm2.vovo += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.vovo += einsum(tmp91, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 - tmp85 = einsum(tmp2, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) - rdm2.vovo += tmp85.transpose((2, 1, 3, 0)) * -1 - rdm2.vovo += tmp68.transpose((2, 1, 3, 0)) * -1 - rdm2.vovo += einsum(tmp91, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 - rdm2.vovo += tmp85.transpose((2, 1, 3, 0)) * -1 - rdm2.vovo += tmp68.transpose((2, 1, 3, 0)) * -1 - rdm2.vovo += einsum(tmp91, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 + tmp91 = einsum(t2, (0, 1, 2, 3), tmp54, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) + del tmp54 + rdm2.vovo += tmp91.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp91.transpose((2, 1, 3, 0)) * -1 del tmp91 - rdm2.vovo += tmp88.transpose((2, 1, 3, 0)) * -1 + tmp90 = einsum(t1, (0, 1), tmp10, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp10 rdm2.vovo += tmp90.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp90.transpose((2, 1, 3, 0)) * -1 + rdm2.voov += tmp90.transpose((2, 1, 0, 3)) + rdm2.voov += tmp90.transpose((2, 1, 0, 3)) del tmp90 - rdm2.vovo += tmp45.transpose((2, 1, 3, 0)) * -1 - rdm2.vovo += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.voov = einsum(tmp84, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 - rdm2.voov += tmp88.transpose((2, 1, 0, 3)) - rdm2.voov += tmp79.transpose((3, 0, 1, 2)) * -1 - rdm2.voov += tmp80.transpose((3, 0, 1, 2)) - rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.voov += tmp45.transpose((2, 1, 0, 3)) - rdm2.voov += tmp86.transpose((2, 1, 0, 3)) * -1 - rdm2.voov += tmp66.transpose((2, 1, 0, 3)) * -1 - rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.voov += tmp45.transpose((2, 1, 0, 3)) - rdm2.voov += tmp86.transpose((2, 1, 0, 3)) * -1 - rdm2.voov += tmp66.transpose((2, 1, 0, 3)) * -1 - rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.voov += einsum(tmp84, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 - rdm2.voov += tmp88.transpose((2, 1, 0, 3)) + tmp89 = einsum(t2, (0, 1, 2, 3), tmp88, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) del tmp88 - rdm2.voov += tmp79.transpose((3, 0, 1, 2)) * -1 - rdm2.voov += tmp80.transpose((3, 0, 1, 2)) - rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.ovvo = einsum(tmp84, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - tmp17 = tmp2.transpose((1, 0, 2, 3)).copy() - tmp17 += tmp2 * -1 - tmp81 = einsum(t1, (0, 1), tmp17, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) - rdm2.ovvo += tmp81.transpose((1, 2, 3, 0)) * -1 - tmp47 = l2.transpose((3, 2, 1, 0)).copy() - tmp47 += l2.transpose((3, 2, 0, 1)) * -1 - tmp48 = einsum(t2, (0, 1, 2, 3), tmp47, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) - del tmp47 - rdm2.ovvo += tmp48.transpose((1, 2, 3, 0)) * -1 - rdm2.ovvo += tmp45.transpose((1, 2, 3, 0)) - rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.ovvo += tmp45.transpose((1, 2, 3, 0)) - rdm2.ovvo += tmp86.transpose((1, 2, 3, 0)) * -1 - rdm2.ovvo += tmp66.transpose((1, 2, 3, 0)) * -1 - rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.ovvo += tmp45.transpose((1, 2, 3, 0)) - rdm2.ovvo += tmp86.transpose((1, 2, 3, 0)) * -1 + rdm2.vovo += tmp89.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp89.transpose((2, 1, 3, 0)) * -1 + rdm2.ovvo += tmp89.transpose((1, 2, 3, 0)) + rdm2.ovvo += tmp89.transpose((1, 2, 3, 0)) + del tmp89 + tmp86 = einsum(t1, (0, 1), tmp4, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp4 + rdm2.vovo += tmp86.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp86.transpose((2, 1, 3, 0)) * -1 + rdm2.ovov += tmp86.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp86.transpose((1, 2, 0, 3)) * -1 del tmp86 - rdm2.ovvo += tmp66.transpose((1, 2, 3, 0)) * -1 - rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.ovvo += einsum(tmp84, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.ovvo += tmp81.transpose((1, 2, 3, 0)) * -1 - rdm2.ovvo += tmp48.transpose((1, 2, 3, 0)) * -1 - rdm2.ovvo += tmp45.transpose((1, 2, 3, 0)) - rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.ovov = einsum(tmp84, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.ovov += tmp81.transpose((1, 2, 0, 3)) - rdm2.ovov += tmp80.transpose((0, 3, 1, 2)) * -1 - rdm2.ovov += tmp79.transpose((0, 3, 1, 2)) - rdm2.ovov += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.ovov += einsum(tmp84, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.ovov += tmp85.transpose((1, 2, 0, 3)) * -1 - rdm2.ovov += tmp68.transpose((1, 2, 0, 3)) * -1 - rdm2.ovov += einsum(tmp84, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.ovov += tmp85.transpose((1, 2, 0, 3)) * -1 - del tmp85 - rdm2.ovov += tmp68.transpose((1, 2, 0, 3)) * -1 - rdm2.ovov += einsum(tmp84, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - del tmp84 - rdm2.ovov += tmp81.transpose((1, 2, 0, 3)) + tmp82 = einsum(t1, (0, 1), tmp81, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) del tmp81 - rdm2.ovov += tmp80.transpose((0, 3, 1, 2)) * -1 - del tmp80 - rdm2.ovov += tmp79.transpose((0, 3, 1, 2)) - del tmp79 - rdm2.ovov += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.oovv = einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.oovv += t2.transpose((1, 0, 3, 2)) - rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 - tmp5 = t2.transpose((1, 0, 3, 2)).copy() * -0.5 - tmp5 += t2.transpose((1, 0, 2, 3)) - tmp6 = einsum(tmp5, (0, 1, 2, 3), l2, (3, 2, 0, 4), (4, 1), optimize=True) * 2 - tmp10 = einsum(tmp6, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 0.5 - tmp11 = tmp10.copy() - del tmp10 - tmp8 = tmp2.transpose((1, 0, 2, 3)).copy() * -1 - tmp8 += tmp2 * 2 - tmp9 = einsum(t2, (0, 1, 2, 3), tmp8, (1, 0, 4, 3), (4, 2), optimize=True) * 0.5 - tmp11 += tmp9 - tmp65 = einsum(tmp11, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * 2 - tmp64 = einsum(t2, (0, 1, 2, 3), tmp6, (0, 4), (1, 4, 2, 3), optimize=True) - tmp65 += tmp64.transpose((0, 1, 3, 2)) + rdm2.ovvo += tmp82.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp82.transpose((1, 2, 3, 0)) * -1 + rdm2.ovov += tmp82.transpose((1, 2, 0, 3)) + rdm2.ovov += tmp82.transpose((1, 2, 0, 3)) + del tmp82 + tmp68 = einsum(tmp67, (0, 1, 2, 3), t2, (4, 0, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp67 + rdm2.oovv += tmp68 + rdm2.oovv += tmp68 + del tmp68 + tmp66 = tmp64.transpose((1, 0, 3, 2)).copy() del tmp64 - tmp63 = einsum(t2, (0, 1, 2, 3), tmp62, (2, 4), (0, 1, 4, 3), optimize=True) * 2 - del tmp62 - tmp65 += tmp63.transpose((1, 0, 3, 2)) - del tmp63 - rdm2.oovv += tmp65.transpose((1, 0, 3, 2)) * -1 - rdm2.oovv += tmp65.transpose((1, 0, 2, 3)) - rdm2.oovv += tmp65.transpose((0, 1, 3, 2)) - rdm2.oovv += tmp65 * -1 - tmp1 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 1, 0), (2, 3, 5, 4), optimize=True) - tmp22 = einsum(t1, (0, 1), tmp1, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) - tmp59 = einsum(tmp22, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) - tmp60 = tmp59.copy() - del tmp59 - tmp3 = einsum(t1, (0, 1), tmp2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) - tmp58 = einsum(tmp3, (0, 1, 2, 3), t2, (1, 0, 4, 5), (2, 3, 5, 4), optimize=True) - tmp60 += tmp58 - tmp57 = einsum(tmp1, (0, 1, 2, 3), t2, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) - tmp60 += tmp57 - rdm2.oovv += tmp60.transpose((0, 1, 3, 2)) * -1 - rdm2.oovv += tmp60 - tmp13 = einsum(tmp12, (0, 1, 2, 3), l1, (2, 0), (1, 3), optimize=True) - del tmp12 - tmp55 = tmp13.copy() * -1 - tmp0 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) - tmp14 = einsum(tmp0, (0, 1), t1, (0, 2), (1, 2), optimize=True) - tmp55 += tmp14 - tmp56 = einsum(tmp55, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - del tmp55 - tmp19 = tmp2.transpose((1, 0, 2, 3)).copy() * 2 - tmp19 += tmp2 * -1 - tmp20 = einsum(tmp19, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) - del tmp19 - tmp53 = tmp20.copy() * -1 - tmp18 = einsum(tmp17, (0, 1, 2, 3), t2, (1, 4, 5, 3), (0, 2, 4, 5), optimize=True) - del tmp17 - tmp53 += tmp18 - tmp15 = einsum(l1, (0, 1), t2, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) - tmp53 += tmp15 - tmp54 = einsum(t1, (0, 1), tmp53, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) - del tmp53 - tmp56 += tmp54.transpose((0, 1, 3, 2)) - del tmp54 - tmp52 = einsum(tmp45, (0, 1, 2, 3), t2, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) - tmp56 += tmp52 * -1 - tmp51 = einsum(tmp0, (0, 1), t2, (2, 0, 3, 4), (1, 2, 3, 4), optimize=True) - tmp56 += tmp51 - rdm2.oovv += tmp56.transpose((1, 0, 3, 2)) - rdm2.oovv += tmp56.transpose((1, 0, 2, 3)) * -1 - rdm2.oovv += tmp56.transpose((0, 1, 3, 2)) * -1 - rdm2.oovv += tmp56 - tmp49 = einsum(t2, (0, 1, 2, 3), tmp48, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) - del tmp48 - tmp50 = tmp49.transpose((1, 0, 3, 2)).copy() + tmp66 += tmp65.transpose((0, 1, 3, 2)) + del tmp65 + tmp66 += einsum(t1, (0, 1), tmp24, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + del tmp24 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp66.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp66 * -1 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66 * -1 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66 * -1 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp66.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp66 * -1 + del tmp66 + tmp50 = tmp44.copy() + tmp50 += tmp47.transpose((1, 0, 3, 2)) * -1 + tmp50 += tmp49.transpose((0, 1, 3, 2)) del tmp49 - tmp46 = einsum(tmp45, (0, 1, 2, 3), t2, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp45 - tmp50 += tmp46 * 2 - tmp16 = einsum(t1, (0, 1), tmp3, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) - tmp43 = einsum(t1, (0, 1), tmp16, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) - tmp50 += tmp43 - del tmp43 + tmp50 += einsum(t1, (0, 1), tmp18, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + del tmp18 + rdm2.oovv += tmp50.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp50.transpose((1, 0, 2, 3)) * -1 rdm2.oovv += tmp50.transpose((0, 1, 3, 2)) * -1 rdm2.oovv += tmp50 - tmp77 = tmp14.copy() * -1 - tmp77 += t1 - rdm2.oovv += einsum(tmp77, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - tmp4 = tmp3.copy() - tmp4 += tmp1.transpose((1, 0, 3, 2)) - tmp28 = einsum(t1, (0, 1), tmp4, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) - tmp76 = einsum(tmp28, (0, 1, 2, 3), t1, (0, 4), (2, 1, 3, 4), optimize=True) - rdm2.oovv += tmp76.transpose((0, 1, 3, 2)) - rdm2.oovv += tmp46.transpose((1, 0, 3, 2)) * 2 - tmp25 = einsum(tmp2, (0, 1, 2, 3), t2, (4, 1, 3, 5), (0, 2, 4, 5), optimize=True) - tmp73 = tmp25.copy() * -1 - tmp73 += tmp15 - tmp74 = einsum(tmp73, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) - del tmp73 - tmp75 = tmp74.transpose((0, 1, 3, 2)).copy() - del tmp74 - tmp75 += tmp51 - del tmp51 - rdm2.oovv += tmp75.transpose((1, 0, 2, 3)) * -1 - rdm2.oovv += tmp75.transpose((0, 1, 3, 2)) * -1 - rdm2.oovv += tmp65.transpose((1, 0, 3, 2)) * -1 - rdm2.oovv += tmp65 * -1 - tmp72 = einsum(tmp13, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) - tmp70 = tmp20.copy() * -1 - tmp24 = einsum(tmp2, (0, 1, 2, 3), t2, (4, 0, 3, 5), (1, 2, 4, 5), optimize=True) - tmp70 += tmp24 - tmp71 = einsum(tmp70, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) - del tmp70 - tmp72 += tmp71.transpose((0, 1, 3, 2)) - del tmp71 - tmp72 += tmp52 * -1 - del tmp52 - rdm2.oovv += tmp72.transpose((1, 0, 3, 2)) - rdm2.oovv += tmp72 - rdm2.oovv += einsum(tmp14, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - rdm2.oovv += t2.transpose((1, 0, 3, 2)) - rdm2.oovv += tmp58 - rdm2.oovv += tmp57 - tmp69 = einsum(t2, (0, 1, 2, 3), tmp68, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) - del tmp68 - rdm2.oovv += tmp69.transpose((0, 1, 3, 2)) - tmp67 = einsum(t2, (0, 1, 2, 3), tmp66, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) - del tmp66 - rdm2.oovv += tmp67 - rdm2.oovv += einsum(tmp77, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - del tmp77 - rdm2.oovv += tmp76.transpose((0, 1, 3, 2)) - del tmp76 - rdm2.oovv += tmp46.transpose((1, 0, 3, 2)) * 2 - del tmp46 - rdm2.oovv += tmp75.transpose((1, 0, 2, 3)) * -1 - rdm2.oovv += tmp75.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp50.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp50.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += tmp50.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp50 + del tmp50 + tmp76 = tmp44.copy() + del tmp44 + tmp76 += tmp75.transpose((0, 1, 3, 2)) del tmp75 - rdm2.oovv += tmp65.transpose((1, 0, 3, 2)) * -1 - rdm2.oovv += tmp65 * -1 - rdm2.oovv += tmp72.transpose((1, 0, 3, 2)) - rdm2.oovv += tmp72 - del tmp72 - rdm2.oovv += einsum(tmp14, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - rdm2.oovv += t2.transpose((1, 0, 3, 2)) - rdm2.oovv += tmp58 + rdm2.oovv += tmp76.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += tmp76.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp76.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += tmp76.transpose((0, 1, 3, 2)) * -1 + del tmp76 + tmp61 = tmp58.copy() del tmp58 + tmp61 += tmp60.transpose((1, 0, 3, 2)) + del tmp60 + rdm2.oovv += tmp61.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp61 + rdm2.oovv += tmp61.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp61 + del tmp61 + tmp57 = tmp51.copy() + del tmp51 + tmp57 += tmp53.transpose((1, 0, 3, 2)) * 2 + del tmp53 + tmp57 += tmp56 + del tmp56 + rdm2.oovv += tmp57.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp57 + rdm2.oovv += tmp57.transpose((0, 1, 3, 2)) * -1 rdm2.oovv += tmp57 del tmp57 - rdm2.oovv += tmp69.transpose((0, 1, 3, 2)) + tmp73 = tmp47.transpose((1, 0, 3, 2)).copy() * -1 + del tmp47 + tmp73 += tmp72.transpose((0, 1, 3, 2)) + del tmp72 + tmp73 += einsum(tmp17, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + del tmp17 + rdm2.oovv += tmp73.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp73 + rdm2.oovv += tmp73.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp73 + del tmp73 + tmp70 = einsum(tmp69, (0, 1, 2, 3), t2, (4, 0, 2, 5), (4, 1, 5, 3), optimize=True) del tmp69 - rdm2.oovv += tmp67 - del tmp67 - rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.oovv += t2.transpose((1, 0, 3, 2)) - rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 - rdm2.oovv += tmp65.transpose((1, 0, 3, 2)) * -1 - rdm2.oovv += tmp65.transpose((1, 0, 2, 3)) - rdm2.oovv += tmp65.transpose((0, 1, 3, 2)) - rdm2.oovv += tmp65 * -1 - del tmp65 - rdm2.oovv += tmp60.transpose((0, 1, 3, 2)) * -1 - rdm2.oovv += tmp60 - del tmp60 - rdm2.oovv += tmp56.transpose((1, 0, 3, 2)) - rdm2.oovv += tmp56.transpose((1, 0, 2, 3)) * -1 - rdm2.oovv += tmp56.transpose((0, 1, 3, 2)) * -1 - rdm2.oovv += tmp56 - del tmp56 - rdm2.oovv += tmp50.transpose((0, 1, 3, 2)) * -1 - rdm2.oovv += tmp50 - del tmp50 - rdm2.vooo = tmp2.transpose((3, 2, 1, 0)).copy() - rdm2.vooo += tmp2.transpose((3, 2, 0, 1)) * -1 - rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) - rdm2.vooo += tmp2.transpose((3, 2, 0, 1)) * -1 - rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) - rdm2.vooo += tmp2.transpose((3, 2, 0, 1)) * -1 - rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) - rdm2.vooo += tmp2.transpose((3, 2, 1, 0)) - rdm2.vooo += tmp2.transpose((3, 2, 0, 1)) * -1 - rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) - rdm2.ovoo = tmp2.transpose((2, 3, 1, 0)).copy() * -1 - rdm2.ovoo += tmp2.transpose((2, 3, 0, 1)) - rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) - rdm2.ovoo += einsum(l1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.ovoo += tmp2.transpose((2, 3, 1, 0)) * -1 - rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) - rdm2.ovoo += tmp2.transpose((2, 3, 1, 0)) * -1 - rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) - rdm2.ovoo += tmp2.transpose((2, 3, 1, 0)) * -1 - rdm2.ovoo += tmp2.transpose((2, 3, 0, 1)) - rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) - rdm2.ovoo += einsum(l1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - tmp39 = einsum(tmp6, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - tmp39 += tmp28.transpose((0, 2, 1, 3)) - tmp39 += tmp15 - rdm2.oovo = tmp39.transpose((2, 1, 3, 0)).copy() - rdm2.oovo += tmp39.transpose((1, 2, 3, 0)) * -1 - tmp38 = tmp20.copy() * -1 - tmp38 += tmp18 - tmp38 += einsum(tmp0, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.oovo += tmp38.transpose((2, 1, 3, 0)) - rdm2.oovo += tmp38.transpose((1, 2, 3, 0)) * -1 - rdm2.oovo += einsum(delta.oo, (0, 1), tmp13, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.oovo += einsum(delta.oo, (0, 1), tmp13, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.oovo += einsum(t1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) - tmp32 = einsum(tmp5, (0, 1, 2, 3), l2, (3, 2, 0, 4), (4, 1), optimize=True) - del tmp5 - tmp33 = tmp32.copy() - del tmp32 - tmp33 += tmp0 * 0.5 - tmp34 = einsum(tmp33, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 2 - tmp37 = tmp34.copy() - tmp29 = einsum(t2, (0, 1, 2, 3), tmp8, (1, 0, 4, 3), (4, 2), optimize=True) - del tmp8 - tmp37 += tmp29 - rdm2.oovo += einsum(delta.oo, (0, 1), tmp37, (2, 3), (0, 2, 3, 1), optimize=True) - rdm2.oovo += einsum(delta.oo, (0, 1), tmp37, (2, 3), (2, 1, 3, 0), optimize=True) * -1 - tmp36 = tmp6.copy() - tmp36 += tmp0 - rdm2.oovo += einsum(t1, (0, 1), tmp36, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - tmp41 = einsum(tmp33, (0, 1), t1, (0, 2), (1, 2), optimize=True) - del tmp33 - tmp42 = tmp41.copy() + rdm2.oovv += tmp70.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp70.transpose((0, 1, 3, 2)) + del tmp70 + tmp77 = t1.copy() + tmp77 += tmp15 * -1 + del tmp15 + rdm2.oovv += einsum(tmp77, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.oovv += einsum(tmp77, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + del tmp77 + tmp43 = t1.copy() * -0.5 + tmp43 += tmp22 + del tmp22 + tmp43 += tmp41 * -1 del tmp41 - tmp30 = t2.transpose((1, 0, 3, 2)).copy() * 2 - tmp30 += t2.transpose((1, 0, 2, 3)) * -1 - tmp40 = einsum(l1, (0, 1), tmp30, (1, 2, 0, 3), (2, 3), optimize=True) * 0.5 - tmp42 += tmp40 * -1 - del tmp40 - tmp42 += tmp9 - del tmp9 - tmp42 += t1 * -0.5 - rdm2.oovo += einsum(delta.oo, (0, 1), tmp42, (2, 3), (2, 1, 3, 0), optimize=True) * -2 - rdm2.oovo += tmp28.transpose((1, 2, 3, 0)) - tmp26 = tmp2.transpose((1, 0, 2, 3)).copy() * -1 - tmp26 += tmp2 * 2 - del tmp2 - tmp27 = einsum(tmp26, (0, 1, 2, 3), t2, (0, 4, 3, 5), (1, 2, 4, 5), optimize=True) - del tmp26 - rdm2.oovo += tmp27.transpose((2, 1, 3, 0)) * -1 - rdm2.oovo += tmp15.transpose((1, 2, 3, 0)) * -1 - rdm2.oovo += tmp24.transpose((2, 1, 3, 0)) - rdm2.oovo += tmp25.transpose((1, 2, 3, 0)) - rdm2.oovo += einsum(t1, (0, 1), tmp36, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - rdm2.oovo += einsum(delta.oo, (0, 1), tmp42, (2, 3), (2, 1, 3, 0), optimize=True) * -2 + tmp43 += tmp42 del tmp42 - rdm2.oovo += tmp28.transpose((1, 2, 3, 0)) - rdm2.oovo += tmp27.transpose((2, 1, 3, 0)) * -1 - rdm2.oovo += tmp15.transpose((1, 2, 3, 0)) * -1 - rdm2.oovo += tmp24.transpose((2, 1, 3, 0)) - rdm2.oovo += tmp25.transpose((1, 2, 3, 0)) + rdm2.oovo += einsum(tmp43, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -2 + rdm2.oovo += einsum(tmp43, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -2 + del tmp43 + tmp39 = einsum(t1, (0, 1), tmp2, (2, 3), (2, 0, 3, 1), optimize=True) + tmp39 += tmp11 + tmp39 += tmp13 * -1 + rdm2.oovo += tmp39.transpose((2, 1, 3, 0)) + rdm2.oovo += tmp39.transpose((1, 2, 3, 0)) * -1 rdm2.oovo += tmp39.transpose((2, 1, 3, 0)) rdm2.oovo += tmp39.transpose((1, 2, 3, 0)) * -1 del tmp39 + tmp37 = tmp2.copy() + tmp37 += tmp1 + rdm2.oovo += einsum(tmp37, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oovo += einsum(tmp37, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.ooov += einsum(tmp37, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(tmp37, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + del tmp37 + tmp38 = tmp8.copy() + tmp38 += tmp29.transpose((0, 2, 1, 3)) + del tmp29 + tmp38 += einsum(tmp1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.oovo += tmp38.transpose((2, 1, 3, 0)) + rdm2.oovo += tmp38.transpose((1, 2, 3, 0)) * -1 rdm2.oovo += tmp38.transpose((2, 1, 3, 0)) rdm2.oovo += tmp38.transpose((1, 2, 3, 0)) * -1 del tmp38 - rdm2.oovo += einsum(delta.oo, (0, 1), tmp13, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.oovo += einsum(delta.oo, (0, 1), tmp13, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.oovo += einsum(t1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.oovo += einsum(delta.oo, (0, 1), tmp37, (2, 3), (0, 2, 3, 1), optimize=True) - rdm2.oovo += einsum(delta.oo, (0, 1), tmp37, (2, 3), (2, 1, 3, 0), optimize=True) * -1 - del tmp37 - rdm2.ooov = einsum(tmp0, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 - rdm2.ooov += einsum(tmp0, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) - tmp23 = einsum(tmp6, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) - tmp23 += tmp22 - del tmp22 - rdm2.ooov += tmp23.transpose((2, 1, 0, 3)) * -1 - rdm2.ooov += tmp23.transpose((1, 2, 0, 3)) - tmp21 = tmp20.copy() * -1 + tmp40 = tmp30.copy() + tmp40 += tmp35 + rdm2.oovo += einsum(delta.oo, (0, 1), tmp40, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.oovo += einsum(tmp40, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + rdm2.oovo += einsum(delta.oo, (0, 1), tmp40, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.oovo += einsum(tmp40, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + del tmp40 + tmp20 = tmp19.copy() + del tmp19 + tmp20 += einsum(tmp1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + del tmp1 + rdm2.ooov += tmp20.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp20.transpose((1, 2, 0, 3)) + rdm2.ooov += tmp20.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp20.transpose((1, 2, 0, 3)) del tmp20 - tmp21 += tmp18 - del tmp18 - tmp21 += tmp16 - del tmp16 - tmp21 += tmp15 - rdm2.ooov += tmp21.transpose((2, 1, 0, 3)) * -1 - rdm2.ooov += tmp21.transpose((1, 2, 0, 3)) - rdm2.ooov += einsum(delta.oo, (0, 1), tmp14, (2, 3), (0, 2, 1, 3), optimize=True) * -1 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp14, (2, 3), (2, 1, 0, 3), optimize=True) - rdm2.ooov += einsum(delta.oo, (0, 1), tmp13, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.ooov += einsum(delta.oo, (0, 1), tmp13, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.ooov += einsum(t1, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp11, (2, 3), (0, 2, 1, 3), optimize=True) * -2 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp11, (2, 3), (2, 1, 0, 3), optimize=True) * 2 - rdm2.ooov += einsum(tmp36, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 - tmp35 = tmp34.copy() - del tmp34 - tmp31 = einsum(l1, (0, 1), tmp30, (1, 2, 0, 3), (2, 3), optimize=True) + tmp14 = tmp8.copy() + del tmp8 + tmp14 += tmp9 + del tmp9 + tmp14 += tmp11 + del tmp11 + tmp14 += tmp13 * -1 + del tmp13 + rdm2.ooov += tmp14.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp14.transpose((1, 2, 0, 3)) + rdm2.ooov += tmp14.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp14.transpose((1, 2, 0, 3)) + del tmp14 + tmp28 = einsum(tmp27, (0, 1, 2, 3), t2, (0, 4, 3, 5), (1, 2, 4, 5), optimize=True) + del tmp27 + rdm2.ooov += tmp28.transpose((1, 2, 0, 3)) * -1 + rdm2.ooov += tmp28.transpose((1, 2, 0, 3)) * -1 + del tmp28 + tmp36 = t1.copy() * -1 + tmp36 += tmp30 del tmp30 - tmp35 += tmp31 * -1 - del tmp31 - tmp35 += tmp29 - del tmp29 - tmp35 += t1 * -1 - rdm2.ooov += einsum(tmp35, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 - rdm2.ooov += tmp28.transpose((2, 1, 0, 3)) - rdm2.ooov += tmp27.transpose((1, 2, 0, 3)) * -1 - rdm2.ooov += tmp15.transpose((2, 1, 0, 3)) * -1 - rdm2.ooov += tmp25.transpose((2, 1, 0, 3)) - rdm2.ooov += tmp24.transpose((1, 2, 0, 3)) - rdm2.ooov += einsum(tmp36, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 - del tmp36 - rdm2.ooov += einsum(tmp35, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + tmp36 += tmp32 * -1 + del tmp32 + tmp36 += tmp35 del tmp35 - rdm2.ooov += tmp28.transpose((2, 1, 0, 3)) - del tmp28 - rdm2.ooov += tmp27.transpose((1, 2, 0, 3)) * -1 - del tmp27 - rdm2.ooov += tmp15.transpose((2, 1, 0, 3)) * -1 - del tmp15 - rdm2.ooov += tmp25.transpose((2, 1, 0, 3)) - del tmp25 - rdm2.ooov += tmp24.transpose((1, 2, 0, 3)) - del tmp24 - rdm2.ooov += einsum(tmp0, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 - rdm2.ooov += einsum(tmp0, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) - rdm2.ooov += tmp23.transpose((2, 1, 0, 3)) * -1 - rdm2.ooov += tmp23.transpose((1, 2, 0, 3)) - del tmp23 - rdm2.ooov += tmp21.transpose((2, 1, 0, 3)) * -1 - rdm2.ooov += tmp21.transpose((1, 2, 0, 3)) - del tmp21 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp14, (2, 3), (0, 2, 1, 3), optimize=True) * -1 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp14, (2, 3), (2, 1, 0, 3), optimize=True) - del tmp14 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp13, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.ooov += einsum(delta.oo, (0, 1), tmp13, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - del tmp13 - rdm2.ooov += einsum(t1, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp11, (2, 3), (0, 2, 1, 3), optimize=True) * -2 - rdm2.ooov += einsum(delta.oo, (0, 1), tmp11, (2, 3), (2, 1, 0, 3), optimize=True) * 2 - del tmp11 - rdm2.oooo = einsum(delta.oo, (0, 1), tmp6, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - rdm2.oooo += tmp4.transpose((2, 3, 0, 1)) - rdm2.oooo += tmp4.transpose((3, 2, 0, 1)) * -1 - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp0, (2, 3), (3, 1, 0, 2), optimize=True) - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 0, 2), optimize=True) - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) - tmp7 = tmp0.copy() * -1 - tmp7 += delta.oo.transpose((1, 0)) + rdm2.ooov += einsum(delta.oo, (0, 1), tmp36, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), tmp36, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + del tmp36 + tmp7 = delta.oo.transpose((1, 0)).copy() + tmp7 += tmp2 * -1 + del tmp2 rdm2.oooo += einsum(tmp7, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) - rdm2.oooo += einsum(delta.oo, (0, 1), tmp6, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - rdm2.oooo += tmp3.transpose((3, 2, 1, 0)) - rdm2.oooo += tmp1.transpose((3, 2, 1, 0)) - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 rdm2.oooo += einsum(tmp7, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) del tmp7 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp6, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - rdm2.oooo += tmp3.transpose((3, 2, 1, 0)) - del tmp3 - rdm2.oooo += tmp1.transpose((3, 2, 1, 0)) - del tmp1 - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp6, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) - rdm2.oooo += einsum(tmp6, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - del tmp6 - rdm2.oooo += tmp4.transpose((2, 3, 0, 1)) - rdm2.oooo += tmp4.transpose((3, 2, 0, 1)) * -1 - del tmp4 - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 - rdm2.oooo += einsum(delta.oo, (0, 1), tmp0, (2, 3), (3, 1, 0, 2), optimize=True) - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 0, 2), optimize=True) - rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - del tmp0 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovoo += einsum(l1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovoo += einsum(l1, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.vooo += einsum(l1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 del delta + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.ovov += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.ovov += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.ovvo += einsum(l1, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.voov += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.vovo += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.vovo += einsum(l1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.vvoo = l2.transpose((0, 1, 3, 2)).copy() * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((0, 1, 3, 2)) * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) rdm2 = pack_2e(rdm2.oooo, rdm2.ooov, rdm2.oovo, rdm2.ovoo, rdm2.vooo, rdm2.oovv, rdm2.ovov, rdm2.ovvo, rdm2.voov, rdm2.vovo, rdm2.vvoo, rdm2.ovvv, rdm2.vovv, rdm2.vvov, rdm2.vvvo, rdm2.vvvv) rdm2 = rdm2.swapaxes(1, 2) diff --git a/ebcc/codegen/RDFCCD.py b/ebcc/codegen/RDFCCD.py new file mode 100644 index 00000000..5d0fba71 --- /dev/null +++ b/ebcc/codegen/RDFCCD.py @@ -0,0 +1,534 @@ +""" +Code generated by `albert`: +https://github.com/obackhouse/albert + + * date: 2024-07-18T20:30:30.323303 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + * albert version: 0.0.0 + * caller: /home/ollie/git/albert/albert/codegen/einsum.py + * node: ollie-desktop + * system: Linux + * processor: x86_64 + * release: 6.5.0-44-generic +""" + +from ebcc import numpy as np +from ebcc.util import pack_2e, einsum, direct_sum, Namespace + + +def energy(t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:30:30.670233. + + Parameters + ---------- + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + e_cc : float + Coupled cluster energy. + """ + + tmp0 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp0 += t2.transpose((1, 0, 3, 2)) * 2 + tmp1 = einsum(v.xov, (0, 1, 2), tmp0, (1, 3, 2, 4), (3, 4, 0), optimize=True) * 0.5 + del tmp0 + e_cc = einsum(tmp1, (0, 1, 2), v.xov, (2, 0, 1), (), optimize=True) * 2 + del tmp1 + + return e_cc + +def update_amps(f=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:30:34.113854. + + Parameters + ---------- + f : array + Fock matrix. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + t2new : array + Updated T2 residuals. + """ + + tmp0 = einsum(t2, (0, 1, 2, 3), v.xov, (4, 1, 2), (0, 3, 4), optimize=True) + t2new = einsum(tmp0, (0, 1, 2), tmp0, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp11 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp11 += t2.transpose((1, 0, 3, 2)) * 2 + tmp1 = einsum(v.xov, (0, 1, 2), v.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + t2new += tmp1.transpose((1, 0, 3, 2)) + tmp6 = v.xov.transpose((1, 2, 0)).copy() + tmp6 += tmp0 * -1 + tmp12 = einsum(tmp11, (0, 1, 2, 3), v.xov, (4, 0, 2), (1, 3, 4), optimize=True) + del tmp11 + tmp5 = einsum(v.xvv, (0, 1, 2), v.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp2 = einsum(tmp1, (0, 1, 2, 3), t2, (4, 0, 3, 5), (4, 1, 5, 2), optimize=True) + t2new += einsum(t2, (0, 1, 2, 3), tmp2, (4, 1, 5, 2), (4, 0, 3, 5), optimize=True) + tmp7 = einsum(tmp6, (0, 1, 2), v.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + del tmp6 + tmp13 = einsum(v.xov, (0, 1, 2), tmp12, (1, 3, 0), (2, 3), optimize=True) * 0.5 + tmp15 = einsum(tmp12, (0, 1, 2), v.xov, (2, 3, 1), (3, 0), optimize=True) + del tmp12 + tmp8 = tmp5.transpose((1, 0, 3, 2)).copy() + tmp8 += tmp2 * -1 + del tmp2 + tmp8 += tmp7.transpose((1, 0, 3, 2)) * -2 + del tmp7 + tmp14 = einsum(tmp13, (0, 1), t2, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) * 2 + del tmp13 + tmp16 = einsum(t2, (0, 1, 2, 3), tmp15, (0, 4), (1, 4, 2, 3), optimize=True) + del tmp15 + tmp4 = einsum(v.xov, (0, 1, 2), tmp0, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp0 + tmp9 = einsum(tmp8, (0, 1, 2, 3), t2, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp8 + tmp23 = tmp1.transpose((1, 0, 2, 3)).copy() * 2 + tmp23 += tmp1.transpose((1, 0, 3, 2)) * -1 + tmp19 = einsum(tmp5, (0, 1, 2, 3), t2, (4, 1, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp5 + tmp18 = einsum(t2, (0, 1, 2, 3), f.vv, (4, 2), (1, 0, 4, 3), optimize=True) + tmp17 = tmp14.transpose((1, 0, 2, 3)).copy() + del tmp14 + tmp17 += tmp16.transpose((0, 1, 3, 2)) + del tmp16 + t2new += tmp17.transpose((1, 0, 3, 2)) * -1 + t2new += tmp17 * -1 + del tmp17 + tmp10 = tmp4.copy() + del tmp4 + tmp10 += tmp9 + del tmp9 + t2new += tmp10.transpose((1, 0, 3, 2)) * -1 + t2new += tmp10 * -1 + del tmp10 + tmp24 = einsum(tmp23, (0, 1, 2, 3), t2, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) + del tmp23 + t2new += einsum(tmp24, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 2 + del tmp24 + tmp3 = einsum(v.xvv, (0, 1, 2), v.xvv, (0, 3, 4), (3, 2, 1, 4), optimize=True) + t2new += einsum(tmp3, (0, 1, 2, 3), t2, (4, 5, 3, 1), (4, 5, 0, 2), optimize=True) + del tmp3 + tmp22 = einsum(v.xoo, (0, 1, 2), v.xoo, (0, 3, 4), (4, 1, 2, 3), optimize=True) + tmp22 += einsum(t2, (0, 1, 2, 3), tmp1, (4, 5, 2, 3), (4, 1, 5, 0), optimize=True) + del tmp1 + t2new += einsum(tmp22, (0, 1, 2, 3), t2, (0, 2, 4, 5), (1, 3, 5, 4), optimize=True) + del tmp22 + tmp20 = tmp18.copy() + del tmp18 + tmp20 += tmp19 * -1 + del tmp19 + t2new += tmp20.transpose((1, 0, 2, 3)) + t2new += tmp20.transpose((0, 1, 3, 2)) + del tmp20 + tmp21 = einsum(t2, (0, 1, 2, 3), f.oo, (4, 1), (4, 0, 2, 3), optimize=True) + t2new += tmp21.transpose((1, 0, 2, 3)) * -1 + t2new += tmp21.transpose((0, 1, 3, 2)) * -1 + del tmp21 + + return {f"t2new": t2new} + +def update_lams(f=None, l2=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:30:39.075372. + + Parameters + ---------- + f : array + Fock matrix. + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + l2new : array + Updated L2 residuals. + """ + + tmp12 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp12 += t2.transpose((1, 0, 3, 2)) * 2 + tmp24 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp24 += t2.transpose((1, 0, 3, 2)) + tmp32 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp32 += t2.transpose((1, 0, 3, 2)) * 2 + tmp13 = einsum(tmp12, (0, 1, 2, 3), v.xov, (4, 0, 2), (1, 3, 4), optimize=True) + del tmp12 + tmp8 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp8 += l2.transpose((3, 2, 1, 0)) * -1 + tmp1 = einsum(v.xov, (0, 1, 2), v.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + l2new = tmp1.transpose((3, 2, 1, 0)).copy() + tmp25 = einsum(l2, (0, 1, 2, 3), tmp24, (2, 4, 0, 1), (3, 4), optimize=True) * 2 + tmp28 = einsum(l2, (0, 1, 2, 3), tmp24, (2, 3, 4, 1), (0, 4), optimize=True) * 2 + del tmp24 + tmp33 = einsum(tmp32, (0, 1, 2, 3), v.xov, (4, 0, 2), (1, 3, 4), optimize=True) + del tmp32 + tmp14 = v.xov.transpose((1, 2, 0)).copy() + tmp14 += tmp13 + del tmp13 + tmp15 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp15 += l2.transpose((3, 2, 1, 0)) * 2 + tmp9 = einsum(tmp8, (0, 1, 2, 3), t2, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) + del tmp8 + tmp7 = einsum(t2, (0, 1, 2, 3), l2, (4, 3, 5, 0), (5, 1, 4, 2), optimize=True) + tmp20 = einsum(tmp1, (0, 1, 2, 3), t2, (4, 1, 2, 5), (4, 0, 5, 3), optimize=True) + tmp5 = einsum(v.xvv, (0, 1, 2), v.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp26 = einsum(tmp25, (0, 1), v.xov, (2, 1, 3), (0, 3, 2), optimize=True) * 0.5 + del tmp25 + tmp29 = einsum(tmp28, (0, 1), v.xov, (2, 3, 1), (3, 0, 2), optimize=True) + del tmp28 + tmp34 = einsum(v.xov, (0, 1, 2), tmp33, (1, 3, 0), (2, 3), optimize=True) * 0.5 + tmp36 = einsum(tmp33, (0, 1, 2), v.xov, (2, 3, 1), (3, 0), optimize=True) + del tmp33 + tmp16 = einsum(tmp14, (0, 1, 2), tmp15, (0, 3, 1, 4), (3, 4, 2), optimize=True) + del tmp14, tmp15 + tmp10 = tmp7.copy() + del tmp7 + tmp10 += tmp9.transpose((1, 0, 3, 2)) * -1 + del tmp9 + tmp21 = tmp5.transpose((1, 0, 3, 2)).copy() * -1 + tmp21 += tmp20 + del tmp20 + tmp27 = einsum(tmp26, (0, 1, 2), v.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) * 2 + del tmp26 + tmp30 = einsum(tmp29, (0, 1, 2), v.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + del tmp29 + tmp35 = einsum(tmp34, (0, 1), l2, (1, 2, 3, 4), (3, 4, 2, 0), optimize=True) * 2 + del tmp34 + tmp37 = einsum(l2, (0, 1, 2, 3), tmp36, (4, 2), (4, 3, 0, 1), optimize=True) + del tmp36 + tmp17 = einsum(tmp16, (0, 1, 2), v.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + del tmp16 + tmp6 = einsum(tmp5, (0, 1, 2, 3), l2, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + del tmp5 + tmp11 = einsum(tmp1, (0, 1, 2, 3), tmp10, (4, 0, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp10 + tmp19 = einsum(l2, (0, 1, 2, 3), f.vv, (4, 0), (3, 2, 4, 1), optimize=True) + tmp22 = einsum(l2, (0, 1, 2, 3), tmp21, (2, 4, 1, 5), (3, 4, 0, 5), optimize=True) + del tmp21 + tmp31 = tmp27.transpose((1, 0, 2, 3)).copy() + del tmp27 + tmp31 += tmp30.transpose((0, 1, 3, 2)) + del tmp30 + l2new += tmp31.transpose((2, 3, 1, 0)) * -1 + l2new += tmp31.transpose((3, 2, 0, 1)) * -1 + del tmp31 + tmp38 = tmp35.transpose((1, 0, 2, 3)).copy() + del tmp35 + tmp38 += tmp37.transpose((1, 0, 3, 2)) + del tmp37 + l2new += tmp38.transpose((3, 2, 1, 0)) * -1 + l2new += tmp38.transpose((2, 3, 0, 1)) * -1 + del tmp38 + tmp3 = einsum(tmp1, (0, 1, 2, 3), t2, (4, 5, 3, 2), (5, 4, 0, 1), optimize=True) + l2new += einsum(tmp3, (0, 1, 2, 3), l2, (4, 5, 1, 0), (5, 4, 2, 3), optimize=True) + del tmp3 + tmp2 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + l2new += einsum(tmp2, (0, 1, 2, 3), tmp1, (2, 3, 4, 5), (5, 4, 1, 0), optimize=True) + del tmp1, tmp2 + tmp39 = einsum(f.oo, (0, 1), l2, (2, 3, 4, 1), (0, 4, 2, 3), optimize=True) + l2new += tmp39.transpose((2, 3, 1, 0)) * -1 + l2new += tmp39.transpose((3, 2, 0, 1)) * -1 + del tmp39 + tmp4 = einsum(v.xvv, (0, 1, 2), v.xvv, (0, 3, 4), (3, 2, 1, 4), optimize=True) + l2new += einsum(l2, (0, 1, 2, 3), tmp4, (4, 1, 5, 0), (5, 4, 3, 2), optimize=True) + del tmp4 + tmp18 = tmp6.copy() + del tmp6 + tmp18 += tmp11.transpose((1, 0, 3, 2)) * -1 + del tmp11 + tmp18 += tmp17.transpose((1, 0, 3, 2)) * -1 + del tmp17 + l2new += tmp18.transpose((3, 2, 1, 0)) * -1 + l2new += tmp18.transpose((2, 3, 0, 1)) * -1 + del tmp18 + tmp23 = tmp19.copy() + del tmp19 + tmp23 += tmp22 + del tmp22 + l2new += tmp23.transpose((2, 3, 1, 0)) + l2new += tmp23.transpose((3, 2, 0, 1)) + del tmp23 + tmp0 = einsum(v.xoo, (0, 1, 2), v.xoo, (0, 3, 4), (1, 4, 3, 2), optimize=True) + l2new += einsum(tmp0, (0, 1, 2, 3), l2, (4, 5, 3, 1), (4, 5, 0, 2), optimize=True) + del tmp0 + + return {f"l2new": l2new} + +def make_rdm1_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:30:39.392217. + + Parameters + ---------- + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm1 : array + One-particle reduced density matrix. + """ + + rdm1 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + tmp1 = t2.transpose((1, 0, 2, 3)).copy() + tmp1 += t2.transpose((1, 0, 3, 2)) * -0.5 + rdm1.vv = einsum(tmp1, (0, 1, 2, 3), l2, (3, 4, 0, 1), (4, 2), optimize=True) * 4 + del tmp1 + tmp0 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp0 += t2.transpose((1, 0, 3, 2)) + rdm1.oo = einsum(l2, (0, 1, 2, 3), tmp0, (2, 4, 0, 1), (4, 3), optimize=True) * -4 + del tmp0 + rdm1.oo += delta.oo.transpose((1, 0)) * 2 + del delta + rdm1.ov = np.zeros((t2.shape[0], t2.shape[-1])) + rdm1.vo = np.zeros((t2.shape[-1], t2.shape[0])) + rdm1 = np.block([[rdm1.oo, rdm1.ov], [rdm1.vo, rdm1.vv]]) + + return rdm1 + +def make_rdm2_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:30:50.605518. + + Parameters + ---------- + l2 : array + L2 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm2 : array + Two-particle reduced density matrix. + """ + + rdm2 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + tmp3 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp3 += l2.transpose((3, 2, 1, 0)) * -1 + tmp6 = l2.transpose((3, 2, 0, 1)).copy() + tmp6 += l2.transpose((3, 2, 1, 0)) * -1 + tmp12 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp12 += l2.transpose((3, 2, 1, 0)) * -1 + tmp0 = t2.transpose((1, 0, 2, 3)).copy() + tmp0 += t2.transpose((1, 0, 3, 2)) * -0.5 + tmp4 = einsum(tmp3, (0, 1, 2, 3), t2, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) + del tmp3 + rdm2.voov = tmp4.transpose((3, 0, 1, 2)).copy() + rdm2.voov += tmp4.transpose((3, 0, 1, 2)) + rdm2.ovvo = tmp4.transpose((0, 3, 2, 1)).copy() + rdm2.ovvo += tmp4.transpose((0, 3, 2, 1)) + tmp7 = einsum(t2, (0, 1, 2, 3), tmp6, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) + rdm2.ovvo += tmp7.transpose((0, 3, 2, 1)) * -1 + rdm2.ovvo += tmp7.transpose((0, 3, 2, 1)) * -1 + tmp13 = einsum(t2, (0, 1, 2, 3), tmp12, (0, 1, 3, 4), (2, 4), optimize=True) * 0.5 + rdm2.ovvo += einsum(delta.oo, (0, 1), tmp13, (2, 3), (1, 3, 2, 0), optimize=True) * -2 + rdm2.ovvo += einsum(delta.oo, (0, 1), tmp13, (2, 3), (1, 3, 2, 0), optimize=True) * -2 + rdm2.ovov = einsum(delta.oo, (0, 1), tmp13, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp13, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp13, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp13, (2, 3), (1, 3, 0, 2), optimize=True) * 2 + tmp1 = einsum(l2, (0, 1, 2, 3), tmp0, (2, 4, 1, 0), (3, 4), optimize=True) * 2 + del tmp0 + rdm2.oooo = einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(tmp1, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp25 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp25 += l2.transpose((3, 2, 1, 0)) * 2 + tmp23 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp23 += t2.transpose((1, 0, 3, 2)) * -1 + tmp21 = t2.transpose((1, 0, 2, 3)).copy() + tmp21 += t2.transpose((1, 0, 3, 2)) * -1 + tmp5 = einsum(tmp4, (0, 1, 2, 3), t2, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + rdm2.oovv = tmp5.copy() * 2 + rdm2.oovv += tmp5 * 2 + tmp8 = einsum(t2, (0, 1, 2, 3), tmp7, (4, 0, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp7 + tmp14 = einsum(tmp13, (0, 1), t2, (2, 3, 1, 4), (2, 3, 4, 0), optimize=True) * 2 + del tmp13 + tmp15 = einsum(tmp1, (0, 1), t2, (0, 2, 3, 4), (2, 1, 3, 4), optimize=True) + del tmp1 + tmp19 = einsum(l2, (0, 1, 2, 3), t2, (4, 2, 1, 5), (3, 4, 0, 5), optimize=True) + rdm2.vovo = tmp19.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.vovo += tmp19.transpose((2, 1, 3, 0)) * -1 + rdm2.ovov += tmp19.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp19.transpose((1, 2, 0, 3)) * -1 + tmp17 = einsum(t2, (0, 1, 2, 3), l2, (4, 2, 5, 1), (5, 0, 4, 3), optimize=True) + rdm2.voov += tmp17.transpose((2, 1, 0, 3)) * -1 + rdm2.voov += tmp17.transpose((2, 1, 0, 3)) * -1 + rdm2.ovvo += tmp17.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp17.transpose((1, 2, 3, 0)) * -1 + tmp2 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 1, 0), (2, 3, 5, 4), optimize=True) + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((2, 3, 1, 0)) * -1 + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp2.transpose((2, 3, 1, 0)) * -1 + tmp29 = einsum(t2, (0, 1, 2, 3), l2, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + rdm2.vvvv = tmp29.transpose((1, 0, 3, 2)).copy() + rdm2.vvvv += tmp29.transpose((1, 0, 2, 3)) * -1 + rdm2.vvvv += tmp29.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp29.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp29.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp29.transpose((1, 0, 2, 3)) * -1 + del tmp29 + tmp27 = einsum(t2, (0, 1, 2, 3), tmp12, (0, 1, 3, 4), (2, 4), optimize=True) + del tmp12 + rdm2.vovo += einsum(delta.oo, (0, 1), tmp27, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.vovo += einsum(delta.oo, (0, 1), tmp27, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.vovo += einsum(delta.oo, (0, 1), tmp27, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.vovo += einsum(delta.oo, (0, 1), tmp27, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.voov += einsum(delta.oo, (0, 1), tmp27, (2, 3), (3, 1, 0, 2), optimize=True) * -1 + rdm2.voov += einsum(delta.oo, (0, 1), tmp27, (2, 3), (3, 1, 0, 2), optimize=True) * -1 + del tmp27 + tmp26 = einsum(tmp25, (0, 1, 2, 3), t2, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp25 + rdm2.vovo += tmp26.transpose((3, 0, 2, 1)) * -1 + rdm2.vovo += tmp26.transpose((3, 0, 2, 1)) * -1 + rdm2.ovvo += tmp26.transpose((0, 3, 2, 1)) + rdm2.ovvo += tmp26.transpose((0, 3, 2, 1)) + del tmp26 + tmp28 = einsum(t2, (0, 1, 2, 3), tmp6, (0, 4, 3, 5), (1, 4, 2, 5), optimize=True) + del tmp6 + rdm2.vovo += tmp28.transpose((3, 0, 2, 1)) * -1 + rdm2.vovo += tmp28.transpose((3, 0, 2, 1)) * -1 + del tmp28 + tmp24 = einsum(l2, (0, 1, 2, 3), tmp23, (2, 4, 5, 0), (3, 4, 1, 5), optimize=True) + del tmp23 + rdm2.voov += tmp24.transpose((2, 1, 0, 3)) + rdm2.voov += tmp24.transpose((2, 1, 0, 3)) + rdm2.ovov += tmp24.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp24.transpose((1, 2, 0, 3)) * -1 + del tmp24 + tmp22 = einsum(l2, (0, 1, 2, 3), tmp21, (2, 4, 5, 1), (3, 4, 0, 5), optimize=True) + del tmp21 + rdm2.voov += tmp22.transpose((2, 1, 0, 3)) * -1 + rdm2.voov += tmp22.transpose((2, 1, 0, 3)) * -1 + rdm2.ovov += tmp22.transpose((1, 2, 0, 3)) + rdm2.ovov += tmp22.transpose((1, 2, 0, 3)) + del tmp22 + tmp9 = tmp5.copy() * 2 + del tmp5 + tmp9 += tmp8.transpose((1, 0, 3, 2)) + del tmp8 + rdm2.oovv += tmp9.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp9 + rdm2.oovv += tmp9.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp9 + del tmp9 + tmp10 = einsum(t2, (0, 1, 2, 3), tmp4, (4, 0, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp4 + rdm2.oovv += tmp10 * -1 + rdm2.oovv += tmp10.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp10.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp10.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp10 * -1 + rdm2.oovv += tmp10.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp10 * -1 + rdm2.oovv += tmp10.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp10 * -1 + rdm2.oovv += tmp10.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp10.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp10.transpose((1, 0, 3, 2)) * -1 + del tmp10 + tmp16 = tmp14.transpose((1, 0, 2, 3)).copy() + del tmp14 + tmp16 += tmp15.transpose((0, 1, 3, 2)) + del tmp15 + rdm2.oovv += tmp16.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp16.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp16.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp16 * -1 + rdm2.oovv += tmp16.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp16 * -1 + rdm2.oovv += tmp16.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp16 * -1 + rdm2.oovv += tmp16.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp16.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp16.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp16 * -1 + del tmp16 + tmp20 = einsum(tmp19, (0, 1, 2, 3), t2, (4, 0, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp19 + rdm2.oovv += tmp20.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp20.transpose((0, 1, 3, 2)) + del tmp20 + tmp18 = einsum(tmp17, (0, 1, 2, 3), t2, (4, 0, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp17 + rdm2.oovv += tmp18 + rdm2.oovv += tmp18 + del tmp18 + tmp11 = einsum(t2, (0, 1, 2, 3), tmp2, (0, 1, 4, 5), (4, 5, 2, 3), optimize=True) + del tmp2 + rdm2.oovv += tmp11.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp11 + rdm2.oovv += tmp11 + rdm2.oovv += tmp11 + rdm2.oovv += tmp11.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp11 + del tmp11 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + del delta + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.vvoo = l2.transpose((0, 1, 3, 2)).copy() * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((0, 1, 3, 2)) * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.ooov = np.zeros((t2.shape[0], t2.shape[0], t2.shape[0], t2.shape[-1])) + rdm2.oovo = np.zeros((t2.shape[0], t2.shape[0], t2.shape[-1], t2.shape[0])) + rdm2.ovoo = np.zeros((t2.shape[0], t2.shape[-1], t2.shape[0], t2.shape[0])) + rdm2.vooo = np.zeros((t2.shape[-1], t2.shape[0], t2.shape[0], t2.shape[0])) + rdm2.ovvv = np.zeros((t2.shape[0], t2.shape[-1], t2.shape[-1], t2.shape[-1])) + rdm2.vovv = np.zeros((t2.shape[-1], t2.shape[0], t2.shape[-1], t2.shape[-1])) + rdm2.vvov = np.zeros((t2.shape[-1], t2.shape[-1], t2.shape[0], t2.shape[-1])) + rdm2.vvvo = np.zeros((t2.shape[-1], t2.shape[-1], t2.shape[-1], t2.shape[0])) + rdm2 = pack_2e(rdm2.oooo, rdm2.ooov, rdm2.oovo, rdm2.ovoo, rdm2.vooo, rdm2.oovv, rdm2.ovov, rdm2.ovvo, rdm2.voov, rdm2.vovo, rdm2.vvoo, rdm2.ovvv, rdm2.vovv, rdm2.vvov, rdm2.vvvo, rdm2.vvvv) + rdm2 = rdm2.swapaxes(1, 2) + + return rdm2 + diff --git a/ebcc/codegen/RDFCCSD.py b/ebcc/codegen/RDFCCSD.py new file mode 100644 index 00000000..a3934d71 --- /dev/null +++ b/ebcc/codegen/RDFCCSD.py @@ -0,0 +1,1476 @@ +""" +Code generated by `albert`: +https://github.com/obackhouse/albert + + * date: 2024-07-18T20:37:28.210373 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + * albert version: 0.0.0 + * caller: /home/ollie/git/albert/albert/codegen/einsum.py + * node: ollie-desktop + * system: Linux + * processor: x86_64 + * release: 6.5.0-44-generic +""" + +from ebcc import numpy as np +from ebcc.util import pack_2e, einsum, direct_sum, Namespace + + +def energy(f=None, t1=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:37:28.976923. + + Parameters + ---------- + f : array + Fock matrix. + t1 : array + T1 amplitudes. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + e_cc : float + Coupled cluster energy. + """ + + tmp3 = einsum(v.xov, (0, 1, 2), t1, (3, 2), (3, 1, 0), optimize=True) + tmp0 = einsum(t1, (0, 1), v.xov, (2, 0, 1), (2,), optimize=True) + tmp1 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp1 += t2.transpose((1, 0, 3, 2)) * 2 + tmp4 = f.ov.copy() * 2 + tmp4 += einsum(v.xov, (0, 1, 2), tmp3, (1, 3, 0), (3, 2), optimize=True) * -1 + del tmp3 + e_cc = einsum(tmp4, (0, 1), t1, (0, 1), (), optimize=True) + del tmp4 + tmp2 = einsum(tmp0, (0,), t1, (1, 2), (1, 2, 0), optimize=True) + del tmp0 + tmp2 += einsum(v.xov, (0, 1, 2), tmp1, (1, 3, 2, 4), (3, 4, 0), optimize=True) * 0.5 + del tmp1 + e_cc += einsum(v.xov, (0, 1, 2), tmp2, (1, 2, 0), (), optimize=True) * 2 + del tmp2 + + return e_cc + +def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:37:54.219067. + + Parameters + ---------- + f : array + Fock matrix. + t1 : array + T1 amplitudes. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + t1new : array + Updated T1 residuals. + t2new : array + Updated T2 residuals. + """ + + tmp0 = einsum(t1, (0, 1), v.xov, (2, 0, 1), (2,), optimize=True) + tmp2 = einsum(v.xov, (0, 1, 2), t1, (3, 2), (3, 1, 0), optimize=True) + tmp1 = einsum(tmp0, (0,), v.xov, (0, 1, 2), (1, 2), optimize=True) + t1new = tmp1.copy() * 2 + tmp9 = einsum(v.xov, (0, 1, 2), tmp2, (1, 3, 0), (3, 2), optimize=True) + tmp33 = einsum(v.xov, (0, 1, 2), v.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp38 = t2.transpose((1, 0, 3, 2)).copy() + tmp38 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + tmp31 = einsum(tmp2, (0, 1, 2), v.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) + tmp19 = einsum(v.xov, (0, 1, 2), t2, (3, 1, 2, 4), (3, 4, 0), optimize=True) + t2new = einsum(tmp19, (0, 1, 2), tmp19, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp36 = tmp1.copy() * 2 + tmp36 += tmp9 * -1 + tmp34 = tmp33.transpose((1, 0, 2, 3)).copy() * -1 + tmp34 += tmp33.transpose((2, 1, 0, 3)) * 2 + tmp39 = einsum(v.xov, (0, 1, 2), tmp38, (1, 3, 4, 2), (3, 4, 0), optimize=True) + del tmp38 + tmp11 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp11 += t2.transpose((1, 0, 3, 2)) * 2 + tmp13 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp13 += t2.transpose((1, 0, 3, 2)) * 2 + tmp22 = einsum(t1, (0, 1), v.xvv, (2, 3, 1), (0, 3, 2), optimize=True) + t2new += einsum(tmp22, (0, 1, 2), tmp22, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp65 = tmp31.copy() * 2 + tmp65 += tmp31.transpose((0, 2, 1, 3)) * -1 + tmp18 = einsum(v.xov, (0, 1, 2), v.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + t2new += tmp18.transpose((1, 0, 3, 2)) + tmp53 = v.xov.transpose((1, 2, 0)).copy() + tmp53 += tmp19 * -1 + tmp32 = einsum(tmp31, (0, 1, 2, 3), t2, (4, 2, 3, 5), (0, 4, 1, 5), optimize=True) + del tmp31 + tmp37 = einsum(tmp36, (0, 1), t2, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) + tmp35 = einsum(tmp34, (0, 1, 2, 3), t2, (0, 4, 3, 5), (1, 2, 4, 5), optimize=True) + del tmp34 + tmp40 = einsum(v.xoo, (0, 1, 2), tmp39, (3, 4, 0), (1, 2, 3, 4), optimize=True) + tmp28 = einsum(v.xov, (0, 1, 2), tmp11, (1, 3, 2, 4), (3, 4, 0), optimize=True) + tmp6 = einsum(v.xoo, (0, 1, 2), t1, (2, 3), (1, 3, 0), optimize=True) + tmp14 = einsum(v.xov, (0, 1, 2), tmp13, (1, 3, 2, 4), (3, 4, 0), optimize=True) + del tmp13 + tmp77 = einsum(v.xov, (0, 1, 2), v.xvv, (0, 3, 4), (1, 3, 4, 2), optimize=True) + tmp60 = einsum(tmp22, (0, 1, 2), v.xov, (2, 0, 3), (3, 1), optimize=True) + tmp59 = einsum(tmp0, (0,), v.xvv, (0, 1, 2), (1, 2), optimize=True) + tmp63 = einsum(t2, (0, 1, 2, 3), tmp33, (4, 1, 5, 2), (0, 4, 5, 3), optimize=True) + del tmp33 + tmp66 = einsum(tmp65, (0, 1, 2, 3), t2, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) + del tmp65 + tmp64 = einsum(tmp2, (0, 1, 2), tmp19, (3, 4, 2), (0, 3, 1, 4), optimize=True) + del tmp19 + tmp20 = einsum(t2, (0, 1, 2, 3), tmp18, (1, 4, 5, 2), (0, 4, 3, 5), optimize=True) + t2new += einsum(t2, (0, 1, 2, 3), tmp20, (4, 1, 5, 2), (0, 4, 5, 3), optimize=True) + tmp54 = einsum(v.xov, (0, 1, 2), tmp53, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp53 + tmp24 = einsum(v.xoo, (0, 1, 2), v.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + tmp12 = einsum(v.xoo, (0, 1, 2), tmp0, (0,), (1, 2), optimize=True) + tmp69 = einsum(v.xoo, (0, 1, 2), tmp2, (2, 3, 0), (1, 3), optimize=True) + tmp41 = tmp32.transpose((0, 2, 1, 3)).copy() + del tmp32 + tmp41 += tmp35.transpose((2, 1, 0, 3)) * -1 + del tmp35 + tmp41 += tmp37.transpose((2, 0, 1, 3)) * -1 + del tmp37 + tmp41 += tmp40.transpose((2, 1, 0, 3)) + del tmp40 + tmp29 = v.xov.transpose((1, 2, 0)).copy() + tmp29 += tmp6 * -1 + tmp29 += tmp28 + del tmp28 + tmp26 = einsum(tmp2, (0, 1, 2), v.xvv, (2, 3, 4), (0, 1, 3, 4), optimize=True) + tmp43 = einsum(tmp36, (0, 1), t1, (2, 1), (0, 2), optimize=True) + del tmp36 + tmp82 = einsum(tmp14, (0, 1, 2), v.xov, (2, 3, 1), (0, 3), optimize=True) + tmp78 = einsum(t2, (0, 1, 2, 3), tmp77, (4, 5, 3, 2), (0, 1, 4, 5), optimize=True) + del tmp77 + tmp80 = einsum(tmp14, (0, 1, 2), v.xov, (2, 0, 3), (1, 3), optimize=True) * 0.5 + tmp61 = tmp59.transpose((1, 0)).copy() * 2 + del tmp59 + tmp61 += tmp60 * -1 + del tmp60 + tmp67 = tmp63.copy() + del tmp63 + tmp67 += tmp64 + del tmp64 + tmp67 += tmp66.transpose((0, 2, 1, 3)) * -1 + del tmp66 + tmp57 = tmp6.copy() + tmp57 += tmp39 + del tmp39 + tmp55 = tmp24.transpose((1, 0, 3, 2)).copy() + tmp55 += tmp20 * -1 + del tmp20 + tmp55 += tmp54 * -2 + del tmp54 + tmp70 = tmp69.transpose((1, 0)).copy() * -1 + del tmp69 + tmp70 += tmp12.transpose((1, 0)) * 2 + tmp50 = einsum(tmp2, (0, 1, 2), v.xoo, (2, 3, 4), (0, 4, 3, 1), optimize=True) + tmp48 = einsum(t2, (0, 1, 2, 3), f.ov, (4, 3), (4, 0, 1, 2), optimize=True) + tmp46 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) + tmp74 = einsum(tmp22, (0, 1, 2), tmp2, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp25 = einsum(t2, (0, 1, 2, 3), tmp24, (4, 1, 5, 2), (0, 4, 3, 5), optimize=True) + del tmp24 + tmp42 = einsum(tmp41, (0, 1, 2, 3), t1, (1, 4), (0, 2, 3, 4), optimize=True) + del tmp41 + tmp23 = einsum(f.vv, (0, 1), t2, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + tmp30 = einsum(tmp29, (0, 1, 2), tmp22, (3, 4, 2), (0, 3, 1, 4), optimize=True) + del tmp22, tmp29 + tmp27 = einsum(t2, (0, 1, 2, 3), tmp26, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) + tmp44 = einsum(tmp43, (0, 1), t2, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) + del tmp43 + tmp83 = einsum(tmp82, (0, 1), t2, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) + del tmp82 + tmp79 = einsum(tmp78, (0, 1, 2, 3), t1, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp78 + tmp81 = einsum(t2, (0, 1, 2, 3), tmp80, (4, 2), (0, 1, 4, 3), optimize=True) * 2 + del tmp80 + tmp90 = tmp18.transpose((1, 0, 2, 3)).copy() * 2 + tmp90 += tmp18.transpose((1, 0, 3, 2)) * -1 + tmp62 = einsum(t2, (0, 1, 2, 3), tmp61, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp61 + tmp68 = einsum(tmp67, (0, 1, 2, 3), t1, (2, 4), (0, 1, 3, 4), optimize=True) + del tmp67 + tmp58 = einsum(v.xov, (0, 1, 2), tmp57, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp57 + tmp56 = einsum(t2, (0, 1, 2, 3), tmp55, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp55 + tmp71 = einsum(tmp70, (0, 1), t2, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) + del tmp70 + tmp88 = einsum(t1, (0, 1), tmp18, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) + tmp51 = einsum(t2, (0, 1, 2, 3), tmp50, (4, 1, 5, 0), (4, 5, 3, 2), optimize=True) + del tmp50 + tmp49 = einsum(tmp48, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp48 + tmp47 = einsum(t2, (0, 1, 2, 3), tmp46, (1, 4), (4, 0, 2, 3), optimize=True) + del tmp46 + tmp75 = einsum(t1, (0, 1), tmp74, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp74 + tmp73 = einsum(t2, (0, 1, 2, 3), tmp26, (4, 1, 5, 2), (4, 0, 3, 5), optimize=True) + del tmp26 + tmp3 = v.xoo.transpose((2, 1, 0)).copy() + tmp3 += tmp2.transpose((1, 0, 2)) + tmp16 = f.ov.copy() + tmp16 += tmp9 * -1 + tmp15 = tmp6.copy() * -1 + tmp15 += einsum(tmp0, (0,), t1, (1, 2), (1, 2, 0), optimize=True) * 2 + tmp15 += tmp14 + del tmp14 + tmp7 = einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) * 0.5 + tmp7 += t2.transpose((1, 0, 2, 3)) * -1 + tmp7 += t2.transpose((1, 0, 3, 2)) * 0.5 + tmp45 = tmp23.copy() + del tmp23 + tmp45 += tmp25 * -1 + del tmp25 + tmp45 += tmp27 * -1 + del tmp27 + tmp45 += tmp30.transpose((1, 0, 2, 3)) + del tmp30 + tmp45 += tmp42.transpose((0, 1, 3, 2)) + del tmp42 + tmp45 += tmp44.transpose((0, 1, 3, 2)) * -1 + del tmp44 + t2new += tmp45.transpose((1, 0, 2, 3)) + t2new += tmp45.transpose((0, 1, 3, 2)) + del tmp45 + tmp21 = einsum(t2, (0, 1, 2, 3), tmp18, (4, 5, 3, 2), (0, 1, 5, 4), optimize=True) + del tmp18 + t2new += einsum(t2, (0, 1, 2, 3), tmp21, (4, 5, 1, 0), (5, 4, 2, 3), optimize=True) + del tmp21 + tmp84 = tmp79.copy() + del tmp79 + tmp84 += tmp81.transpose((1, 0, 3, 2)) + del tmp81 + tmp84 += tmp83.transpose((1, 0, 3, 2)) + del tmp83 + t2new += tmp84.transpose((1, 0, 3, 2)) * -1 + t2new += tmp84 * -1 + del tmp84 + tmp91 = einsum(t2, (0, 1, 2, 3), tmp90, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp90 + t2new += einsum(t2, (0, 1, 2, 3), tmp91, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * 2 + del tmp91 + tmp72 = tmp56.transpose((1, 0, 3, 2)).copy() + del tmp56 + tmp72 += tmp58 + del tmp58 + tmp72 += tmp62.transpose((1, 0, 3, 2)) * -1 + del tmp62 + tmp72 += tmp68.transpose((0, 1, 3, 2)) * -1 + del tmp68 + tmp72 += tmp71.transpose((1, 0, 3, 2)) + del tmp71 + t2new += tmp72.transpose((1, 0, 3, 2)) * -1 + t2new += tmp72 * -1 + del tmp72 + tmp89 = einsum(v.xvv, (0, 1, 2), v.xvv, (0, 3, 4), (2, 3, 4, 1), optimize=True) + tmp89 += einsum(t1, (0, 1), tmp88, (0, 2, 3, 4), (4, 1, 3, 2), optimize=True) + del tmp88 + t2new += einsum(t2, (0, 1, 2, 3), tmp89, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) + del tmp89 + tmp86 = einsum(v.xoo, (0, 1, 2), v.xoo, (0, 3, 4), (4, 1, 2, 3), optimize=True) + tmp86 += einsum(tmp2, (0, 1, 2), tmp2, (3, 4, 2), (1, 3, 4, 0), optimize=True) + del tmp2 + tmp87 = t2.transpose((1, 0, 3, 2)).copy() + tmp87 += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + t2new += einsum(tmp87, (0, 1, 2, 3), tmp86, (0, 4, 1, 5), (4, 5, 3, 2), optimize=True) + del tmp87, tmp86 + tmp85 = einsum(f.oo, (0, 1), t2, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + t2new += tmp85.transpose((1, 0, 2, 3)) * -1 + t2new += tmp85.transpose((0, 1, 3, 2)) * -1 + del tmp85 + tmp52 = tmp47.copy() + del tmp47 + tmp52 += tmp49 + del tmp49 + tmp52 += tmp51 * -1 + del tmp51 + t2new += tmp52.transpose((1, 0, 2, 3)) * -1 + t2new += tmp52.transpose((0, 1, 3, 2)) * -1 + del tmp52 + tmp76 = tmp73.copy() + del tmp73 + tmp76 += tmp75 + del tmp75 + t2new += tmp76.transpose((1, 0, 3, 2)) * -1 + t2new += tmp76 * -1 + del tmp76 + tmp4 = einsum(v.xov, (0, 1, 2), tmp3, (3, 4, 0), (4, 1, 3, 2), optimize=True) + del tmp3 + tmp5 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp5 += t2.transpose((1, 0, 3, 2)) * -1 + t1new += einsum(tmp5, (0, 1, 2, 3), tmp4, (4, 0, 1, 3), (4, 2), optimize=True) * -1 + del tmp5, tmp4 + tmp17 = f.oo.transpose((1, 0)).copy() + tmp17 += tmp12.transpose((1, 0)) * 2 + del tmp12 + tmp17 += einsum(tmp15, (0, 1, 2), v.xov, (2, 3, 1), (3, 0), optimize=True) + del tmp15 + tmp17 += einsum(tmp16, (0, 1), t1, (2, 1), (0, 2), optimize=True) + del tmp16 + t1new += einsum(t1, (0, 1), tmp17, (0, 2), (2, 1), optimize=True) * -1 + del tmp17 + tmp10 = f.ov.copy() + tmp10 += tmp1 * 2 + del tmp1 + tmp10 += tmp9 * -1 + del tmp9 + t1new += einsum(tmp11, (0, 1, 2, 3), tmp10, (0, 2), (1, 3), optimize=True) + del tmp11, tmp10 + tmp8 = tmp6.copy() * 0.5 + del tmp6 + tmp8 += einsum(tmp0, (0,), t1, (1, 2), (1, 2, 0), optimize=True) * -1 + del tmp0 + tmp8 += einsum(v.xov, (0, 1, 2), tmp7, (1, 3, 4, 2), (3, 4, 0), optimize=True) + del tmp7 + t1new += einsum(v.xvv, (0, 1, 2), tmp8, (3, 1, 0), (3, 2), optimize=True) * -2 + del tmp8 + t1new += f.ov + t1new += einsum(t1, (0, 1), f.vv, (2, 1), (0, 2), optimize=True) + + return {f"t1new": t1new, f"t2new": t2new} + +def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:38:50.254515. + + Parameters + ---------- + f : array + Fock matrix. + l1 : array + L1 amplitudes. + l2 : array + L2 amplitudes. + t1 : array + T1 amplitudes. + t2 : array + T2 amplitudes. + v : array + Electron repulsion integrals. + + Returns + ------- + l1new : array + Updated L1 residuals. + l2new : array + Updated L2 residuals. + """ + + tmp5 = einsum(v.xov, (0, 1, 2), t1, (3, 2), (3, 1, 0), optimize=True) + tmp13 = einsum(t1, (0, 1), v.xov, (2, 0, 1), (2,), optimize=True) + tmp93 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp93 += t2.transpose((1, 0, 3, 2)) * 2 + tmp21 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp21 += t2.transpose((1, 0, 3, 2)) * 2 + tmp28 = t2.transpose((1, 0, 2, 3)).copy() + tmp28 += t2.transpose((1, 0, 3, 2)) * -0.5 + tmp15 = einsum(tmp5, (0, 1, 2), v.xov, (2, 0, 3), (1, 3), optimize=True) + tmp14 = einsum(tmp13, (0,), v.xov, (0, 1, 2), (1, 2), optimize=True) + tmp33 = einsum(l2, (0, 1, 2, 3), t1, (4, 0), (3, 2, 4, 1), optimize=True) + tmp0 = einsum(t1, (0, 1), v.xvv, (2, 3, 1), (0, 3, 2), optimize=True) + tmp94 = einsum(v.xov, (0, 1, 2), tmp93, (1, 3, 2, 4), (3, 4, 0), optimize=True) + del tmp93 + tmp7 = einsum(v.xov, (0, 1, 2), v.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + l2new = tmp7.transpose((3, 2, 1, 0)).copy() + tmp78 = v.xoo.transpose((2, 1, 0)).copy() + tmp78 += tmp5.transpose((1, 0, 2)) + tmp22 = einsum(v.xov, (0, 1, 2), tmp21, (1, 3, 2, 4), (3, 4, 0), optimize=True) + tmp20 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp20 += t2.transpose((1, 0, 3, 2)) + tmp48 = einsum(l2, (0, 1, 2, 3), tmp28, (2, 4, 1, 0), (3, 4), optimize=True) + tmp47 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + tmp89 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp89 += t2.transpose((1, 0, 3, 2)) * -1 + tmp103 = tmp14.copy() * 2 + tmp103 += tmp15 * -1 + tmp98 = tmp33.copy() * 2 + tmp98 += tmp33.transpose((1, 0, 2, 3)) * -1 + tmp96 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp96 += l2.transpose((3, 2, 1, 0)) * 2 + tmp95 = v.xov.transpose((1, 2, 0)).copy() + tmp95 += tmp0 + tmp95 += tmp94 + del tmp94 + tmp8 = einsum(t2, (0, 1, 2, 3), tmp7, (4, 5, 3, 2), (0, 1, 5, 4), optimize=True) + l2new += einsum(l2, (0, 1, 2, 3), tmp8, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) + tmp9 = einsum(tmp5, (0, 1, 2), tmp5, (3, 4, 2), (0, 3, 1, 4), optimize=True) + tmp79 = einsum(tmp78, (0, 1, 2), v.xvv, (2, 3, 4), (0, 1, 3, 4), optimize=True) + del tmp78 + tmp77 = einsum(t2, (0, 1, 2, 3), tmp7, (4, 1, 2, 5), (0, 4, 3, 5), optimize=True) + tmp120 = einsum(tmp22, (0, 1, 2), v.xov, (2, 3, 1), (3, 0), optimize=True) * 0.5 + tmp59 = einsum(tmp13, (0,), v.xoo, (0, 1, 2), (1, 2), optimize=True) + tmp36 = einsum(tmp20, (0, 1, 2, 3), l2, (2, 4, 0, 1), (4, 3), optimize=True) * 2 + tmp49 = tmp47.copy() * 0.5 + tmp49 += tmp48 + del tmp48 + tmp90 = einsum(tmp7, (0, 1, 2, 3), tmp89, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp89 + tmp104 = einsum(t1, (0, 1), tmp103, (2, 1), (0, 2), optimize=True) + tmp60 = einsum(v.xoo, (0, 1, 2), tmp5, (1, 3, 0), (2, 3), optimize=True) + tmp99 = einsum(v.xoo, (0, 1, 2), tmp98, (3, 1, 2, 4), (3, 4, 0), optimize=True) + tmp97 = einsum(tmp96, (0, 1, 2, 3), tmp95, (0, 2, 4), (1, 3, 4), optimize=True) + del tmp96, tmp95 + tmp100 = einsum(tmp5, (0, 1, 2), tmp98, (3, 0, 1, 4), (3, 4, 2), optimize=True) + del tmp98 + tmp54 = einsum(l2, (0, 1, 2, 3), tmp28, (2, 4, 1, 0), (3, 4), optimize=True) * 2 + tmp10 = tmp8.copy() + del tmp8 + tmp10 += tmp9 + tmp3 = einsum(v.xov, (0, 1, 2), v.xvv, (0, 3, 4), (1, 3, 4, 2), optimize=True) + tmp67 = einsum(f.ov, (0, 1), t1, (2, 1), (0, 2), optimize=True) + tmp80 = tmp77.copy() * -1 + del tmp77 + tmp80 += tmp79.transpose((1, 0, 3, 2)) + tmp73 = einsum(v.xov, (0, 1, 2), v.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp25 = einsum(v.xoo, (0, 1, 2), tmp5, (3, 4, 0), (3, 1, 2, 4), optimize=True) + tmp70 = einsum(l1, (0, 1), v.xvv, (2, 3, 0), (1, 3, 2), optimize=True) + tmp75 = einsum(tmp5, (0, 1, 2), v.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) + tmp121 = tmp59.transpose((1, 0)).copy() + tmp121 += tmp120.transpose((1, 0)) + del tmp120 + tmp118 = einsum(tmp22, (0, 1, 2), v.xov, (2, 0, 3), (3, 1), optimize=True) * 0.5 + tmp37 = einsum(tmp36, (0, 1), v.xov, (2, 3, 1), (3, 0, 2), optimize=True) * 0.5 + del tmp36 + tmp110 = einsum(v.xov, (0, 1, 2), tmp49, (3, 1), (3, 2, 0), optimize=True) * 2 + tmp91 = tmp90.transpose((1, 0, 3, 2)).copy() + del tmp90 + tmp91 += tmp79.transpose((1, 0, 3, 2)) + del tmp79 + tmp63 = einsum(tmp13, (0,), v.xvv, (0, 1, 2), (1, 2), optimize=True) + del tmp13 + tmp105 = tmp60.copy() + tmp105 += tmp104 * -1 + del tmp104 + tmp86 = einsum(l2, (0, 1, 2, 3), t2, (3, 4, 0, 5), (2, 4, 1, 5), optimize=True) + tmp101 = tmp97.copy() * -1 + del tmp97 + tmp101 += tmp99 + del tmp99 + tmp101 += tmp100 + del tmp100 + tmp115 = einsum(v.xov, (0, 1, 2), tmp0, (1, 3, 0), (2, 3), optimize=True) + tmp44 = einsum(t2, (0, 1, 2, 3), l2, (3, 2, 4, 5), (4, 5, 1, 0), optimize=True) + tmp45 = einsum(tmp33, (0, 1, 2, 3), t1, (4, 3), (1, 0, 2, 4), optimize=True) + tmp41 = einsum(l1, (0, 1), t2, (2, 3, 0, 4), (1, 3, 2, 4), optimize=True) + tmp35 = tmp33.copy() + tmp35 += tmp33.transpose((1, 0, 2, 3)) * -0.5 + tmp42 = tmp33.copy() * -1 + tmp42 += tmp33.transpose((1, 0, 2, 3)) * 2 + tmp53 = t2.transpose((1, 0, 2, 3)).copy() * 2 + tmp53 += t2.transpose((1, 0, 3, 2)) * -1 + tmp55 = tmp47.copy() + del tmp47 + tmp55 += tmp54 + del tmp54 + tmp18 = v.xoo.transpose((2, 1, 0)).copy() + tmp18 += tmp5.transpose((1, 0, 2)) + tmp24 = einsum(v.xoo, (0, 1, 2), v.xoo, (0, 3, 4), (3, 2, 1, 4), optimize=True) + tmp11 = einsum(t1, (0, 1), tmp10, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) * 2 + del tmp10 + tmp4 = einsum(t2, (0, 1, 2, 3), tmp3, (4, 3, 5, 2), (0, 1, 4, 5), optimize=True) + tmp6 = einsum(tmp0, (0, 1, 2), tmp5, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp16 = tmp14.copy() * 2 + tmp16 += tmp15 * -1 + tmp69 = einsum(f.ov, (0, 1), tmp33, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + tmp68 = einsum(l2, (0, 1, 2, 3), tmp67, (4, 3), (4, 2, 0, 1), optimize=True) + del tmp67 + tmp81 = einsum(l2, (0, 1, 2, 3), tmp80, (2, 4, 1, 5), (3, 4, 0, 5), optimize=True) + del tmp80 + tmp74 = einsum(tmp33, (0, 1, 2, 3), tmp73, (4, 0, 2, 5), (1, 4, 3, 5), optimize=True) + tmp72 = einsum(tmp25, (0, 1, 2, 3), l2, (4, 5, 1, 0), (2, 3, 5, 4), optimize=True) + tmp71 = einsum(v.xov, (0, 1, 2), tmp70, (3, 4, 0), (3, 1, 2, 4), optimize=True) + del tmp70 + tmp66 = einsum(l2, (0, 1, 2, 3), f.vv, (4, 1), (2, 3, 4, 0), optimize=True) + tmp76 = einsum(tmp75, (0, 1, 2, 3), tmp33, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) + tmp122 = einsum(tmp121, (0, 1), l2, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) * 2 + del tmp121 + tmp119 = einsum(tmp118, (0, 1), l2, (1, 2, 3, 4), (3, 4, 2, 0), optimize=True) * 2 + del tmp118 + tmp109 = einsum(tmp75, (0, 1, 2, 3), l1, (4, 0), (1, 2, 4, 3), optimize=True) + tmp112 = einsum(tmp37, (0, 1, 2), v.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) * 2 + tmp111 = einsum(v.xov, (0, 1, 2), tmp110, (3, 4, 0), (1, 3, 2, 4), optimize=True) + del tmp110 + tmp83 = einsum(tmp33, (0, 1, 2, 3), tmp73, (4, 1, 2, 5), (0, 4, 3, 5), optimize=True) + tmp85 = einsum(tmp33, (0, 1, 2, 3), tmp3, (2, 4, 3, 5), (1, 0, 5, 4), optimize=True) + del tmp3 + tmp107 = einsum(tmp33, (0, 1, 2, 3), tmp103, (2, 4), (0, 1, 3, 4), optimize=True) + tmp92 = einsum(tmp91, (0, 1, 2, 3), l2, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) + del tmp91 + tmp84 = einsum(tmp63, (0, 1), l2, (2, 1, 3, 4), (3, 4, 2, 0), optimize=True) + tmp106 = einsum(tmp105, (0, 1), l2, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) + del tmp105 + tmp88 = einsum(tmp33, (0, 1, 2, 3), tmp75, (1, 2, 4, 5), (0, 4, 3, 5), optimize=True) + del tmp75 + tmp87 = einsum(tmp86, (0, 1, 2, 3), tmp7, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp86 + tmp102 = einsum(tmp101, (0, 1, 2), v.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + del tmp101 + tmp114 = einsum(tmp73, (0, 1, 2, 3), l1, (4, 1), (0, 2, 4, 3), optimize=True) + del tmp73 + tmp116 = einsum(l2, (0, 1, 2, 3), tmp115, (4, 1), (2, 3, 0, 4), optimize=True) + del tmp115 + tmp34 = tmp33.copy() * 2 + tmp34 += tmp33.transpose((1, 0, 2, 3)) * -1 + tmp32 = l2.transpose((3, 2, 0, 1)).copy() * -0.5 + tmp32 += l2.transpose((3, 2, 1, 0)) + tmp38 = v.xoo.transpose((2, 1, 0)).copy() + tmp38 += tmp5 + tmp31 = v.xov.transpose((1, 2, 0)).copy() + tmp31 += tmp0 + tmp31 += tmp22 + tmp61 = f.ov.copy() + tmp61 += tmp14 * 2 + tmp61 += tmp15 * -1 + tmp46 = tmp44.transpose((1, 0, 2, 3)).copy() * -1 + tmp46 += tmp44.transpose((1, 0, 3, 2)) * 2 + tmp46 += tmp45 * 2 + tmp46 += tmp45.transpose((0, 1, 3, 2)) * -1 + tmp43 = tmp41.copy() * -1 + tmp43 += tmp41.transpose((0, 2, 1, 3)) * 0.5 + del tmp41 + tmp43 += einsum(t2, (0, 1, 2, 3), tmp42, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) * 0.5 + del tmp42 + tmp43 += einsum(t2, (0, 1, 2, 3), tmp35, (4, 0, 5, 3), (4, 5, 1, 2), optimize=True) + tmp40 = einsum(tmp21, (0, 1, 2, 3), l2, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) + tmp40 += einsum(tmp28, (0, 1, 2, 3), l2, (3, 4, 0, 5), (5, 1, 4, 2), optimize=True) * 2 + tmp50 = t1.copy() * -0.5 + tmp50 += einsum(tmp33, (0, 1, 2, 3), tmp28, (0, 1, 4, 3), (2, 4), optimize=True) + tmp50 += einsum(l1, (0, 1), tmp21, (1, 2, 0, 3), (2, 3), optimize=True) * -0.5 + del tmp21 + tmp50 += einsum(t1, (0, 1), tmp49, (0, 2), (2, 1), optimize=True) + tmp52 = einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) * 0.5 + tmp52 += einsum(tmp20, (0, 1, 2, 3), l2, (2, 4, 0, 1), (4, 3), optimize=True) + tmp56 = l1.transpose((1, 0)).copy() + tmp56 += t1 + tmp56 += einsum(tmp33, (0, 1, 2, 3), tmp53, (0, 1, 4, 3), (2, 4), optimize=True) * -1 + del tmp33, tmp53 + tmp56 += einsum(l1, (0, 1), tmp20, (1, 2, 0, 3), (2, 3), optimize=True) * 2 + tmp56 += einsum(tmp55, (0, 1), t1, (0, 2), (1, 2), optimize=True) * -1 + tmp23 = v.xov.transpose((1, 2, 0)).copy() + tmp23 += tmp22 + tmp1 = einsum(v.xoo, (0, 1, 2), tmp0, (3, 4, 0), (3, 1, 2, 4), optimize=True) + tmp19 = einsum(tmp18, (0, 1, 2), v.xov, (2, 3, 4), (3, 0, 1, 4), optimize=True) + tmp29 = tmp24.transpose((3, 2, 1, 0)).copy() * 0.5 + tmp29 += tmp25.transpose((1, 0, 3, 2)) * 0.5 + tmp29 += tmp25.transpose((3, 0, 2, 1)) * -1 + tmp26 = tmp24.transpose((3, 2, 1, 0)).copy() + tmp26 += tmp25.transpose((1, 0, 3, 2)) + tmp26 += tmp25.transpose((3, 0, 2, 1)) * -0.5 + del tmp25 + tmp2 = einsum(f.ov, (0, 1), t2, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) + tmp12 = tmp4.copy() * 2 + del tmp4 + tmp12 += tmp6 * 2 + del tmp6 + tmp12 += tmp11 * -1 + del tmp11 + tmp17 = einsum(tmp16, (0, 1), t2, (2, 3, 1, 4), (2, 3, 0, 4), optimize=True) + del tmp16 + tmp125 = tmp44.transpose((1, 0, 3, 2)).copy() + del tmp44 + tmp125 += tmp45 + del tmp45 + l2new += einsum(tmp7, (0, 1, 2, 3), tmp125, (4, 5, 0, 1), (3, 2, 5, 4), optimize=True) + del tmp7, tmp125 + tmp126 = tmp24.transpose((3, 2, 1, 0)).copy() + del tmp24 + tmp126 += tmp9.transpose((0, 3, 1, 2)) + del tmp9 + l2new += einsum(tmp126, (0, 1, 2, 3), l2, (4, 5, 0, 2), (5, 4, 1, 3), optimize=True) + del tmp126 + tmp82 = tmp66.copy() + del tmp66 + tmp82 += tmp68 * -1 + del tmp68 + tmp82 += tmp69 * -1 + del tmp69 + tmp82 += tmp71 + del tmp71 + tmp82 += tmp72 + del tmp72 + tmp82 += tmp74 + del tmp74 + tmp82 += tmp76 + del tmp76 + tmp82 += tmp81 * -1 + del tmp81 + l2new += tmp82.transpose((2, 3, 1, 0)) + l2new += tmp82.transpose((3, 2, 0, 1)) + del tmp82 + tmp123 = tmp119.transpose((1, 0, 2, 3)).copy() + del tmp119 + tmp123 += tmp122.transpose((0, 1, 3, 2)) + del tmp122 + l2new += tmp123.transpose((3, 2, 1, 0)) * -1 + l2new += tmp123.transpose((2, 3, 0, 1)) * -1 + del tmp123 + tmp113 = tmp109.copy() + del tmp109 + tmp113 += tmp111.transpose((1, 0, 2, 3)) + del tmp111 + tmp113 += tmp112.transpose((0, 1, 3, 2)) + del tmp112 + l2new += tmp113.transpose((2, 3, 1, 0)) * -1 + l2new += tmp113.transpose((3, 2, 0, 1)) * -1 + del tmp113 + tmp65 = einsum(v.xvv, (0, 1, 2), v.xvv, (0, 3, 4), (1, 4, 3, 2), optimize=True) + l2new += einsum(l2, (0, 1, 2, 3), tmp65, (4, 5, 1, 0), (4, 5, 2, 3), optimize=True) + del tmp65 + tmp108 = einsum(f.ov, (0, 1), l1, (2, 3), (0, 3, 1, 2), optimize=True) + tmp108 += tmp83 + del tmp83 + tmp108 += tmp84 * 2 + del tmp84 + tmp108 += tmp85 * -1 + del tmp85 + tmp108 += tmp87 + del tmp87 + tmp108 += tmp88 + del tmp88 + tmp108 += tmp92 * -1 + del tmp92 + tmp108 += tmp102.transpose((1, 0, 3, 2)) * -1 + del tmp102 + tmp108 += tmp106.transpose((0, 1, 3, 2)) + del tmp106 + tmp108 += tmp107 * -1 + del tmp107 + tmp108 += einsum(l1, (0, 1), tmp103, (2, 3), (1, 2, 0, 3), optimize=True) + del tmp103 + l2new += tmp108.transpose((3, 2, 1, 0)) + l2new += tmp108.transpose((2, 3, 0, 1)) + del tmp108 + tmp117 = tmp114.copy() + del tmp114 + tmp117 += tmp116 + del tmp116 + l2new += tmp117.transpose((3, 2, 1, 0)) * -1 + l2new += tmp117.transpose((2, 3, 0, 1)) * -1 + del tmp117 + tmp124 = einsum(l2, (0, 1, 2, 3), f.oo, (4, 3), (4, 2, 0, 1), optimize=True) + l2new += tmp124.transpose((2, 3, 1, 0)) * -1 + l2new += tmp124.transpose((3, 2, 0, 1)) * -1 + del tmp124 + tmp39 = einsum(tmp31, (0, 1, 2), tmp32, (0, 3, 1, 4), (3, 4, 2), optimize=True) * -1 + del tmp32 + tmp39 += einsum(v.xoo, (0, 1, 2), tmp34, (3, 1, 2, 4), (3, 4, 0), optimize=True) * 0.5 + del tmp34 + tmp39 += einsum(tmp35, (0, 1, 2, 3), tmp5, (1, 2, 4), (0, 3, 4), optimize=True) + tmp39 += tmp37 + del tmp37 + tmp39 += einsum(tmp38, (0, 1, 2), l1, (3, 0), (1, 3, 2), optimize=True) * 0.5 + del tmp38 + l1new = einsum(v.xvv, (0, 1, 2), tmp39, (3, 1, 0), (2, 3), optimize=True) * -2 + del tmp39 + tmp62 = f.oo.transpose((1, 0)).copy() + tmp62 += tmp59.transpose((1, 0)) * 2 + del tmp59 + tmp62 += tmp60 * -1 + del tmp60 + tmp62 += einsum(v.xov, (0, 1, 2), tmp22, (3, 2, 0), (3, 1), optimize=True) + del tmp22 + tmp62 += einsum(t1, (0, 1), tmp61, (2, 1), (0, 2), optimize=True) + del tmp61 + l1new += einsum(tmp62, (0, 1), l1, (2, 0), (2, 1), optimize=True) * -1 + del tmp62 + tmp58 = f.ov.copy() * 0.5 + tmp58 += tmp14 + del tmp14 + tmp58 += tmp15 * -0.5 + del tmp15 + l1new += einsum(tmp58, (0, 1), tmp49, (2, 0), (1, 2), optimize=True) * -4 + del tmp58 + tmp51 = einsum(l1, (0, 1), tmp0, (2, 0, 3), (2, 1, 3), optimize=True) * -1 + del tmp0 + tmp51 += einsum(tmp40, (0, 1, 2, 3), v.xvv, (4, 3, 2), (1, 0, 4), optimize=True) * -1 + del tmp40 + tmp51 += einsum(tmp31, (0, 1, 2), tmp35, (0, 3, 4, 1), (4, 3, 2), optimize=True) * -2 + del tmp35, tmp31 + tmp51 += einsum(v.xov, (0, 1, 2), tmp43, (3, 1, 4, 2), (4, 3, 0), optimize=True) * 2 + del tmp43 + tmp51 += einsum(tmp5, (0, 1, 2), tmp46, (0, 3, 1, 4), (4, 3, 2), optimize=True) + del tmp5 + tmp51 += einsum(v.xoo, (0, 1, 2), tmp46, (1, 3, 2, 4), (4, 3, 0), optimize=True) + del tmp46 + tmp51 += einsum(v.xov, (0, 1, 2), tmp50, (3, 2), (3, 1, 0), optimize=True) * 2 + del tmp50 + tmp51 += einsum(v.xoo, (0, 1, 2), tmp49, (1, 3), (3, 2, 0), optimize=True) * 2 + del tmp49 + l1new += einsum(tmp51, (0, 1, 2), v.xov, (2, 0, 3), (3, 1), optimize=True) + del tmp51 + tmp64 = f.vv.transpose((1, 0)).copy() + tmp64 += tmp63.transpose((1, 0)) * 2 + del tmp63 + l1new += einsum(l1, (0, 1), tmp64, (0, 2), (2, 1), optimize=True) + del tmp64 + tmp57 = einsum(tmp52, (0, 1), v.xvv, (2, 1, 0), (2,), optimize=True) * 2 + del tmp52 + tmp57 += einsum(v.xov, (0, 1, 2), tmp56, (1, 2), (0,), optimize=True) + del tmp56 + tmp57 += einsum(tmp55, (0, 1), v.xoo, (2, 1, 0), (2,), optimize=True) * -1 + del tmp55 + l1new += einsum(tmp57, (0,), v.xov, (0, 1, 2), (2, 1), optimize=True) * 2 + del tmp57 + tmp30 = tmp1.transpose((0, 2, 1, 3)).copy() * -1 + tmp30 += einsum(tmp19, (0, 1, 2, 3), tmp28, (1, 4, 3, 5), (2, 0, 4, 5), optimize=True) + del tmp28 + tmp30 += einsum(tmp18, (0, 1, 2), tmp23, (3, 4, 2), (1, 0, 3, 4), optimize=True) * 0.5 + tmp30 += einsum(t1, (0, 1), tmp29, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * -1 + del tmp29 + l1new += einsum(l2, (0, 1, 2, 3), tmp30, (3, 4, 2, 1), (0, 4), optimize=True) * 2 + del tmp30 + tmp27 = tmp1.transpose((0, 2, 1, 3)).copy() + del tmp1 + tmp27 += tmp2.transpose((1, 0, 2, 3)) + tmp27 += tmp2.transpose((2, 0, 1, 3)) * -2 + del tmp2 + tmp27 += tmp12.transpose((0, 2, 1, 3)) * -1 + tmp27 += tmp12.transpose((1, 2, 0, 3)) * 0.5 + del tmp12 + tmp27 += tmp17.transpose((1, 2, 0, 3)) + tmp27 += tmp17.transpose((0, 2, 1, 3)) * -2 + del tmp17 + tmp27 += einsum(tmp19, (0, 1, 2, 3), tmp20, (1, 4, 3, 5), (2, 0, 4, 5), optimize=True) * 2 + del tmp20, tmp19 + tmp27 += einsum(tmp18, (0, 1, 2), tmp23, (3, 4, 2), (1, 0, 3, 4), optimize=True) * -2 + del tmp18, tmp23 + tmp27 += einsum(t1, (0, 1), tmp26, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * 2 + del tmp26 + l1new += einsum(tmp27, (0, 1, 2, 3), l2, (3, 4, 2, 0), (4, 1), optimize=True) + del tmp27 + l1new += f.ov.transpose((1, 0)) + + return {f"l1new": l1new, f"l2new": l2new} + +def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:38:51.367630. + + Parameters + ---------- + l1 : array + L1 amplitudes. + l2 : array + L2 amplitudes. + t1 : array + T1 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm1 : array + One-particle reduced density matrix. + """ + + rdm1 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + tmp2 = einsum(l2, (0, 1, 2, 3), t1, (4, 0), (3, 2, 4, 1), optimize=True) + tmp0 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + rdm1.oo = tmp0.transpose((1, 0)).copy() * -2 + tmp5 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp5 += t2.transpose((1, 0, 3, 2)) + tmp7 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp7 += l2.transpose((3, 2, 1, 0)) * -1 + rdm1.vv = einsum(t2, (0, 1, 2, 3), tmp7, (0, 1, 4, 2), (4, 3), optimize=True) * 2 + del tmp7 + tmp3 = tmp2.copy() * -0.5 + tmp3 += tmp2.transpose((1, 0, 2, 3)) + del tmp2 + rdm1.ov = einsum(tmp3, (0, 1, 2, 3), t2, (1, 0, 3, 4), (2, 4), optimize=True) * -4 + del tmp3 + tmp4 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp4 += t2.transpose((1, 0, 3, 2)) * 2 + rdm1.ov += einsum(tmp4, (0, 1, 2, 3), l1, (2, 0), (1, 3), optimize=True) * 2 + del tmp4 + tmp6 = tmp0.copy() * 0.5 + del tmp0 + tmp6 += einsum(l2, (0, 1, 2, 3), tmp5, (2, 4, 0, 1), (3, 4), optimize=True) + del tmp5 + rdm1.ov += einsum(t1, (0, 1), tmp6, (0, 2), (2, 1), optimize=True) * -4 + del tmp6 + tmp1 = t2.transpose((1, 0, 2, 3)).copy() + tmp1 += t2.transpose((1, 0, 3, 2)) * -0.5 + rdm1.oo += einsum(tmp1, (0, 1, 2, 3), l2, (3, 2, 0, 4), (1, 4), optimize=True) * -4 + del tmp1 + rdm1.oo += delta.oo.transpose((1, 0)) * 2 + del delta + rdm1.ov += t1 * 2 + rdm1.vo = l1.copy() * 2 + rdm1.vv += einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) * 2 + rdm1 = np.block([[rdm1.oo, rdm1.ov], [rdm1.vo, rdm1.vv]]) + + return rdm1 + +def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:39:44.609793. + + Parameters + ---------- + l1 : array + L1 amplitudes. + l2 : array + L2 amplitudes. + t1 : array + T1 amplitudes. + t2 : array + T2 amplitudes. + + Returns + ------- + rdm2 : array + Two-particle reduced density matrix. + """ + + rdm2 = Namespace() + delta = Namespace( + oo=np.eye(t2.shape[0]), + vv=np.eye(t2.shape[-1]), + ) + tmp4 = einsum(l2, (0, 1, 2, 3), t1, (4, 0), (3, 2, 4, 1), optimize=True) + rdm2.vooo = tmp4.transpose((3, 2, 1, 0)).copy() + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.vooo += tmp4.transpose((3, 2, 1, 0)) + rdm2.vooo += tmp4.transpose((3, 2, 0, 1)) * -1 + rdm2.ovoo = tmp4.transpose((2, 3, 1, 0)).copy() * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 0, 1)) + rdm2.ovoo += tmp4.transpose((2, 3, 1, 0)) * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 1, 0)) * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 1, 0)) * -1 + rdm2.ovoo += tmp4.transpose((2, 3, 0, 1)) + tmp79 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp79 += t2.transpose((1, 0, 3, 2)) + tmp9 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp9 += t2.transpose((1, 0, 3, 2)) * 2 + tmp20 = tmp4.copy() * -1 + tmp20 += tmp4.transpose((1, 0, 2, 3)) * 2 + tmp18 = tmp4.copy() * -1 + tmp18 += tmp4.transpose((1, 0, 2, 3)) + tmp1 = t2.transpose((1, 0, 2, 3)).copy() * -0.5 + tmp1 += t2.transpose((1, 0, 3, 2)) + tmp45 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp45 += l2.transpose((3, 2, 1, 0)) * -1 + tmp87 = einsum(t1, (0, 1), tmp4, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + rdm2.voov = tmp87.transpose((2, 1, 0, 3)).copy() * -1 + rdm2.voov += tmp87.transpose((2, 1, 0, 3)) * -1 + rdm2.ovvo = tmp87.transpose((1, 2, 3, 0)).copy() * -1 + rdm2.ovvo += tmp87.transpose((1, 2, 3, 0)) * -1 + tmp80 = einsum(l2, (0, 1, 2, 3), tmp79, (2, 4, 1, 5), (4, 3, 5, 0), optimize=True) + del tmp79 + rdm2.voov += tmp80.transpose((3, 0, 1, 2)) * -1 + rdm2.voov += tmp80.transpose((3, 0, 1, 2)) * -1 + rdm2.ovov = tmp80.transpose((0, 3, 1, 2)).copy() + rdm2.ovov += tmp80.transpose((0, 3, 1, 2)) + tmp81 = einsum(l2, (0, 1, 2, 3), tmp9, (2, 4, 0, 5), (4, 3, 5, 1), optimize=True) + rdm2.voov += tmp81.transpose((3, 0, 1, 2)) + rdm2.voov += tmp81.transpose((3, 0, 1, 2)) + rdm2.ovov += tmp81.transpose((0, 3, 1, 2)) * -1 + rdm2.ovov += tmp81.transpose((0, 3, 1, 2)) * -1 + tmp62 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp62 += l2.transpose((3, 2, 1, 0)) * 2 + tmp102 = l2.transpose((3, 2, 0, 1)).copy() * 2 + tmp102 += l2.transpose((3, 2, 1, 0)) * -1 + tmp3 = einsum(l2, (0, 1, 2, 3), t2, (4, 5, 1, 0), (2, 3, 5, 4), optimize=True) + rdm2.oooo = tmp3.transpose((3, 2, 1, 0)).copy() + rdm2.oooo += tmp3.transpose((3, 2, 1, 0)) + tmp25 = einsum(tmp4, (0, 1, 2, 3), t2, (4, 0, 3, 5), (1, 2, 4, 5), optimize=True) + rdm2.oovo = tmp25.transpose((2, 1, 3, 0)).copy() + rdm2.oovo += tmp25.transpose((2, 1, 3, 0)) + rdm2.ooov = tmp25.transpose((1, 2, 0, 3)).copy() + rdm2.ooov += tmp25.transpose((1, 2, 0, 3)) + tmp21 = einsum(t2, (0, 1, 2, 3), tmp20, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) + del tmp20 + tmp5 = einsum(tmp4, (0, 1, 2, 3), t1, (4, 3), (0, 1, 4, 2), optimize=True) + rdm2.oooo += tmp5.transpose((3, 2, 1, 0)) + rdm2.oooo += tmp5.transpose((3, 2, 1, 0)) + tmp54 = l2.transpose((3, 2, 0, 1)).copy() + tmp54 += l2.transpose((3, 2, 1, 0)) * -1 + tmp16 = einsum(l1, (0, 1), t2, (2, 3, 0, 4), (1, 3, 2, 4), optimize=True) + rdm2.oovo += tmp16.transpose((1, 2, 3, 0)) * -1 + rdm2.oovo += tmp16.transpose((1, 2, 3, 0)) * -1 + rdm2.ooov += tmp16.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp16.transpose((2, 1, 0, 3)) * -1 + tmp19 = einsum(t2, (0, 1, 2, 3), tmp18, (4, 0, 5, 3), (4, 5, 1, 2), optimize=True) + tmp0 = einsum(l1, (0, 1), t1, (2, 0), (1, 2), optimize=True) + rdm2.ooov += einsum(t1, (0, 1), tmp0, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + rdm2.ooov += einsum(tmp0, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.ooov += einsum(t1, (0, 1), tmp0, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + rdm2.ooov += einsum(tmp0, (0, 1), t1, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp0, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(tmp0, (0, 1), delta.oo, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp0, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + tmp26 = einsum(tmp4, (0, 1, 2, 3), t2, (4, 1, 3, 5), (0, 2, 4, 5), optimize=True) + rdm2.oovo += tmp26.transpose((1, 2, 3, 0)) + rdm2.oovo += tmp26.transpose((1, 2, 3, 0)) + rdm2.ooov += tmp26.transpose((2, 1, 0, 3)) + rdm2.ooov += tmp26.transpose((2, 1, 0, 3)) + tmp12 = tmp4.copy() * 2 + tmp12 += tmp4.transpose((1, 0, 2, 3)) * -1 + tmp2 = einsum(tmp1, (0, 1, 2, 3), l2, (2, 3, 0, 4), (4, 1), optimize=True) * 2 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.oooo += einsum(tmp2, (0, 1), delta.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp33 = einsum(tmp1, (0, 1, 2, 3), l2, (2, 3, 0, 4), (4, 1), optimize=True) + del tmp1 + tmp112 = einsum(l2, (0, 1, 2, 3), t1, (3, 4), (2, 0, 1, 4), optimize=True) + rdm2.vvvo = tmp112.transpose((2, 1, 3, 0)).copy() + rdm2.vvvo += tmp112.transpose((1, 2, 3, 0)) * -1 + rdm2.vvvo += tmp112.transpose((2, 1, 3, 0)) + rdm2.vvvo += tmp112.transpose((2, 1, 3, 0)) + rdm2.vvvo += tmp112.transpose((2, 1, 3, 0)) + rdm2.vvvo += tmp112.transpose((1, 2, 3, 0)) * -1 + rdm2.vvov = tmp112.transpose((2, 1, 0, 3)).copy() * -1 + rdm2.vvov += tmp112.transpose((1, 2, 0, 3)) + rdm2.vvov += tmp112.transpose((1, 2, 0, 3)) + rdm2.vvov += tmp112.transpose((1, 2, 0, 3)) + rdm2.vvov += tmp112.transpose((2, 1, 0, 3)) * -1 + rdm2.vvov += tmp112.transpose((1, 2, 0, 3)) + tmp67 = einsum(t2, (0, 1, 2, 3), l2, (4, 2, 5, 1), (5, 0, 4, 3), optimize=True) + rdm2.voov += tmp67.transpose((2, 1, 0, 3)) * -1 + rdm2.voov += tmp67.transpose((2, 1, 0, 3)) * -1 + rdm2.ovvo += tmp67.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp67.transpose((1, 2, 3, 0)) * -1 + tmp52 = einsum(t2, (0, 1, 2, 3), tmp45, (0, 4, 5, 2), (4, 1, 5, 3), optimize=True) + rdm2.voov += tmp52.transpose((2, 1, 0, 3)) + rdm2.voov += tmp52.transpose((2, 1, 0, 3)) + rdm2.ovvo += tmp52.transpose((1, 2, 3, 0)) + rdm2.ovvo += tmp52.transpose((1, 2, 3, 0)) + tmp106 = tmp87.copy() + tmp106 += tmp80.transpose((1, 0, 3, 2)) + tmp106 += tmp81.transpose((1, 0, 3, 2)) * -1 + tmp83 = einsum(t1, (0, 1), l1, (2, 0), (2, 1), optimize=True) + tmp84 = einsum(t2, (0, 1, 2, 3), tmp62, (0, 1, 4, 3), (4, 2), optimize=True) + tmp95 = tmp81.transpose((1, 0, 3, 2)).copy() + del tmp81 + tmp95 += tmp80.transpose((1, 0, 3, 2)) * -1 + del tmp80 + tmp103 = einsum(t2, (0, 1, 2, 3), tmp102, (0, 4, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp102 + tmp23 = einsum(t1, (0, 1), tmp3, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + tmp71 = tmp25.copy() + del tmp25 + tmp71 += tmp21 * -1 + tmp46 = einsum(tmp45, (0, 1, 2, 3), t2, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) + del tmp45 + tmp6 = tmp3.transpose((1, 0, 3, 2)).copy() + tmp6 += tmp5 + rdm2.oooo += tmp6.transpose((2, 3, 0, 1)) + rdm2.oooo += tmp6.transpose((3, 2, 0, 1)) * -1 + rdm2.oooo += tmp6.transpose((2, 3, 0, 1)) + rdm2.oooo += tmp6.transpose((3, 2, 0, 1)) * -1 + tmp17 = einsum(t1, (0, 1), tmp5, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) + tmp55 = einsum(tmp54, (0, 1, 2, 3), t2, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) + rdm2.ovvo += tmp55.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp55.transpose((1, 2, 3, 0)) * -1 + tmp48 = tmp16.copy() + tmp48 += tmp19 + tmp48 += tmp21 * -1 + tmp10 = einsum(l1, (0, 1), tmp9, (1, 2, 0, 3), (2, 3), optimize=True) + del tmp9 + rdm2.oovo += einsum(tmp10, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.oovo += einsum(tmp10, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.oovo += einsum(tmp10, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.oovo += einsum(tmp10, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + tmp8 = einsum(tmp0, (0, 1), t1, (0, 2), (1, 2), optimize=True) + rdm2.oovv = einsum(t1, (0, 1), tmp8, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + rdm2.oovv += einsum(t1, (0, 1), tmp8, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + tmp74 = tmp16.copy() + tmp74 += tmp26 * -1 + del tmp26 + tmp13 = einsum(tmp12, (0, 1, 2, 3), t2, (1, 0, 4, 3), (2, 4), optimize=True) * 0.5 + tmp14 = einsum(t1, (0, 1), tmp2, (0, 2), (2, 1), optimize=True) * 0.5 + tmp63 = einsum(t2, (0, 1, 2, 3), tmp62, (0, 1, 4, 3), (4, 2), optimize=True) * 0.5 + del tmp62 + tmp34 = tmp0.copy() * 0.5 + tmp34 += tmp33 + del tmp33 + tmp31 = t2.transpose((1, 0, 2, 3)).copy() * -1 + tmp31 += t2.transpose((1, 0, 3, 2)) * 2 + tmp114 = einsum(tmp112, (0, 1, 2, 3), t1, (0, 4), (2, 1, 3, 4), optimize=True) + del tmp112 + rdm2.vvvv = tmp114.transpose((1, 0, 3, 2)).copy() + rdm2.vvvv += tmp114.transpose((1, 0, 3, 2)) + tmp113 = einsum(l2, (0, 1, 2, 3), t2, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) + rdm2.vvvv += tmp113.transpose((1, 0, 3, 2)) + rdm2.vvvv += tmp113.transpose((1, 0, 3, 2)) + tmp69 = einsum(l2, (0, 1, 2, 3), t2, (4, 3, 0, 5), (2, 4, 1, 5), optimize=True) + rdm2.vovo = tmp69.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.vovo += tmp69.transpose((2, 1, 3, 0)) * -1 + rdm2.ovov += tmp69.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp69.transpose((1, 2, 0, 3)) * -1 + tmp110 = tmp67.copy() + tmp110 += tmp87 + tmp110 += tmp52 * -1 + tmp107 = einsum(t1, (0, 1), tmp106, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp106 + tmp94 = einsum(t2, (0, 1, 2, 3), l1, (4, 1), (0, 4, 2, 3), optimize=True) + rdm2.vovv = tmp94.transpose((1, 0, 3, 2)).copy() + rdm2.vovv += tmp94.transpose((1, 0, 3, 2)) + rdm2.ovvv = tmp94.copy() + rdm2.ovvv += tmp94 + tmp98 = einsum(tmp4, (0, 1, 2, 3), t2, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) + rdm2.vovv += tmp98.transpose((1, 0, 2, 3)) * -1 + rdm2.vovv += tmp98.transpose((1, 0, 2, 3)) * -1 + rdm2.ovvv += tmp98.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp98.transpose((0, 1, 3, 2)) * -1 + tmp85 = tmp83.copy() + tmp85 += tmp84 + del tmp84 + rdm2.vovv += einsum(t1, (0, 1), tmp85, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.vovv += einsum(t1, (0, 1), tmp85, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.voov += einsum(delta.oo, (0, 1), tmp85, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.voov += einsum(delta.oo, (0, 1), tmp85, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.ovvo += einsum(delta.oo, (0, 1), tmp85, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovvo += einsum(delta.oo, (0, 1), tmp85, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovov += einsum(delta.oo, (0, 1), tmp85, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovov += einsum(delta.oo, (0, 1), tmp85, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovov += einsum(delta.oo, (0, 1), tmp85, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovov += einsum(delta.oo, (0, 1), tmp85, (2, 3), (1, 2, 0, 3), optimize=True) + tmp96 = einsum(tmp95, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + del tmp95 + tmp104 = tmp67.copy() + tmp104 += tmp87 + tmp104 += tmp103 * -1 + del tmp103 + tmp90 = tmp4.copy() + tmp90 += tmp4.transpose((1, 0, 2, 3)) * -1 + tmp88 = l2.transpose((3, 2, 0, 1)).copy() * -1 + tmp88 += l2.transpose((3, 2, 1, 0)) * 2 + tmp60 = einsum(tmp23, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + tmp58 = einsum(t2, (0, 1, 2, 3), tmp3, (0, 1, 4, 5), (4, 5, 2, 3), optimize=True) + del tmp3 + rdm2.oovv += tmp58 + rdm2.oovv += tmp58 + tmp59 = einsum(tmp5, (0, 1, 2, 3), t2, (1, 0, 4, 5), (2, 3, 5, 4), optimize=True) + del tmp5 + rdm2.oovv += tmp59 + rdm2.oovv += tmp59 + tmp72 = einsum(t1, (0, 1), tmp71, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp71 + tmp47 = einsum(t2, (0, 1, 2, 3), tmp46, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp46 + tmp29 = einsum(t1, (0, 1), tmp6, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp6 + rdm2.oovo += tmp29.transpose((1, 2, 3, 0)) + rdm2.oovo += tmp29.transpose((1, 2, 3, 0)) + rdm2.ooov += tmp29.transpose((2, 1, 0, 3)) + rdm2.ooov += tmp29.transpose((2, 1, 0, 3)) + tmp51 = einsum(tmp17, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + tmp56 = einsum(tmp55, (0, 1, 2, 3), t2, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp55 + tmp53 = einsum(tmp52, (0, 1, 2, 3), t2, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp52 + rdm2.oovv += tmp53 * 2 + rdm2.oovv += tmp53 * 2 + tmp49 = einsum(tmp48, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + del tmp48 + tmp11 = tmp8.copy() + tmp11 += tmp10 * -1 + rdm2.ooov += einsum(tmp11, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.ooov += einsum(tmp11, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) + rdm2.ooov += einsum(tmp11, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.ooov += einsum(tmp11, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) + tmp44 = einsum(t2, (0, 1, 2, 3), tmp0, (1, 4), (4, 0, 2, 3), optimize=True) + tmp75 = einsum(t1, (0, 1), tmp74, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp74 + tmp15 = tmp13.copy() + tmp15 += tmp14 + del tmp14 + rdm2.ooov += einsum(tmp15, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -2 + rdm2.ooov += einsum(tmp15, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * 2 + rdm2.ooov += einsum(tmp15, (0, 1), delta.oo, (2, 3), (2, 0, 3, 1), optimize=True) * -2 + rdm2.ooov += einsum(tmp15, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * 2 + tmp65 = einsum(t2, (0, 1, 2, 3), tmp2, (0, 4), (1, 4, 2, 3), optimize=True) + tmp64 = einsum(t2, (0, 1, 2, 3), tmp63, (2, 4), (0, 1, 4, 3), optimize=True) * 2 + tmp30 = einsum(tmp12, (0, 1, 2, 3), t2, (1, 0, 4, 3), (2, 4), optimize=True) + del tmp12 + tmp35 = einsum(tmp34, (0, 1), t1, (0, 2), (1, 2), optimize=True) * 2 + tmp27 = tmp4.copy() * 2 + tmp27 += tmp4.transpose((1, 0, 2, 3)) * -1 + tmp42 = einsum(tmp34, (0, 1), t1, (0, 2), (1, 2), optimize=True) + del tmp34 + tmp41 = einsum(tmp31, (0, 1, 2, 3), l1, (2, 0), (1, 3), optimize=True) * 0.5 + tmp32 = einsum(tmp31, (0, 1, 2, 3), l1, (2, 0), (1, 3), optimize=True) + del tmp31 + tmp115 = tmp113.transpose((1, 0, 3, 2)).copy() + del tmp113 + tmp115 += tmp114.transpose((1, 0, 3, 2)) + del tmp114 + rdm2.vvvv += tmp115 + rdm2.vvvv += tmp115.transpose((0, 1, 3, 2)) * -1 + rdm2.vvvv += tmp115 + rdm2.vvvv += tmp115.transpose((0, 1, 3, 2)) * -1 + del tmp115 + tmp101 = einsum(tmp69, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + rdm2.vovv += tmp101.transpose((1, 0, 3, 2)) * -1 + rdm2.vovv += tmp101.transpose((1, 0, 3, 2)) * -1 + rdm2.ovvv += tmp101 * -1 + rdm2.ovvv += tmp101 * -1 + del tmp101 + tmp111 = einsum(tmp110, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + del tmp110 + rdm2.vovv += tmp111.transpose((1, 0, 3, 2)) * -1 + rdm2.vovv += tmp111.transpose((1, 0, 3, 2)) * -1 + del tmp111 + tmp108 = tmp94.copy() + tmp108 += tmp107.transpose((0, 1, 3, 2)) + del tmp107 + rdm2.vovv += tmp108.transpose((1, 0, 3, 2)) + rdm2.vovv += tmp108.transpose((1, 0, 2, 3)) * -1 + rdm2.vovv += tmp108.transpose((1, 0, 3, 2)) + rdm2.vovv += tmp108.transpose((1, 0, 2, 3)) * -1 + del tmp108 + tmp109 = tmp98.copy() + tmp109 += einsum(t1, (0, 1), tmp85, (2, 3), (0, 2, 1, 3), optimize=True) + del tmp85 + rdm2.vovv += tmp109.transpose((1, 0, 3, 2)) + rdm2.vovv += tmp109.transpose((1, 0, 2, 3)) * -1 + rdm2.vovv += tmp109.transpose((1, 0, 3, 2)) + rdm2.vovv += tmp109.transpose((1, 0, 2, 3)) * -1 + del tmp109 + tmp97 = tmp94.copy() + del tmp94 + tmp97 += einsum(t1, (0, 1), tmp83, (2, 3), (0, 2, 1, 3), optimize=True) + tmp97 += tmp96.transpose((0, 1, 3, 2)) * -1 + del tmp96 + rdm2.ovvv += tmp97.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp97 + rdm2.ovvv += tmp97.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp97 + del tmp97 + tmp93 = tmp83.copy() * 0.5 + del tmp83 + tmp93 += tmp63 + rdm2.ovvv += einsum(t1, (0, 1), tmp93, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + rdm2.ovvv += einsum(t1, (0, 1), tmp93, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + rdm2.vovo += einsum(delta.oo, (0, 1), tmp93, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.vovo += einsum(delta.oo, (0, 1), tmp93, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.vovo += einsum(delta.oo, (0, 1), tmp93, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.vovo += einsum(delta.oo, (0, 1), tmp93, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + del tmp93 + tmp99 = tmp98.copy() + del tmp98 + tmp99 += einsum(t1, (0, 1), tmp63, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + del tmp63 + rdm2.ovvv += tmp99.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp99 + rdm2.ovvv += tmp99.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp99 + del tmp99 + tmp105 = einsum(tmp104, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + del tmp104 + rdm2.ovvv += tmp105 * -1 + rdm2.ovvv += tmp105 * -1 + del tmp105 + tmp100 = einsum(tmp87, (0, 1, 2, 3), t1, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp87 + rdm2.ovvv += tmp100.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp100 + rdm2.ovvv += tmp100.transpose((0, 1, 3, 2)) * -1 + rdm2.ovvv += tmp100 + del tmp100 + tmp92 = einsum(tmp54, (0, 1, 2, 3), t2, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp54 + rdm2.vovo += tmp92.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp92.transpose((2, 1, 3, 0)) * -1 + del tmp92 + tmp91 = einsum(tmp90, (0, 1, 2, 3), t1, (0, 4), (1, 2, 3, 4), optimize=True) + del tmp90 + rdm2.vovo += tmp91.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp91.transpose((2, 1, 3, 0)) * -1 + rdm2.voov += tmp91.transpose((2, 1, 0, 3)) + rdm2.voov += tmp91.transpose((2, 1, 0, 3)) + del tmp91 + tmp86 = einsum(t1, (0, 1), tmp4, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp4 + rdm2.vovo += tmp86.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp86.transpose((2, 1, 3, 0)) * -1 + rdm2.ovov += tmp86.transpose((1, 2, 0, 3)) * -1 + rdm2.ovov += tmp86.transpose((1, 2, 0, 3)) * -1 + del tmp86 + tmp89 = einsum(t2, (0, 1, 2, 3), tmp88, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp88 + rdm2.vovo += tmp89.transpose((2, 1, 3, 0)) * -1 + rdm2.vovo += tmp89.transpose((2, 1, 3, 0)) * -1 + rdm2.ovvo += tmp89.transpose((1, 2, 3, 0)) + rdm2.ovvo += tmp89.transpose((1, 2, 3, 0)) + del tmp89 + tmp82 = einsum(t1, (0, 1), tmp18, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) + del tmp18 + rdm2.ovvo += tmp82.transpose((1, 2, 3, 0)) * -1 + rdm2.ovvo += tmp82.transpose((1, 2, 3, 0)) * -1 + rdm2.ovov += tmp82.transpose((1, 2, 0, 3)) + rdm2.ovov += tmp82.transpose((1, 2, 0, 3)) + del tmp82 + tmp61 = tmp58.copy() + del tmp58 + tmp61 += tmp59 + del tmp59 + tmp61 += tmp60 + del tmp60 + rdm2.oovv += tmp61.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp61 + rdm2.oovv += tmp61.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp61 + del tmp61 + tmp73 = tmp47.transpose((1, 0, 3, 2)).copy() * -1 + tmp73 += tmp72.transpose((0, 1, 3, 2)) + del tmp72 + tmp73 += einsum(t1, (0, 1), tmp10, (2, 3), (0, 2, 1, 3), optimize=True) + del tmp10 + rdm2.oovv += tmp73.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp73 + rdm2.oovv += tmp73.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp73 + del tmp73 + tmp68 = einsum(t2, (0, 1, 2, 3), tmp67, (1, 4, 2, 5), (0, 4, 3, 5), optimize=True) + del tmp67 + rdm2.oovv += tmp68 + rdm2.oovv += tmp68 + del tmp68 + tmp70 = einsum(t2, (0, 1, 2, 3), tmp69, (1, 4, 2, 5), (0, 4, 3, 5), optimize=True) + del tmp69 + rdm2.oovv += tmp70.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp70.transpose((0, 1, 3, 2)) + del tmp70 + tmp77 = einsum(t1, (0, 1), tmp29, (0, 2, 3, 4), (3, 2, 4, 1), optimize=True) + rdm2.oovv += tmp77.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp77.transpose((0, 1, 3, 2)) + del tmp77 + tmp57 = tmp51.copy() + del tmp51 + tmp57 += tmp53.transpose((1, 0, 3, 2)) * 2 + del tmp53 + tmp57 += tmp56 + del tmp56 + rdm2.oovv += tmp57.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp57 + rdm2.oovv += tmp57.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp57 + del tmp57 + tmp50 = tmp44.copy() + tmp50 += tmp47.transpose((1, 0, 3, 2)) * -1 + del tmp47 + tmp50 += tmp49.transpose((0, 1, 3, 2)) + del tmp49 + tmp50 += einsum(tmp11, (0, 1), t1, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + del tmp11 + rdm2.oovv += tmp50.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp50.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += tmp50.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp50 + rdm2.oovv += tmp50.transpose((1, 0, 3, 2)) + rdm2.oovv += tmp50.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += tmp50.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp50 + del tmp50 + tmp78 = t1.copy() + tmp78 += tmp8 * -1 + del tmp8 + rdm2.oovv += einsum(t1, (0, 1), tmp78, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.oovv += einsum(t1, (0, 1), tmp78, (2, 3), (2, 0, 3, 1), optimize=True) + del tmp78 + tmp76 = tmp44.copy() + del tmp44 + tmp76 += tmp75.transpose((0, 1, 3, 2)) + del tmp75 + rdm2.oovv += tmp76.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += tmp76.transpose((0, 1, 3, 2)) * -1 + rdm2.oovv += tmp76.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += tmp76.transpose((0, 1, 3, 2)) * -1 + del tmp76 + tmp66 = tmp64.transpose((1, 0, 3, 2)).copy() + del tmp64 + tmp66 += tmp65.transpose((0, 1, 3, 2)) + del tmp65 + tmp66 += einsum(t1, (0, 1), tmp15, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + del tmp15 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp66.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp66 * -1 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66 * -1 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66 * -1 + rdm2.oovv += tmp66.transpose((1, 0, 3, 2)) * -1 + rdm2.oovv += tmp66.transpose((1, 0, 2, 3)) + rdm2.oovv += tmp66.transpose((0, 1, 3, 2)) + rdm2.oovv += tmp66 * -1 + del tmp66 + tmp39 = einsum(tmp0, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + tmp39 += tmp19 + tmp39 += tmp21 * -1 + rdm2.oovo += tmp39.transpose((2, 1, 3, 0)) + rdm2.oovo += tmp39.transpose((1, 2, 3, 0)) * -1 + rdm2.oovo += tmp39.transpose((2, 1, 3, 0)) + rdm2.oovo += tmp39.transpose((1, 2, 3, 0)) * -1 + del tmp39 + tmp38 = tmp30.copy() + tmp38 += tmp35 + rdm2.oovo += einsum(tmp38, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.oovo += einsum(tmp38, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + rdm2.oovo += einsum(tmp38, (0, 1), delta.oo, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.oovo += einsum(tmp38, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + del tmp38 + tmp28 = einsum(t2, (0, 1, 2, 3), tmp27, (0, 4, 5, 2), (4, 5, 1, 3), optimize=True) + del tmp27 + rdm2.oovo += tmp28.transpose((2, 1, 3, 0)) * -1 + rdm2.oovo += tmp28.transpose((2, 1, 3, 0)) * -1 + rdm2.ooov += tmp28.transpose((1, 2, 0, 3)) * -1 + rdm2.ooov += tmp28.transpose((1, 2, 0, 3)) * -1 + del tmp28 + tmp43 = t1.copy() * -0.5 + tmp43 += tmp13 + del tmp13 + tmp43 += tmp41 * -1 + del tmp41 + tmp43 += tmp42 + del tmp42 + rdm2.oovo += einsum(tmp43, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -2 + rdm2.oovo += einsum(tmp43, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -2 + del tmp43 + tmp40 = tmp16.copy() + tmp40 += tmp29.transpose((0, 2, 1, 3)) + del tmp29 + tmp40 += einsum(tmp2, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.oovo += tmp40.transpose((2, 1, 3, 0)) + rdm2.oovo += tmp40.transpose((1, 2, 3, 0)) * -1 + rdm2.oovo += tmp40.transpose((2, 1, 3, 0)) + rdm2.oovo += tmp40.transpose((1, 2, 3, 0)) * -1 + del tmp40 + tmp37 = tmp0.copy() + tmp37 += tmp2 + rdm2.oovo += einsum(t1, (0, 1), tmp37, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + rdm2.oovo += einsum(t1, (0, 1), tmp37, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + rdm2.ooov += einsum(tmp37, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.ooov += einsum(tmp37, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + del tmp37 + tmp36 = t1.copy() * -1 + tmp36 += tmp30 + del tmp30 + tmp36 += tmp32 * -1 + del tmp32 + tmp36 += tmp35 + del tmp35 + rdm2.ooov += einsum(tmp36, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + rdm2.ooov += einsum(tmp36, (0, 1), delta.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + del tmp36 + tmp22 = tmp16.copy() + del tmp16 + tmp22 += tmp17 + del tmp17 + tmp22 += tmp19 + del tmp19 + tmp22 += tmp21 * -1 + del tmp21 + rdm2.ooov += tmp22.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp22.transpose((1, 2, 0, 3)) + rdm2.ooov += tmp22.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp22.transpose((1, 2, 0, 3)) + del tmp22 + tmp24 = tmp23.copy() + del tmp23 + tmp24 += einsum(tmp2, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + del tmp2 + rdm2.ooov += tmp24.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp24.transpose((1, 2, 0, 3)) + rdm2.ooov += tmp24.transpose((2, 1, 0, 3)) * -1 + rdm2.ooov += tmp24.transpose((1, 2, 0, 3)) + del tmp24 + tmp7 = delta.oo.transpose((1, 0)).copy() + tmp7 += tmp0 * -1 + del tmp0 + rdm2.oooo += einsum(delta.oo, (0, 1), tmp7, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), tmp7, (2, 3), (3, 1, 2, 0), optimize=True) + del tmp7 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (3, 1, 2, 0), optimize=True) + rdm2.oooo += einsum(delta.oo, (0, 1), delta.oo, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ooov += einsum(t1, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ooov += einsum(t1, (0, 1), delta.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.ooov += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.oovo += einsum(t1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.oovo += einsum(t1, (0, 1), delta.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.oovo += einsum(delta.oo, (0, 1), t1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.ovoo += einsum(delta.oo, (0, 1), l1, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.vooo += einsum(delta.oo, (0, 1), l1, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + del delta + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += t2.transpose((1, 0, 2, 3)) * -1 + rdm2.oovv += t2.transpose((1, 0, 3, 2)) + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.oovv += einsum(t1, (0, 1), t1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.ovov += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.ovov += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.ovvo += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.ovvo += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.ovvo += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.ovvo += einsum(t1, (0, 1), l1, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.voov += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.voov += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.voov += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.voov += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.vovo += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.vovo += einsum(t1, (0, 1), l1, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.vvoo = l2.transpose((0, 1, 3, 2)).copy() * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2.vvoo += l2.transpose((0, 1, 3, 2)) * -1 + rdm2.vvoo += l2.transpose((1, 0, 3, 2)) + rdm2 = pack_2e(rdm2.oooo, rdm2.ooov, rdm2.oovo, rdm2.ovoo, rdm2.vooo, rdm2.oovv, rdm2.ovov, rdm2.ovvo, rdm2.voov, rdm2.vovo, rdm2.vvoo, rdm2.ovvv, rdm2.vovv, rdm2.vvov, rdm2.vvvo, rdm2.vvvv) + rdm2 = rdm2.swapaxes(1, 2) + + return rdm2 + diff --git a/ebcc/codegen/UCCD.py b/ebcc/codegen/UCCD.py new file mode 100644 index 00000000..4cab9112 --- /dev/null +++ b/ebcc/codegen/UCCD.py @@ -0,0 +1,896 @@ +""" +Code generated by `albert`: +https://github.com/obackhouse/albert + + * date: 2024-07-18T20:23:00.654018 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + * albert version: 0.0.0 + * caller: /home/ollie/git/albert/albert/codegen/einsum.py + * node: ollie-desktop + * system: Linux + * processor: x86_64 + * release: 6.5.0-44-generic +""" + +from ebcc import numpy as np +from ebcc.util import pack_2e, einsum, direct_sum, Namespace + + +def energy(t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:00.888746. + + Parameters + ---------- + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + e_cc : float + Coupled cluster energy. + """ + + e_cc = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 2, 1, 3), (), optimize=True) + e_cc += einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (0, 2, 1, 3), (), optimize=True) + e_cc += einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (0, 2, 1, 3), (), optimize=True) + + return e_cc + +def update_amps(f=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:07.460773. + + Parameters + ---------- + f : Namespace of arrays + Fock matrix. + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + t2new : Namespace of arrays + Updated T2 residuals. + """ + + t2new = Namespace() + tmp9 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp9 += v.aaaa.ovov.transpose((2, 0, 3, 1)) + tmp35 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 3), (1, 4), optimize=True) + tmp36 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (1, 3, 4, 2), (0, 4), optimize=True) + tmp11 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp11 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + tmp13 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() + tmp13 += v.aaaa.ovov.transpose((2, 0, 3, 1)) * -1 + tmp45 = einsum(tmp9, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + t2new.bbbb = einsum(tmp45, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + tmp25 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (0, 2, 4, 3), (4, 1), optimize=True) + tmp24 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 1, 4), (3, 4), optimize=True) + tmp37 = tmp35.copy() + del tmp35 + tmp37 += tmp36 * 2 + del tmp36 + t2new.abab = einsum(t2.abab, (0, 1, 2, 3), tmp37, (4, 1), (0, 4, 2, 3), optimize=True) * -1 + tmp46 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() + tmp46 += v.bbbb.ovov.transpose((2, 0, 3, 1)) * -1 + tmp27 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.bbbb, (4, 2, 5, 3), (0, 4, 1, 5), optimize=True) + t2new.abab += tmp27 * 2 + tmp19 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (1, 2, 4, 3), (0, 4), optimize=True) * -1 + tmp20 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 1, 3), (4, 0), optimize=True) + tmp12 = einsum(tmp11, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) + t2new.aaaa = einsum(t2.abab, (0, 1, 2, 3), tmp12, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) * -1 + tmp30 = einsum(t2.aaaa, (0, 1, 2, 3), v.aabb.ovov, (1, 3, 4, 5), (0, 4, 2, 5), optimize=True) + t2new.abab += tmp30 * 2 + tmp2 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (0, 2, 4, 3), (4, 1), optimize=True) + tmp3 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 4, 1, 3), (2, 4), optimize=True) + tmp14 = einsum(t2.aaaa, (0, 1, 2, 3), tmp13, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp13 + tmp5 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 5, 1, 3), (0, 4, 2, 5), optimize=True) + t2new.aaaa += tmp5 + t2new.aaaa += tmp5.transpose((1, 0, 2, 3)) * -1 + t2new.aaaa += tmp5.transpose((1, 0, 3, 2)) + tmp49 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (4, 3, 5, 2), (0, 1, 4, 5), optimize=True) * -1 + t2new.bbbb += einsum(tmp49, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 + del tmp49 + tmp48 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp48 += tmp45 + del tmp45 + t2new.bbbb += einsum(tmp48, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 3, 5), optimize=True) * -1 + del tmp48 + tmp41 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) + t2new.bbbb += tmp41 + t2new.bbbb += tmp41.transpose((1, 0, 2, 3)) * -1 + t2new.bbbb += tmp41.transpose((1, 0, 3, 2)) + del tmp41 + tmp44 = v.bbbb.oovv.transpose((1, 0, 3, 2)).copy() + tmp44 += einsum(t2.bbbb, (0, 1, 2, 3), tmp11, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -2 + del tmp11 + t2new.bbbb += einsum(tmp44, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * -2 + del tmp44 + tmp26 = tmp24.copy() * 0.5 + tmp26 += tmp25 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp26, (4, 2), (1, 0, 3, 4), optimize=True) * -4 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp26, (4, 3), (0, 1, 2, 4), optimize=True) * -2 + del tmp26 + tmp50 = einsum(tmp37, (0, 1), t2.bbbb, (1, 2, 3, 4), (2, 0, 3, 4), optimize=True) * 2 + del tmp37 + t2new.bbbb += tmp50.transpose((1, 0, 3, 2)) + t2new.bbbb += tmp50.transpose((0, 1, 3, 2)) * -1 + del tmp50 + tmp33 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp33 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + t2new.bbbb += einsum(tmp33, (0, 1, 2, 3), t2.bbbb, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * 2 + t2new.abab += einsum(tmp33, (0, 1, 2, 3), t2.abab, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp33 + tmp47 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp47 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp47 += einsum(tmp46, (0, 1, 2, 3), t2.bbbb, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -2 + del tmp46 + t2new.bbbb += einsum(tmp47, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (4, 0, 2, 5), optimize=True) * -2 + del tmp47 + tmp42 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp42 += tmp24 + del tmp24 + tmp42 += tmp25 * 2 + del tmp25 + t2new.bbbb += einsum(tmp42, (0, 1), t2.bbbb, (2, 3, 1, 4), (3, 2, 0, 4), optimize=True) * 2 + del tmp42 + tmp40 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (4, 0, 5, 1), (4, 2, 5, 3), optimize=True) + t2new.bbbb += tmp40.transpose((1, 0, 2, 3)) * -2 + t2new.bbbb += tmp40.transpose((1, 0, 3, 2)) * 2 + del tmp40 + tmp38 = einsum(t2.bbbb, (0, 1, 2, 3), f.bb.oo, (4, 1), (4, 0, 2, 3), optimize=True) + t2new.bbbb += tmp38.transpose((0, 1, 3, 2)) * -2 + t2new.bbbb += tmp38.transpose((1, 0, 3, 2)) * 2 + del tmp38 + tmp39 = einsum(v.bbbb.oooo, (0, 1, 2, 3), t2.bbbb, (3, 1, 4, 5), (0, 2, 4, 5), optimize=True) * -1 + t2new.bbbb += tmp39.transpose((1, 0, 3, 2)) + t2new.bbbb += tmp39.transpose((1, 0, 3, 2)) + del tmp39 + tmp43 = einsum(t2.abab, (0, 1, 2, 3), tmp27, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp27 + t2new.bbbb += tmp43.transpose((1, 0, 2, 3)) * -2 + t2new.bbbb += tmp43.transpose((0, 1, 3, 2)) * -2 + t2new.bbbb += tmp43.transpose((1, 0, 3, 2)) * 2 + t2new.bbbb += tmp43 * 2 + del tmp43 + tmp21 = tmp19.copy() * 2 + tmp21 += tmp20 + t2new.abab += einsum(tmp21, (0, 1), t2.abab, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) * -1 + t2new.aaaa += einsum(tmp21, (0, 1), t2.aaaa, (1, 2, 3, 4), (2, 0, 4, 3), optimize=True) * -2 + del tmp21 + tmp32 = v.bbaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp32 += einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (2, 4, 1, 5), optimize=True) * -1 + t2new.abab += einsum(tmp32, (0, 1, 2, 3), t2.abab, (4, 0, 2, 5), (4, 1, 3, 5), optimize=True) * -1 + del tmp32 + tmp31 = tmp30.copy() * 2 + del tmp30 + tmp31 += tmp12 * -1 + t2new.abab += einsum(t2.bbbb, (0, 1, 2, 3), tmp31, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * 2 + del tmp31 + tmp28 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp28 += tmp2.transpose((1, 0)) * 2 + tmp28 += tmp3.transpose((1, 0)) + t2new.abab += einsum(tmp28, (0, 1), t2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -1 + del tmp28 + tmp29 = v.aaaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp29 += tmp5.transpose((1, 0, 3, 2)) * -1 + tmp29 += tmp14.transpose((1, 0, 3, 2)) * 2 + t2new.abab += einsum(tmp29, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -1 + del tmp29 + tmp34 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 5, 3), (0, 4, 1, 5), optimize=True) + t2new.abab += einsum(tmp34, (0, 1, 2, 3), t2.abab, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) + del tmp34 + tmp23 = einsum(v.aabb.oooo, (0, 1, 2, 3), t2.abab, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) + t2new.abab += tmp23 * 0.5 + t2new.abab += tmp23 * 0.5 + del tmp23 + tmp4 = tmp2.copy() + tmp4 += tmp3 * 0.5 + t2new.aaaa += einsum(tmp4, (0, 1), t2.aaaa, (2, 3, 1, 4), (3, 2, 4, 0), optimize=True) * -4 + del tmp4 + tmp6 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) + t2new.aaaa += tmp6.transpose((1, 0, 2, 3)) * -2 + t2new.aaaa += tmp6.transpose((1, 0, 3, 2)) * 2 + del tmp6 + tmp0 = einsum(f.aa.oo, (0, 1), t2.aaaa, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + t2new.aaaa += tmp0.transpose((0, 1, 3, 2)) * -2 + t2new.aaaa += tmp0.transpose((1, 0, 3, 2)) * 2 + del tmp0 + tmp22 = tmp19.copy() + del tmp19 + tmp22 += tmp20 * 0.5 + del tmp20 + t2new.aaaa += einsum(tmp22, (0, 1), t2.aaaa, (1, 2, 3, 4), (0, 2, 4, 3), optimize=True) * 4 + del tmp22 + tmp10 = v.aaaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp10 += einsum(tmp9, (0, 1, 2, 3), t2.aaaa, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -2 + del tmp9 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp10, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * -2 + del tmp10 + tmp7 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp7 += tmp2 * 2 + del tmp2 + tmp7 += tmp3 + del tmp3 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp7, (4, 2), (1, 0, 4, 3), optimize=True) * 2 + del tmp7 + tmp17 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp17 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp17, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * 2 + del tmp17 + tmp16 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp16 += tmp12 * -1 + del tmp12 + t2new.aaaa += einsum(t2.abab, (0, 1, 2, 3), tmp16, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) * -1 + del tmp16 + tmp8 = einsum(tmp5, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp5 + t2new.aaaa += tmp8.transpose((1, 0, 2, 3)) * -2 + t2new.aaaa += tmp8.transpose((0, 1, 3, 2)) * -2 + t2new.aaaa += tmp8.transpose((1, 0, 3, 2)) * 2 + t2new.aaaa += tmp8 * 2 + del tmp8 + tmp15 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp15 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + tmp15 += tmp14 * -2 + del tmp14 + t2new.aaaa += einsum(tmp15, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (4, 0, 2, 5), optimize=True) * -2 + del tmp15 + tmp1 = einsum(v.aaaa.oooo, (0, 1, 2, 3), t2.aaaa, (3, 1, 4, 5), (0, 2, 4, 5), optimize=True) * -1 + t2new.aaaa += tmp1.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp1.transpose((1, 0, 3, 2)) + del tmp1 + tmp18 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (4, 3, 5, 2), (0, 1, 4, 5), optimize=True) * -1 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp18, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * 2 + del tmp18 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), f.aa.vv, (4, 3), (1, 0, 2, 4), optimize=True) * -2 + t2new.aaaa += v.aaaa.ovov.transpose((2, 0, 3, 1)) + t2new.aaaa += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.oovv, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) * 2 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.vvvv, (4, 2, 3, 5), (1, 0, 5, 4), optimize=True) * 2 + t2new.abab += einsum(f.bb.oo, (0, 1), t2.abab, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) * -1 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), f.aa.oo, (4, 0), (4, 1, 2, 3), optimize=True) * -1 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), v.aaaa.ovov, (4, 5, 0, 2), (4, 1, 5, 3), optimize=True) + t2new.abab += einsum(f.bb.vv, (0, 1), t2.abab, (2, 3, 4, 1), (2, 3, 4, 0), optimize=True) + t2new.abab += v.aabb.ovov.transpose((0, 2, 1, 3)) + t2new.abab += einsum(v.aabb.oovv, (0, 1, 2, 3), t2.abab, (1, 4, 5, 3), (0, 4, 5, 2), optimize=True) * -1 + t2new.abab += einsum(v.aabb.vvvv, (0, 1, 2, 3), t2.abab, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + t2new.bbbb += einsum(f.bb.vv, (0, 1), t2.bbbb, (2, 3, 4, 1), (3, 2, 4, 0), optimize=True) * -2 + t2new.bbbb += v.bbbb.ovov.transpose((2, 0, 3, 1)) + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.oovv, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) * 2 + t2new.bbbb += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 + t2new.bbbb += einsum(v.bbbb.vvvv, (0, 1, 2, 3), t2.bbbb, (4, 5, 1, 2), (5, 4, 3, 0), optimize=True) * 2 + + return {f"t2new": t2new} + +def update_lams(f=None, l2=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:19.744972. + + Parameters + ---------- + f : Namespace of arrays + Fock matrix. + l2 : Namespace of arrays + L2 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + l2new : Namespace of arrays + Updated L2 residuals. + """ + + l2new = Namespace() + tmp47 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 0), (4, 1), optimize=True) * -1 + tmp46 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) + tmp35 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 0, 4), (1, 4), optimize=True) + tmp36 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 1, 4), (0, 4), optimize=True) * -1 + tmp67 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) + tmp59 = einsum(t2.aaaa, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) + tmp56 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) + tmp64 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (4, 0, 5, 1), optimize=True) + tmp53 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (0, 2, 1, 4), (3, 4), optimize=True) + tmp52 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 1, 4), (3, 4), optimize=True) + tmp70 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + tmp71 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + tmp39 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 1), (4, 0), optimize=True) + tmp38 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 3), (1, 4), optimize=True) + tmp4 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (4, 5, 0, 2), (1, 4, 3, 5), optimize=True) + tmp5 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 5, 1, 3), (0, 4, 2, 5), optimize=True) + tmp13 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + tmp12 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + tmp30 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 4, 1, 3), (2, 4), optimize=True) + tmp29 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (0, 2, 1, 4), (3, 4), optimize=True) + tmp0 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 1, 4), (0, 4), optimize=True) * -1 + tmp1 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + tmp17 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 1, 3), (4, 0), optimize=True) + tmp16 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (2, 4, 1, 3), (4, 0), optimize=True) * -1 + tmp20 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 0), (4, 1), optimize=True) * -1 + tmp21 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) + tmp8 = einsum(t2.abab, (0, 1, 2, 3), v.aaaa.ovov, (4, 5, 0, 2), (4, 1, 5, 3), optimize=True) + tmp9 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (0, 4, 1, 5), optimize=True) + tmp80 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + tmp48 = tmp46.copy() * 0.5 + tmp48 += tmp47 + l2new.abab = einsum(tmp48, (0, 1), v.aabb.ovov, (2, 3, 1, 4), (3, 4, 2, 0), optimize=True) * -2 + tmp37 = tmp35.copy() + del tmp35 + tmp37 += tmp36 * 2 + del tmp36 + l2new.abab += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp37, (4, 3), (1, 4, 0, 2), optimize=True) * -1 + tmp68 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp68 += tmp59 * 2 + tmp68 += tmp67 + del tmp67 + tmp65 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp65 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp65 += tmp56 + tmp65 += tmp64 * 2 + del tmp64 + tmp82 = f.bb.vv.transpose((1, 0)).copy() * -0.5 + tmp82 += tmp52 * 0.5 + tmp82 += tmp53 + tmp72 = tmp70.copy() + del tmp70 + tmp72 += tmp71 * 4 + del tmp71 + tmp77 = tmp46.copy() + del tmp46 + tmp77 += tmp47 * 2 + del tmp47 + tmp74 = f.bb.oo.transpose((1, 0)).copy() + tmp74 += tmp38 + tmp74 += tmp39 * 2 + tmp49 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 0, 1), (2, 4, 3, 5), optimize=True) + tmp57 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() + tmp57 += v.bbbb.ovov.transpose((2, 0, 3, 1)) * -1 + tmp42 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() + tmp42 += v.aaaa.ovov.transpose((2, 0, 3, 1)) * -1 + tmp44 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp44 += v.aaaa.ovov.transpose((2, 0, 3, 1)) + tmp60 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp60 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + tmp6 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp6 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + tmp6 += tmp4 * 2 + del tmp4 + tmp6 += tmp5 + tmp14 = tmp12.copy() * 4 + del tmp12 + tmp14 += tmp13 + del tmp13 + tmp31 = f.aa.vv.transpose((1, 0)).copy() * -0.5 + tmp31 += tmp29 + del tmp29 + tmp31 += tmp30 * 0.5 + del tmp30 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp31, (0, 4), (4, 1, 2, 3), optimize=True) * -2 + tmp2 = tmp0.copy() * 2 + tmp2 += tmp1 + l2new.abab += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp2, (4, 1), (4, 3, 0, 2), optimize=True) * -1 + l2new.aaaa = einsum(tmp2, (0, 1), v.aaaa.ovov, (2, 1, 3, 4), (4, 0, 3, 2), optimize=True) * -1 + tmp27 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + tmp18 = f.aa.oo.transpose((1, 0)).copy() + tmp18 += tmp16 * 2 + del tmp16 + tmp18 += tmp17 + del tmp17 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp18, (2, 4), (0, 1, 4, 3), optimize=True) * -1 + tmp24 = tmp20.copy() * 2 + tmp24 += tmp21 + l2new.abab += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp24, (4, 0), (1, 3, 4, 2), optimize=True) * -1 + tmp22 = tmp20.copy() + del tmp20 + tmp22 += tmp21 * 0.5 + del tmp21 + tmp10 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp10 += tmp8 + del tmp8 + tmp10 += tmp9 * 2 + tmp81 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp80, (4, 5, 0, 2), (5, 4, 1, 3), optimize=True) * -1 + del tmp80 + l2new.bbbb = tmp81.transpose((3, 2, 1, 0)).copy() + l2new.bbbb += tmp81.transpose((3, 2, 1, 0)) + del tmp81 + tmp76 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp48, (4, 0), (4, 2, 1, 3), optimize=True) * 2 + del tmp48 + l2new.bbbb += tmp76.transpose((2, 3, 0, 1)) * -1 + l2new.bbbb += tmp76.transpose((3, 2, 0, 1)) + del tmp76 + tmp63 = einsum(tmp37, (0, 1), v.bbbb.ovov, (2, 1, 3, 4), (2, 3, 0, 4), optimize=True) + l2new.bbbb += tmp63.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp63.transpose((3, 2, 1, 0)) * -1 + del tmp63 + tmp69 = einsum(tmp68, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) + del tmp68 + l2new.bbbb += tmp69.transpose((3, 2, 0, 1)) * -1 + l2new.bbbb += tmp69.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp69.transpose((2, 3, 0, 1)) + l2new.bbbb += tmp69.transpose((2, 3, 1, 0)) * -1 + del tmp69 + tmp66 = einsum(l2.bbbb, (0, 1, 2, 3), tmp65, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + del tmp65 + l2new.bbbb += tmp66.transpose((2, 3, 1, 0)) * -2 + l2new.bbbb += tmp66.transpose((2, 3, 0, 1)) * 2 + l2new.bbbb += tmp66.transpose((3, 2, 1, 0)) * 2 + l2new.bbbb += tmp66.transpose((3, 2, 0, 1)) * -2 + del tmp66 + tmp83 = einsum(tmp82, (0, 1), l2.bbbb, (0, 2, 3, 4), (3, 4, 2, 1), optimize=True) * 4 + del tmp82 + l2new.bbbb += tmp83.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp83.transpose((3, 2, 1, 0)) + del tmp83 + tmp73 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp72, (4, 0, 5, 3), (4, 2, 5, 1), optimize=True) + del tmp72 + l2new.bbbb += tmp73.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp73.transpose((3, 2, 0, 1)) + l2new.bbbb += tmp73.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp73.transpose((2, 3, 0, 1)) * -1 + del tmp73 + tmp79 = einsum(v.bbbb.vvvv, (0, 1, 2, 3), l2.bbbb, (1, 2, 4, 5), (4, 5, 0, 3), optimize=True) + l2new.bbbb += tmp79.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp79.transpose((3, 2, 1, 0)) + del tmp79 + tmp84 = v.bbbb.oooo.transpose((2, 3, 1, 0)).copy() + tmp84 += einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (4, 5, 1, 3), (5, 2, 4, 0), optimize=True) + l2new.bbbb += einsum(tmp84, (0, 1, 2, 3), l2.bbbb, (4, 5, 0, 2), (5, 4, 1, 3), optimize=True) * -2 + del tmp84 + tmp78 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp77, (4, 0), (4, 2, 1, 3), optimize=True) + del tmp77 + l2new.bbbb += tmp78.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp78.transpose((3, 2, 1, 0)) * -1 + del tmp78 + tmp75 = einsum(l2.bbbb, (0, 1, 2, 3), tmp74, (2, 4), (3, 4, 0, 1), optimize=True) * 2 + del tmp74 + l2new.bbbb += tmp75.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp75.transpose((3, 2, 0, 1)) * -1 + del tmp75 + tmp85 = einsum(tmp37, (0, 1), v.bbbb.ovov, (2, 3, 4, 1), (2, 4, 0, 3), optimize=True) + del tmp37 + l2new.bbbb += tmp85.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp85.transpose((3, 2, 1, 0)) + del tmp85 + tmp41 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 1, 5), (0, 4, 3, 5), optimize=True) + l2new.abab += einsum(tmp41, (0, 1, 2, 3), l2.abab, (4, 2, 0, 5), (4, 3, 1, 5), optimize=True) + del tmp41 + tmp54 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp54 += tmp52 + del tmp52 + tmp54 += tmp53 * 2 + del tmp53 + l2new.abab += einsum(tmp54, (0, 1), l2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + del tmp54 + tmp50 = einsum(v.aabb.ovov, (0, 1, 2, 3), tmp49, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) + del tmp49 + l2new.abab += tmp50.transpose((2, 3, 0, 1)) * 0.5 + l2new.abab += tmp50.transpose((2, 3, 0, 1)) * 0.5 + del tmp50 + tmp58 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp58 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp58 += tmp56 + del tmp56 + tmp58 += einsum(tmp57, (0, 1, 2, 3), t2.bbbb, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -2 + del tmp57 + l2new.abab += einsum(tmp58, (0, 1, 2, 3), l2.abab, (4, 2, 5, 0), (4, 3, 5, 1), optimize=True) + del tmp58 + tmp40 = f.bb.oo.transpose((1, 0)).copy() * 0.5 + tmp40 += tmp38 * 0.5 + del tmp38 + tmp40 += tmp39 + del tmp39 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp40, (3, 4), (0, 1, 2, 4), optimize=True) * -2 + del tmp40 + tmp62 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (4, 2, 5, 1), optimize=True) + l2new.abab += einsum(tmp62, (0, 1, 2, 3), l2.abab, (2, 4, 5, 0), (3, 4, 5, 1), optimize=True) + del tmp62 + tmp51 = einsum(l2.abab, (0, 1, 2, 3), v.aabb.vvvv, (4, 0, 5, 1), (2, 3, 4, 5), optimize=True) + l2new.abab += tmp51.transpose((2, 3, 0, 1)) * 0.5 + l2new.abab += tmp51.transpose((2, 3, 0, 1)) * 0.5 + del tmp51 + tmp55 = v.aabb.oooo.transpose((1, 0, 3, 2)).copy() + tmp55 += einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 5, 3), (0, 4, 1, 5), optimize=True) + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp55, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) + del tmp55 + tmp43 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp43 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + tmp43 += tmp5 + del tmp5 + tmp43 += einsum(tmp42, (0, 1, 2, 3), t2.aaaa, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -2 + del tmp42 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp43, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) + del tmp43 + tmp45 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp45 += tmp9 * 2 + del tmp9 + tmp45 += einsum(tmp44, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp44 + l2new.abab += einsum(tmp45, (0, 1, 2, 3), l2.bbbb, (3, 4, 1, 5), (2, 4, 0, 5), optimize=True) * 2 + del tmp45 + tmp61 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp61 += tmp59 * 2 + del tmp59 + tmp61 += einsum(tmp60, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) * -1 + del tmp60 + l2new.abab += einsum(l2.aaaa, (0, 1, 2, 3), tmp61, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) * 2 + del tmp61 + tmp3 = tmp0.copy() + del tmp0 + tmp3 += tmp1 * 0.5 + del tmp1 + l2new.aaaa += einsum(tmp3, (0, 1), v.aaaa.ovov, (2, 1, 3, 4), (0, 4, 3, 2), optimize=True) * 2 + del tmp3 + tmp7 = einsum(tmp6, (0, 1, 2, 3), l2.aaaa, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) + del tmp6 + l2new.aaaa += tmp7.transpose((3, 2, 0, 1)) * -2 + l2new.aaaa += tmp7.transpose((3, 2, 1, 0)) * 2 + l2new.aaaa += tmp7.transpose((2, 3, 0, 1)) * 2 + l2new.aaaa += tmp7.transpose((2, 3, 1, 0)) * -2 + del tmp7 + tmp15 = einsum(tmp14, (0, 1, 2, 3), v.aaaa.ovov, (1, 4, 5, 3), (5, 0, 4, 2), optimize=True) + del tmp14 + l2new.aaaa += tmp15.transpose((2, 3, 0, 1)) * -1 + l2new.aaaa += tmp15.transpose((2, 3, 1, 0)) + l2new.aaaa += tmp15.transpose((3, 2, 0, 1)) + l2new.aaaa += tmp15.transpose((3, 2, 1, 0)) * -1 + del tmp15 + tmp33 = v.aaaa.oooo.transpose((2, 3, 1, 0)).copy() + tmp33 += einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (4, 5, 1, 3), (5, 2, 4, 0), optimize=True) + l2new.aaaa += einsum(tmp33, (0, 1, 2, 3), l2.aaaa, (4, 5, 0, 2), (5, 4, 1, 3), optimize=True) * -2 + del tmp33 + tmp32 = einsum(tmp31, (0, 1), l2.aaaa, (0, 2, 3, 4), (3, 4, 1, 2), optimize=True) * 4 + del tmp31 + l2new.aaaa += tmp32.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp32.transpose((2, 3, 1, 0)) + del tmp32 + tmp34 = einsum(tmp2, (0, 1), v.aaaa.ovov, (2, 3, 4, 1), (2, 4, 3, 0), optimize=True) + del tmp2 + l2new.aaaa += tmp34.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp34.transpose((2, 3, 1, 0)) + del tmp34 + tmp26 = einsum(v.aaaa.vvvv, (0, 1, 2, 3), l2.aaaa, (1, 2, 4, 5), (4, 5, 0, 3), optimize=True) + l2new.aaaa += tmp26.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp26.transpose((3, 2, 1, 0)) + del tmp26 + tmp28 = einsum(tmp27, (0, 1, 2, 3), v.aaaa.ovov, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) * -1 + del tmp27 + l2new.aaaa += tmp28.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp28.transpose((3, 2, 1, 0)) + del tmp28 + tmp19 = einsum(tmp18, (0, 1), l2.aaaa, (2, 3, 0, 4), (1, 4, 2, 3), optimize=True) * 2 + del tmp18 + l2new.aaaa += tmp19.transpose((3, 2, 0, 1)) + l2new.aaaa += tmp19.transpose((3, 2, 1, 0)) * -1 + del tmp19 + tmp25 = einsum(tmp24, (0, 1), v.aaaa.ovov, (1, 2, 3, 4), (3, 0, 2, 4), optimize=True) + del tmp24 + l2new.aaaa += tmp25.transpose((2, 3, 0, 1)) + l2new.aaaa += tmp25.transpose((3, 2, 0, 1)) * -1 + del tmp25 + tmp23 = einsum(tmp22, (0, 1), v.aaaa.ovov, (1, 2, 3, 4), (3, 0, 2, 4), optimize=True) * 2 + del tmp22 + l2new.aaaa += tmp23.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp23.transpose((3, 2, 1, 0)) + del tmp23 + tmp11 = einsum(tmp10, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (0, 5, 2, 4), optimize=True) + del tmp10 + l2new.aaaa += tmp11.transpose((3, 2, 0, 1)) * -1 + l2new.aaaa += tmp11.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp11.transpose((2, 3, 0, 1)) + l2new.aaaa += tmp11.transpose((2, 3, 1, 0)) * -1 + del tmp11 + l2new.aaaa += v.aaaa.ovov.transpose((3, 1, 2, 0)) + l2new.aaaa += v.aaaa.ovov.transpose((1, 3, 2, 0)) * -1 + l2new.abab += v.aabb.ovov.transpose((1, 3, 0, 2)) + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), v.bbaa.oovv, (4, 3, 5, 0), (5, 1, 2, 4), optimize=True) * -1 + l2new.abab += einsum(v.aabb.oovv, (0, 1, 2, 3), l2.abab, (4, 3, 1, 5), (4, 2, 0, 5), optimize=True) * -1 + l2new.bbbb += v.bbbb.ovov.transpose((3, 1, 2, 0)) + l2new.bbbb += v.bbbb.ovov.transpose((1, 3, 2, 0)) * -1 + + return {f"l2new": l2new} + +def make_rdm1_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:20.163665. + + Parameters + ---------- + l2 : Namespace of arrays + L2 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + + Returns + ------- + rdm1 : Namespace of arrays + One-particle reduced density matrix. + """ + + rdm1 = Namespace() + rdm1.aa = Namespace() + rdm1.bb = Namespace() + delta = Namespace( + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t1.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t1.bbbb.shape[-1])), + ) + rdm1.aa.oo = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (0, 4), optimize=True) * -1 + rdm1.aa.oo += delta.aa.oo.transpose((1, 0)) + rdm1.aa.oo += einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 1), (0, 4), optimize=True) * -2 + rdm1.bb.oo = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (1, 4), optimize=True) * -1 + rdm1.bb.oo += delta.bb.oo.transpose((1, 0)) + del delta + rdm1.bb.oo += einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 1), (0, 4), optimize=True) * -2 + rdm1.aa.vv = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 1), (0, 4), optimize=True) * 2 + rdm1.aa.vv += einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + rdm1.bb.vv = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 1), (0, 4), optimize=True) * 2 + rdm1.bb.vv += einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 0, 4), (1, 4), optimize=True) + rdm1.aa.oo = np.zeros((t2.aa.shape[0], t2.aa.shape[0])) + rdm1.aa.vv = np.zeros((t2.aa.shape[-1], t2.aa.shape[-1])) + rdm1.bb.oo = np.zeros((t2.bb.shape[0], t2.bb.shape[0])) + rdm1.bb.vv = np.zeros((t2.bb.shape[-1], t2.bb.shape[-1])) + rdm1.aa = np.block([[rdm1.aa.oo, rdm1.aa.ov], [rdm1.aa.vo, rdm1.aa.vv]]) + rdm1.bb = np.block([[rdm1.bb.oo, rdm1.bb.ov], [rdm1.bb.vo, rdm1.bb.vv]]) + + return rdm1 + +def make_rdm2_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:23:27.094695. + + Parameters + ---------- + l2 : Namespace of arrays + L2 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + + Returns + ------- + rdm2 : Namespace of arrays + Two-particle reduced density matrix. + """ + + rdm2 = Namespace() + rdm2.aaaa = Namespace() + rdm2.abab = Namespace() + rdm2.bbbb = Namespace() + delta = Namespace( + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t1.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t1.bbbb.shape[-1])), + ) + tmp6 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 3, 0, 1), (2, 4), optimize=True) + tmp5 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) + tmp13 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + tmp12 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 0), (1, 4), optimize=True) * -1 + tmp23 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 0, 4), (1, 4), optimize=True) + tmp24 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 0), (1, 4), optimize=True) * -1 + tmp26 = tmp5.copy() + tmp26 += tmp6 * 2 + rdm2.abab.oovv = einsum(t2.abab, (0, 1, 2, 3), tmp26, (1, 4), (0, 4, 2, 3), optimize=True) * -1 + tmp33 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 2, 5, 0), (3, 4, 1, 5), optimize=True) + rdm2.bbbb.vovo = tmp33.transpose((2, 1, 3, 0)).copy() * -4 + rdm2.bbbb.voov = tmp33.transpose((2, 1, 0, 3)).copy() * 4 + rdm2.bbbb.ovvo = tmp33.transpose((1, 2, 3, 0)).copy() * 4 + rdm2.bbbb.ovov = tmp33.transpose((1, 2, 0, 3)).copy() * -4 + tmp37 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + rdm2.bbbb.vovo += tmp37.transpose((2, 1, 3, 0)) * -1 + rdm2.bbbb.voov += tmp37.transpose((2, 1, 0, 3)) + rdm2.bbbb.ovvo += tmp37.transpose((1, 2, 3, 0)) + rdm2.bbbb.ovov += tmp37.transpose((1, 2, 0, 3)) * -1 + tmp35 = einsum(l2.aaaa, (0, 1, 2, 3), t2.abab, (3, 4, 1, 5), (2, 4, 0, 5), optimize=True) + rdm2.abab.voov = tmp35.transpose((2, 1, 0, 3)).copy() * 2 + tmp0 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 3, 0, 1), (2, 4), optimize=True) + tmp1 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) + tmp19 = einsum(l2.bbbb, (0, 1, 2, 3), t2.abab, (4, 3, 5, 1), (4, 2, 5, 0), optimize=True) + rdm2.abab.ovvo = tmp19.transpose((0, 3, 2, 1)).copy() * 2 + tmp21 = einsum(t2.aaaa, (0, 1, 2, 3), l2.abab, (3, 4, 1, 5), (0, 5, 2, 4), optimize=True) + rdm2.abab.ovvo += tmp21.transpose((0, 3, 2, 1)) * 2 + tmp17 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + rdm2.aaaa.vovo = tmp17.transpose((2, 1, 3, 0)).copy() * -4 + rdm2.aaaa.voov = tmp17.transpose((2, 1, 0, 3)).copy() * 4 + rdm2.aaaa.ovvo = tmp17.transpose((1, 2, 3, 0)).copy() * 4 + rdm2.aaaa.ovov = tmp17.transpose((1, 2, 0, 3)).copy() * -4 + tmp29 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + rdm2.aaaa.vovo += tmp29.transpose((2, 1, 3, 0)) * -1 + rdm2.aaaa.voov += tmp29.transpose((2, 1, 0, 3)) + rdm2.aaaa.ovvo += tmp29.transpose((1, 2, 3, 0)) + rdm2.aaaa.ovov += tmp29.transpose((1, 2, 0, 3)) * -1 + tmp14 = tmp12.copy() + tmp14 += tmp13 * 0.5 + rdm2.aaaa.vovo += einsum(delta.aa.oo, (0, 1), tmp14, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.aaaa.ovvo += einsum(delta.aa.oo, (0, 1), tmp14, (2, 3), (1, 2, 3, 0), optimize=True) * -2 + tmp39 = tmp23.copy() + tmp39 += tmp24 * 2 + rdm2.bbbb.vovo += einsum(delta.bb.oo, (0, 1), tmp39, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.bbbb.ovvo += einsum(delta.bb.oo, (0, 1), tmp39, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.bbbb.oovv = einsum(tmp39, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 + del tmp39 + tmp31 = tmp12.copy() * 2 + del tmp12 + tmp31 += tmp13 + del tmp13 + rdm2.abab.vovo = einsum(tmp31, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.aaaa.voov += einsum(tmp31, (0, 1), delta.aa.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.aaaa.ovov += einsum(tmp31, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp31, (2, 4), (0, 1, 4, 3), optimize=True) * -1 + del tmp31 + tmp27 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 5, 1), (3, 4, 0, 5), optimize=True) + rdm2.abab.vovo += tmp27.transpose((2, 1, 3, 0)) * -1 + rdm2.abab.oovv += einsum(tmp27, (0, 1, 2, 3), t2.abab, (4, 0, 2, 5), (4, 1, 3, 5), optimize=True) + del tmp27 + tmp25 = tmp23.copy() * 0.5 + del tmp23 + tmp25 += tmp24 + del tmp24 + rdm2.bbbb.voov += einsum(tmp25, (0, 1), delta.bb.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -2 + rdm2.bbbb.ovov += einsum(tmp25, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) * 2 + rdm2.abab.ovov = einsum(tmp25, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) * 2 + rdm2.bbbb.oovv += einsum(t2.bbbb, (0, 1, 2, 3), tmp25, (2, 4), (1, 0, 3, 4), optimize=True) * -4 + rdm2.abab.oovv += einsum(tmp25, (0, 1), t2.abab, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) * -2 + del tmp25 + tmp32 = einsum(t2.bbbb, (0, 1, 2, 3), tmp26, (0, 4), (4, 1, 2, 3), optimize=True) * 2 + del tmp26 + rdm2.bbbb.oovv += tmp32.transpose((1, 0, 3, 2)) * -1 + rdm2.bbbb.oovv += tmp32.transpose((0, 1, 3, 2)) + del tmp32 + tmp34 = einsum(tmp33, (0, 1, 2, 3), t2.bbbb, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp33 + rdm2.bbbb.oovv += tmp34 * 8 + rdm2.bbbb.oovv += tmp34.transpose((0, 1, 3, 2)) * -8 + del tmp34 + tmp38 = einsum(tmp37, (0, 1, 2, 3), t2.bbbb, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp37 + rdm2.bbbb.oovv += tmp38.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp38 * 2 + rdm2.bbbb.oovv += tmp38.transpose((1, 0, 2, 3)) * -2 + rdm2.bbbb.oovv += tmp38.transpose((0, 1, 3, 2)) * -2 + del tmp38 + tmp11 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + rdm2.bbbb.oovv += einsum(tmp11, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 5), (3, 2, 5, 4), optimize=True) * 2 + rdm2.bbbb.oooo = tmp11.transpose((3, 2, 1, 0)).copy() * 2 + del tmp11 + tmp36 = einsum(tmp35, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp35 + rdm2.bbbb.oovv += tmp36.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp36.transpose((0, 1, 3, 2)) * -2 + del tmp36 + tmp16 = tmp0.copy() * 2 + tmp16 += tmp1 + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp16, (0, 4), (4, 1, 2, 3), optimize=True) * -1 + rdm2.aaaa.oovv = einsum(tmp16, (0, 1), t2.aaaa, (0, 2, 3, 4), (2, 1, 4, 3), optimize=True) * -2 + del tmp16 + tmp8 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 0, 1), (2, 4, 3, 5), optimize=True) + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp8, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) + rdm2.abab.oooo = tmp8.transpose((1, 3, 0, 2)).copy() + del tmp8 + tmp28 = tmp21.copy() + tmp28 += tmp19 + rdm2.abab.oovv += einsum(tmp28, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 4 + del tmp28 + tmp30 = tmp17.copy() * 4 + tmp30 += tmp29 + del tmp29 + rdm2.abab.oovv += einsum(tmp30, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp30 + tmp3 = tmp0.copy() + tmp3 += tmp1 * 0.5 + rdm2.aaaa.oovv += einsum(t2.aaaa, (0, 1, 2, 3), tmp3, (0, 4), (4, 1, 3, 2), optimize=True) * 4 + rdm2.abab.oooo += einsum(tmp3, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -2 + rdm2.aaaa.oooo = einsum(delta.aa.oo, (0, 1), tmp3, (2, 3), (1, 3, 2, 0), optimize=True) * 2 + rdm2.aaaa.oooo += einsum(tmp3, (0, 1), delta.aa.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -2 + del tmp3 + tmp4 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + rdm2.aaaa.oovv += einsum(tmp4, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 5), (3, 2, 5, 4), optimize=True) * 2 + rdm2.aaaa.oooo += tmp4.transpose((3, 2, 1, 0)) * 2 + del tmp4 + tmp20 = einsum(t2.abab, (0, 1, 2, 3), tmp19, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp19 + rdm2.aaaa.oovv += tmp20 * 2 + rdm2.aaaa.oovv += tmp20.transpose((0, 1, 3, 2)) * -2 + del tmp20 + tmp15 = einsum(t2.aaaa, (0, 1, 2, 3), tmp14, (2, 4), (0, 1, 3, 4), optimize=True) * 4 + del tmp14 + rdm2.aaaa.oovv += tmp15.transpose((1, 0, 3, 2)) + rdm2.aaaa.oovv += tmp15.transpose((1, 0, 2, 3)) * -1 + del tmp15 + tmp22 = einsum(t2.abab, (0, 1, 2, 3), tmp21, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp21 + rdm2.aaaa.oovv += tmp22.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.oovv += tmp22 * 2 + rdm2.aaaa.oovv += tmp22.transpose((1, 0, 2, 3)) * -2 + rdm2.aaaa.oovv += tmp22.transpose((0, 1, 3, 2)) * -2 + del tmp22 + tmp18 = einsum(t2.aaaa, (0, 1, 2, 3), tmp17, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp17 + rdm2.aaaa.oovv += tmp18 * 8 + rdm2.aaaa.oovv += tmp18.transpose((0, 1, 3, 2)) * -8 + del tmp18 + tmp10 = tmp5.copy() * 0.5 + tmp10 += tmp6 + rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp10, (2, 3), (1, 3, 2, 0), optimize=True) * 2 + rdm2.bbbb.oooo += einsum(tmp10, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -2 + del tmp10 + tmp9 = delta.bb.oo.transpose((1, 0)).copy() * -1 + tmp9 += tmp5 + tmp9 += tmp6 * 2 + rdm2.bbbb.oooo += einsum(tmp9, (0, 1), delta.bb.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.bbbb.oooo += einsum(tmp9, (0, 1), delta.bb.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + del tmp9 + tmp7 = delta.bb.oo.transpose((1, 0)).copy() * -0.5 + tmp7 += tmp5 * 0.5 + del tmp5 + tmp7 += tmp6 + del tmp6 + rdm2.abab.oooo += einsum(delta.aa.oo, (0, 1), tmp7, (2, 3), (1, 3, 0, 2), optimize=True) * -2 + del tmp7 + tmp2 = delta.aa.oo.transpose((1, 0)).copy() * -1 + tmp2 += tmp0 * 2 + del tmp0 + tmp2 += tmp1 + del tmp1 + rdm2.aaaa.oooo += einsum(tmp2, (0, 1), delta.aa.oo, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.aaaa.oooo += einsum(tmp2, (0, 1), delta.aa.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + del delta, tmp2 + rdm2.aaaa.oovv += t2.aaaa.transpose((1, 0, 3, 2)) * 2 + rdm2.abab.oovv += t2.abab + rdm2.bbbb.oovv += t2.bbbb.transpose((1, 0, 3, 2)) * 2 + rdm2.abab.ovov += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 5, 1), (0, 4, 5, 3), optimize=True) * -1 + rdm2.abab.voov += einsum(t2.bbbb, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (4, 0, 5, 2), optimize=True) * 2 + rdm2.aaaa.vvoo = l2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.abab.vvoo = l2.abab.copy() + rdm2.bbbb.vvoo = l2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.aaaa.vvvv = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 + rdm2.abab.vvvv = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) + rdm2.bbbb.vvvv = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * 2 + rdm2.aaaa.ooov = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.aaaa.oovo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.aaaa.ovoo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.aaaa.vooo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.aaaa.ovvv = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.aaaa.vovv = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.aaaa.vvov = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.aaaa.vvvo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.aabb.ooov = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.aabb.oovo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.aabb.ovoo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.aabb.vooo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.aabb.ovvv = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.aabb.vovv = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.aabb.vvov = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.aabb.vvvo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.bbaa.ooov = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.bbaa.oovo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.bbaa.ovoo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.bbaa.vooo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.bbaa.ovvv = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.bbaa.vovv = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.bbaa.vvov = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.bbaa.vvvo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.bbbb.ooov = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.bbbb.oovo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.bbbb.ovoo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.bbbb.vooo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.bbbb.ovvv = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.bbbb.vovv = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.bbbb.vvov = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.bbbb.vvvo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.aaaa = pack_2e(rdm2.aaaa.oooo, rdm2.aaaa.ooov, rdm2.aaaa.oovo, rdm2.aaaa.ovoo, rdm2.aaaa.vooo, rdm2.aaaa.oovv, rdm2.aaaa.ovov, rdm2.aaaa.ovvo, rdm2.aaaa.voov, rdm2.aaaa.vovo, rdm2.aaaa.vvoo, rdm2.aaaa.ovvv, rdm2.aaaa.vovv, rdm2.aaaa.vvov, rdm2.aaaa.vvvo, rdm2.aaaa.vvvv) + rdm2.abab = pack_2e(rdm2.abab.oooo, rdm2.abab.ooov, rdm2.abab.oovo, rdm2.abab.ovoo, rdm2.abab.vooo, rdm2.abab.oovv, rdm2.abab.ovov, rdm2.abab.ovvo, rdm2.abab.voov, rdm2.abab.vovo, rdm2.abab.vvoo, rdm2.abab.ovvv, rdm2.abab.vovv, rdm2.abab.vvov, rdm2.abab.vvvo, rdm2.abab.vvvv) + rdm2.bbbb = pack_2e(rdm2.bbbb.oooo, rdm2.bbbb.ooov, rdm2.bbbb.oovo, rdm2.bbbb.ovoo, rdm2.bbbb.vooo, rdm2.bbbb.oovv, rdm2.bbbb.ovov, rdm2.bbbb.ovvo, rdm2.bbbb.voov, rdm2.bbbb.vovo, rdm2.bbbb.vvoo, rdm2.bbbb.ovvv, rdm2.bbbb.vovv, rdm2.bbbb.vvov, rdm2.bbbb.vvvo, rdm2.bbbb.vvvv) + rdm2 = Namespace( + aaaa=rdm2.aaaa.swapaxes(1, 2), + aabb=rdm2.abab.swapaxes(1, 2), + bbbb=rdm2.bbbb.swapaxes(1, 2), + ) + + return rdm2 + diff --git a/ebcc/codegen/UCCSD.py b/ebcc/codegen/UCCSD.py index 9dc07df1..ab1bd190 100644 --- a/ebcc/codegen/UCCSD.py +++ b/ebcc/codegen/UCCSD.py @@ -2,23 +2,23 @@ Code generated by `albert`: https://github.com/obackhouse/albert - * date: 2024-03-02T15:24:42.798022 - * python version: 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] + * date: 2024-07-18T20:17:31.131668 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] * albert version: 0.0.0 * caller: /home/ollie/git/albert/albert/codegen/einsum.py * node: ollie-desktop * system: Linux * processor: x86_64 - * release: 6.5.0-21-generic + * release: 6.5.0-44-generic """ from ebcc import numpy as np -from ebcc.util import pack_2e, einsum, Namespace +from ebcc.util import pack_2e, einsum, direct_sum, Namespace def energy(f=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:24:43.583536. + Code generated by `albert` 0.0.0 on 2024-07-18T20:17:31.922083. Parameters ---------- @@ -37,30 +37,30 @@ def energy(f=None, t1=None, t2=None, v=None, **kwargs): Coupled cluster energy. """ - tmp2 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() - tmp2 += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 - tmp3 = einsum(tmp2, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) * -0.5 - del tmp2 - tmp3 += f.bb.ov - e_cc = einsum(tmp3, (0, 1), t1.bb, (0, 1), (), optimize=True) - del tmp3 - tmp0 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() - tmp0 += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 - tmp1 = einsum(t1.aa, (0, 1), tmp0, (0, 2, 3, 1), (2, 3), optimize=True) * -0.5 - del tmp0 + tmp0 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() + tmp0 += v.aaaa.ovov.transpose((2, 0, 3, 1)) * -1 + tmp2 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp2 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + tmp1 = f.aa.ov.copy() tmp1 += einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) - tmp1 += f.aa.ov - e_cc += einsum(tmp1, (0, 1), t1.aa, (0, 1), (), optimize=True) + tmp1 += einsum(t1.aa, (0, 1), tmp0, (0, 2, 1, 3), (2, 3), optimize=True) * -0.5 + del tmp0 + e_cc = einsum(t1.aa, (0, 1), tmp1, (0, 1), (), optimize=True) del tmp1 - e_cc += einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (0, 3, 1, 2), (), optimize=True) * -1 + tmp3 = f.bb.ov.copy() * 2 + tmp3 += einsum(tmp2, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) * -1 + del tmp2 + e_cc += einsum(tmp3, (0, 1), t1.bb, (0, 1), (), optimize=True) * 0.5 + del tmp3 + e_cc += einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 2, 1, 3), (), optimize=True) + e_cc += einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (0, 2, 1, 3), (), optimize=True) e_cc += einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (0, 2, 1, 3), (), optimize=True) - e_cc += einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 1, 3), (), optimize=True) return e_cc def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:25:21.168040. + Code generated by `albert` 0.0.0 on 2024-07-18T20:18:08.892646. Parameters ---------- @@ -83,729 +83,793 @@ def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): t1new = Namespace() t2new = Namespace() - tmp199 = einsum(v.bbbb.ovvv, (0, 1, 2, 3), t2.bbbb, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) - t2new.bbbb = einsum(tmp199, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) * -2 - del tmp199 - tmp197 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t1.bb, (2, 4), (0, 3, 1, 4), optimize=True) - tmp197 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) - tmp198 = einsum(tmp197, (0, 1, 2, 3), t1.bb, (0, 4), (1, 4, 3, 2), optimize=True) - del tmp197 - tmp198 += v.bbbb.vvvv.transpose((2, 3, 1, 0)) * -1 - t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp198, (2, 4, 5, 3), (1, 0, 5, 4), optimize=True) * -2 - del tmp198 - tmp192 = einsum(v.bbbb.ovvv, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 1, 2), optimize=True) - t2new.bbbb += tmp192.transpose((1, 0, 3, 2)) * -1 - tmp195 = einsum(t1.bb, (0, 1), v.bbbb.vvvv, (2, 1, 3, 4), (0, 3, 4, 2), optimize=True) - tmp196 = einsum(t1.bb, (0, 1), tmp195, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) - del tmp195 - t2new.bbbb += tmp196.transpose((0, 1, 3, 2)) * -1 - t2new.bbbb += tmp196 - del tmp196 - t2new.bbbb += tmp192.transpose((0, 1, 3, 2)) - tmp31 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 2, 1), optimize=True) - tmp189 = tmp31.copy() - tmp189 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - tmp190 = einsum(t2.abab, (0, 1, 2, 3), tmp189, (0, 4, 5, 2), (1, 4, 5, 3), optimize=True) - del tmp189 - tmp191 = einsum(t1.bb, (0, 1), tmp190, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) - del tmp190 - t2new.bbbb += tmp191.transpose((1, 0, 3, 2)) - tmp179 = einsum(v.bbbb.oovv, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 1, 2), optimize=True) - tmp187 = tmp179.transpose((2, 0, 1, 3)).copy() - tmp33 = einsum(t1.bb, (0, 1), v.bbbb.ovov, (2, 1, 3, 4), (0, 3, 2, 4), optimize=True) - tmp187 += tmp33 - tmp187 += v.bbbb.ooov.transpose((1, 2, 0, 3)) - tmp188 = einsum(tmp187, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp187 + tmp37 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp37 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + tmp20 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() + tmp20 += v.aaaa.ovov.transpose((2, 0, 3, 1)) * -1 + tmp11 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp11 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + tmp28 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 2, 1), optimize=True) + tmp10 = einsum(t1.aa, (0, 1), v.aabb.ovov, (0, 1, 2, 3), (2, 3), optimize=True) + t1new.bb = tmp10.copy() + tmp38 = einsum(tmp37, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) + tmp1 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 2, 1), optimize=True) + tmp21 = einsum(t1.aa, (0, 1), tmp20, (0, 2, 1, 3), (2, 3), optimize=True) + tmp0 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + t1new.aa = tmp0.copy() + tmp12 = einsum(tmp11, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) + tmp177 = einsum(v.bbbb.ooov, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 1, 2), optimize=True) + tmp151 = tmp28.copy() * -1 + tmp151 += tmp28.transpose((0, 2, 1, 3)) + tmp175 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp175 += v.bbbb.ovvv.transpose((0, 3, 1, 2)) + tmp142 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() + tmp142 += v.bbbb.ooov.transpose((1, 2, 0, 3)) * -1 + tmp26 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 2, 1), optimize=True) + tmp39 = f.bb.ov.copy() + tmp39 += tmp10 + tmp39 += tmp38 * -1 + del tmp38 + tmp87 = tmp1.copy() * -1 + tmp87 += tmp1.transpose((0, 2, 1, 3)) + tmp80 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() + tmp80 += v.aaaa.ovvv.transpose((0, 3, 1, 2)) * -1 + tmp7 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() + tmp7 += v.aaaa.ovov.transpose((2, 0, 3, 1)) * -1 + tmp22 = f.aa.ov.copy() + tmp22 += tmp0 + tmp22 += tmp21 * -1 + del tmp21 + tmp91 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp91 += v.aaaa.ooov.transpose((2, 1, 0, 3)) + tmp68 = einsum(v.aaaa.ooov, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) + tmp3 = einsum(t1.aa, (0, 1), v.aabb.ovov, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + tmp202 = einsum(t1.bb, (0, 1), tmp28, (2, 3, 4, 1), (2, 0, 4, 3), optimize=True) + tmp13 = f.bb.ov.copy() + tmp13 += tmp10 + del tmp10 + tmp13 += tmp12 * -1 + del tmp12 + t1new.bb += einsum(t2.bbbb, (0, 1, 2, 3), tmp13, (0, 2), (1, 3), optimize=True) * 2 + t1new.aa += einsum(tmp13, (0, 1), t2.abab, (2, 0, 3, 1), (2, 3), optimize=True) + tmp188 = einsum(t1.bb, (0, 1), v.bbbb.ovvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + t2new.bbbb = tmp188.transpose((1, 0, 3, 2)).copy() * -1 + t2new.bbbb += tmp188.transpose((0, 1, 3, 2)) t2new.bbbb += tmp188 * -1 - tmp182 = tmp33.transpose((0, 2, 1, 3)).copy() * -1 - tmp182 += tmp33 - tmp182 += v.bbbb.ooov.transpose((1, 2, 0, 3)) - tmp182 += v.bbbb.ooov.transpose((1, 0, 2, 3)) * -1 - tmp183 = einsum(t1.bb, (0, 1), tmp182, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) - del tmp182 - tmp184 = tmp183.copy() * -1 + t2new.bbbb += tmp188.transpose((1, 0, 2, 3)) + tmp180 = einsum(t1.bb, (0, 1), tmp177, (2, 3, 4, 0), (2, 4, 3, 1), optimize=True) + tmp179 = einsum(v.bbbb.oovv, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 1, 2), optimize=True) + tmp152 = einsum(tmp151, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp151 + tmp190 = einsum(t1.bb, (0, 1), tmp175, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + tmp35 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp35 += v.bbbb.ooov.transpose((1, 2, 0, 3)) + tmp143 = einsum(tmp142, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp142 + tmp134 = v.aabb.ovoo.transpose((0, 3, 2, 1)).copy() + tmp134 += tmp26.transpose((0, 2, 1, 3)) + tmp33 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 3), (4, 2), optimize=True) + tmp34 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (1, 2, 4, 3), (0, 4), optimize=True) * -1 + tmp183 = einsum(tmp39, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) * 0.5 + tmp154 = einsum(t1.bb, (0, 1), tmp26, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) + tmp130 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 1, 2), optimize=True) + t2new.abab = tmp130.copy() + tmp56 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp56 += v.aaaa.ooov.transpose((2, 1, 0, 3)) * -1 + tmp62 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() + tmp62 += v.aaaa.ovvv.transpose((0, 3, 2, 1)) * -1 + tmp88 = einsum(tmp87, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp87 + tmp81 = einsum(t1.aa, (0, 1), tmp80, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) + del tmp80 + tmp50 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() + tmp50 += v.bbbb.ovov.transpose((2, 0, 3, 1)) * -1 + tmp8 = einsum(t1.aa, (0, 1), tmp7, (0, 2, 1, 3), (2, 3), optimize=True) + tmp100 = einsum(tmp1, (0, 1, 2, 3), t1.aa, (4, 3), (0, 4, 2, 1), optimize=True) + tmp23 = einsum(tmp22, (0, 1), t1.aa, (2, 1), (2, 0), optimize=True) + tmp16 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (1, 2, 4, 3), (0, 4), optimize=True) * -1 + tmp17 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 1, 3), (4, 0), optimize=True) + tmp92 = einsum(tmp91, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp91 + tmp18 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp18 += v.aaaa.ooov.transpose((2, 1, 0, 3)) * -1 + tmp70 = einsum(v.aaaa.oovv, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) + tmp71 = einsum(t1.aa, (0, 1), tmp68, (2, 3, 4, 0), (2, 4, 3, 1), optimize=True) + tmp78 = einsum(t1.aa, (0, 1), v.aaaa.ovvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + t2new.aaaa = tmp78.transpose((1, 0, 3, 2)).copy() * -1 + t2new.aaaa += tmp78.transpose((0, 1, 3, 2)) + t2new.aaaa += tmp78 * -1 + t2new.aaaa += tmp78.transpose((1, 0, 2, 3)) + tmp83 = einsum(v.bbaa.ovvv, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 2, 1), optimize=True) + tmp95 = einsum(tmp3, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + t2new.abab += tmp95 * -1 + tmp191 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp191 += v.bbbb.ooov.transpose((2, 1, 0, 3)) + tmp189 = t2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + tmp189 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + tmp118 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (0, 3, 1, 4), (2, 4), optimize=True) * -1 + tmp117 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 2, 1, 4), (4, 3), optimize=True) + tmp206 = einsum(t1.bb, (0, 1), tmp202, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) + tmp121 = einsum(t1.aa, (0, 1), v.aabb.ovvv, (0, 1, 2, 3), (2, 3), optimize=True) + tmp123 = einsum(t1.bb, (0, 1), tmp13, (0, 2), (1, 2), optimize=True) + del tmp13 + tmp163 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp163 += v.bbbb.ooov.transpose((2, 1, 0, 3)) + tmp208 = einsum(v.bbbb.vvvv, (0, 1, 2, 3), t1.bb, (4, 1), (4, 2, 3, 0), optimize=True) + tmp204 = einsum(tmp188, (0, 1, 2, 3), t1.bb, (4, 2), (4, 0, 1, 3), optimize=True) + del tmp188 + tmp181 = tmp179.transpose((0, 2, 1, 3)).copy() + tmp181 += tmp180.transpose((0, 2, 1, 3)) * -1 + tmp210 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + tmp200 = einsum(v.aabb.ovoo, (0, 1, 2, 3), t2.abab, (0, 4, 1, 5), (4, 2, 3, 5), optimize=True) + t2new.bbbb += einsum(t1.bb, (0, 1), tmp200, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) + tmp168 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp168 += v.bbbb.ooov.transpose((1, 2, 0, 3)) + tmp32 = einsum(t1.aa, (0, 1), v.aabb.ovoo, (0, 1, 2, 3), (2, 3), optimize=True) + tmp195 = tmp190.transpose((0, 1, 3, 2)).copy() * -1 + tmp195 += tmp152 * -1 + tmp36 = einsum(tmp35, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + del tmp35 + tmp173 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp173 += v.bbbb.ovvv.transpose((0, 3, 1, 2)) + tmp197 = v.bbbb.oovv.transpose((1, 0, 3, 2)).copy() + tmp197 += tmp143.transpose((1, 0, 2, 3)) * -1 + tmp165 = einsum(tmp7, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + tmp135 = einsum(tmp134, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) + del tmp134 + t2new.abab += tmp135 * -1 + tmp120 = einsum(t2.bbbb, (0, 1, 2, 3), v.aabb.ovov, (4, 5, 1, 3), (4, 0, 5, 2), optimize=True) + t2new.abab += tmp120 * 2 + tmp184 = tmp33.copy() * 0.5 + tmp184 += tmp34 + tmp184 += tmp183 del tmp183 - tmp184 += v.bbbb.oovv.transpose((1, 0, 3, 2)) - tmp185 = einsum(t2.bbbb, (0, 1, 2, 3), tmp184, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) - del tmp184 - t2new.bbbb += tmp185.transpose((1, 0, 2, 3)) * 2 - tmp132 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 1, 2), optimize=True) - tmp142 = tmp132.copy() - tmp142 += v.aabb.ovov.transpose((0, 2, 1, 3)) - tmp176 = einsum(t2.abab, (0, 1, 2, 3), tmp142, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - t2new.bbbb += tmp176 - tmp169 = v.bbbb.ovvv.transpose((0, 3, 1, 2)).copy() - tmp169 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp170 = einsum(t1.bb, (0, 1), tmp169, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) - del tmp169 - tmp171 = tmp170.copy() * -1 - del tmp170 - tmp171 += v.bbbb.ovov.transpose((2, 0, 1, 3)) - tmp172 = einsum(t2.bbbb, (0, 1, 2, 3), tmp171, (4, 0, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp171 - t2new.bbbb += tmp172 * 2 - tmp193 = einsum(tmp192, (0, 1, 2, 3), t1.bb, (4, 2), (4, 0, 1, 3), optimize=True) - tmp194 = einsum(t1.bb, (0, 1), tmp193, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) - del tmp193 - t2new.bbbb += tmp194.transpose((1, 0, 2, 3)) - t2new.bbbb += tmp194 * -1 - tmp180 = tmp179.transpose((2, 1, 0, 3)).copy() - del tmp179 - tmp180 += tmp33.transpose((2, 0, 1, 3)) - tmp180 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - tmp181 = einsum(t1.bb, (0, 1), tmp180, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) - del tmp180 - t2new.bbbb += tmp181.transpose((0, 1, 3, 2)) - t2new.bbbb += tmp176.transpose((0, 1, 3, 2)) * -1 - tmp139 = tmp31.transpose((0, 2, 1, 3)).copy() - tmp139 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - tmp140 = einsum(tmp139, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) - del tmp139 - tmp174 = tmp140.copy() - tmp15 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() - tmp15 += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 - tmp173 = einsum(t2.abab, (0, 1, 2, 3), tmp15, (0, 4, 5, 2), (4, 1, 5, 3), optimize=True) - tmp174 += tmp173 - del tmp173 - tmp175 = einsum(tmp174, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) - del tmp174 - t2new.bbbb += tmp175.transpose((1, 0, 3, 2)) * -1 - t2new.bbbb += tmp172.transpose((0, 1, 3, 2)) * -2 - tmp165 = v.bbbb.ooov.transpose((2, 1, 0, 3)).copy() * -1 - tmp165 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - tmp166 = einsum(t1.bb, (0, 1), tmp165, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) - del tmp165 - tmp167 = tmp166.transpose((1, 0, 2, 3)).copy() * -1 - del tmp166 - tmp163 = einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - tmp163 += t2.bbbb.transpose((1, 0, 3, 2)) * 2 - tmp12 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() - tmp12 += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 - tmp164 = einsum(tmp12, (0, 1, 2, 3), tmp163, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp163 - tmp167 += tmp164.transpose((1, 0, 3, 2)) * -1 - del tmp164 - tmp167 += v.bbbb.oovv.transpose((1, 0, 3, 2)) - tmp168 = einsum(t2.bbbb, (0, 1, 2, 3), tmp167, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) - del tmp167 - t2new.bbbb += tmp168.transpose((1, 0, 3, 2)) * -2 - tmp161 = einsum(t2.bbbb, (0, 1, 2, 3), v.aabb.ovov, (4, 5, 1, 3), (4, 0, 5, 2), optimize=True) - tmp162 = einsum(t2.abab, (0, 1, 2, 3), tmp161, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp161 - t2new.bbbb += tmp162.transpose((1, 0, 3, 2)) * 2 - t2new.bbbb += tmp162 * 2 - t2new.bbbb += tmp194.transpose((1, 0, 3, 2)) * -1 - t2new.bbbb += tmp194.transpose((0, 1, 3, 2)) + tmp212 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() + tmp212 += einsum(t1.bb, (0, 1), v.bbbb.ovov, (2, 3, 0, 4), (2, 4, 3, 1), optimize=True) + tmp155 = tmp130.copy() + tmp155 += tmp154 * -1 + t2new.abab += einsum(tmp155, (0, 1, 2, 3), t2.aaaa, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * 2 + tmp145 = einsum(v.aabb.ovoo, (0, 1, 2, 3), t1.bb, (3, 4), (0, 2, 1, 4), optimize=True) + tmp49 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + t2new.abab += tmp49 * -1 + tmp150 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() + tmp150 += v.bbbb.ovvv.transpose((0, 3, 2, 1)) * -1 + tmp5 = t2.abab.copy() + tmp5 += einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + t1new.bb += einsum(v.aabb.ovvv, (0, 1, 2, 3), tmp5, (0, 4, 1, 2), (4, 3), optimize=True) + t1new.aa += einsum(tmp5, (0, 1, 2, 3), v.bbaa.ovvv, (1, 3, 2, 4), (0, 4), optimize=True) + tmp57 = einsum(tmp56, (0, 1, 2, 3), t1.aa, (0, 3), (1, 2), optimize=True) + tmp15 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + tmp148 = v.bbaa.ovvv.transpose((0, 3, 2, 1)).copy() + tmp148 += einsum(t1.aa, (0, 1), v.aabb.ovov, (0, 2, 3, 4), (3, 1, 2, 4), optimize=True) * -1 + tmp138 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp138 += v.aaaa.ovvv.transpose((0, 3, 1, 2)) + tmp40 = einsum(tmp39, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) + tmp46 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) + t2new.aaaa += tmp46 + t2new.aaaa += tmp46.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp46.transpose((1, 0, 2, 3)) * -1 + t2new.aaaa += tmp46.transpose((1, 0, 3, 2)) + tmp53 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (0, 2, 4, 1), (4, 3), optimize=True) * -1 + tmp64 = einsum(t1.aa, (0, 1), tmp22, (0, 2), (1, 2), optimize=True) + del tmp22 + tmp63 = einsum(t1.aa, (0, 1), tmp62, (0, 1, 2, 3), (2, 3), optimize=True) + del tmp62 + tmp61 = einsum(v.bbaa.ovvv, (0, 1, 2, 3), t1.bb, (0, 1), (2, 3), optimize=True) + tmp54 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 2, 4, 3), (4, 1), optimize=True) + tmp122 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() + tmp122 += v.bbbb.ovvv.transpose((0, 3, 1, 2)) * -1 + tmp89 = tmp81.transpose((0, 1, 3, 2)).copy() * -1 + tmp89 += tmp88 * -1 + tmp51 = einsum(tmp50, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) + del tmp50 + tmp84 = v.aabb.ooov.transpose((1, 0, 2, 3)).copy() + tmp84 += tmp3.transpose((1, 0, 2, 3)) + tmp108 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + tmp9 = f.aa.ov.copy() + tmp9 += tmp0 + del tmp0 + tmp9 += tmp8 * -1 + del tmp8 + t1new.bb += einsum(tmp9, (0, 1), t2.abab, (0, 2, 1, 3), (2, 3), optimize=True) + t1new.aa += einsum(tmp9, (0, 1), t2.aaaa, (0, 2, 1, 3), (2, 3), optimize=True) * 2 + tmp66 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() + tmp66 += v.aaaa.ovvv.transpose((0, 3, 2, 1)) * -1 + tmp106 = einsum(tmp100, (0, 1, 2, 3), t1.aa, (2, 4), (1, 0, 3, 4), optimize=True) + tmp74 = tmp16.copy() * 2 + tmp74 += tmp17 + tmp74 += tmp23 + tmp93 = v.aaaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp93 += tmp92.transpose((1, 0, 2, 3)) * -1 + del tmp92 + tmp104 = einsum(v.aaaa.vvvv, (0, 1, 2, 3), t1.aa, (4, 1), (4, 2, 3, 0), optimize=True) + tmp79 = t2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + tmp79 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + tmp19 = einsum(t1.aa, (0, 1), tmp18, (0, 2, 3, 1), (2, 3), optimize=True) + tmp72 = tmp70.transpose((0, 2, 1, 3)).copy() + tmp72 += tmp71.transpose((0, 2, 1, 3)) * -1 + tmp110 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() + tmp110 += einsum(t1.aa, (0, 1), v.aaaa.ovov, (2, 3, 0, 4), (2, 4, 3, 1), optimize=True) + tmp102 = einsum(tmp78, (0, 1, 2, 3), t1.aa, (4, 2), (4, 0, 1, 3), optimize=True) + del tmp78 + tmp96 = tmp83.copy() + tmp96 += tmp95 * -1 + tmp98 = einsum(v.aabb.ooov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 1, 5), optimize=True) + t2new.aaaa += einsum(tmp98, (0, 1, 2, 3), t1.aa, (2, 4), (1, 0, 3, 4), optimize=True) + tmp194 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() + tmp194 += tmp28.transpose((2, 0, 1, 3)) + t2new.bbbb += einsum(tmp194, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 3, 4), optimize=True) * -1 del tmp194 - t2new.bbbb += tmp192 * -1 - t2new.bbbb += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 - t2new.bbbb += tmp192.transpose((1, 0, 2, 3)) - del tmp192 - t2new.bbbb += v.bbbb.ovov.transpose((2, 0, 3, 1)) - t2new.bbbb += tmp191.transpose((0, 1, 3, 2)) * -1 + tmp192 = v.bbbb.oovv.transpose((1, 0, 3, 2)).copy() + tmp192 += einsum(tmp11, (0, 1, 2, 3), tmp189, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 + del tmp189 + tmp192 += tmp190.transpose((0, 1, 3, 2)) * -1 + del tmp190 + tmp192 += einsum(tmp191, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) * -1 del tmp191 - t2new.bbbb += tmp188.transpose((1, 0, 2, 3)) - del tmp188 - tmp13 = einsum(tmp12, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) - tmp14 = tmp13.copy() * -1 - del tmp13 - tmp11 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3), optimize=True) - tmp14 += tmp11 - tmp14 += f.bb.ov - tmp130 = einsum(tmp14, (0, 1), t1.bb, (0, 2), (2, 1), optimize=True) - tmp186 = tmp130.transpose((1, 0)).copy() - tmp136 = v.bbbb.ovvv.transpose((0, 3, 2, 1)).copy() * -1 - tmp136 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) - tmp186 += einsum(t1.bb, (0, 1), tmp136, (0, 1, 2, 3), (3, 2), optimize=True) * -1 - tmp128 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3), optimize=True) - tmp186 += tmp128.transpose((1, 0)) * -1 - tmp186 += f.bb.vv.transpose((1, 0)) * -1 - t2new.bbbb += einsum(tmp186, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -2 - del tmp186 - t2new.bbbb += tmp185 * -2 - del tmp185 - t2new.bbbb += tmp176.transpose((1, 0, 2, 3)) * -1 - t2new.bbbb += tmp172.transpose((1, 0, 2, 3)) * -2 - t2new.bbbb += tmp181.transpose((1, 0, 3, 2)) * -1 + t2new.bbbb += einsum(tmp192, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (4, 0, 2, 5), optimize=True) * 2 + del tmp192 + tmp167 = tmp117.copy() + tmp167 += tmp118 * 2 + t2new.bbbb += einsum(tmp167, (0, 1), t2.bbbb, (2, 3, 1, 4), (3, 2, 4, 0), optimize=True) * -2 + del tmp167 + tmp207 = einsum(tmp206, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp206 + t2new.bbbb += tmp207.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp207 + del tmp207 + tmp176 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp176 += tmp121.transpose((1, 0)) * -1 + tmp176 += einsum(tmp175, (0, 1, 2, 3), t1.bb, (0, 2), (1, 3), optimize=True) * -1 + del tmp175 + tmp176 += tmp123.transpose((1, 0)) + t2new.bbbb += einsum(tmp176, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -2 + del tmp176 + tmp160 = t2.bbbb.transpose((1, 0, 3, 2)).copy() + tmp160 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + t2new.bbbb += einsum(tmp160, (0, 1, 2, 3), v.bbbb.oooo, (0, 4, 5, 1), (5, 4, 3, 2), optimize=True) + del tmp160 + tmp216 = einsum(v.bbbb.ovvv, (0, 1, 2, 3), t2.bbbb, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + t2new.bbbb += einsum(tmp216, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) * -2 + del tmp216 + tmp164 = v.bbbb.oovv.transpose((1, 0, 3, 2)).copy() * 0.5 + tmp164 += einsum(t2.bbbb, (0, 1, 2, 3), tmp37, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -1 + del tmp37 + tmp164 += einsum(tmp163, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) * -0.5 + del tmp163 + t2new.bbbb += einsum(tmp164, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * -4 + del tmp164 + tmp209 = einsum(tmp208, (0, 1, 2, 3), t1.bb, (4, 2), (4, 0, 1, 3), optimize=True) + del tmp208 + t2new.bbbb += tmp209.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp209 + del tmp209 + tmp205 = einsum(tmp204, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp204 + t2new.bbbb += tmp205.transpose((1, 0, 2, 3)) + t2new.bbbb += tmp205 * -1 + t2new.bbbb += tmp205.transpose((1, 0, 3, 2)) * -1 + t2new.bbbb += tmp205.transpose((0, 1, 3, 2)) + del tmp205 + tmp182 = einsum(tmp181, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 4, 3), optimize=True) del tmp181 - tmp38 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() - tmp38 += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 - tmp39 = einsum(tmp38, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) - del tmp38 - tmp40 = tmp39.copy() * -1 - del tmp39 - tmp40 += tmp11 - tmp40 += f.bb.ov - tmp178 = einsum(tmp40, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) - tmp177 = v.bbbb.ovvv.transpose((0, 3, 2, 1)).copy() * -1 - tmp177 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) - tmp178 += einsum(t1.bb, (0, 1), tmp177, (0, 1, 2, 3), (3, 2), optimize=True) * -1 + t2new.bbbb += tmp182.transpose((1, 0, 3, 2)) + t2new.bbbb += tmp182.transpose((1, 0, 2, 3)) * -1 + del tmp182 + tmp178 = einsum(t2.bbbb, (0, 1, 2, 3), tmp177, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) del tmp177 - tmp119 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (0, 4, 1, 3), (2, 4), optimize=True) - tmp178 += tmp119.transpose((1, 0)) * 2 - tmp118 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 1, 4), (3, 4), optimize=True) - tmp178 += tmp118.transpose((1, 0)) - tmp178 += tmp128.transpose((1, 0)) * -1 - tmp178 += f.bb.vv.transpose((1, 0)) * -1 - t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp178, (2, 4), (1, 0, 4, 3), optimize=True) * 2 + t2new.bbbb += tmp178.transpose((0, 1, 3, 2)) * 2 + t2new.bbbb += tmp178.transpose((1, 0, 3, 2)) * -2 del tmp178 - t2new.bbbb += tmp176.transpose((1, 0, 3, 2)) - del tmp176 - t2new.bbbb += tmp175.transpose((0, 1, 3, 2)) - del tmp175 - t2new.bbbb += tmp172.transpose((1, 0, 3, 2)) * 2 - del tmp172 - t2new.bbbb += tmp168.transpose((0, 1, 3, 2)) * 2 + tmp171 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (1, 3, 4, 5), (0, 4, 2, 5), optimize=True) + t2new.bbbb += tmp171 * 2 + t2new.bbbb += tmp171.transpose((0, 1, 3, 2)) * -2 + t2new.bbbb += tmp171.transpose((1, 0, 2, 3)) * -2 + t2new.bbbb += tmp171.transpose((1, 0, 3, 2)) * 2 + del tmp171 + tmp211 = einsum(t2.bbbb, (0, 1, 2, 3), tmp210, (4, 5, 0, 1), (5, 4, 2, 3), optimize=True) * -1 + del tmp210 + t2new.bbbb += tmp211.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp211.transpose((0, 1, 3, 2)) * -1 + del tmp211 + tmp170 = t2.bbbb.transpose((1, 0, 3, 2)).copy() + tmp170 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + t2new.bbbb += einsum(v.bbbb.oooo, (0, 1, 2, 3), tmp170, (0, 3, 4, 5), (2, 1, 5, 4), optimize=True) + del tmp170 + tmp203 = einsum(t2.bbbb, (0, 1, 2, 3), tmp202, (4, 5, 1, 0), (5, 4, 2, 3), optimize=True) + del tmp202 + t2new.bbbb += tmp203.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp203.transpose((0, 1, 3, 2)) * -1 + del tmp203 + tmp201 = tmp28.copy() + tmp201 += tmp200.transpose((0, 2, 1, 3)) * -1 + del tmp200 + t2new.bbbb += einsum(t1.bb, (0, 1), tmp201, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) + del tmp201 + tmp187 = einsum(tmp180, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp180 + t2new.bbbb += tmp187.transpose((0, 1, 3, 2)) + t2new.bbbb += tmp187 * -1 + del tmp187 + tmp169 = f.bb.oo.transpose((1, 0)).copy() + tmp169 += tmp32.transpose((1, 0)) + tmp169 += einsum(tmp168, (0, 1, 2, 3), t1.bb, (2, 3), (1, 0), optimize=True) * -1 del tmp168 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp169, (0, 4), (4, 1, 3, 2), optimize=True) * 2 + del tmp169 + tmp196 = einsum(tmp195, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp195 + t2new.bbbb += tmp196.transpose((1, 0, 2, 3)) * 2 + t2new.bbbb += tmp196 * -2 + t2new.bbbb += tmp196.transpose((1, 0, 3, 2)) * -2 + del tmp196 + tmp186 = einsum(tmp179, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp179 + t2new.bbbb += tmp186.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp186 + del tmp186 + tmp115 = f.bb.oo.transpose((1, 0)).copy() + tmp115 += tmp32.transpose((1, 0)) + tmp115 += tmp36.transpose((1, 0)) * -1 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp115, (0, 4), (1, 4, 3, 2), optimize=True) * -2 + t2new.abab += einsum(tmp115, (0, 1), t2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + del tmp115 + tmp174 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp174 += tmp121.transpose((1, 0)) * -1 + tmp174 += tmp117.transpose((1, 0)) + tmp174 += tmp118.transpose((1, 0)) * 2 + tmp174 += einsum(t1.bb, (0, 1), tmp173, (0, 2, 1, 3), (2, 3), optimize=True) * -1 + del tmp173 + tmp174 += einsum(tmp39, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) + del tmp39 + t2new.bbbb += einsum(tmp174, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 + del tmp174 + tmp198 = einsum(t2.bbbb, (0, 1, 2, 3), tmp197, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp197 + t2new.bbbb += tmp198.transpose((1, 0, 2, 3)) * 2 + t2new.bbbb += tmp198 * -2 + del tmp198 + tmp193 = tmp130.copy() * -1 + tmp193 += tmp165 + tmp193 += tmp135 + del tmp135 + t2new.bbbb += einsum(tmp193, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 3, 5), optimize=True) + del tmp193 + tmp162 = einsum(tmp120, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp120 t2new.bbbb += tmp162.transpose((1, 0, 2, 3)) * -2 t2new.bbbb += tmp162.transpose((0, 1, 3, 2)) * -2 + t2new.bbbb += tmp162.transpose((1, 0, 3, 2)) * 2 + t2new.bbbb += tmp162 * 2 del tmp162 - tmp160 = tmp119.copy() - tmp160 += tmp118 * 0.5 - t2new.bbbb += einsum(tmp160, (0, 1), t2.bbbb, (2, 3, 1, 4), (3, 2, 4, 0), optimize=True) * -4 - del tmp160 - tmp41 = einsum(tmp40, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) - del tmp40 - tmp111 = tmp41.transpose((1, 0)).copy() - tmp36 = v.bbbb.ooov.transpose((2, 1, 0, 3)).copy() * -1 - tmp36 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - tmp37 = einsum(tmp36, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) - del tmp36 - tmp111 += tmp37.transpose((1, 0)) * -1 - tmp29 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (1, 2, 4, 3), (0, 4), optimize=True) * -1 - tmp111 += tmp29.transpose((1, 0)) * 2 - tmp28 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 3), (1, 4), optimize=True) - tmp111 += tmp28.transpose((1, 0)) - tmp35 = einsum(v.aabb.ovoo, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3), optimize=True) - tmp111 += tmp35.transpose((1, 0)) - tmp111 += f.bb.oo.transpose((1, 0)) - tmp158 = einsum(tmp111, (0, 1), t2.bbbb, (0, 2, 3, 4), (2, 1, 3, 4), optimize=True) * 2 - t2new.bbbb += tmp158.transpose((1, 0, 3, 2)) - tmp159 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (4, 5, 3, 1), (2, 5, 0, 4), optimize=True) * 2 - tmp150 = einsum(t1.bb, (0, 1), v.bbbb.ooov, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - tmp159 += tmp150.transpose((3, 2, 1, 0)) * 2 - tmp159 += v.bbbb.oooo.transpose((2, 3, 1, 0)) * -1 - t2new.bbbb += einsum(tmp159, (0, 1, 2, 3), t2.bbbb, (0, 2, 4, 5), (1, 3, 5, 4), optimize=True) - del tmp159 - tmp151 = einsum(tmp150, (0, 1, 2, 3), t1.bb, (3, 4), (0, 2, 1, 4), optimize=True) - del tmp150 - tmp152 = einsum(tmp151, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 4, 3), optimize=True) - del tmp151 - t2new.bbbb += tmp152.transpose((1, 0, 3, 2)) * -1 - t2new.bbbb += tmp152.transpose((1, 0, 2, 3)) - tmp148 = einsum(v.bbbb.oooo, (0, 1, 2, 3), t1.bb, (1, 4), (2, 3, 0, 4), optimize=True) - tmp149 = einsum(tmp148, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 4, 3), optimize=True) - del tmp148 - t2new.bbbb += tmp149.transpose((0, 1, 3, 2)) * -1 - t2new.bbbb += tmp158.transpose((0, 1, 3, 2)) * -1 - del tmp158 - tmp156 = tmp33.copy() * -1 - tmp156 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - tmp157 = einsum(t1.bb, (0, 1), tmp156, (2, 3, 4, 1), (4, 0, 3, 2), optimize=True) * 2 - del tmp156 - tmp157 += v.bbbb.oooo.transpose((2, 3, 1, 0)) - t2new.bbbb += einsum(tmp157, (0, 1, 2, 3), t2.bbbb, (0, 2, 4, 5), (1, 3, 5, 4), optimize=True) * -1 - del tmp157 - tmp153 = einsum(tmp33, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 2, 1), optimize=True) - tmp154 = einsum(tmp153, (0, 1, 2, 3), t1.bb, (2, 4), (1, 0, 3, 4), optimize=True) - del tmp153 - tmp155 = einsum(t1.bb, (0, 1), tmp154, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + tmp185 = einsum(tmp184, (0, 1), t2.bbbb, (1, 2, 3, 4), (2, 0, 3, 4), optimize=True) * 4 + del tmp184 + t2new.bbbb += tmp185.transpose((1, 0, 3, 2)) + t2new.bbbb += tmp185.transpose((0, 1, 3, 2)) * -1 + del tmp185 + tmp214 = einsum(tmp28, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + t2new.bbbb += tmp214 * -1 + t2new.bbbb += tmp214.transpose((1, 0, 2, 3)) + del tmp214 + tmp161 = einsum(v.bbbb.ooov, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 4, 3), optimize=True) + t2new.bbbb += tmp161 * -1 + t2new.bbbb += tmp161.transpose((1, 0, 2, 3)) + t2new.bbbb += tmp161.transpose((0, 1, 3, 2)) + del tmp161 + tmp213 = v.bbbb.vvvv.transpose((2, 3, 1, 0)).copy() * -1 + tmp213 += einsum(tmp212, (0, 1, 2, 3), t1.bb, (0, 4), (1, 4, 3, 2), optimize=True) + del tmp212 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp213, (2, 4, 5, 3), (1, 0, 5, 4), optimize=True) * -2 + del tmp213 + tmp172 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) + t2new.bbbb += tmp172 + t2new.bbbb += tmp172.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp172.transpose((1, 0, 2, 3)) * -1 + t2new.bbbb += tmp172.transpose((1, 0, 3, 2)) + del tmp172 + tmp215 = tmp130.copy() * -1 + tmp215 += tmp154 del tmp154 - t2new.bbbb += tmp155.transpose((0, 1, 3, 2)) * -1 - t2new.bbbb += tmp155 + t2new.bbbb += einsum(tmp215, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 + del tmp215 + tmp199 = einsum(tmp155, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) del tmp155 - t2new.bbbb += tmp152.transpose((0, 1, 3, 2)) - t2new.bbbb += tmp152 * -1 + t2new.bbbb += tmp199.transpose((1, 0, 2, 3)) * -1 + t2new.bbbb += tmp199.transpose((1, 0, 3, 2)) + del tmp199 + tmp166 = tmp145.copy() + tmp166 += tmp165 + del tmp165 + t2new.bbbb += einsum(tmp166, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -1 + del tmp166 + tmp147 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 5, 1, 3), (4, 0, 5, 2), optimize=True) + t2new.abab += einsum(tmp147, (0, 1, 2, 3), t2.abab, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) + del tmp147 + tmp133 = tmp49.copy() * -1 + tmp133 += einsum(t2.aaaa, (0, 1, 2, 3), v.aabb.ovov, (1, 3, 4, 5), (0, 4, 2, 5), optimize=True) * 2 + tmp133 += einsum(tmp11, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) * -1 + del tmp11 + t2new.abab += einsum(tmp133, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 2 + del tmp133 + tmp140 = t2.bbbb.transpose((1, 0, 3, 2)).copy() + tmp140 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -0.5 + t2new.abab += einsum(tmp96, (0, 1, 2, 3), tmp140, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 2 + del tmp140 + tmp153 = einsum(t1.bb, (0, 1), tmp150, (2, 1, 3, 4), (0, 2, 4, 3), optimize=True) * -1 + del tmp150 + tmp153 += tmp152.transpose((0, 1, 3, 2)) del tmp152 - t2new.bbbb += tmp149 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp153, (4, 1, 3, 5), (0, 4, 2, 5), optimize=True) + del tmp153 + tmp132 = v.bbaa.oovv.transpose((1, 0, 3, 2)).copy() * -1 + tmp132 += einsum(v.aabb.ovoo, (0, 1, 2, 3), t1.aa, (0, 4), (3, 2, 1, 4), optimize=True) + tmp132 += einsum(t1.bb, (0, 1), v.bbaa.ovvv, (2, 1, 3, 4), (2, 0, 4, 3), optimize=True) * -1 + tmp132 += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp5, (0, 4, 5, 3), (2, 4, 1, 5), optimize=True) + t2new.abab += einsum(tmp132, (0, 1, 2, 3), t2.abab, (4, 0, 2, 5), (4, 1, 3, 5), optimize=True) + del tmp132 + tmp126 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) + t2new.abab += einsum(tmp126, (0, 1, 2, 3), tmp5, (0, 3, 4, 5), (1, 2, 4, 5), optimize=True) + del tmp126 + tmp127 = einsum(v.bbaa.oovv, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) + t2new.abab += einsum(t1.bb, (0, 1), tmp127, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) * -1 + del tmp127 + tmp58 = f.aa.oo.transpose((1, 0)).copy() + tmp58 += tmp15.transpose((1, 0)) + tmp58 += tmp57.transpose((1, 0)) * -1 + del tmp57 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp58, (0, 4), (4, 1, 2, 3), optimize=True) * -1 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp58, (0, 4), (4, 1, 3, 2), optimize=True) * 2 + del tmp58 + tmp156 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.aa, (4, 1), (4, 0, 3, 2), optimize=True) + tmp156 += einsum(tmp3, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 3, 4), optimize=True) * -1 + t2new.abab += einsum(tmp156, (0, 1, 2, 3), t2.abab, (1, 4, 5, 2), (0, 4, 5, 3), optimize=True) * -1 + del tmp156 + tmp128 = tmp16.transpose((1, 0)).copy() * 2 + tmp128 += tmp17.transpose((1, 0)) + tmp128 += tmp23.transpose((1, 0)) + t2new.abab += einsum(tmp128, (0, 1), t2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -1 + del tmp128 + tmp149 = v.aabb.vvvv.transpose((1, 0, 3, 2)).copy() + tmp149 += einsum(tmp148, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 3, 4), optimize=True) * -1 + del tmp148 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp149, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) del tmp149 - tmp147 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t2.abab, (4, 5, 1, 3), (4, 0, 5, 2), optimize=True) - t2new.abab = einsum(tmp147, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) * -1 - del tmp147 - tmp146 = einsum(t1.bb, (0, 1), v.bbaa.ovvv, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - tmp1 = einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - tmp1 += t2.abab - t2new.abab += einsum(tmp146, (0, 1, 2, 3), tmp1, (4, 1, 2, 5), (4, 0, 3, 5), optimize=True) * -1 - del tmp146 - tmp144 = einsum(t1.aa, (0, 1), v.aabb.ovov, (0, 2, 3, 4), (3, 1, 2, 4), optimize=True) * -1 - tmp144 += v.bbaa.ovvv.transpose((0, 3, 2, 1)) - tmp145 = einsum(tmp144, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 3, 4), optimize=True) * -1 - del tmp144 - tmp145 += v.aabb.vvvv.transpose((1, 0, 3, 2)) - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp145, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) - del tmp145 - tmp143 = einsum(tmp142, (0, 1, 2, 3), t1.aa, (4, 2), (4, 0, 1, 3), optimize=True) - del tmp142 - t2new.abab += einsum(tmp143, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) * -1 + tmp144 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp144 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp144 += tmp143.transpose((1, 0, 3, 2)) del tmp143 - tmp141 = tmp140.copy() * -1 - del tmp140 - tmp141 += tmp132 - tmp141 += v.aabb.ovov.transpose((0, 2, 1, 3)) - t2new.abab += einsum(t2.aaaa, (0, 1, 2, 3), tmp141, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * 2 - del tmp141 - tmp137 = tmp33.transpose((2, 0, 1, 3)).copy() * -1 - tmp137 += tmp33.transpose((1, 0, 2, 3)) - tmp137 += v.bbbb.ooov.transpose((2, 1, 0, 3)) - tmp137 += v.bbbb.ooov.transpose((1, 0, 2, 3)) * -1 - tmp138 = einsum(tmp137, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 3, 4), optimize=True) + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp144, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) + del tmp144 + tmp119 = tmp117.copy() * 0.5 + del tmp117 + tmp119 += tmp118 + del tmp118 + t2new.abab += einsum(tmp119, (0, 1), t2.abab, (2, 3, 4, 1), (2, 3, 4, 0), optimize=True) * -2 + del tmp119 + tmp137 = einsum(tmp26, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp137, (4, 0, 5, 1), (4, 5, 2, 3), optimize=True) del tmp137 - tmp138 += einsum(tmp136, (0, 1, 2, 3), t1.bb, (4, 1), (0, 4, 3, 2), optimize=True) * -1 + tmp136 = v.aabb.oovv.transpose((1, 0, 3, 2)).copy() + tmp136 += einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (2, 4), (1, 0, 3, 4), optimize=True) * -1 + t2new.abab += einsum(tmp136, (0, 1, 2, 3), t2.abab, (0, 4, 5, 2), (1, 4, 5, 3), optimize=True) * -1 del tmp136 - tmp138 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 - tmp138 += v.bbbb.ovov.transpose((2, 0, 3, 1)) - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp138, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) - del tmp138 - tmp135 = einsum(t1.bb, (0, 1), v.aabb.vvvv, (2, 3, 4, 1), (0, 3, 2, 4), optimize=True) - tmp135 += v.bbaa.ovvv.transpose((0, 3, 2, 1)) - t2new.abab += einsum(t1.aa, (0, 1), tmp135, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - del tmp135 - tmp134 = einsum(v.aabb.oovv, (0, 1, 2, 3), t1.bb, (4, 3), (1, 0, 4, 2), optimize=True) - tmp134 += v.aabb.ooov.transpose((1, 0, 2, 3)) - t2new.abab += einsum(t1.aa, (0, 1), tmp134, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * -1 - del tmp134 - tmp7 = einsum(t1.aa, (0, 1), v.aabb.ovov, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - tmp95 = tmp7.copy() - tmp95 += v.aabb.ooov.transpose((1, 0, 2, 3)) - tmp133 = einsum(t1.bb, (0, 1), tmp95, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) - tmp133 += v.aabb.oovv.transpose((1, 0, 3, 2)) * -1 - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp133, (0, 4, 3, 5), (4, 1, 2, 5), optimize=True) - del tmp133 - t2new.abab += tmp132 - del tmp132 - t2new.abab += v.aabb.ovov.transpose((0, 2, 1, 3)) - tmp131 = tmp130.transpose((1, 0)).copy() * -1 + tmp129 = einsum(v.aabb.ovoo, (0, 1, 2, 3), t1.aa, (4, 1), (4, 0, 2, 3), optimize=True) + t2new.abab += einsum(tmp129, (0, 1, 2, 3), tmp5, (1, 2, 4, 5), (0, 3, 4, 5), optimize=True) + del tmp5, tmp129 + tmp146 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp146 += tmp145 * -1 + del tmp145 + t2new.abab += einsum(tmp146, (0, 1, 2, 3), t2.aaaa, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * 2 + del tmp146 + tmp157 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovvv, (4, 2, 5, 3), (0, 4, 1, 5), optimize=True) + t2new.abab += einsum(t1.aa, (0, 1), tmp157, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + del tmp157 + tmp141 = v.bbaa.ovvv.transpose((0, 3, 2, 1)).copy() + tmp141 += einsum(v.aabb.vvvv, (0, 1, 2, 3), t1.bb, (4, 3), (4, 1, 0, 2), optimize=True) + t2new.abab += einsum(tmp141, (0, 1, 2, 3), t1.aa, (4, 1), (4, 0, 2, 3), optimize=True) + del tmp141 + tmp159 = einsum(tmp130, (0, 1, 2, 3), t1.aa, (4, 2), (4, 0, 1, 3), optimize=True) del tmp130 - tmp129 = v.bbbb.ovvv.transpose((0, 3, 2, 1)).copy() - tmp129 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp131 += einsum(tmp129, (0, 1, 2, 3), t1.bb, (0, 1), (3, 2), optimize=True) * -1 - del tmp129 - tmp131 += tmp128.transpose((1, 0)) - del tmp128 - tmp131 += f.bb.vv.transpose((1, 0)) - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp131, (3, 4), (0, 1, 2, 4), optimize=True) - del tmp131 - tmp127 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.aa, (4, 1), (4, 0, 2, 3), optimize=True) - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp127, (4, 0, 5, 3), (4, 1, 2, 5), optimize=True) * -1 - del tmp127 - tmp126 = tmp31.transpose((0, 2, 1, 3)).copy() - tmp126 += einsum(t1.aa, (0, 1), v.bbaa.oovv, (2, 3, 4, 1), (0, 3, 2, 4), optimize=True) - tmp126 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - t2new.abab += einsum(t1.bb, (0, 1), tmp126, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) * -1 - del tmp126 - tmp21 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() - tmp21 += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 - tmp22 = einsum(t1.aa, (0, 1), tmp21, (0, 2, 3, 1), (2, 3), optimize=True) - del tmp21 - tmp23 = tmp22.copy() * -1 - del tmp22 - tmp0 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) - tmp23 += tmp0 - tmp23 += f.aa.ov - tmp82 = einsum(t1.aa, (0, 1), tmp23, (0, 2), (1, 2), optimize=True) - tmp83 = tmp82.transpose((1, 0)).copy() - del tmp82 - tmp80 = v.aaaa.ovvv.transpose((0, 3, 1, 2)).copy() - tmp80 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp81 = einsum(tmp80, (0, 1, 2, 3), t1.aa, (0, 2), (1, 3), optimize=True) - del tmp80 - tmp83 += tmp81 * -1 - del tmp81 - tmp57 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 4, 1, 3), (2, 4), optimize=True) - tmp83 += tmp57.transpose((1, 0)) - tmp56 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (0, 2, 4, 3), (4, 1), optimize=True) - tmp83 += tmp56.transpose((1, 0)) * 2 - tmp79 = einsum(v.bbaa.ovvv, (0, 1, 2, 3), t1.bb, (0, 1), (2, 3), optimize=True) - tmp83 += tmp79.transpose((1, 0)) * -1 - tmp83 += f.aa.vv.transpose((1, 0)) * -1 - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp83, (2, 4), (0, 1, 4, 3), optimize=True) * -1 - tmp124 = einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - tmp124 += t2.abab - tmp125 = einsum(v.aabb.ovov, (0, 1, 2, 3), tmp124, (0, 4, 5, 3), (2, 4, 1, 5), optimize=True) - del tmp124 - tmp125 += einsum(t1.aa, (0, 1), v.aabb.ovoo, (0, 2, 3, 4), (4, 3, 2, 1), optimize=True) - tmp125 += v.bbaa.oovv.transpose((1, 0, 3, 2)) * -1 - t2new.abab += einsum(tmp125, (0, 1, 2, 3), t2.abab, (4, 0, 2, 5), (4, 1, 3, 5), optimize=True) + t2new.abab += einsum(tmp159, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) * -1 + del tmp159 + tmp139 = einsum(t1.aa, (0, 1), tmp138, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) * -1 + del tmp138 + tmp139 += tmp88.transpose((0, 1, 3, 2)) + del tmp88 + t2new.abab += einsum(tmp139, (0, 1, 2, 3), t2.abab, (1, 4, 2, 5), (0, 4, 3, 5), optimize=True) + del tmp139 + tmp125 = tmp33.transpose((1, 0)).copy() + tmp125 += tmp34.transpose((1, 0)) * 2 + tmp125 += tmp40.transpose((1, 0)) + t2new.abab += einsum(tmp125, (0, 1), t2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 del tmp125 - tmp61 = einsum(t1.aa, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - tmp61 += t2.aaaa.transpose((1, 0, 3, 2)) * 2 - tmp123 = einsum(tmp61, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) - tmp123 += einsum(tmp12, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) * -1 - del tmp12 - tmp76 = einsum(t1.aa, (0, 1), v.bbaa.ovvv, (2, 3, 4, 1), (0, 2, 4, 3), optimize=True) - tmp123 += tmp76 - tmp123 += einsum(v.aabb.ooov, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) * -1 - tmp123 += v.aabb.ovov.transpose((0, 2, 1, 3)) - t2new.abab += einsum(tmp123, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 2 - del tmp123 - tmp121 = v.aaaa.ooov.transpose((1, 2, 0, 3)).copy() * -1 - tmp121 += v.aaaa.ooov.transpose((1, 0, 2, 3)) - tmp122 = einsum(t1.aa, (0, 1), tmp121, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) + tmp158 = einsum(v.aabb.oovv, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) + t2new.abab += einsum(tmp158, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) * -1 + del tmp158 + tmp131 = v.aaaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp131 += tmp46.transpose((1, 0, 3, 2)) * -1 + tmp131 += einsum(t2.aaaa, (0, 1, 2, 3), tmp7, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * 2 + tmp131 += einsum(tmp56, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 3, 4), optimize=True) + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp131, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 + del tmp131 + tmp65 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp65 += tmp61.transpose((1, 0)) * -1 + tmp65 += tmp53.transpose((1, 0)) * 2 + tmp65 += tmp54.transpose((1, 0)) + tmp65 += tmp63.transpose((1, 0)) * -1 + del tmp63 + tmp65 += tmp64.transpose((1, 0)) + del tmp64 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp65, (2, 4), (0, 1, 4, 3), optimize=True) * -1 + t2new.aaaa += einsum(tmp65, (0, 1), t2.aaaa, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 + del tmp65 + tmp124 = f.bb.vv.transpose((1, 0)).copy() + tmp124 += tmp121.transpose((1, 0)) del tmp121 - tmp91 = v.aaaa.ovvv.transpose((0, 3, 1, 2)).copy() - tmp91 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp122 += einsum(t1.aa, (0, 1), tmp91, (2, 3, 1, 4), (2, 0, 3, 4), optimize=True) * -1 - tmp62 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() * -1 - tmp62 += v.aaaa.ovov.transpose((2, 0, 1, 3)) - tmp63 = einsum(tmp61, (0, 1, 2, 3), tmp62, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) - del tmp61, tmp62 - tmp122 += tmp63.transpose((1, 0, 3, 2)) - tmp59 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) - tmp122 += tmp59.transpose((1, 0, 3, 2)) - tmp122 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 - tmp122 += v.aaaa.ovov.transpose((2, 0, 3, 1)) - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp122, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + tmp124 += einsum(t1.bb, (0, 1), tmp122, (0, 2, 1, 3), (2, 3), optimize=True) * -1 del tmp122 - tmp120 = tmp119.copy() * 2 - del tmp119 - tmp120 += tmp118 - del tmp118 - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp120, (4, 3), (0, 1, 2, 4), optimize=True) * -1 - del tmp120 - tmp117 = einsum(tmp23, (0, 1), t1.aa, (2, 1), (0, 2), optimize=True) * 0.5 - tmp19 = v.aaaa.ooov.transpose((1, 2, 0, 3)).copy() - tmp19 += v.aaaa.ooov.transpose((1, 0, 2, 3)) * -1 - tmp117 += einsum(tmp19, (0, 1, 2, 3), t1.aa, (2, 3), (1, 0), optimize=True) * -0.5 - tmp5 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 1, 3), (0, 4), optimize=True) - tmp117 += tmp5.transpose((1, 0)) * 0.5 - tmp4 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (4, 0, 1, 3), (4, 2), optimize=True) * -1 - tmp117 += tmp4.transpose((1, 0)) - tmp18 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) - tmp117 += tmp18.transpose((1, 0)) * 0.5 - tmp117 += f.aa.oo.transpose((1, 0)) * 0.5 - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp117, (0, 4), (4, 1, 2, 3), optimize=True) * -2 - del tmp117 - tmp116 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) * 2 - tmp114 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) - tmp116 += tmp114.transpose((1, 0, 3, 2)) * 2 - tmp116 += v.aabb.oooo.transpose((1, 0, 3, 2)) - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp116, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) * 0.5 + tmp124 += tmp123.transpose((1, 0)) * -1 + del tmp123 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp124, (3, 4), (0, 1, 2, 4), optimize=True) + del tmp124 + tmp116 = t2.abab.copy() + tmp116 += einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + t2new.abab += einsum(tmp116, (0, 1, 2, 3), v.aabb.oooo, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) * 0.5 del tmp116 - tmp115 = einsum(t1.bb, (0, 1), tmp114, (2, 3, 4, 0), (3, 2, 4, 1), optimize=True) - del tmp114 - t2new.abab += einsum(tmp115, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - del tmp115 - tmp109 = tmp31.copy() - tmp109 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - tmp112 = einsum(tmp109, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 2, 1), optimize=True) - tmp112 += v.aabb.oooo.transpose((1, 0, 3, 2)) - tmp113 = einsum(t1.bb, (0, 1), tmp112, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) - del tmp112 - t2new.abab += einsum(tmp113, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - del tmp113 - t2new.abab += einsum(tmp111, (0, 1), t2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 - del tmp111 - tmp110 = einsum(tmp109, (0, 1, 2, 3), t1.aa, (4, 3), (0, 4, 2, 1), optimize=True) * 2 - del tmp109 - tmp110 += v.aabb.oooo.transpose((1, 0, 3, 2)) - t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp110, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) * 0.5 - del tmp110 - tmp108 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovvv, (4, 2, 5, 3), (0, 1, 4, 5), optimize=True) - t2new.aaaa = einsum(tmp108, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) * -2 + tmp90 = einsum(tmp89, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp89 + t2new.aaaa += tmp90.transpose((1, 0, 2, 3)) * 2 + t2new.aaaa += tmp90 * -2 + t2new.aaaa += tmp90.transpose((1, 0, 3, 2)) * -2 + del tmp90 + tmp85 = tmp83.copy() * -1 + tmp85 += tmp51 * -1 + tmp85 += einsum(tmp84, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp84 + t2new.aaaa += einsum(tmp85, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) + del tmp85 + tmp109 = einsum(tmp108, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 5), (1, 0, 4, 5), optimize=True) * -1 del tmp108 - tmp106 = einsum(t1.aa, (0, 1), v.aaaa.ovov, (2, 3, 0, 4), (2, 4, 3, 1), optimize=True) - tmp106 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) - tmp107 = einsum(t1.aa, (0, 1), tmp106, (0, 2, 3, 4), (2, 1, 4, 3), optimize=True) + t2new.aaaa += tmp109.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp109.transpose((0, 1, 3, 2)) * -1 + del tmp109 + tmp77 = einsum(tmp71, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp71 + t2new.aaaa += tmp77.transpose((0, 1, 3, 2)) + t2new.aaaa += tmp77 * -1 + del tmp77 + tmp59 = t2.aaaa.transpose((1, 0, 3, 2)).copy() + tmp59 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + t2new.aaaa += einsum(tmp59, (0, 1, 2, 3), v.aaaa.oooo, (0, 4, 5, 1), (5, 4, 3, 2), optimize=True) + del tmp59 + tmp67 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp67 += tmp61.transpose((1, 0)) * -1 + del tmp61 + tmp67 += einsum(t1.aa, (0, 1), tmp66, (0, 1, 2, 3), (3, 2), optimize=True) * -1 + del tmp66 + tmp67 += einsum(tmp9, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) + del tmp9 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp67, (2, 4), (1, 0, 3, 4), optimize=True) * -2 + del tmp67 + tmp69 = einsum(tmp68, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) + del tmp68 + t2new.aaaa += tmp69.transpose((0, 1, 3, 2)) * 2 + t2new.aaaa += tmp69.transpose((1, 0, 3, 2)) * -2 + del tmp69 + tmp107 = einsum(t1.aa, (0, 1), tmp106, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) del tmp106 - tmp107 += v.aaaa.vvvv.transpose((2, 3, 1, 0)) * -1 - t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp107, (2, 4, 5, 3), (1, 0, 5, 4), optimize=True) * -2 + t2new.aaaa += tmp107.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp107 del tmp107 - tmp98 = einsum(t1.aa, (0, 1), v.aaaa.ovvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - t2new.aaaa += tmp98.transpose((1, 0, 3, 2)) * -1 - tmp104 = einsum(t1.aa, (0, 1), v.aaaa.vvvv, (2, 1, 3, 4), (0, 3, 4, 2), optimize=True) + tmp75 = einsum(t2.aaaa, (0, 1, 2, 3), tmp74, (4, 0), (1, 4, 2, 3), optimize=True) * 2 + del tmp74 + t2new.aaaa += tmp75.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp75.transpose((0, 1, 3, 2)) * -1 + del tmp75 + tmp94 = einsum(t2.aaaa, (0, 1, 2, 3), tmp93, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp93 + t2new.aaaa += tmp94.transpose((1, 0, 2, 3)) * 2 + t2new.aaaa += tmp94 * -2 + del tmp94 + tmp113 = tmp83.copy() * -1 + del tmp83 + tmp113 += tmp95 + del tmp95 + t2new.aaaa += einsum(tmp113, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) * -1 + del tmp113 + tmp101 = einsum(t2.aaaa, (0, 1, 2, 3), tmp100, (4, 5, 1, 0), (5, 4, 2, 3), optimize=True) + del tmp100 + t2new.aaaa += tmp101.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp101.transpose((0, 1, 3, 2)) * -1 + del tmp101 + tmp48 = v.aaaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp48 += einsum(t2.aaaa, (0, 1, 2, 3), tmp20, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) * -2 + del tmp20 + tmp48 += einsum(tmp18, (0, 1, 2, 3), t1.aa, (2, 4), (1, 0, 4, 3), optimize=True) * -1 + del tmp18 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp48, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * -2 + del tmp48 tmp105 = einsum(t1.aa, (0, 1), tmp104, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) del tmp104 t2new.aaaa += tmp105.transpose((0, 1, 3, 2)) * -1 t2new.aaaa += tmp105 del tmp105 - t2new.aaaa += tmp98.transpose((0, 1, 3, 2)) - tmp96 = einsum(t2.abab, (0, 1, 2, 3), tmp95, (4, 5, 1, 3), (0, 4, 5, 2), optimize=True) - del tmp95 - tmp97 = einsum(tmp96, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp96 - t2new.aaaa += tmp97.transpose((1, 0, 3, 2)) - tmp84 = einsum(t1.aa, (0, 1), v.aaaa.oovv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - tmp93 = tmp84.transpose((2, 0, 1, 3)).copy() - tmp9 = einsum(t1.aa, (0, 1), v.aaaa.ovov, (2, 1, 3, 4), (0, 3, 2, 4), optimize=True) - tmp93 += tmp9 - tmp93 += v.aaaa.ooov.transpose((1, 2, 0, 3)) - tmp94 = einsum(tmp93, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp93 - t2new.aaaa += tmp94 * -1 - tmp87 = tmp9.transpose((0, 2, 1, 3)).copy() - tmp87 += tmp9 * -1 - tmp87 += v.aaaa.ooov.transpose((1, 2, 0, 3)) * -1 - tmp87 += v.aaaa.ooov.transpose((1, 0, 2, 3)) - tmp88 = einsum(tmp87, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp87 - tmp89 = tmp88.copy() * -1 - del tmp88 - tmp89 += v.aaaa.oovv.transpose((1, 0, 3, 2)) - tmp90 = einsum(t2.aaaa, (0, 1, 2, 3), tmp89, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) - del tmp89 - t2new.aaaa += tmp90.transpose((1, 0, 2, 3)) * 2 - tmp77 = tmp76.copy() - del tmp76 - tmp77 += v.aabb.ovov.transpose((0, 2, 1, 3)) - tmp78 = einsum(tmp77, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) - del tmp77 - t2new.aaaa += tmp78 - tmp66 = v.aaaa.ovvv.transpose((0, 3, 2, 1)).copy() * -1 - tmp66 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) - tmp67 = einsum(t1.aa, (0, 1), tmp66, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - del tmp66 - tmp68 = tmp67.transpose((0, 1, 3, 2)).copy() * -1 - del tmp67 - tmp68 += v.aaaa.ovov.transpose((2, 0, 1, 3)) - tmp69 = einsum(t2.aaaa, (0, 1, 2, 3), tmp68, (4, 0, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp68 - t2new.aaaa += tmp69 * 2 - tmp99 = einsum(t1.aa, (0, 1), tmp98, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) - tmp100 = einsum(tmp99, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp99 - t2new.aaaa += tmp100.transpose((1, 0, 2, 3)) - t2new.aaaa += tmp100 * -1 - tmp85 = tmp84.transpose((2, 1, 0, 3)).copy() - del tmp84 - tmp85 += tmp9.transpose((2, 0, 1, 3)) - tmp85 += v.aaaa.ooov.transpose((1, 0, 2, 3)) - tmp86 = einsum(tmp85, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - del tmp85 - t2new.aaaa += tmp86.transpose((0, 1, 3, 2)) - tmp102 = tmp9.transpose((0, 2, 1, 3)).copy() * -1 - tmp102 += tmp9 - tmp102 += v.aaaa.ooov.transpose((1, 2, 0, 3)) - tmp102 += v.aaaa.ooov.transpose((1, 0, 2, 3)) * -1 - tmp103 = einsum(t2.aaaa, (0, 1, 2, 3), tmp102, (4, 0, 5, 2), (1, 5, 4, 3), optimize=True) - del tmp102 - t2new.aaaa += einsum(tmp103, (0, 1, 2, 3), t1.aa, (1, 4), (2, 0, 4, 3), optimize=True) * -2 - del tmp103 - t2new.aaaa += tmp78.transpose((0, 1, 3, 2)) * -1 - tmp101 = einsum(t2.aaaa, (0, 1, 2, 3), tmp15, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) * -1 - t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp101, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) * 4 - del tmp101 - tmp72 = tmp7.transpose((1, 0, 2, 3)).copy() - tmp72 += v.aabb.ooov.transpose((1, 0, 2, 3)) - tmp73 = einsum(tmp72, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - del tmp72 - tmp74 = tmp73.copy() - del tmp73 - tmp70 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() * -1 - tmp70 += v.bbbb.ovov.transpose((2, 0, 1, 3)) - tmp71 = einsum(t2.abab, (0, 1, 2, 3), tmp70, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) - del tmp70 - tmp74 += tmp71 * -1 - del tmp71 - tmp75 = einsum(t2.abab, (0, 1, 2, 3), tmp74, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) - del tmp74 - t2new.aaaa += tmp75.transpose((1, 0, 3, 2)) * -1 - t2new.aaaa += tmp69.transpose((0, 1, 3, 2)) * -2 - tmp60 = einsum(tmp59, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) - del tmp59 - t2new.aaaa += tmp60.transpose((1, 0, 3, 2)) * 2 + tmp82 = v.aaaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp82 += einsum(tmp79, (0, 1, 2, 3), tmp7, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) * -1 + del tmp7, tmp79 + tmp82 += tmp81.transpose((0, 1, 3, 2)) * -1 + del tmp81 + tmp82 += einsum(t1.aa, (0, 1), tmp56, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * -1 + del tmp56 + t2new.aaaa += einsum(tmp82, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (4, 0, 2, 5), optimize=True) * 2 + del tmp82 + tmp60 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (1, 3, 4, 5), (0, 4, 2, 5), optimize=True) t2new.aaaa += tmp60 * 2 - t2new.aaaa += tmp100.transpose((1, 0, 3, 2)) * -1 - t2new.aaaa += tmp100.transpose((0, 1, 3, 2)) - del tmp100 - t2new.aaaa += einsum(v.aaaa.oovv, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) * -2 - t2new.aaaa += tmp98 * -1 - t2new.aaaa += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 - t2new.aaaa += tmp98.transpose((1, 0, 2, 3)) - del tmp98 - t2new.aaaa += v.aaaa.ovov.transpose((2, 0, 3, 1)) - t2new.aaaa += tmp97.transpose((0, 1, 3, 2)) * -1 - del tmp97 - t2new.aaaa += tmp94.transpose((1, 0, 2, 3)) - del tmp94 - tmp16 = einsum(tmp15, (0, 1, 2, 3), t1.aa, (0, 3), (1, 2), optimize=True) - del tmp15 - tmp17 = tmp16.copy() * -1 - del tmp16 - tmp17 += tmp0 - tmp17 += f.aa.ov - tmp92 = einsum(t1.aa, (0, 1), tmp17, (0, 2), (2, 1), optimize=True) - tmp92 += einsum(t1.aa, (0, 1), tmp91, (0, 2, 1, 3), (2, 3), optimize=True) * -1 - del tmp91 - tmp92 += tmp79.transpose((1, 0)) * -1 - del tmp79 - tmp92 += f.aa.vv.transpose((1, 0)) * -1 - t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp92, (2, 4), (1, 0, 3, 4), optimize=True) * -2 - del tmp92 - t2new.aaaa += tmp90 * -2 - del tmp90 - t2new.aaaa += tmp78.transpose((1, 0, 2, 3)) * -1 - t2new.aaaa += tmp69.transpose((1, 0, 2, 3)) * -2 - t2new.aaaa += tmp86.transpose((1, 0, 3, 2)) * -1 - del tmp86 - t2new.aaaa += einsum(tmp83, (0, 1), t2.aaaa, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 - del tmp83 - t2new.aaaa += tmp78.transpose((1, 0, 3, 2)) - del tmp78 - t2new.aaaa += tmp75.transpose((0, 1, 3, 2)) - del tmp75 - t2new.aaaa += tmp69.transpose((1, 0, 3, 2)) * 2 - del tmp69 - tmp64 = v.aaaa.ooov.transpose((2, 1, 0, 3)).copy() - tmp64 += v.aaaa.ooov.transpose((1, 0, 2, 3)) * -1 - tmp65 = einsum(tmp64, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * -1 - del tmp64 - tmp65 += tmp63 * -1 - del tmp63 - tmp65 += v.aaaa.oovv.transpose((1, 0, 3, 2)) - t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp65, (4, 0, 5, 2), (1, 4, 5, 3), optimize=True) * 2 - del tmp65 - t2new.aaaa += tmp60.transpose((1, 0, 2, 3)) * -2 t2new.aaaa += tmp60.transpose((0, 1, 3, 2)) * -2 + t2new.aaaa += tmp60.transpose((1, 0, 2, 3)) * -2 + t2new.aaaa += tmp60.transpose((1, 0, 3, 2)) * 2 del tmp60 - tmp58 = tmp57.copy() - del tmp57 - tmp58 += tmp56 * 2 - del tmp56 - t2new.aaaa += einsum(tmp58, (0, 1), t2.aaaa, (2, 3, 1, 4), (3, 2, 4, 0), optimize=True) * -2 - del tmp58 - tmp24 = einsum(tmp23, (0, 1), t1.aa, (2, 1), (2, 0), optimize=True) - del tmp23 - tmp53 = tmp24.transpose((1, 0)).copy() - tmp20 = einsum(tmp19, (0, 1, 2, 3), t1.aa, (2, 3), (0, 1), optimize=True) - del tmp19 - tmp53 += tmp20.transpose((1, 0)) * -1 - tmp53 += tmp5.transpose((1, 0)) - tmp53 += tmp4.transpose((1, 0)) * 2 - tmp53 += tmp18.transpose((1, 0)) - tmp53 += f.aa.oo.transpose((1, 0)) - tmp54 = einsum(t2.aaaa, (0, 1, 2, 3), tmp53, (0, 4), (1, 4, 2, 3), optimize=True) * 2 - del tmp53 - t2new.aaaa += tmp54.transpose((1, 0, 3, 2)) - tmp55 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (4, 2, 5, 3), (5, 1, 4, 0), optimize=True) - tmp45 = einsum(v.aaaa.ooov, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) - tmp55 += tmp45.transpose((2, 1, 3, 0)) - tmp55 += v.aaaa.oooo.transpose((2, 3, 1, 0)) * 0.5 - t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp55, (0, 4, 1, 5), (4, 5, 3, 2), optimize=True) * -2 - del tmp55 - tmp46 = einsum(t1.aa, (0, 1), tmp45, (2, 3, 4, 0), (2, 4, 3, 1), optimize=True) - del tmp45 - tmp47 = einsum(tmp46, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + tmp47 = einsum(t2.aaaa, (0, 1, 2, 3), tmp46, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) del tmp46 - t2new.aaaa += tmp47.transpose((1, 0, 3, 2)) * -1 - t2new.aaaa += tmp47.transpose((1, 0, 2, 3)) - tmp43 = einsum(v.aaaa.oooo, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 3, 4), optimize=True) - tmp44 = einsum(tmp43, (0, 1, 2, 3), t1.aa, (1, 4), (2, 0, 3, 4), optimize=True) + t2new.aaaa += tmp47.transpose((1, 0, 2, 3)) * -2 + t2new.aaaa += tmp47.transpose((0, 1, 3, 2)) * -2 + t2new.aaaa += tmp47.transpose((1, 0, 3, 2)) * 2 + t2new.aaaa += tmp47 * 2 + del tmp47 + tmp43 = f.aa.oo.transpose((1, 0)).copy() + tmp43 += tmp15.transpose((1, 0)) + tmp43 += tmp19.transpose((1, 0)) * -1 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp43, (0, 4), (1, 4, 3, 2), optimize=True) * -2 del tmp43 - t2new.aaaa += tmp44.transpose((0, 1, 3, 2)) * -1 - t2new.aaaa += tmp54.transpose((0, 1, 3, 2)) * -1 - del tmp54 - tmp51 = tmp9.copy() * -1 - tmp51 += v.aaaa.ooov.transpose((1, 0, 2, 3)) - tmp52 = einsum(tmp51, (0, 1, 2, 3), t1.aa, (4, 3), (1, 4, 2, 0), optimize=True) * -1 + tmp44 = t2.aaaa.transpose((1, 0, 3, 2)).copy() + tmp44 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) + t2new.aaaa += einsum(v.aaaa.oooo, (0, 1, 2, 3), tmp44, (0, 3, 4, 5), (2, 1, 5, 4), optimize=True) + del tmp44 + tmp52 = tmp49.copy() + del tmp49 + tmp52 += tmp51 * -1 del tmp51 - tmp52 += v.aaaa.oooo.transpose((2, 3, 1, 0)) * 0.5 - t2new.aaaa += einsum(tmp52, (0, 1, 2, 3), t2.aaaa, (0, 2, 4, 5), (1, 3, 5, 4), optimize=True) * -2 + t2new.aaaa += einsum(tmp52, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) * -1 del tmp52 - tmp48 = einsum(tmp9, (0, 1, 2, 3), t1.aa, (4, 3), (0, 4, 2, 1), optimize=True) - tmp49 = einsum(tmp48, (0, 1, 2, 3), t1.aa, (2, 4), (1, 0, 3, 4), optimize=True) - del tmp48 - tmp50 = einsum(tmp49, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) - del tmp49 - t2new.aaaa += tmp50.transpose((0, 1, 3, 2)) * -1 - t2new.aaaa += tmp50 - del tmp50 - t2new.aaaa += tmp47.transpose((0, 1, 3, 2)) - t2new.aaaa += tmp47 * -1 - del tmp47 - t2new.aaaa += tmp44 - del tmp44 - tmp42 = tmp41.transpose((1, 0)).copy() - del tmp41 - tmp42 += tmp37.transpose((1, 0)) * -1 - del tmp37 - tmp42 += tmp35.transpose((1, 0)) - del tmp35 - tmp42 += f.bb.oo.transpose((1, 0)) - t1new.bb = einsum(t1.bb, (0, 1), tmp42, (0, 2), (2, 1), optimize=True) * -1 - del tmp42 - t1new.bb += einsum(tmp14, (0, 1), t2.bbbb, (0, 2, 1, 3), (2, 3), optimize=True) * 2 - t1new.bb += einsum(t2.abab, (0, 1, 2, 3), tmp17, (0, 2), (1, 3), optimize=True) - tmp34 = tmp33.copy() + tmp73 = einsum(tmp72, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp72 + t2new.aaaa += tmp73.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp73.transpose((1, 0, 2, 3)) * -1 + del tmp73 + tmp45 = einsum(t1.aa, (0, 1), v.aaaa.ooov, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) + t2new.aaaa += tmp45 * -1 + t2new.aaaa += tmp45.transpose((1, 0, 2, 3)) + t2new.aaaa += tmp45.transpose((0, 1, 3, 2)) + del tmp45 + tmp112 = einsum(t1.aa, (0, 1), tmp1, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + t2new.aaaa += tmp112 * -1 + t2new.aaaa += tmp112.transpose((1, 0, 2, 3)) + del tmp112 + tmp111 = v.aaaa.vvvv.transpose((2, 3, 1, 0)).copy() * -1 + tmp111 += einsum(tmp110, (0, 1, 2, 3), t1.aa, (0, 4), (1, 4, 3, 2), optimize=True) + del tmp110 + t2new.aaaa += einsum(tmp111, (0, 1, 2, 3), t2.aaaa, (4, 5, 0, 3), (5, 4, 2, 1), optimize=True) * -2 + del tmp111 + tmp55 = tmp53.copy() + del tmp53 + tmp55 += tmp54 * 0.5 + del tmp54 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp55, (4, 2), (1, 0, 3, 4), optimize=True) * -4 + del tmp55 + tmp114 = einsum(v.aaaa.ovvv, (0, 1, 2, 3), t2.aaaa, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + t2new.aaaa += einsum(tmp114, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) * -2 + del tmp114 + tmp103 = einsum(t1.aa, (0, 1), tmp102, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp102 + t2new.aaaa += tmp103.transpose((1, 0, 2, 3)) + t2new.aaaa += tmp103 * -1 + t2new.aaaa += tmp103.transpose((1, 0, 3, 2)) * -1 + t2new.aaaa += tmp103.transpose((0, 1, 3, 2)) + del tmp103 + tmp86 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp86 += tmp1.transpose((2, 0, 1, 3)) + t2new.aaaa += einsum(tmp86, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 3, 4), optimize=True) * -1 + del tmp86 + tmp97 = einsum(tmp96, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp96 + t2new.aaaa += tmp97.transpose((1, 0, 2, 3)) * -1 + t2new.aaaa += tmp97.transpose((1, 0, 3, 2)) + del tmp97 + tmp76 = einsum(tmp70, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp70 + t2new.aaaa += tmp76.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp76 + del tmp76 + tmp99 = tmp1.copy() + tmp99 += tmp98.transpose((0, 2, 1, 3)) * -1 + del tmp98 + t2new.aaaa += einsum(tmp99, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 3, 4), optimize=True) + del tmp99 + tmp41 = f.bb.oo.transpose((1, 0)).copy() + tmp41 += tmp32.transpose((1, 0)) + del tmp32 + tmp41 += tmp33.transpose((1, 0)) del tmp33 - tmp34 += v.bbbb.ooov.transpose((1, 2, 0, 3)) - t1new.bb += einsum(tmp34, (0, 1, 2, 3), t2.bbbb, (2, 1, 3, 4), (0, 4), optimize=True) * 2 + tmp41 += tmp34.transpose((1, 0)) * 2 del tmp34 - tmp32 = tmp31.transpose((0, 2, 1, 3)).copy() - del tmp31 - tmp32 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - t1new.bb += einsum(t2.abab, (0, 1, 2, 3), tmp32, (0, 1, 4, 2), (4, 3), optimize=True) * -1 - del tmp32 - t1new.bb += einsum(v.bbbb.oovv, (0, 1, 2, 3), t1.bb, (1, 3), (0, 2), optimize=True) * -1 - tmp30 = tmp29.copy() - del tmp29 - tmp30 += tmp28 * 0.5 - del tmp28 - t1new.bb += einsum(t1.bb, (0, 1), tmp30, (2, 0), (2, 1), optimize=True) * -2 - del tmp30 - tmp27 = einsum(t1.bb, (0, 1), v.bbbb.ovvv, (0, 1, 2, 3), (3, 2), optimize=True) - tmp27 += f.bb.vv.transpose((1, 0)) - t1new.bb += einsum(tmp27, (0, 1), t1.bb, (2, 0), (2, 1), optimize=True) - del tmp27 - tmp26 = einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - tmp26 += t2.bbbb.transpose((1, 0, 3, 2)) * 2 - t1new.bb += einsum(tmp26, (0, 1, 2, 3), v.bbbb.ovvv, (0, 3, 2, 4), (1, 4), optimize=True) * -1 + tmp41 += tmp36.transpose((1, 0)) * -1 + del tmp36 + tmp41 += tmp40.transpose((1, 0)) + del tmp40 + t1new.bb += einsum(t1.bb, (0, 1), tmp41, (0, 2), (2, 1), optimize=True) * -1 + del tmp41 + tmp27 = v.aabb.ovoo.transpose((0, 3, 2, 1)).copy() + tmp27 += tmp26.transpose((0, 2, 1, 3)) del tmp26 - t1new.bb += einsum(tmp1, (0, 1, 2, 3), v.aabb.ovvv, (0, 2, 3, 4), (1, 4), optimize=True) - t1new.bb += einsum(v.bbbb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) - t1new.bb += tmp11 - del tmp11 - t1new.bb += f.bb.ov - tmp25 = tmp24.transpose((1, 0)).copy() - del tmp24 - tmp25 += tmp20.transpose((1, 0)) * -1 - del tmp20 - tmp25 += tmp18.transpose((1, 0)) - del tmp18 - tmp25 += f.aa.oo.transpose((1, 0)) - t1new.aa = einsum(tmp25, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * -1 - del tmp25 - t1new.aa += einsum(tmp17, (0, 1), t2.aaaa, (0, 2, 1, 3), (2, 3), optimize=True) * 2 - del tmp17 - t1new.aa += einsum(t2.abab, (0, 1, 2, 3), tmp14, (1, 3), (0, 2), optimize=True) + t1new.bb += einsum(t2.abab, (0, 1, 2, 3), tmp27, (0, 1, 4, 2), (4, 3), optimize=True) * -1 + del tmp27 + tmp42 = f.bb.vv.transpose((1, 0)).copy() + tmp42 += einsum(t1.bb, (0, 1), v.bbbb.ovvv, (0, 1, 2, 3), (3, 2), optimize=True) + t1new.bb += einsum(tmp42, (0, 1), t1.bb, (2, 0), (2, 1), optimize=True) + del tmp42 + tmp30 = t2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + tmp30 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + t1new.bb += einsum(tmp30, (0, 1, 2, 3), v.bbbb.ovvv, (0, 3, 2, 4), (1, 4), optimize=True) * -1 + del tmp30 + tmp29 = v.bbbb.ooov.transpose((1, 2, 0, 3)).copy() + tmp29 += tmp28 + del tmp28 + t1new.bb += einsum(tmp29, (0, 1, 2, 3), t2.bbbb, (1, 2, 3, 4), (0, 4), optimize=True) * -2 + del tmp29 + tmp31 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp31 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + t1new.bb += einsum(tmp31, (0, 1, 2, 3), t1.bb, (0, 2), (1, 3), optimize=True) + del tmp31 + tmp14 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp14 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + t1new.aa += einsum(t1.aa, (0, 1), tmp14, (0, 2, 1, 3), (2, 3), optimize=True) del tmp14 - tmp10 = tmp9.copy() - del tmp9 - tmp10 += v.aaaa.ooov.transpose((1, 2, 0, 3)) - t1new.aa += einsum(tmp10, (0, 1, 2, 3), t2.aaaa, (2, 1, 3, 4), (0, 4), optimize=True) * 2 - del tmp10 - tmp8 = tmp7.transpose((1, 0, 2, 3)).copy() - del tmp7 - tmp8 += v.aabb.ooov.transpose((1, 0, 2, 3)) - t1new.aa += einsum(tmp8, (0, 1, 2, 3), t2.abab, (0, 2, 4, 3), (1, 4), optimize=True) * -1 - del tmp8 - t1new.aa += einsum(t1.aa, (0, 1), v.aaaa.oovv, (2, 0, 3, 1), (2, 3), optimize=True) * -1 - tmp6 = tmp5.copy() * 0.5 - del tmp5 - tmp6 += tmp4 - del tmp4 - t1new.aa += einsum(t1.aa, (0, 1), tmp6, (2, 0), (2, 1), optimize=True) * -2 + tmp6 = t2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + tmp6 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) + t1new.aa += einsum(v.aaaa.ovvv, (0, 1, 2, 3), tmp6, (0, 4, 2, 1), (4, 3), optimize=True) * -1 del tmp6 - tmp3 = einsum(t1.aa, (0, 1), v.aaaa.ovvv, (0, 1, 2, 3), (3, 2), optimize=True) - tmp3 += f.aa.vv.transpose((1, 0)) - t1new.aa += einsum(t1.aa, (0, 1), tmp3, (1, 2), (0, 2), optimize=True) + tmp25 = f.aa.vv.transpose((1, 0)).copy() + tmp25 += einsum(t1.aa, (0, 1), v.aaaa.ovvv, (0, 1, 2, 3), (3, 2), optimize=True) + t1new.aa += einsum(tmp25, (0, 1), t1.aa, (2, 0), (2, 1), optimize=True) + del tmp25 + tmp4 = v.aabb.ooov.transpose((1, 0, 2, 3)).copy() + tmp4 += tmp3.transpose((1, 0, 2, 3)) del tmp3 - tmp2 = einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) - tmp2 += t2.aaaa.transpose((1, 0, 3, 2)) * 2 - t1new.aa += einsum(v.aaaa.ovvv, (0, 1, 2, 3), tmp2, (0, 4, 2, 1), (4, 3), optimize=True) * -1 - del tmp2 - t1new.aa += einsum(tmp1, (0, 1, 2, 3), v.bbaa.ovvv, (1, 3, 2, 4), (0, 4), optimize=True) + t1new.aa += einsum(tmp4, (0, 1, 2, 3), t2.abab, (0, 2, 4, 3), (1, 4), optimize=True) * -1 + del tmp4 + tmp2 = v.aaaa.ooov.transpose((1, 2, 0, 3)).copy() + tmp2 += tmp1 del tmp1 - t1new.aa += tmp0 - del tmp0 - t1new.aa += einsum(t1.aa, (0, 1), v.aaaa.ovov, (2, 3, 0, 1), (2, 3), optimize=True) + t1new.aa += einsum(t2.aaaa, (0, 1, 2, 3), tmp2, (4, 0, 1, 2), (4, 3), optimize=True) * -2 + del tmp2 + tmp24 = f.aa.oo.transpose((1, 0)).copy() + tmp24 += tmp15.transpose((1, 0)) + del tmp15 + tmp24 += tmp16.transpose((1, 0)) * 2 + del tmp16 + tmp24 += tmp17.transpose((1, 0)) + del tmp17 + tmp24 += tmp19.transpose((1, 0)) * -1 + del tmp19 + tmp24 += tmp23.transpose((1, 0)) + del tmp23 + t1new.aa += einsum(tmp24, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * -1 + del tmp24 t1new.aa += f.aa.ov + t1new.bb += f.bb.ov + t2new.aaaa += v.aaaa.ovov.transpose((2, 0, 3, 1)) + t2new.aaaa += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), v.aabb.oooo, (4, 0, 5, 1), (4, 5, 2, 3), optimize=True) * 0.5 + t2new.abab += einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 5), (2, 4, 3, 5), optimize=True) + t2new.abab += v.aabb.ovov.transpose((0, 2, 1, 3)) + t2new.bbbb += v.bbbb.ovov.transpose((2, 0, 3, 1)) + t2new.bbbb += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 return {f"t1new": t1new, f"t2new": t2new} def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:26:44.562816. + Code generated by `albert` 0.0.0 on 2024-07-18T20:19:38.787706. Parameters ---------- @@ -832,1052 +896,1061 @@ def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): l1new = Namespace() l2new = Namespace() - tmp77 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 0, 4), (4, 1), optimize=True) - tmp137 = tmp77.copy() - tmp76 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) - tmp137 += tmp76 * 0.5 - tmp75 = einsum(t1.bb, (0, 1), l1.bb, (1, 2), (2, 0), optimize=True) - tmp137 += tmp75 * 0.5 - tmp243 = einsum(tmp137, (0, 1), v.bbbb.ovov, (1, 2, 3, 4), (0, 3, 2, 4), optimize=True) * 2 - l2new.bbbb = tmp243.transpose((2, 3, 0, 1)).copy() * -1 - tmp117 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (4, 3, 1, 5), (5, 0, 4, 2), optimize=True) * -1 - tmp118 = tmp117.copy() * 4 - del tmp117 - tmp116 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) - tmp118 += tmp116 - del tmp116 - tmp239 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp118, (4, 0, 5, 3), (2, 4, 1, 5), optimize=True) - l2new.bbbb += tmp239.transpose((2, 3, 1, 0)) - tmp73 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) - tmp225 = einsum(v.bbbb.ooov, (0, 1, 2, 3), tmp73, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) * -1 - l2new.bbbb += tmp225.transpose((3, 2, 0, 1)) * -2 - tmp98 = einsum(t1.bb, (0, 1), v.bbbb.ovov, (2, 1, 3, 4), (0, 3, 2, 4), optimize=True) - tmp228 = einsum(tmp98, (0, 1, 2, 3), tmp73, (4, 0, 1, 5), (4, 2, 5, 3), optimize=True) - l2new.bbbb += tmp228.transpose((3, 2, 0, 1)) * -2 - tmp232 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t1.bb, (0, 3), (2, 1), optimize=True) - l2new.bbbb += einsum(tmp232, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) - tmp249 = tmp98.copy() - tmp249 += v.bbbb.ooov.transpose((1, 2, 0, 3)) - tmp250 = einsum(l1.bb, (0, 1), tmp249, (1, 2, 3, 4), (2, 3, 4, 0), optimize=True) - del tmp249 - l2new.bbbb += tmp250.transpose((3, 2, 1, 0)) * -1 - tmp68 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 4, 0, 1), (4, 3), optimize=True) - tmp241 = tmp68.copy() * 2 - tmp67 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) - tmp241 += tmp67 - tmp260 = einsum(tmp241, (0, 1), v.bbbb.ovov, (2, 3, 4, 1), (2, 4, 0, 3), optimize=True) - l2new.bbbb += tmp260.transpose((2, 3, 1, 0)) * -1 - tmp261 = tmp98.transpose((0, 2, 1, 3)).copy() - tmp261 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - l2new.bbbb += einsum(l1.bb, (0, 1), tmp261, (1, 2, 3, 4), (4, 0, 2, 3), optimize=True) - del tmp261 - l2new.bbbb += tmp260.transpose((3, 2, 1, 0)) - del tmp260 - tmp110 = einsum(tmp98, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 1, 2), optimize=True) - tmp259 = tmp110.transpose((0, 2, 3, 1)).copy() - tmp109 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) - tmp259 += tmp109.transpose((1, 3, 2, 0)) - tmp259 += v.bbbb.oooo.transpose((2, 3, 1, 0)) - l2new.bbbb += einsum(tmp259, (0, 1, 2, 3), l2.bbbb, (4, 5, 0, 3), (5, 4, 2, 1), optimize=True) * 2 - del tmp259 - tmp111 = einsum(t1.bb, (0, 1), v.bbbb.ooov, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - tmp258 = einsum(l2.bbbb, (0, 1, 2, 3), tmp111, (3, 2, 4, 5), (4, 5, 0, 1), optimize=True) * -1 - l2new.bbbb += tmp258.transpose((2, 3, 1, 0)) * 2 - l2new.bbbb += tmp258.transpose((2, 3, 0, 1)) * -2 - del tmp258 - tmp101 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() - tmp101 += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 - tmp102 = einsum(tmp101, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) - tmp103 = tmp102.copy() * -1 - del tmp102 - tmp100 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3), optimize=True) - tmp103 += tmp100 - tmp103 += f.bb.ov - l2new.bbbb += einsum(tmp73, (0, 1, 2, 3), tmp103, (2, 4), (3, 4, 1, 0), optimize=True) * 2 - tmp129 = v.bbbb.ovvv.transpose((0, 3, 2, 1)).copy() * -1 - tmp129 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) - tmp255 = einsum(t1.bb, (0, 1), tmp129, (0, 1, 2, 3), (2, 3), optimize=True) - tmp256 = tmp255.transpose((1, 0)).copy() * -1 + tmp99 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp99 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + tmp12 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() + tmp12 += v.aaaa.ovov.transpose((2, 0, 3, 1)) * -1 + tmp7 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 2, 1), optimize=True) + tmp72 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) + l2new.abab = einsum(tmp72, (0, 1, 2, 3), v.aabb.ovoo, (4, 5, 1, 2), (5, 3, 4, 0), optimize=True) * -2 + l2new.abab += einsum(tmp72, (0, 1, 2, 3), tmp7, (4, 1, 2, 5), (5, 3, 4, 0), optimize=True) * -2 + l1new.bb = einsum(tmp72, (0, 1, 2, 3), v.bbbb.oovv, (1, 2, 4, 3), (4, 0), optimize=True) * -2 + tmp100 = einsum(tmp99, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) + tmp98 = einsum(t1.aa, (0, 1), v.aabb.ovov, (0, 1, 2, 3), (2, 3), optimize=True) + tmp255 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp255 += v.bbbb.ovvv.transpose((0, 3, 1, 2)) + tmp201 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() + tmp201 += v.bbbb.ovvv.transpose((0, 3, 1, 2)) * -1 + tmp13 = einsum(t1.aa, (0, 1), tmp12, (0, 2, 1, 3), (2, 3), optimize=True) + tmp11 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + tmp0 = einsum(t1.bb, (0, 1), l2.abab, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + l2new.abab += einsum(v.bbaa.ovvv, (0, 1, 2, 3), tmp0, (4, 5, 0, 3), (2, 1, 4, 5), optimize=True) * -1 + l1new.aa = einsum(tmp0, (0, 1, 2, 3), v.bbaa.oovv, (1, 2, 4, 3), (4, 0), optimize=True) * -1 + tmp55 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() + tmp55 += v.aaaa.ovvv.transpose((0, 3, 2, 1)) * -1 + tmp3 = einsum(l2.aaaa, (0, 1, 2, 3), t1.aa, (4, 1), (2, 3, 4, 0), optimize=True) + l2new.abab += einsum(tmp3, (0, 1, 2, 3), v.aabb.ooov, (1, 2, 4, 5), (3, 5, 0, 4), optimize=True) * -2 + l1new.aa += einsum(tmp3, (0, 1, 2, 3), v.aaaa.oovv, (1, 2, 4, 3), (4, 0), optimize=True) * -2 + tmp32 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp32 += v.aaaa.ovvv.transpose((0, 3, 1, 2)) + tmp75 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) + tmp76 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 0, 4), (4, 1), optimize=True) + tmp74 = einsum(t1.bb, (0, 1), l1.bb, (1, 2), (2, 0), optimize=True) + tmp19 = v.aabb.ovoo.transpose((0, 3, 2, 1)).copy() + tmp19 += tmp7 + l2new.abab += einsum(tmp19, (0, 1, 2, 3), l1.bb, (4, 1), (3, 4, 0, 2), optimize=True) * -1 + tmp96 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t1.bb, (4, 1), (4, 2, 0, 3), optimize=True) + tmp5 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t1.aa, (4, 1), (4, 2, 0, 3), optimize=True) + tmp124 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + tmp122 = einsum(tmp72, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) + tmp114 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + tmp115 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 2, 5, 1), (3, 4, 0, 5), optimize=True) * -1 + tmp140 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp140 += v.bbbb.ooov.transpose((2, 1, 0, 3)) + tmp101 = f.bb.ov.copy() + tmp101 += tmp98 + tmp101 += tmp100 * -1 + del tmp100 + l2new.bbbb = einsum(tmp101, (0, 1), tmp72, (2, 3, 0, 4), (4, 1, 3, 2), optimize=True) * 2 + tmp66 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + tmp67 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 0, 4), (1, 4), optimize=True) + tmp206 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp206 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + tmp204 = einsum(v.bbaa.ovvv, (0, 1, 2, 3), t1.aa, (4, 2), (4, 0, 3, 1), optimize=True) + tmp239 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) + tmp205 = einsum(t2.aaaa, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) + tmp216 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 2, 1, 4), (4, 3), optimize=True) + tmp134 = einsum(t1.aa, (0, 1), v.aabb.ovvv, (0, 1, 2, 3), (2, 3), optimize=True) + tmp256 = einsum(tmp255, (0, 1, 2, 3), t1.bb, (0, 2), (1, 3), optimize=True) del tmp255 - tmp218 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (0, 4, 1, 2), (3, 4), optimize=True) * -1 - tmp256 += tmp218.transpose((1, 0)) * 2 - tmp217 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 1, 4), (3, 4), optimize=True) - tmp256 += tmp217.transpose((1, 0)) - tmp134 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3), optimize=True) - tmp256 += tmp134.transpose((1, 0)) * -1 - tmp256 += f.bb.vv.transpose((1, 0)) * -1 - tmp257 = einsum(l2.bbbb, (0, 1, 2, 3), tmp256, (4, 0), (2, 3, 4, 1), optimize=True) * 2 + tmp217 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (0, 2, 1, 4), (4, 3), optimize=True) + tmp202 = einsum(t1.bb, (0, 1), tmp201, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) + del tmp201 + tmp199 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) + tmp237 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (4, 0, 5, 1), optimize=True) + tmp184 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() + tmp184 += v.aaaa.ovov.transpose((2, 0, 3, 1)) * -1 + tmp89 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp89 += v.aaaa.ooov.transpose((2, 1, 0, 3)) + tmp14 = f.aa.ov.copy() + tmp14 += tmp11 + tmp14 += tmp13 * -1 + del tmp13 + l2new.aaaa = einsum(tmp14, (0, 1), tmp3, (2, 3, 0, 4), (4, 1, 3, 2), optimize=True) * 2 + tmp37 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 5), (4, 0, 5, 1), optimize=True) + tmp38 = einsum(tmp0, (0, 1, 2, 3), t1.aa, (4, 3), (0, 4, 1, 2), optimize=True) + tmp52 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 0, 4), (1, 4), optimize=True) + tmp53 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 1), (4, 2), optimize=True) + tmp83 = einsum(v.bbaa.ovvv, (0, 1, 2, 3), t1.bb, (0, 1), (2, 3), optimize=True) + tmp180 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 2, 4, 3), (4, 1), optimize=True) + tmp181 = einsum(t1.aa, (0, 1), tmp55, (0, 1, 2, 3), (2, 3), optimize=True) + tmp179 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (0, 2, 1, 4), (4, 3), optimize=True) + tmp47 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + tmp44 = einsum(tmp3, (0, 1, 2, 3), t1.aa, (4, 3), (0, 1, 4, 2), optimize=True) + tmp157 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (2, 4, 3, 5), (4, 0, 5, 1), optimize=True) + tmp158 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) + tmp168 = einsum(t1.aa, (0, 1), tmp32, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) + tmp61 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 0, 4), (4, 1), optimize=True) + tmp60 = einsum(l1.aa, (0, 1), t1.aa, (2, 0), (1, 2), optimize=True) + tmp62 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) + tmp33 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 2, 5, 1), (3, 4, 0, 5), optimize=True) * -1 + tmp34 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + tmp161 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (0, 4, 1, 5), optimize=True) + tmp15 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 1, 2), optimize=True) + tmp160 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 5), (2, 4, 3, 5), optimize=True) + tmp77 = tmp74.copy() + del tmp74 + tmp77 += tmp75 + del tmp75 + tmp77 += tmp76 * 2 + del tmp76 + l2new.abab += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp77, (4, 2), (1, 3, 0, 4), optimize=True) * -1 + l1new.bb += einsum(tmp101, (0, 1), tmp77, (2, 0), (1, 2), optimize=True) * -1 + l1new.aa += einsum(v.aabb.ovoo, (0, 1, 2, 3), tmp77, (3, 2), (1, 0), optimize=True) * -1 + tmp17 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) + tmp18 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 5, 1, 3), (4, 0, 5, 2), optimize=True) + tmp20 = einsum(t1.aa, (0, 1), tmp19, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp102 = einsum(t1.bb, (0, 1), v.bbaa.ovvv, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + tmp9 = einsum(t1.aa, (0, 1), v.aabb.ovov, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + l2new.abab += einsum(tmp9, (0, 1, 2, 3), tmp3, (4, 0, 1, 5), (5, 3, 4, 2), optimize=True) * -2 + tmp109 = einsum(v.bbbb.ooov, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 1, 2), optimize=True) + tmp108 = einsum(t1.bb, (0, 1), tmp96, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp107 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + tmp94 = einsum(t1.bb, (0, 1), v.bbbb.ovvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + l1new.bb += einsum(tmp94, (0, 1, 2, 3), tmp72, (4, 0, 1, 3), (2, 4), optimize=True) * 2 + tmp36 = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (4, 0), (2, 4, 3, 1), optimize=True) + l2new.abab += einsum(v.aabb.ovvv, (0, 1, 2, 3), tmp36, (4, 0, 5, 2), (1, 3, 4, 5), optimize=True) * -1 + l1new.bb += einsum(tmp36, (0, 1, 2, 3), v.aabb.oovv, (0, 1, 4, 3), (4, 2), optimize=True) * -1 + tmp4 = einsum(t1.aa, (0, 1), v.aaaa.ovvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + l1new.aa += einsum(tmp3, (0, 1, 2, 3), tmp4, (1, 2, 4, 3), (4, 0), optimize=True) * 2 + tmp27 = einsum(t1.aa, (0, 1), tmp5, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) + tmp28 = einsum(v.aaaa.ooov, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) + tmp26 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + tmp227 = v.bbbb.ooov.transpose((1, 2, 0, 3)).copy() + tmp227 += tmp96 + tmp253 = tmp124.transpose((1, 0, 3, 2)).copy() + tmp253 += tmp122.transpose((0, 1, 3, 2)) * -1 + tmp116 = tmp114.copy() + del tmp114 + tmp116 += tmp115 * 4 + del tmp115 + tmp139 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 1), (4, 0), optimize=True) + tmp141 = einsum(tmp140, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + tmp138 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 1, 3), (4, 2), optimize=True) + tmp142 = einsum(tmp101, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) + tmp137 = einsum(t1.aa, (0, 1), v.aabb.ovoo, (0, 1, 2, 3), (2, 3), optimize=True) + tmp224 = tmp66.copy() * 0.5 + tmp224 += tmp67 + tmp209 = einsum(tmp206, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) + tmp247 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp247 += tmp204 + tmp247 += tmp205 * 2 + tmp247 += tmp239 + tmp135 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() + tmp135 += v.bbbb.ovvv.transpose((0, 3, 1, 2)) * -1 + tmp257 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp257 += tmp134.transpose((1, 0)) * -1 + tmp257 += tmp216.transpose((1, 0)) + tmp257 += tmp217.transpose((1, 0)) * 2 + tmp257 += tmp256 * -1 del tmp256 - l2new.bbbb += tmp257.transpose((3, 2, 1, 0)) * -1 - tmp96 = einsum(tmp73, (0, 1, 2, 3), t1.bb, (4, 3), (1, 0, 2, 4), optimize=True) - tmp124 = tmp96.transpose((0, 1, 3, 2)).copy() * -1 - tmp95 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) - tmp124 += tmp95.transpose((1, 0, 3, 2)) - tmp254 = einsum(tmp124, (0, 1, 2, 3), v.bbbb.ovov, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) + tmp243 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + tmp245 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp245 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp245 += tmp199 + tmp245 += tmp237 * 2 + tmp245 += tmp202.transpose((1, 0, 3, 2)) * -1 + tmp193 = v.aaaa.ovov.transpose((2, 0, 1, 3)).copy() * -1 + tmp193 += v.aaaa.ovov.transpose((2, 0, 3, 1)) + tmp8 = v.aabb.ovoo.transpose((0, 3, 2, 1)).copy() + tmp8 += tmp7.transpose((0, 2, 1, 3)) + tmp200 = v.bbbb.ovov.transpose((2, 0, 1, 3)).copy() + tmp200 += v.bbbb.ovov.transpose((2, 0, 3, 1)) * -1 + tmp185 = einsum(t1.aa, (0, 1), tmp184, (0, 2, 1, 3), (2, 3), optimize=True) + del tmp184 + tmp90 = einsum(tmp89, (0, 1, 2, 3), t1.aa, (2, 3), (0, 1), optimize=True) + tmp88 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 1, 3), (4, 0), optimize=True) + tmp87 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (4, 3, 0, 2), (1, 4), optimize=True) + tmp86 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + tmp91 = einsum(t1.aa, (0, 1), tmp14, (2, 1), (0, 2), optimize=True) + tmp39 = tmp37.copy() + tmp39 += tmp38 + tmp214 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() + tmp214 += v.aaaa.ovvv.transpose((0, 3, 1, 2)) * -1 + tmp166 = einsum(t1.aa, (0, 1), v.aaaa.ovov, (2, 3, 0, 1), (2, 3), optimize=True) + tmp144 = tmp52.copy() * 2 + tmp144 += tmp53 + tmp182 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp182 += tmp83.transpose((1, 0)) * -1 + tmp182 += tmp179.transpose((1, 0)) * 2 + tmp182 += tmp180.transpose((1, 0)) + tmp182 += tmp181.transpose((1, 0)) * -1 + del tmp181 + tmp177 = tmp47.transpose((1, 0, 3, 2)).copy() + tmp177 += tmp44.transpose((0, 1, 3, 2)) * -1 + tmp169 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp169 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + tmp169 += tmp157 * 2 + tmp169 += tmp158 + tmp169 += tmp168.transpose((0, 1, 3, 2)) * -1 + tmp80 = tmp60.copy() + tmp80 += tmp61 * 2 + tmp80 += tmp62 + tmp84 = v.aaaa.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp84 += v.aaaa.ovvv.transpose((0, 3, 1, 2)) + tmp35 = tmp33.copy() * 4 + del tmp33 + tmp35 += tmp34 + del tmp34 + l1new.aa += einsum(tmp32, (0, 1, 2, 3), tmp35, (4, 0, 3, 2), (1, 4), optimize=True) + del tmp32 + tmp147 = v.aaaa.ooov.transpose((1, 2, 0, 3)).copy() + tmp147 += tmp5 + tmp171 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp171 += tmp15 + tmp171 += tmp160 + tmp171 += tmp161 * 2 + tmp63 = tmp60.copy() * 0.5 + del tmp60 + tmp63 += tmp61 + del tmp61 + tmp63 += tmp62 * 0.5 + del tmp62 + l2new.abab += einsum(tmp63, (0, 1), v.aabb.ovov, (1, 2, 3, 4), (2, 4, 0, 3), optimize=True) * -2 + l1new.bb += einsum(v.aabb.ooov, (0, 1, 2, 3), tmp63, (1, 0), (3, 2), optimize=True) * -2 + l1new.aa += einsum(tmp63, (0, 1), tmp14, (1, 2), (2, 0), optimize=True) * -2 + tmp70 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) + tmp78 = einsum(t1.bb, (0, 1), tmp77, (0, 2), (2, 1), optimize=True) + tmp71 = einsum(tmp0, (0, 1, 2, 3), t2.abab, (0, 1, 3, 4), (2, 4), optimize=True) + tmp73 = einsum(t2.bbbb, (0, 1, 2, 3), tmp72, (0, 1, 4, 2), (4, 3), optimize=True) + tmp69 = einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) + tmp21 = v.aabb.oooo.transpose((1, 0, 3, 2)).copy() + tmp21 += tmp17.transpose((1, 0, 3, 2)) + tmp21 += tmp18.transpose((1, 0, 3, 2)) + tmp21 += tmp20.transpose((1, 0, 3, 2)) + del tmp20 + tmp103 = v.bbaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp103 += tmp102.transpose((1, 0, 3, 2)) + tmp10 = v.aabb.ooov.transpose((1, 0, 2, 3)).copy() + tmp10 += tmp9.transpose((1, 0, 2, 3)) + tmp97 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() + tmp97 += v.bbbb.ooov.transpose((2, 1, 0, 3)) * -1 + tmp97 += tmp96.transpose((1, 0, 2, 3)) * -1 + tmp97 += tmp96.transpose((2, 0, 1, 3)) + tmp65 = einsum(l1.bb, (0, 1), t1.bb, (1, 2), (0, 2), optimize=True) + tmp120 = einsum(t2.abab, (0, 1, 2, 3), tmp0, (0, 4, 5, 2), (4, 5, 1, 3), optimize=True) + tmp121 = einsum(tmp72, (0, 1, 2, 3), t2.bbbb, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 + tmp110 = v.bbbb.oooo.transpose((2, 3, 1, 0)).copy() + tmp110 += tmp107.transpose((3, 1, 2, 0)) + tmp110 += tmp108.transpose((3, 1, 2, 0)) + tmp110 += tmp109.transpose((2, 1, 3, 0)) + tmp110 += tmp109.transpose((3, 2, 1, 0)) * -1 + tmp105 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() + tmp105 += v.bbbb.ooov.transpose((1, 2, 0, 3)) * -1 + tmp105 += tmp96 * -1 + tmp105 += tmp96.transpose((0, 2, 1, 3)) + tmp106 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp106 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp106 += tmp94.transpose((0, 1, 3, 2)) + del tmp94 + tmp58 = einsum(t2.aaaa, (0, 1, 2, 3), tmp3, (0, 1, 4, 2), (4, 3), optimize=True) + tmp56 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 1), (0, 2), optimize=True) + tmp57 = einsum(l1.bb, (0, 1), t2.abab, (2, 1, 3, 0), (2, 3), optimize=True) + tmp59 = einsum(t2.abab, (0, 1, 2, 3), tmp36, (0, 4, 1, 3), (4, 2), optimize=True) + tmp51 = einsum(l1.aa, (0, 1), t1.aa, (1, 2), (0, 2), optimize=True) + tmp16 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp16 += tmp15 + tmp6 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp6 += v.aaaa.ooov.transpose((2, 1, 0, 3)) * -1 + tmp6 += tmp5.transpose((1, 0, 2, 3)) * -1 + tmp6 += tmp5.transpose((2, 0, 1, 3)) + tmp45 = einsum(tmp36, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (0, 1, 4, 5), optimize=True) + tmp43 = einsum(tmp3, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 + tmp25 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp25 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + tmp25 += tmp4.transpose((0, 1, 3, 2)) + del tmp4 + tmp29 = v.aaaa.oooo.transpose((2, 3, 1, 0)).copy() + tmp29 += tmp26.transpose((3, 1, 2, 0)) + tmp29 += tmp27.transpose((3, 1, 2, 0)) + tmp29 += tmp28.transpose((2, 1, 3, 0)) + tmp29 += tmp28.transpose((3, 2, 1, 0)) * -1 + tmp24 = v.aabb.ooov.transpose((1, 0, 2, 3)).copy() + tmp24 += tmp9 + tmp23 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp23 += v.aaaa.ooov.transpose((1, 2, 0, 3)) * -1 + tmp23 += tmp5 * -1 + tmp23 += tmp5.transpose((0, 2, 1, 3)) + tmp235 = einsum(tmp96, (0, 1, 2, 3), tmp72, (4, 0, 1, 5), (4, 2, 5, 3), optimize=True) + l2new.bbbb += tmp235.transpose((3, 2, 1, 0)) * 2 + l2new.bbbb += tmp235.transpose((3, 2, 0, 1)) * -2 + l2new.bbbb += tmp235.transpose((2, 3, 1, 0)) * -2 + l2new.bbbb += tmp235.transpose((2, 3, 0, 1)) * 2 + del tmp235 + tmp242 = einsum(tmp77, (0, 1), v.bbbb.ovov, (1, 2, 3, 4), (3, 0, 2, 4), optimize=True) + l2new.bbbb += tmp242.transpose((2, 3, 0, 1)) + l2new.bbbb += tmp242.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp242.transpose((3, 2, 0, 1)) * -1 + l2new.bbbb += tmp242.transpose((3, 2, 1, 0)) + del tmp242 + tmp228 = einsum(tmp227, (0, 1, 2, 3), l1.bb, (4, 0), (1, 2, 3, 4), optimize=True) + del tmp227 + l2new.bbbb += tmp228.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp228.transpose((3, 2, 0, 1)) + del tmp228 + tmp254 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp253, (4, 5, 0, 2), (4, 5, 1, 3), optimize=True) + del tmp253 l2new.bbbb += tmp254.transpose((3, 2, 1, 0)) - tmp253 = einsum(tmp73, (0, 1, 2, 3), v.bbbb.ovvv, (2, 4, 5, 3), (1, 0, 4, 5), optimize=True) - l2new.bbbb += tmp253.transpose((3, 2, 1, 0)) * -2 - tmp252 = einsum(v.bbbb.vvvv, (0, 1, 2, 3), l2.bbbb, (3, 1, 4, 5), (4, 5, 0, 2), optimize=True) * -1 - l2new.bbbb += tmp252.transpose((3, 2, 1, 0)) - l2new.bbbb += tmp243.transpose((2, 3, 1, 0)) - tmp207 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() - tmp207 += v.bbbb.ovov.transpose((2, 0, 1, 3)) * -1 - tmp211 = einsum(tmp207, (0, 1, 2, 3), t1.bb, (0, 3), (1, 2), optimize=True) - tmp212 = tmp211.copy() * -1 - del tmp211 - tmp212 += tmp100 - tmp212 += f.bb.ov - l2new.bbbb += einsum(tmp73, (0, 1, 2, 3), tmp212, (2, 4), (4, 3, 1, 0), optimize=True) * -2 - l2new.bbbb += tmp257.transpose((2, 3, 1, 0)) - del tmp257 l2new.bbbb += tmp254.transpose((3, 2, 1, 0)) del tmp254 - l2new.bbbb += tmp239.transpose((2, 3, 0, 1)) * -1 - l2new.bbbb += einsum(tmp232, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) * -1 - l2new.bbbb += tmp228.transpose((3, 2, 1, 0)) * 2 - l2new.bbbb += tmp253.transpose((2, 3, 1, 0)) * 2 - del tmp253 - l2new.bbbb += tmp225.transpose((3, 2, 1, 0)) * 2 - l2new.bbbb += tmp252.transpose((3, 2, 1, 0)) - del tmp252 - tmp245 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) - tmp246 = tmp245.copy() - tmp246 += tmp100 - tmp246 += f.bb.ov - l2new.bbbb += einsum(l1.bb, (0, 1), tmp246, (2, 3), (0, 3, 2, 1), optimize=True) * -1 - tmp236 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) - tmp237 = tmp236.copy() - tmp206 = einsum(t2.aaaa, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) - tmp237 += tmp206 * 2 - tmp205 = einsum(t1.aa, (0, 1), v.bbaa.ovvv, (2, 3, 4, 1), (0, 2, 4, 3), optimize=True) - tmp237 += tmp205 - tmp237 += v.aabb.ovov.transpose((0, 2, 1, 3)) - tmp238 = einsum(l2.abab, (0, 1, 2, 3), tmp237, (2, 4, 0, 5), (4, 3, 5, 1), optimize=True) - del tmp237 - l2new.bbbb += tmp238.transpose((3, 2, 0, 1)) * -1 - tmp115 = v.bbbb.ovvv.transpose((0, 3, 1, 2)).copy() - tmp115 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp203 = einsum(t1.bb, (0, 1), tmp115, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) - tmp234 = tmp203.transpose((0, 1, 3, 2)).copy() * -1 - tmp233 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovov, (4, 5, 0, 2), (1, 4, 3, 5), optimize=True) - tmp234 += tmp233 * 2 - tmp201 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) - tmp234 += tmp201 - tmp234 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 - tmp234 += v.bbbb.ovov.transpose((2, 0, 3, 1)) - tmp235 = einsum(tmp234, (0, 1, 2, 3), l2.bbbb, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) - del tmp234 - l2new.bbbb += tmp235.transpose((3, 2, 0, 1)) * -2 - tmp36 = einsum(t1.aa, (0, 1), l2.abab, (1, 2, 3, 4), (3, 0, 4, 2), optimize=True) - tmp9 = einsum(t1.aa, (0, 1), v.aabb.ovov, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - tmp231 = einsum(tmp36, (0, 1, 2, 3), tmp9, (0, 1, 4, 5), (2, 4, 3, 5), optimize=True) - l2new.bbbb += tmp231.transpose((2, 3, 1, 0)) - tmp230 = einsum(v.aabb.ooov, (0, 1, 2, 3), tmp36, (0, 1, 4, 5), (4, 2, 5, 3), optimize=True) - l2new.bbbb += tmp230.transpose((2, 3, 1, 0)) - tmp229 = einsum(tmp98, (0, 1, 2, 3), tmp73, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 - l2new.bbbb += tmp229.transpose((2, 3, 1, 0)) * 2 - tmp227 = einsum(l1.bb, (0, 1), v.bbbb.ovvv, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) - l2new.bbbb += tmp227.transpose((3, 2, 1, 0)) * -1 - tmp226 = einsum(v.bbbb.ooov, (0, 1, 2, 3), tmp73, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) * -1 - l2new.bbbb += tmp226.transpose((2, 3, 1, 0)) * 2 - l2new.bbbb += einsum(tmp246, (0, 1), l1.bb, (2, 3), (2, 1, 3, 0), optimize=True) - l2new.bbbb += tmp238.transpose((3, 2, 1, 0)) - l2new.bbbb += tmp235.transpose((3, 2, 1, 0)) * 2 - l2new.bbbb += tmp231.transpose((2, 3, 0, 1)) * -1 - l2new.bbbb += tmp230.transpose((2, 3, 0, 1)) * -1 - l2new.bbbb += tmp229.transpose((2, 3, 0, 1)) * -2 - l2new.bbbb += tmp227.transpose((3, 2, 0, 1)) - l2new.bbbb += tmp226.transpose((2, 3, 0, 1)) * -2 - tmp251 = tmp245.copy() - del tmp245 - tmp251 += tmp100 - del tmp100 - tmp251 += f.bb.ov - l2new.bbbb += einsum(tmp251, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - del tmp251 - l2new.bbbb += tmp250.transpose((3, 2, 0, 1)) - del tmp250 - tmp78 = tmp77.copy() * 2 - del tmp77 - tmp78 += tmp76 - del tmp76 - tmp78 += tmp75 - del tmp75 - l2new.bbbb += einsum(tmp78, (0, 1), v.bbbb.ovov, (1, 2, 3, 4), (4, 2, 0, 3), optimize=True) - tmp242 = einsum(tmp241, (0, 1), v.bbbb.ovov, (2, 1, 3, 4), (2, 3, 0, 4), optimize=True) + tmp262 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() + tmp262 += tmp96.transpose((0, 2, 1, 3)) + l2new.bbbb += einsum(tmp262, (0, 1, 2, 3), l1.bb, (4, 0), (3, 4, 1, 2), optimize=True) + del tmp262 + tmp241 = einsum(tmp116, (0, 1, 2, 3), v.bbbb.ovov, (1, 4, 5, 3), (5, 0, 4, 2), optimize=True) + l2new.bbbb += tmp241.transpose((2, 3, 0, 1)) * -1 + l2new.bbbb += tmp241.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp241.transpose((3, 2, 0, 1)) + l2new.bbbb += tmp241.transpose((3, 2, 1, 0)) * -1 del tmp241 - l2new.bbbb += tmp242.transpose((2, 3, 1, 0)) - tmp143 = einsum(tmp103, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) - tmp144 = tmp143.copy() - del tmp143 - tmp141 = v.bbbb.ooov.transpose((2, 1, 0, 3)).copy() - tmp141 += v.bbbb.ooov.transpose((1, 0, 2, 3)) * -1 - tmp142 = einsum(tmp141, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) + tmp233 = einsum(l1.bb, (0, 1), v.bbbb.ovvv, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) + l2new.bbbb += tmp233.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp233.transpose((3, 2, 0, 1)) + l2new.bbbb += tmp233.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp233.transpose((2, 3, 0, 1)) * -1 + del tmp233 + tmp259 = einsum(tmp109, (0, 1, 2, 3), l2.bbbb, (4, 5, 1, 0), (2, 3, 4, 5), optimize=True) * -1 + del tmp109 + l2new.bbbb += tmp259.transpose((2, 3, 1, 0)) * 2 + l2new.bbbb += tmp259.transpose((2, 3, 0, 1)) * -2 + del tmp259 + tmp143 = f.bb.oo.transpose((1, 0)).copy() + tmp143 += tmp137.transpose((1, 0)) + tmp143 += tmp138 + tmp143 += tmp139 * 2 + tmp143 += tmp141.transpose((1, 0)) * -1 del tmp141 - tmp144 += tmp142.transpose((1, 0)) * -1 + tmp143 += tmp142 del tmp142 - tmp140 = einsum(v.bbbb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 1), (4, 0), optimize=True) - tmp144 += tmp140 * 2 - del tmp140 - tmp139 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 2, 4, 3), (1, 4), optimize=True) - tmp144 += tmp139 - del tmp139 - tmp138 = einsum(v.aabb.ovoo, (0, 1, 2, 3), t1.aa, (0, 1), (2, 3), optimize=True) - tmp144 += tmp138.transpose((1, 0)) + l2new.bbbb += einsum(tmp143, (0, 1), l2.bbbb, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -2 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp143, (3, 4), (0, 1, 2, 4), optimize=True) * -1 + l1new.bb += einsum(tmp143, (0, 1), l1.bb, (2, 0), (2, 1), optimize=True) * -1 + del tmp143 + tmp240 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp240 += tmp204 + tmp240 += tmp205 * 2 + tmp240 += tmp239 + del tmp239 + l2new.bbbb += einsum(l2.abab, (0, 1, 2, 3), tmp240, (2, 4, 0, 5), (5, 1, 3, 4), optimize=True) * -1 + del tmp240 + tmp261 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp224, (4, 3), (0, 2, 4, 1), optimize=True) * 2 + l2new.bbbb += tmp261.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp261.transpose((3, 2, 1, 0)) + del tmp261 + tmp230 = einsum(tmp72, (0, 1, 2, 3), v.bbbb.ooov, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) * -1 + l2new.bbbb += tmp230.transpose((2, 3, 1, 0)) * 2 + l2new.bbbb += tmp230.transpose((2, 3, 0, 1)) * -2 + l2new.bbbb += tmp230.transpose((3, 2, 1, 0)) * -2 + l2new.bbbb += tmp230.transpose((3, 2, 0, 1)) * 2 + del tmp230 + tmp210 = f.bb.ov.copy() + tmp210 += tmp98 + tmp210 += tmp209 * -1 + del tmp209 + l2new.bbbb += einsum(tmp210, (0, 1), tmp72, (2, 3, 0, 4), (1, 4, 3, 2), optimize=True) * -2 + l2new.abab += einsum(tmp210, (0, 1), tmp0, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) * -1 + l2new.abab += einsum(tmp210, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) + del tmp210 + tmp251 = einsum(v.bbbb.ovvv, (0, 1, 2, 3), tmp72, (4, 5, 0, 3), (5, 4, 1, 2), optimize=True) + l2new.bbbb += tmp251.transpose((3, 2, 1, 0)) * -2 + l2new.bbbb += tmp251.transpose((2, 3, 1, 0)) * 2 + del tmp251 + tmp249 = f.bb.oo.transpose((1, 0)).copy() * 0.5 + tmp249 += tmp137.transpose((1, 0)) * 0.5 + del tmp137 + tmp249 += tmp138 * 0.5 del tmp138 - tmp144 += f.bb.oo.transpose((1, 0)) - tmp240 = einsum(tmp144, (0, 1), l2.bbbb, (2, 3, 0, 4), (1, 4, 2, 3), optimize=True) * 2 - l2new.bbbb += tmp240.transpose((3, 2, 1, 0)) * -1 - l2new.bbbb += tmp239.transpose((3, 2, 1, 0)) * -1 - tmp248 = tmp236.copy() - del tmp236 - tmp248 += tmp206 * 2 - tmp248 += tmp205 - tmp248 += v.aabb.ovov.transpose((0, 2, 1, 3)) - l2new.bbbb += einsum(tmp248, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (3, 4, 5, 1), optimize=True) * -1 - del tmp248 - tmp135 = v.bbbb.ovvv.transpose((0, 3, 1, 2)).copy() - tmp135 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp247 = einsum(tmp135, (0, 1, 2, 3), t1.bb, (4, 2), (4, 0, 3, 1), optimize=True) * -1 - tmp247 += tmp233 * 2 - del tmp233 - tmp247 += tmp201 - tmp247 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 - tmp247 += v.bbbb.ovov.transpose((2, 0, 3, 1)) - l2new.bbbb += einsum(tmp247, (0, 1, 2, 3), l2.bbbb, (2, 4, 0, 5), (3, 4, 5, 1), optimize=True) * -2 + tmp249 += tmp139 + del tmp139 + tmp249 += einsum(tmp140, (0, 1, 2, 3), t1.bb, (2, 3), (1, 0), optimize=True) * -0.5 + del tmp140 + tmp249 += einsum(tmp101, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) * 0.5 + l2new.bbbb += einsum(tmp249, (0, 1), l2.bbbb, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 4 + del tmp249 + tmp248 = einsum(tmp247, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) del tmp247 - l2new.bbbb += einsum(l1.bb, (0, 1), tmp232, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - l2new.bbbb += tmp231.transpose((3, 2, 0, 1)) - l2new.bbbb += tmp230.transpose((3, 2, 0, 1)) - l2new.bbbb += tmp229.transpose((3, 2, 0, 1)) * 2 - l2new.bbbb += tmp228.transpose((2, 3, 0, 1)) * 2 - l2new.bbbb += v.bbbb.ovov.transpose((1, 3, 2, 0)) * -1 - l2new.bbbb += tmp227.transpose((2, 3, 0, 1)) * -1 - l2new.bbbb += tmp226.transpose((3, 2, 0, 1)) * 2 - l2new.bbbb += tmp225.transpose((2, 3, 0, 1)) * 2 - l2new.bbbb += einsum(tmp246, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) - del tmp246 - tmp244 = tmp98.transpose((0, 2, 1, 3)).copy() - tmp244 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - l2new.bbbb += einsum(l1.bb, (0, 1), tmp244, (1, 2, 3, 4), (4, 0, 3, 2), optimize=True) * -1 - del tmp244 - l2new.bbbb += tmp243.transpose((3, 2, 1, 0)) * -1 - del tmp243 - l2new.bbbb += tmp242.transpose((3, 2, 1, 0)) * -1 - del tmp242 - l2new.bbbb += tmp240.transpose((3, 2, 0, 1)) - del tmp240 - l2new.bbbb += tmp239.transpose((3, 2, 0, 1)) - del tmp239 - l2new.bbbb += tmp238.transpose((2, 3, 0, 1)) + l2new.bbbb += tmp248.transpose((3, 2, 0, 1)) * -1 + l2new.bbbb += tmp248.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp248.transpose((2, 3, 0, 1)) + del tmp248 + tmp238 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp238 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp238 += tmp199 + tmp238 += tmp237 * 2 + del tmp237 + tmp238 += einsum(tmp135, (0, 1, 2, 3), t1.bb, (4, 1), (4, 0, 3, 2), optimize=True) * -1 + l2new.bbbb += einsum(l2.bbbb, (0, 1, 2, 3), tmp238, (2, 4, 0, 5), (5, 1, 3, 4), optimize=True) * -2 del tmp238 - l2new.bbbb += tmp235.transpose((2, 3, 0, 1)) * 2 - del tmp235 - l2new.bbbb += einsum(l1.bb, (0, 1), tmp232, (2, 3), (0, 3, 2, 1), optimize=True) - del tmp232 + tmp225 = einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp224, (4, 1), (0, 2, 4, 3), optimize=True) * 2 + del tmp224 + l2new.bbbb += tmp225.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp225.transpose((3, 2, 1, 0)) * -1 + del tmp225 + tmp231 = einsum(tmp36, (0, 1, 2, 3), tmp9, (0, 1, 4, 5), (2, 4, 3, 5), optimize=True) + l2new.bbbb += tmp231.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp231.transpose((2, 3, 0, 1)) * -1 l2new.bbbb += tmp231.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp231.transpose((3, 2, 0, 1)) del tmp231 - l2new.bbbb += tmp230.transpose((3, 2, 1, 0)) * -1 - del tmp230 - l2new.bbbb += tmp229.transpose((3, 2, 1, 0)) * -2 - del tmp229 - l2new.bbbb += tmp228.transpose((2, 3, 1, 0)) * -2 - del tmp228 - l2new.bbbb += v.bbbb.ovov.transpose((3, 1, 2, 0)) - l2new.bbbb += tmp227.transpose((2, 3, 1, 0)) - del tmp227 - l2new.bbbb += tmp226.transpose((3, 2, 1, 0)) * -2 + tmp226 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() + tmp226 += tmp96.transpose((0, 2, 1, 3)) + l2new.bbbb += einsum(tmp226, (0, 1, 2, 3), l1.bb, (4, 0), (3, 4, 2, 1), optimize=True) * -1 del tmp226 - l2new.bbbb += tmp225.transpose((2, 3, 1, 0)) * -2 - del tmp225 - tmp62 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) - tmp80 = tmp62.copy() - tmp61 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 4, 0, 1), (3, 4), optimize=True) - tmp80 += tmp61 * 2 - tmp60 = einsum(l1.aa, (0, 1), t1.aa, (2, 0), (1, 2), optimize=True) - tmp80 += tmp60 - l2new.abab = einsum(v.aabb.ovov, (0, 1, 2, 3), tmp80, (4, 0), (1, 3, 4, 2), optimize=True) * -1 - tmp7 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 4, 2, 1), optimize=True) - tmp224 = tmp7.copy() - tmp224 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - l2new.abab += einsum(tmp36, (0, 1, 2, 3), tmp224, (1, 2, 4, 5), (5, 3, 0, 4), optimize=True) - del tmp224 - tmp223 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 4, 5, 3), (1, 5, 2, 4), optimize=True) - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp223, (3, 4, 0, 5), (5, 1, 2, 4), optimize=True) - del tmp223 - tmp222 = einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.aa, (4, 1), (4, 0, 3, 2), optimize=True) - tmp222 += v.aabb.oovv.transpose((1, 0, 3, 2)) - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp222, (2, 4, 1, 5), (0, 5, 4, 3), optimize=True) * -1 + tmp260 = v.bbbb.oooo.transpose((2, 3, 1, 0)).copy() * -1 + tmp260 += tmp107.transpose((1, 3, 0, 2)) * -1 + del tmp107 + tmp260 += tmp108.transpose((0, 3, 1, 2)) + del tmp108 + l2new.bbbb += einsum(l2.bbbb, (0, 1, 2, 3), tmp260, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) * 2 + del tmp260 + tmp258 = einsum(tmp257, (0, 1), l2.bbbb, (1, 2, 3, 4), (3, 4, 0, 2), optimize=True) * 2 + del tmp257 + l2new.bbbb += tmp258.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp258.transpose((2, 3, 1, 0)) + del tmp258 + tmp229 = einsum(tmp72, (0, 1, 2, 3), v.bbbb.ooov, (4, 0, 2, 5), (1, 4, 3, 5), optimize=True) * -1 + l2new.bbbb += tmp229.transpose((3, 2, 1, 0)) * 2 + l2new.bbbb += tmp229.transpose((3, 2, 0, 1)) * -2 + l2new.bbbb += tmp229.transpose((2, 3, 1, 0)) * -2 + l2new.bbbb += tmp229.transpose((2, 3, 0, 1)) * 2 + del tmp229 + tmp252 = einsum(l2.bbbb, (0, 1, 2, 3), v.bbbb.vvvv, (4, 1, 5, 0), (2, 3, 4, 5), optimize=True) * -1 + l2new.bbbb += tmp252.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp252.transpose((3, 2, 1, 0)) + del tmp252 + tmp232 = einsum(t1.bb, (0, 1), v.bbbb.ovov, (2, 1, 0, 3), (2, 3), optimize=True) + l2new.bbbb += einsum(tmp232, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + l2new.bbbb += einsum(tmp232, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) + l2new.bbbb += einsum(tmp232, (0, 1), l1.bb, (2, 3), (2, 1, 0, 3), optimize=True) + l2new.bbbb += einsum(tmp232, (0, 1), l1.bb, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + del tmp232 + tmp234 = einsum(v.aabb.ooov, (0, 1, 2, 3), tmp36, (0, 1, 4, 5), (4, 2, 5, 3), optimize=True) + l2new.bbbb += tmp234.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp234.transpose((2, 3, 0, 1)) * -1 + l2new.bbbb += tmp234.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp234.transpose((3, 2, 0, 1)) + del tmp234 + tmp244 = f.bb.ov.copy() + tmp244 += tmp98 + tmp244 += tmp243 + l2new.bbbb += einsum(l1.bb, (0, 1), tmp244, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + del tmp244 + tmp246 = einsum(tmp245, (0, 1, 2, 3), l2.bbbb, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) + del tmp245 + l2new.bbbb += tmp246.transpose((3, 2, 0, 1)) * -2 + l2new.bbbb += tmp246.transpose((3, 2, 1, 0)) * 2 + l2new.bbbb += tmp246.transpose((2, 3, 0, 1)) * 2 + del tmp246 + tmp250 = f.bb.ov.copy() + tmp250 += tmp98 + del tmp98 + tmp250 += tmp243 + del tmp243 + l2new.bbbb += einsum(tmp250, (0, 1), l1.bb, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + l2new.bbbb += einsum(tmp250, (0, 1), l1.bb, (2, 3), (2, 1, 3, 0), optimize=True) + l2new.bbbb += einsum(l1.bb, (0, 1), tmp250, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp250 + tmp236 = einsum(tmp72, (0, 1, 2, 3), tmp96, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -1 + l2new.bbbb += tmp236.transpose((2, 3, 1, 0)) * 2 + l2new.bbbb += tmp236.transpose((2, 3, 0, 1)) * -2 + l2new.bbbb += tmp236.transpose((3, 2, 1, 0)) * -2 + l2new.bbbb += tmp236.transpose((3, 2, 0, 1)) * 2 + del tmp236 + tmp194 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp194 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + tmp194 += tmp158 + tmp194 += einsum(t2.aaaa, (0, 1, 2, 3), tmp193, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) * -2 + tmp194 += tmp168.transpose((0, 1, 3, 2)) * -1 + del tmp168 + l2new.abab += einsum(tmp194, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + del tmp194 + tmp192 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 1, 5), (4, 0, 5, 3), optimize=True) + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp192, (2, 4, 1, 5), (0, 5, 4, 3), optimize=True) + del tmp192 + tmp207 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp207 += tmp204 + del tmp204 + tmp207 += tmp205 * 2 + del tmp205 + tmp207 += einsum(tmp206, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) * -1 + del tmp206 + l2new.abab += einsum(tmp207, (0, 1, 2, 3), l2.aaaa, (2, 4, 0, 5), (4, 3, 5, 1), optimize=True) * 2 + del tmp207 + tmp197 = tmp5.copy() * -1 + tmp197 += tmp5.transpose((0, 2, 1, 3)) + l2new.abab += einsum(tmp197, (0, 1, 2, 3), tmp36, (0, 2, 4, 5), (3, 5, 1, 4), optimize=True) + del tmp197 + tmp222 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (4, 2, 5, 1), optimize=True) + l2new.abab += einsum(tmp222, (0, 1, 2, 3), l2.abab, (2, 4, 5, 0), (3, 4, 5, 1), optimize=True) del tmp222 - tmp8 = tmp7.transpose((0, 2, 1, 3)).copy() - tmp8 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - tmp221 = einsum(t1.aa, (0, 1), tmp8, (2, 3, 4, 1), (0, 2, 4, 3), optimize=True) - tmp18 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 5, 3), (0, 4, 1, 5), optimize=True) - tmp221 += tmp18 - tmp17 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) - tmp221 += tmp17.transpose((1, 0, 2, 3)) - tmp221 += v.aabb.oooo.transpose((1, 0, 3, 2)) - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp221, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) - del tmp221 - tmp196 = tmp9.copy() - tmp196 += v.aabb.ooov.transpose((1, 0, 2, 3)) - l2new.abab += einsum(tmp196, (0, 1, 2, 3), l1.aa, (4, 0), (4, 3, 1, 2), optimize=True) * -1 - tmp53 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 1), (4, 2), optimize=True) - tmp165 = tmp53.copy() * 0.5 - tmp52 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 0, 4), (1, 4), optimize=True) - tmp165 += tmp52 - l2new.abab += einsum(tmp165, (0, 1), v.aabb.ovov, (2, 1, 3, 4), (0, 4, 2, 3), optimize=True) * -2 - tmp0 = einsum(t1.bb, (0, 1), l2.abab, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) - l2new.abab += einsum(tmp212, (0, 1), tmp0, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) * -1 - tmp219 = v.bbbb.ovvv.transpose((0, 3, 1, 2)).copy() * -1 - tmp219 += v.bbbb.ovvv.transpose((0, 1, 3, 2)) - tmp220 = einsum(t1.bb, (0, 1), tmp219, (0, 1, 2, 3), (3, 2), optimize=True) * -0.5 - del tmp219 - tmp220 += tmp218 - del tmp218 - tmp220 += tmp217 * 0.5 - del tmp217 - tmp220 += tmp134.transpose((1, 0)) * -0.5 - tmp220 += f.bb.vv.transpose((1, 0)) * -0.5 - l2new.abab += einsum(tmp220, (0, 1), l2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -2 + tmp132 = v.bbbb.ooov.transpose((1, 0, 2, 3)).copy() * -1 + tmp132 += v.bbbb.ooov.transpose((1, 2, 0, 3)) + l2new.abab += einsum(tmp132, (0, 1, 2, 3), tmp0, (4, 0, 1, 5), (5, 3, 4, 2), optimize=True) + l1new.bb += einsum(tmp77, (0, 1), tmp132, (0, 2, 1, 3), (3, 2), optimize=True) * -1 + del tmp77, tmp132 + tmp220 = v.aabb.oooo.transpose((1, 0, 3, 2)).copy() + tmp220 += tmp17.transpose((1, 0, 2, 3)) + del tmp17 + tmp220 += tmp18 + del tmp18 + tmp220 += einsum(tmp8, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 2, 1), optimize=True) + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp220, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) del tmp220 - tmp38 = einsum(t1.aa, (0, 1), tmp0, (2, 3, 4, 1), (2, 0, 3, 4), optimize=True) - tmp39 = tmp38.copy() - tmp37 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 5), (4, 0, 5, 1), optimize=True) - tmp39 += tmp37 - tmp215 = einsum(v.aabb.ovov, (0, 1, 2, 3), tmp39, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) * 0.5 - l2new.abab += tmp215.transpose((2, 3, 0, 1)) - tmp214 = einsum(l2.abab, (0, 1, 2, 3), v.aabb.vvvv, (4, 0, 1, 5), (2, 3, 4, 5), optimize=True) - l2new.abab += tmp214.transpose((2, 3, 0, 1)) * 0.5 - l2new.abab += einsum(tmp0, (0, 1, 2, 3), v.bbaa.ovvv, (2, 4, 5, 3), (5, 4, 0, 1), optimize=True) * -1 - tmp185 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() - tmp185 += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 - tmp186 = einsum(t1.aa, (0, 1), tmp185, (0, 2, 3, 1), (2, 3), optimize=True) - tmp187 = tmp186.copy() * -1 - del tmp186 - tmp11 = einsum(v.aabb.ovov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) - tmp187 += tmp11 - tmp187 += f.aa.ov - l2new.abab += einsum(tmp36, (0, 1, 2, 3), tmp187, (1, 4), (4, 3, 0, 2), optimize=True) * -1 - tmp55 = v.aaaa.ovvv.transpose((0, 3, 1, 2)).copy() - tmp55 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) * -1 - tmp182 = einsum(t1.aa, (0, 1), tmp55, (0, 2, 1, 3), (2, 3), optimize=True) - tmp216 = tmp182.transpose((1, 0)).copy() * -1 - tmp181 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (0, 4, 1, 3), (2, 4), optimize=True) - tmp216 += tmp181 - tmp180 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (0, 4, 1, 2), (3, 4), optimize=True) * -1 - tmp216 += tmp180 * 2 - tmp83 = einsum(v.bbaa.ovvv, (0, 1, 2, 3), t1.bb, (0, 1), (2, 3), optimize=True) - tmp216 += tmp83.transpose((1, 0)) * -1 - tmp216 += f.aa.vv.transpose((1, 0)) * -1 - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp216, (0, 4), (4, 1, 2, 3), optimize=True) * -1 - del tmp216 - l2new.abab += tmp215.transpose((2, 3, 0, 1)) - del tmp215 - l2new.abab += tmp214.transpose((2, 3, 0, 1)) * 0.5 - del tmp214 - l2new.abab += einsum(v.aabb.ovvv, (0, 1, 2, 3), tmp36, (4, 0, 5, 2), (1, 3, 4, 5), optimize=True) * -1 - l2new.abab += einsum(tmp144, (0, 1), l2.abab, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) * -1 - tmp104 = einsum(t1.bb, (0, 1), v.bbaa.ovvv, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - tmp213 = tmp104.transpose((0, 1, 3, 2)).copy() - tmp213 += v.bbaa.oovv.transpose((1, 0, 3, 2)) - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp213, (3, 4, 0, 5), (5, 1, 2, 4), optimize=True) * -1 - del tmp213 - l2new.abab += einsum(l1.aa, (0, 1), tmp212, (2, 3), (0, 3, 1, 2), optimize=True) - del tmp212 - tmp210 = v.bbbb.ooov.transpose((1, 2, 0, 3)).copy() - tmp210 += v.bbbb.ooov.transpose((1, 0, 2, 3)) * -1 - l2new.abab += einsum(tmp0, (0, 1, 2, 3), tmp210, (1, 2, 4, 5), (3, 5, 0, 4), optimize=True) - del tmp210 - tmp209 = tmp98.transpose((0, 2, 1, 3)).copy() - tmp209 += tmp98 * -1 - l2new.abab += einsum(tmp0, (0, 1, 2, 3), tmp209, (1, 4, 2, 5), (3, 5, 0, 4), optimize=True) - del tmp209 - tmp208 = einsum(tmp207, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) * -1 - del tmp207 - tmp208 += tmp206 * 2 - del tmp206 - tmp208 += tmp205 - del tmp205 - tmp208 += v.aabb.ovov.transpose((0, 2, 1, 3)) - l2new.abab += einsum(tmp208, (0, 1, 2, 3), l2.aaaa, (2, 4, 0, 5), (4, 3, 5, 1), optimize=True) * 2 - del tmp208 - tmp204 = tmp203.transpose((0, 1, 3, 2)).copy() * -1 - del tmp203 - tmp202 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() * -1 - tmp202 += v.bbbb.ovov.transpose((2, 0, 1, 3)) - tmp204 += einsum(t2.bbbb, (0, 1, 2, 3), tmp202, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -2 - del tmp202 - tmp204 += tmp201 - del tmp201 - tmp204 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 - tmp204 += v.bbbb.ovov.transpose((2, 0, 3, 1)) - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp204, (3, 4, 1, 5), (0, 5, 2, 4), optimize=True) - del tmp204 - tmp3 = einsum(t1.aa, (0, 1), l2.aaaa, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) - l2new.abab += einsum(tmp3, (0, 1, 2, 3), tmp9, (1, 2, 4, 5), (3, 5, 0, 4), optimize=True) * -2 - l2new.abab += einsum(v.bbaa.ovvv, (0, 1, 2, 3), l1.aa, (3, 4), (2, 1, 4, 0), optimize=True) - l2new.abab += einsum(tmp3, (0, 1, 2, 3), v.aabb.ooov, (1, 2, 4, 5), (3, 5, 0, 4), optimize=True) * -2 - l2new.abab += einsum(tmp187, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) - tmp19 = tmp7.copy() - tmp19 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - l2new.abab += einsum(l1.bb, (0, 1), tmp19, (2, 1, 3, 4), (4, 0, 2, 3), optimize=True) * -1 - l2new.abab += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp78, (4, 2), (1, 3, 0, 4), optimize=True) * -1 - tmp200 = tmp68.copy() - tmp200 += tmp67 * 0.5 - l2new.abab += einsum(tmp200, (0, 1), v.aabb.ovov, (2, 3, 4, 1), (3, 0, 2, 4), optimize=True) * -2 - del tmp200 - tmp12 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() - tmp12 += v.aaaa.ovov.transpose((2, 0, 1, 3)) * -1 - tmp13 = einsum(t1.aa, (0, 1), tmp12, (0, 2, 3, 1), (2, 3), optimize=True) - tmp14 = tmp13.copy() * -1 - del tmp13 - tmp14 += tmp11 - tmp14 += f.aa.ov - tmp199 = einsum(tmp14, (0, 1), t1.aa, (2, 1), (2, 0), optimize=True) * 0.5 - tmp89 = v.aaaa.ooov.transpose((2, 1, 0, 3)).copy() * -1 - tmp89 += v.aaaa.ooov.transpose((1, 0, 2, 3)) - tmp199 += einsum(tmp89, (0, 1, 2, 3), t1.aa, (0, 3), (1, 2), optimize=True) * -0.5 - tmp88 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 1, 3), (0, 4), optimize=True) - tmp199 += tmp88 * 0.5 - tmp87 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (4, 3, 0, 2), (1, 4), optimize=True) - tmp199 += tmp87 - tmp86 = einsum(v.aabb.ooov, (0, 1, 2, 3), t1.bb, (2, 3), (0, 1), optimize=True) - tmp199 += tmp86.transpose((1, 0)) * 0.5 - tmp199 += f.aa.oo.transpose((1, 0)) * 0.5 - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp199, (2, 4), (0, 1, 4, 3), optimize=True) * -2 + tmp223 = v.aabb.ovoo.transpose((0, 3, 2, 1)).copy() + tmp223 += tmp7 + l2new.abab += einsum(tmp223, (0, 1, 2, 3), tmp36, (4, 0, 1, 5), (3, 5, 4, 2), optimize=True) + del tmp223 + tmp219 = tmp52.copy() + tmp219 += tmp53 * 0.5 + l2new.abab += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp219, (4, 1), (4, 3, 0, 2), optimize=True) * -2 + del tmp219 + tmp191 = tmp66.copy() + tmp191 += tmp67 * 2 + l2new.abab += einsum(tmp191, (0, 1), v.aabb.ovov, (2, 3, 4, 1), (3, 0, 2, 4), optimize=True) * -1 + del tmp191 + tmp211 = v.bbaa.oovv.transpose((1, 0, 3, 2)).copy() + tmp211 += tmp102.transpose((0, 1, 3, 2)) + del tmp102 + l2new.abab += einsum(tmp211, (0, 1, 2, 3), l2.abab, (2, 4, 5, 0), (3, 4, 5, 1), optimize=True) * -1 + del tmp211 + tmp203 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp203 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 + tmp203 += tmp199 del tmp199 - tmp5 = einsum(t1.aa, (0, 1), v.aaaa.ovov, (2, 1, 3, 4), (0, 3, 2, 4), optimize=True) - tmp198 = tmp5.transpose((0, 2, 1, 3)).copy() - tmp198 += tmp5 * -1 - l2new.abab += einsum(tmp36, (0, 1, 2, 3), tmp198, (0, 4, 1, 5), (5, 3, 4, 2), optimize=True) - del tmp198 - tmp197 = v.aaaa.ooov.transpose((1, 2, 0, 3)).copy() - tmp197 += v.aaaa.ooov.transpose((1, 0, 2, 3)) * -1 - l2new.abab += einsum(tmp36, (0, 1, 2, 3), tmp197, (0, 4, 1, 5), (5, 3, 4, 2), optimize=True) * -1 - del tmp197 - l2new.abab += einsum(tmp0, (0, 1, 2, 3), tmp196, (0, 4, 2, 5), (3, 5, 4, 1), optimize=True) - del tmp196 - tmp194 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() * -1 - tmp194 += v.aaaa.ovov.transpose((2, 0, 1, 3)) - tmp195 = einsum(t2.abab, (0, 1, 2, 3), tmp194, (0, 4, 5, 2), (4, 1, 5, 3), optimize=True) - del tmp194 - tmp160 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (0, 4, 1, 5), optimize=True) - tmp195 += tmp160 * 2 - tmp15 = einsum(t1.bb, (0, 1), v.aabb.ovvv, (2, 3, 1, 4), (2, 0, 3, 4), optimize=True) + tmp203 += einsum(t2.bbbb, (0, 1, 2, 3), tmp200, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -2 + del tmp200 + tmp203 += tmp202.transpose((1, 0, 3, 2)) * -1 + del tmp202 + l2new.abab += einsum(tmp203, (0, 1, 2, 3), l2.abab, (4, 2, 5, 0), (4, 3, 5, 1), optimize=True) + del tmp203 + tmp212 = einsum(l2.abab, (0, 1, 2, 3), v.aabb.vvvv, (4, 0, 1, 5), (2, 3, 4, 5), optimize=True) + l2new.abab += tmp212.transpose((2, 3, 0, 1)) * 0.5 + l2new.abab += tmp212.transpose((2, 3, 0, 1)) * 0.5 + del tmp212 + tmp195 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() tmp195 += tmp15 - tmp195 += v.aabb.ovov.transpose((0, 2, 1, 3)) + tmp195 += tmp161 * 2 + tmp195 += einsum(tmp193, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp193 l2new.abab += einsum(l2.bbbb, (0, 1, 2, 3), tmp195, (4, 2, 5, 0), (5, 1, 4, 3), optimize=True) * 2 del tmp195 - tmp155 = v.aaaa.ovvv.transpose((0, 3, 1, 2)).copy() * -1 - tmp155 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) - tmp156 = einsum(t1.aa, (0, 1), tmp155, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) - del tmp155 - tmp193 = tmp156.transpose((1, 0, 3, 2)).copy() * -1 - tmp193 += einsum(t2.aaaa, (0, 1, 2, 3), tmp185, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) * -2 + tmp196 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp196 += v.aaaa.ooov.transpose((1, 2, 0, 3)) * -1 + l2new.abab += einsum(tmp196, (0, 1, 2, 3), tmp36, (0, 1, 4, 5), (3, 5, 2, 4), optimize=True) * -1 + del tmp196 + tmp186 = f.aa.ov.copy() + tmp186 += tmp11 + tmp186 += tmp185 * -1 del tmp185 - tmp154 = einsum(v.aabb.ovov, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (4, 0, 5, 1), optimize=True) - tmp193 += tmp154 - tmp193 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 - tmp193 += v.aaaa.ovov.transpose((2, 0, 3, 1)) - l2new.abab += einsum(tmp193, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) - del tmp193 - l2new.abab += einsum(tmp73, (0, 1, 2, 3), tmp7, (4, 1, 2, 5), (5, 3, 4, 0), optimize=True) * -2 - l2new.abab += einsum(v.aabb.ovvv, (0, 1, 2, 3), l1.bb, (3, 4), (1, 2, 0, 4), optimize=True) - l2new.abab += einsum(v.aabb.ovoo, (0, 1, 2, 3), tmp73, (4, 2, 3, 5), (1, 5, 0, 4), optimize=True) * -2 - l2new.abab += v.aabb.ovov.transpose((1, 3, 0, 2)) - tmp192 = einsum(t2.abab, (0, 1, 2, 3), v.aabb.ovov, (4, 2, 1, 5), (0, 4, 3, 5), optimize=True) - l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp192, (2, 4, 1, 5), (0, 5, 4, 3), optimize=True) - del tmp192 - tmp167 = einsum(tmp80, (0, 1), v.aaaa.ovov, (1, 2, 3, 4), (3, 0, 2, 4), optimize=True) - l2new.aaaa = tmp167.transpose((2, 3, 1, 0)).copy() * -1 - tmp34 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) - tmp35 = tmp34.copy() - del tmp34 - tmp33 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 2, 5, 1), (3, 4, 0, 5), optimize=True) * -1 - tmp35 += tmp33 * 4 - del tmp33 - tmp163 = einsum(v.aaaa.ovov, (0, 1, 2, 3), tmp35, (4, 0, 5, 3), (2, 4, 1, 5), optimize=True) - l2new.aaaa += tmp163.transpose((2, 3, 1, 0)) - tmp151 = einsum(tmp3, (0, 1, 2, 3), tmp5, (1, 2, 4, 5), (0, 4, 3, 5), optimize=True) - l2new.aaaa += tmp151.transpose((3, 2, 0, 1)) * -2 - tmp145 = einsum(tmp3, (0, 1, 2, 3), v.aaaa.ooov, (4, 0, 2, 5), (1, 4, 3, 5), optimize=True) * -1 - l2new.aaaa += tmp145.transpose((3, 2, 0, 1)) * -2 - tmp147 = einsum(t1.aa, (0, 1), v.aaaa.ovov, (0, 2, 3, 1), (3, 2), optimize=True) - l2new.aaaa += einsum(tmp147, (0, 1), l1.aa, (2, 3), (1, 2, 3, 0), optimize=True) - tmp173 = tmp5.copy() - tmp173 += v.aaaa.ooov.transpose((1, 2, 0, 3)) - tmp174 = einsum(l1.aa, (0, 1), tmp173, (1, 2, 3, 4), (2, 3, 4, 0), optimize=True) - del tmp173 - l2new.aaaa += tmp174.transpose((3, 2, 1, 0)) * -1 - tmp191 = tmp53.copy() - tmp191 += tmp52 * 2 - l2new.aaaa += einsum(tmp191, (0, 1), v.aaaa.ovov, (2, 3, 4, 1), (0, 3, 4, 2), optimize=True) * -1 - del tmp191 - tmp190 = tmp5.transpose((0, 2, 1, 3)).copy() - tmp190 += v.aaaa.ooov.transpose((1, 0, 2, 3)) + l2new.abab += einsum(tmp186, (0, 1), tmp36, (2, 0, 3, 4), (1, 4, 2, 3), optimize=True) * -1 + l2new.abab += einsum(tmp186, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) + l2new.aaaa += einsum(tmp186, (0, 1), tmp3, (2, 3, 0, 4), (1, 4, 3, 2), optimize=True) * -2 + del tmp186 + tmp92 = f.aa.oo.transpose((1, 0)).copy() + tmp92 += tmp86.transpose((1, 0)) + tmp92 += tmp87 * 2 + tmp92 += tmp88 + tmp92 += tmp90.transpose((1, 0)) * -1 + del tmp90 + tmp92 += tmp91 + del tmp91 + l2new.abab += einsum(tmp92, (0, 1), l2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -1 + l2new.aaaa += einsum(tmp92, (0, 1), l2.aaaa, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 + l1new.aa += einsum(l1.aa, (0, 1), tmp92, (1, 2), (0, 2), optimize=True) * -1 + del tmp92 + tmp208 = tmp96.copy() * -1 + tmp208 += tmp96.transpose((0, 2, 1, 3)) + del tmp96 + l2new.abab += einsum(tmp208, (0, 1, 2, 3), tmp0, (4, 0, 2, 5), (5, 3, 4, 1), optimize=True) + del tmp208 + tmp198 = v.aabb.ooov.transpose((1, 0, 2, 3)).copy() + tmp198 += tmp9 + del tmp9 + l2new.abab += einsum(l1.aa, (0, 1), tmp198, (1, 2, 3, 4), (0, 4, 2, 3), optimize=True) * -1 + l2new.abab += einsum(tmp0, (0, 1, 2, 3), tmp198, (0, 4, 2, 5), (3, 5, 4, 1), optimize=True) + del tmp198 + tmp213 = einsum(v.aabb.ovov, (0, 1, 2, 3), tmp39, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) * 0.5 + l2new.abab += tmp213.transpose((2, 3, 0, 1)) + l2new.abab += tmp213.transpose((2, 3, 0, 1)) + del tmp213 + tmp221 = v.aabb.oovv.transpose((1, 0, 3, 2)).copy() + tmp221 += einsum(v.aabb.ovvv, (0, 1, 2, 3), t1.aa, (4, 1), (4, 0, 3, 2), optimize=True) + l2new.abab += einsum(tmp221, (0, 1, 2, 3), l2.abab, (4, 2, 0, 5), (4, 3, 1, 5), optimize=True) * -1 + del tmp221 + tmp215 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp215 += tmp83.transpose((1, 0)) * -1 + tmp215 += tmp179 * 2 + del tmp179 + tmp215 += tmp180 + del tmp180 + tmp215 += einsum(t1.aa, (0, 1), tmp214, (0, 1, 2, 3), (3, 2), optimize=True) * -1 + del tmp214 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp215, (0, 4), (4, 1, 2, 3), optimize=True) * -1 + del tmp215 + tmp218 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp218 += tmp134.transpose((1, 0)) * -1 + tmp218 += tmp216 + del tmp216 + tmp218 += tmp217 * 2 + del tmp217 + tmp218 += einsum(t1.bb, (0, 1), tmp135, (0, 1, 2, 3), (3, 2), optimize=True) * -1 + l2new.abab += einsum(tmp218, (0, 1), l2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + del tmp218 + tmp167 = f.aa.ov.copy() + tmp167 += tmp166 + tmp167 += tmp11 + l2new.aaaa += einsum(l1.aa, (0, 1), tmp167, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + del tmp167 + tmp190 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp190 += tmp5.transpose((0, 2, 1, 3)) l2new.aaaa += einsum(l1.aa, (0, 1), tmp190, (1, 2, 3, 4), (4, 0, 2, 3), optimize=True) del tmp190 - l2new.aaaa += einsum(v.aaaa.ovov, (0, 1, 2, 3), tmp165, (4, 3), (1, 4, 2, 0), optimize=True) * 2 - tmp27 = einsum(tmp5, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) - tmp189 = tmp27.transpose((0, 2, 3, 1)).copy() - tmp26 = einsum(v.aaaa.ovov, (0, 1, 2, 3), t2.aaaa, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) - tmp189 += tmp26.transpose((1, 3, 2, 0)) - tmp189 += v.aaaa.oooo.transpose((2, 3, 1, 0)) - l2new.aaaa += einsum(tmp189, (0, 1, 2, 3), l2.aaaa, (4, 5, 0, 3), (5, 4, 2, 1), optimize=True) * 2 - del tmp189 - tmp28 = einsum(v.aaaa.ooov, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) - tmp188 = einsum(l2.aaaa, (0, 1, 2, 3), tmp28, (3, 2, 4, 5), (4, 5, 0, 1), optimize=True) * -1 - l2new.aaaa += tmp188.transpose((2, 3, 1, 0)) * 2 - l2new.aaaa += tmp188.transpose((2, 3, 0, 1)) * -2 - del tmp188 - l2new.aaaa += einsum(tmp3, (0, 1, 2, 3), tmp14, (2, 4), (3, 4, 1, 0), optimize=True) * 2 - tmp183 = tmp182.copy() * -1 - del tmp182 - tmp183 += tmp181.transpose((1, 0)) - del tmp181 - tmp183 += tmp180.transpose((1, 0)) * 2 - del tmp180 - tmp183 += tmp83.transpose((1, 0)) * -1 - tmp183 += f.aa.vv.transpose((1, 0)) * -1 - tmp184 = einsum(l2.aaaa, (0, 1, 2, 3), tmp183, (4, 0), (2, 3, 4, 1), optimize=True) * 2 - del tmp183 - l2new.aaaa += tmp184.transpose((3, 2, 1, 0)) * -1 - tmp47 = einsum(t1.aa, (0, 1), tmp3, (2, 3, 4, 1), (3, 2, 4, 0), optimize=True) - tmp178 = tmp47.transpose((0, 1, 3, 2)).copy() * -1 - tmp44 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) - tmp178 += tmp44.transpose((1, 0, 3, 2)) - tmp179 = einsum(v.aaaa.ovov, (0, 1, 2, 3), tmp178, (4, 5, 0, 2), (4, 5, 1, 3), optimize=True) - del tmp178 - l2new.aaaa += tmp179.transpose((3, 2, 1, 0)) - tmp177 = einsum(v.aaaa.vvvv, (0, 1, 2, 3), l2.aaaa, (3, 1, 4, 5), (4, 5, 0, 2), optimize=True) * -1 - l2new.aaaa += tmp177.transpose((3, 2, 1, 0)) - tmp176 = einsum(v.aaaa.ovvv, (0, 1, 2, 3), tmp3, (4, 5, 0, 3), (5, 4, 1, 2), optimize=True) + tmp176 = einsum(tmp3, (0, 1, 2, 3), v.aaaa.ovvv, (2, 4, 5, 3), (1, 0, 4, 5), optimize=True) l2new.aaaa += tmp176.transpose((3, 2, 1, 0)) * -2 - l2new.aaaa += tmp167.transpose((2, 3, 0, 1)) - l2new.aaaa += einsum(tmp3, (0, 1, 2, 3), tmp187, (2, 4), (4, 3, 1, 0), optimize=True) * -2 - del tmp187 - l2new.aaaa += tmp184.transpose((2, 3, 1, 0)) - del tmp184 - l2new.aaaa += tmp179.transpose((3, 2, 1, 0)) - del tmp179 - l2new.aaaa += tmp163.transpose((2, 3, 0, 1)) * -1 - l2new.aaaa += tmp151.transpose((3, 2, 1, 0)) * 2 - l2new.aaaa += einsum(l1.aa, (0, 1), tmp147, (2, 3), (3, 0, 2, 1), optimize=True) * -1 - l2new.aaaa += tmp145.transpose((3, 2, 1, 0)) * 2 - l2new.aaaa += tmp177.transpose((3, 2, 1, 0)) - del tmp177 l2new.aaaa += tmp176.transpose((2, 3, 1, 0)) * 2 del tmp176 - tmp170 = tmp11.copy() - tmp169 = einsum(t1.aa, (0, 1), v.aaaa.ovov, (2, 3, 0, 1), (2, 3), optimize=True) - tmp170 += tmp169 - tmp170 += f.aa.ov - l2new.aaaa += einsum(l1.aa, (0, 1), tmp170, (2, 3), (0, 3, 2, 1), optimize=True) * -1 - tmp161 = tmp160.copy() * 2 - tmp159 = einsum(t2.abab, (0, 1, 2, 3), v.aaaa.ovov, (4, 5, 0, 2), (4, 1, 5, 3), optimize=True) - tmp161 += tmp159 - tmp161 += tmp15 - tmp161 += v.aabb.ovov.transpose((0, 2, 1, 3)) - tmp162 = einsum(l2.abab, (0, 1, 2, 3), tmp161, (4, 3, 5, 1), (4, 2, 5, 0), optimize=True) - del tmp161 - l2new.aaaa += tmp162.transpose((3, 2, 0, 1)) * -1 - tmp157 = tmp156.transpose((1, 0, 3, 2)).copy() * -1 + tmp145 = einsum(tmp144, (0, 1), v.aaaa.ovov, (2, 1, 3, 4), (2, 3, 0, 4), optimize=True) + l2new.aaaa += tmp145.transpose((2, 3, 1, 0)) + l2new.aaaa += tmp145.transpose((3, 2, 1, 0)) * -1 + del tmp145 + tmp164 = f.aa.oo.transpose((1, 0)).copy() * 0.5 + tmp164 += tmp86.transpose((1, 0)) * 0.5 + del tmp86 + tmp164 += tmp87 + del tmp87 + tmp164 += tmp88 * 0.5 + del tmp88 + tmp164 += einsum(t1.aa, (0, 1), tmp89, (2, 3, 0, 1), (3, 2), optimize=True) * -0.5 + del tmp89 + tmp164 += einsum(t1.aa, (0, 1), tmp14, (2, 1), (0, 2), optimize=True) * 0.5 + l2new.aaaa += einsum(l2.aaaa, (0, 1, 2, 3), tmp164, (2, 4), (1, 0, 3, 4), optimize=True) * -4 + del tmp164 + tmp183 = einsum(l2.aaaa, (0, 1, 2, 3), tmp182, (4, 0), (2, 3, 4, 1), optimize=True) * 2 + del tmp182 + l2new.aaaa += tmp183.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp183.transpose((2, 3, 1, 0)) + del tmp183 + tmp153 = einsum(v.aaaa.ooov, (0, 1, 2, 3), tmp3, (1, 4, 2, 5), (4, 0, 5, 3), optimize=True) * -1 + l2new.aaaa += tmp153.transpose((3, 2, 1, 0)) * 2 + l2new.aaaa += tmp153.transpose((3, 2, 0, 1)) * -2 + l2new.aaaa += tmp153.transpose((2, 3, 1, 0)) * -2 + l2new.aaaa += tmp153.transpose((2, 3, 0, 1)) * 2 + del tmp153 + tmp150 = einsum(tmp3, (0, 1, 2, 3), tmp5, (1, 2, 4, 5), (0, 4, 3, 5), optimize=True) + l2new.aaaa += tmp150.transpose((3, 2, 1, 0)) * 2 + l2new.aaaa += tmp150.transpose((3, 2, 0, 1)) * -2 + l2new.aaaa += tmp150.transpose((2, 3, 1, 0)) * -2 + l2new.aaaa += tmp150.transpose((2, 3, 0, 1)) * 2 + del tmp150 + tmp156 = einsum(t1.aa, (0, 1), v.aaaa.ovov, (0, 2, 3, 1), (3, 2), optimize=True) + l2new.aaaa += einsum(tmp156, (0, 1), l1.aa, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + l2new.aaaa += einsum(l1.aa, (0, 1), tmp156, (2, 3), (3, 0, 1, 2), optimize=True) + l2new.aaaa += einsum(l1.aa, (0, 1), tmp156, (2, 3), (0, 3, 2, 1), optimize=True) + l2new.aaaa += einsum(l1.aa, (0, 1), tmp156, (2, 3), (0, 3, 1, 2), optimize=True) * -1 del tmp156 - tmp157 += tmp154 - tmp153 = einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovov, (4, 5, 0, 2), (1, 4, 3, 5), optimize=True) - tmp157 += tmp153 * 2 - tmp157 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 - tmp157 += v.aaaa.ovov.transpose((2, 0, 3, 1)) - tmp158 = einsum(l2.aaaa, (0, 1, 2, 3), tmp157, (2, 4, 0, 5), (4, 3, 5, 1), optimize=True) - del tmp157 - l2new.aaaa += tmp158.transpose((3, 2, 0, 1)) * -2 - tmp152 = einsum(tmp5, (0, 1, 2, 3), tmp3, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 - l2new.aaaa += tmp152.transpose((2, 3, 1, 0)) * 2 - tmp150 = einsum(l1.aa, (0, 1), v.aaaa.ovvv, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) - l2new.aaaa += tmp150.transpose((3, 2, 1, 0)) * -1 - tmp149 = einsum(tmp7, (0, 1, 2, 3), tmp0, (4, 1, 2, 5), (4, 0, 5, 3), optimize=True) + tmp155 = einsum(tmp0, (0, 1, 2, 3), tmp7, (4, 1, 2, 5), (0, 4, 3, 5), optimize=True) + l2new.aaaa += tmp155.transpose((2, 3, 1, 0)) + l2new.aaaa += tmp155.transpose((2, 3, 0, 1)) * -1 + l2new.aaaa += tmp155.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp155.transpose((3, 2, 0, 1)) + del tmp155 + tmp178 = einsum(tmp177, (0, 1, 2, 3), v.aaaa.ovov, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) + del tmp177 + l2new.aaaa += tmp178.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp178.transpose((3, 2, 1, 0)) + del tmp178 + tmp188 = v.aaaa.oooo.transpose((2, 3, 1, 0)).copy() * -1 + tmp188 += tmp26.transpose((1, 3, 0, 2)) * -1 + del tmp26 + tmp188 += tmp27.transpose((0, 3, 1, 2)) + del tmp27 + l2new.aaaa += einsum(l2.aaaa, (0, 1, 2, 3), tmp188, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) * 2 + del tmp188 + tmp151 = einsum(tmp5, (0, 1, 2, 3), tmp3, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 + l2new.aaaa += tmp151.transpose((2, 3, 1, 0)) * 2 + l2new.aaaa += tmp151.transpose((2, 3, 0, 1)) * -2 + l2new.aaaa += tmp151.transpose((3, 2, 1, 0)) * -2 + l2new.aaaa += tmp151.transpose((3, 2, 0, 1)) * 2 + del tmp151 + tmp170 = einsum(tmp169, (0, 1, 2, 3), l2.aaaa, (2, 4, 0, 5), (1, 5, 3, 4), optimize=True) + del tmp169 + l2new.aaaa += tmp170.transpose((3, 2, 0, 1)) * -2 + l2new.aaaa += tmp170.transpose((3, 2, 1, 0)) * 2 + l2new.aaaa += tmp170.transpose((2, 3, 0, 1)) * 2 + del tmp170 + tmp149 = einsum(l1.aa, (0, 1), v.aaaa.ovvv, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) + l2new.aaaa += tmp149.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp149.transpose((3, 2, 0, 1)) l2new.aaaa += tmp149.transpose((2, 3, 1, 0)) - tmp148 = einsum(v.aabb.ovoo, (0, 1, 2, 3), tmp0, (4, 2, 3, 5), (4, 0, 5, 1), optimize=True) - l2new.aaaa += tmp148.transpose((2, 3, 1, 0)) - tmp146 = einsum(tmp3, (0, 1, 2, 3), v.aaaa.ooov, (0, 2, 4, 5), (1, 4, 3, 5), optimize=True) * -1 - l2new.aaaa += tmp146.transpose((2, 3, 1, 0)) * 2 - l2new.aaaa += einsum(tmp170, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) - l2new.aaaa += tmp162.transpose((3, 2, 1, 0)) - l2new.aaaa += tmp158.transpose((3, 2, 1, 0)) * 2 - l2new.aaaa += tmp152.transpose((2, 3, 0, 1)) * -2 - l2new.aaaa += tmp150.transpose((3, 2, 0, 1)) l2new.aaaa += tmp149.transpose((2, 3, 0, 1)) * -1 - l2new.aaaa += tmp148.transpose((2, 3, 0, 1)) * -1 - l2new.aaaa += tmp146.transpose((2, 3, 0, 1)) * -2 - tmp175 = tmp11.copy() - del tmp11 - tmp175 += tmp169 - del tmp169 - tmp175 += f.aa.ov - l2new.aaaa += einsum(tmp175, (0, 1), l1.aa, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - del tmp175 - l2new.aaaa += tmp174.transpose((3, 2, 0, 1)) - del tmp174 - l2new.aaaa += tmp167.transpose((3, 2, 1, 0)) - tmp166 = einsum(v.aaaa.ovov, (0, 1, 2, 3), tmp165, (4, 1), (0, 2, 4, 3), optimize=True) * 2 + del tmp149 + tmp165 = einsum(tmp80, (0, 1), v.aaaa.ovov, (1, 2, 3, 4), (3, 0, 2, 4), optimize=True) + l2new.aaaa += tmp165.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp165.transpose((3, 2, 1, 0)) del tmp165 - l2new.aaaa += tmp166.transpose((2, 3, 1, 0)) - tmp91 = einsum(tmp14, (0, 1), t1.aa, (2, 1), (2, 0), optimize=True) - tmp92 = tmp91.copy() - del tmp91 - tmp90 = einsum(tmp89, (0, 1, 2, 3), t1.aa, (0, 3), (1, 2), optimize=True) - del tmp89 - tmp92 += tmp90 * -1 - del tmp90 - tmp92 += tmp88 - del tmp88 - tmp92 += tmp87 * 2 - del tmp87 - tmp92 += tmp86.transpose((1, 0)) - del tmp86 - tmp92 += f.aa.oo.transpose((1, 0)) - tmp164 = einsum(l2.aaaa, (0, 1, 2, 3), tmp92, (2, 4), (3, 4, 0, 1), optimize=True) * 2 - l2new.aaaa += tmp164.transpose((3, 2, 0, 1)) * -1 - l2new.aaaa += tmp163.transpose((3, 2, 1, 0)) * -1 - tmp172 = tmp160.copy() * 2 - del tmp160 - tmp172 += tmp159 + tmp175 = einsum(v.aaaa.vvvv, (0, 1, 2, 3), l2.aaaa, (3, 1, 4, 5), (4, 5, 0, 2), optimize=True) * -1 + l2new.aaaa += tmp175.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp175.transpose((3, 2, 1, 0)) + del tmp175 + tmp146 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp146 += tmp5.transpose((0, 2, 1, 3)) + del tmp5 + l2new.aaaa += einsum(l1.aa, (0, 1), tmp146, (1, 2, 3, 4), (4, 0, 3, 2), optimize=True) * -1 + del tmp146 + tmp187 = einsum(l2.aaaa, (0, 1, 2, 3), tmp28, (3, 2, 4, 5), (4, 5, 0, 1), optimize=True) * -1 + del tmp28 + l2new.aaaa += tmp187.transpose((2, 3, 1, 0)) * 2 + l2new.aaaa += tmp187.transpose((2, 3, 0, 1)) * -2 + del tmp187 + tmp159 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() * 0.5 + tmp159 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -0.5 + tmp159 += tmp157 + del tmp157 + tmp159 += tmp158 * 0.5 + del tmp158 + tmp159 += einsum(t1.aa, (0, 1), tmp84, (2, 3, 1, 4), (0, 2, 4, 3), optimize=True) * -0.5 + l2new.aaaa += einsum(l2.aaaa, (0, 1, 2, 3), tmp159, (2, 4, 0, 5), (5, 1, 3, 4), optimize=True) * -4 del tmp159 - tmp172 += tmp15 - tmp172 += v.aabb.ovov.transpose((0, 2, 1, 3)) - l2new.aaaa += einsum(tmp172, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (2, 4, 5, 0), optimize=True) * -1 - del tmp172 - tmp84 = v.aaaa.ovvv.transpose((0, 3, 1, 2)).copy() * -1 - tmp84 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) - tmp171 = einsum(t1.aa, (0, 1), tmp84, (2, 1, 3, 4), (0, 2, 4, 3), optimize=True) * -1 - tmp171 += tmp154 - del tmp154 - tmp171 += tmp153 * 2 - del tmp153 - tmp171 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 - tmp171 += v.aaaa.ovov.transpose((2, 0, 3, 1)) - l2new.aaaa += einsum(l2.aaaa, (0, 1, 2, 3), tmp171, (2, 4, 0, 5), (5, 1, 3, 4), optimize=True) * -2 - del tmp171 - l2new.aaaa += tmp152.transpose((3, 2, 0, 1)) * 2 - l2new.aaaa += tmp151.transpose((2, 3, 0, 1)) * 2 - l2new.aaaa += tmp150.transpose((2, 3, 0, 1)) * -1 - l2new.aaaa += tmp149.transpose((3, 2, 0, 1)) - l2new.aaaa += tmp148.transpose((3, 2, 0, 1)) - l2new.aaaa += einsum(l1.aa, (0, 1), tmp147, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - l2new.aaaa += v.aaaa.ovov.transpose((1, 3, 2, 0)) * -1 - l2new.aaaa += tmp146.transpose((3, 2, 0, 1)) * 2 - l2new.aaaa += tmp145.transpose((2, 3, 0, 1)) * 2 - l2new.aaaa += einsum(l1.aa, (0, 1), tmp170, (2, 3), (3, 0, 2, 1), optimize=True) - del tmp170 - tmp168 = tmp5.transpose((0, 2, 1, 3)).copy() - tmp168 += v.aaaa.ooov.transpose((1, 0, 2, 3)) - l2new.aaaa += einsum(l1.aa, (0, 1), tmp168, (1, 2, 3, 4), (4, 0, 3, 2), optimize=True) * -1 - del tmp168 - l2new.aaaa += tmp167.transpose((3, 2, 0, 1)) * -1 - del tmp167 - l2new.aaaa += tmp166.transpose((3, 2, 1, 0)) * -1 + tmp174 = f.aa.ov.copy() + tmp174 += tmp166 del tmp166 - l2new.aaaa += tmp164.transpose((3, 2, 1, 0)) - del tmp164 + tmp174 += tmp11 + del tmp11 + l2new.aaaa += einsum(l1.aa, (0, 1), tmp174, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + l2new.aaaa += einsum(l1.aa, (0, 1), tmp174, (2, 3), (0, 3, 1, 2), optimize=True) + l2new.aaaa += einsum(tmp174, (0, 1), l1.aa, (2, 3), (1, 2, 0, 3), optimize=True) + del tmp174 + tmp163 = einsum(tmp35, (0, 1, 2, 3), v.aaaa.ovov, (1, 4, 5, 3), (5, 0, 4, 2), optimize=True) + del tmp35 + l2new.aaaa += tmp163.transpose((2, 3, 0, 1)) * -1 + l2new.aaaa += tmp163.transpose((2, 3, 1, 0)) l2new.aaaa += tmp163.transpose((3, 2, 0, 1)) + l2new.aaaa += tmp163.transpose((3, 2, 1, 0)) * -1 del tmp163 - l2new.aaaa += tmp162.transpose((2, 3, 0, 1)) - del tmp162 - l2new.aaaa += tmp158.transpose((2, 3, 0, 1)) * 2 - del tmp158 - l2new.aaaa += tmp152.transpose((3, 2, 1, 0)) * -2 - del tmp152 - l2new.aaaa += tmp151.transpose((2, 3, 1, 0)) * -2 - del tmp151 - l2new.aaaa += tmp150.transpose((2, 3, 1, 0)) - del tmp150 - l2new.aaaa += tmp149.transpose((3, 2, 1, 0)) * -1 - del tmp149 + tmp148 = einsum(l1.aa, (0, 1), tmp147, (1, 2, 3, 4), (2, 3, 4, 0), optimize=True) + del tmp147 l2new.aaaa += tmp148.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp148.transpose((3, 2, 0, 1)) del tmp148 - l2new.aaaa += einsum(tmp147, (0, 1), l1.aa, (2, 3), (2, 1, 0, 3), optimize=True) - del tmp147 - l2new.aaaa += v.aaaa.ovov.transpose((3, 1, 2, 0)) - l2new.aaaa += tmp146.transpose((3, 2, 1, 0)) * -2 - del tmp146 - l2new.aaaa += tmp145.transpose((2, 3, 1, 0)) * -2 - del tmp145 - l1new.bb = einsum(tmp144, (0, 1), l1.bb, (2, 0), (2, 1), optimize=True) * -1 + tmp162 = v.aabb.ovov.transpose((0, 2, 1, 3)).copy() + tmp162 += tmp15 + del tmp15 + tmp162 += tmp160 + del tmp160 + tmp162 += tmp161 * 2 + del tmp161 + l2new.aaaa += einsum(l2.abab, (0, 1, 2, 3), tmp162, (4, 3, 5, 1), (5, 0, 2, 4), optimize=True) * -1 + del tmp162 + tmp152 = einsum(tmp0, (0, 1, 2, 3), v.aabb.ovoo, (4, 5, 1, 2), (0, 4, 3, 5), optimize=True) + l2new.aaaa += tmp152.transpose((2, 3, 1, 0)) + l2new.aaaa += tmp152.transpose((2, 3, 0, 1)) * -1 + l2new.aaaa += tmp152.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp152.transpose((3, 2, 0, 1)) + del tmp152 + tmp189 = einsum(tmp144, (0, 1), v.aaaa.ovov, (2, 3, 4, 1), (2, 4, 0, 3), optimize=True) del tmp144 - l1new.bb += einsum(tmp103, (0, 1), tmp137, (2, 0), (1, 2), optimize=True) * -2 - del tmp137 - tmp136 = einsum(t1.bb, (0, 1), tmp135, (0, 1, 2, 3), (3, 2), optimize=True) * -1 - del tmp135 - tmp136 += tmp134.transpose((1, 0)) - del tmp134 - tmp136 += f.bb.vv.transpose((1, 0)) - l1new.bb += einsum(tmp136, (0, 1), l1.bb, (0, 2), (1, 2), optimize=True) - del tmp136 - l1new.bb += einsum(v.aabb.ooov, (0, 1, 2, 3), tmp80, (1, 0), (3, 2), optimize=True) * -1 - tmp133 = v.bbbb.oovv.transpose((1, 0, 3, 2)).copy() * -1 - tmp133 += v.bbbb.ovov.transpose((2, 0, 3, 1)) + l2new.aaaa += tmp189.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp189.transpose((3, 2, 1, 0)) + del tmp189 + tmp172 = einsum(tmp171, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (0, 5, 2, 4), optimize=True) + del tmp171 + l2new.aaaa += tmp172.transpose((3, 2, 0, 1)) * -1 + l2new.aaaa += tmp172.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp172.transpose((2, 3, 0, 1)) + del tmp172 + tmp154 = einsum(v.aaaa.ooov, (0, 1, 2, 3), tmp3, (0, 4, 1, 5), (4, 2, 5, 3), optimize=True) * -1 + l2new.aaaa += tmp154.transpose((2, 3, 1, 0)) * 2 + l2new.aaaa += tmp154.transpose((2, 3, 0, 1)) * -2 + l2new.aaaa += tmp154.transpose((3, 2, 1, 0)) * -2 + l2new.aaaa += tmp154.transpose((3, 2, 0, 1)) * 2 + del tmp154 + tmp173 = einsum(v.aaaa.ovov, (0, 1, 2, 3), tmp63, (4, 0), (2, 4, 1, 3), optimize=True) * 2 + l2new.aaaa += tmp173.transpose((2, 3, 0, 1)) + l2new.aaaa += tmp173.transpose((3, 2, 0, 1)) * -1 + del tmp173 + tmp118 = l2.bbbb.transpose((3, 2, 1, 0)).copy() * -1 + tmp118 += einsum(tmp72, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) + l1new.bb += einsum(v.bbbb.ovvv, (0, 1, 2, 3), tmp118, (4, 0, 2, 1), (3, 4), optimize=True) * -2 + del tmp118 + tmp133 = v.bbbb.ovov.transpose((2, 0, 3, 1)).copy() + tmp133 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 l1new.bb += einsum(tmp133, (0, 1, 2, 3), l1.bb, (2, 0), (3, 1), optimize=True) del tmp133 - tmp132 = v.bbbb.ooov.transpose((2, 1, 0, 3)).copy() * -1 - tmp132 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - l1new.bb += einsum(tmp78, (0, 1), tmp132, (1, 0, 2, 3), (3, 2), optimize=True) * -1 - del tmp132 - tmp63 = tmp62.copy() * 0.5 - del tmp62 - tmp63 += tmp61 - del tmp61 - tmp63 += tmp60 * 0.5 - del tmp60 - tmp64 = einsum(tmp63, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * 2 - tmp131 = tmp64.copy() - tmp59 = einsum(t2.abab, (0, 1, 2, 3), tmp36, (0, 4, 1, 3), (4, 2), optimize=True) - tmp131 += tmp59 - tmp58 = einsum(tmp3, (0, 1, 2, 3), t2.aaaa, (0, 1, 3, 4), (2, 4), optimize=True) - tmp131 += tmp58 * 2 - tmp57 = einsum(t2.abab, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) - tmp131 += tmp57 * -1 - tmp56 = einsum(l1.aa, (0, 1), t2.aaaa, (2, 1, 3, 0), (2, 3), optimize=True) - tmp131 += tmp56 * -2 - tmp131 += t1.aa * -1 - tmp131 += l1.aa.transpose((1, 0)) * -1 - l1new.bb += einsum(tmp131, (0, 1), v.aabb.ovov, (0, 1, 2, 3), (3, 2), optimize=True) * -1 - del tmp131 - tmp54 = tmp53.copy() - del tmp53 - tmp54 += tmp52 * 2 - del tmp52 - tmp51 = einsum(t1.aa, (0, 1), l1.aa, (2, 0), (2, 1), optimize=True) - tmp54 += tmp51 - del tmp51 - l1new.bb += einsum(v.bbaa.ovvv, (0, 1, 2, 3), tmp54, (3, 2), (1, 0), optimize=True) - tmp130 = einsum(t1.bb, (0, 1), tmp78, (0, 2), (2, 1), optimize=True) - tmp74 = einsum(tmp73, (0, 1, 2, 3), t2.bbbb, (0, 1, 3, 4), (2, 4), optimize=True) - tmp130 += tmp74 * 2 - tmp72 = einsum(t2.abab, (0, 1, 2, 3), tmp0, (0, 1, 4, 2), (4, 3), optimize=True) - tmp130 += tmp72 - tmp71 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) - tmp130 += tmp71 * -2 - tmp70 = einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) - tmp130 += tmp70 * -1 - tmp130 += t1.bb * -1 - l1new.bb += einsum(tmp130, (0, 1), tmp101, (0, 2, 3, 1), (3, 2), optimize=True) - del tmp101, tmp130 - tmp128 = tmp68.copy() - tmp128 += tmp67 * 0.5 - tmp66 = einsum(t1.bb, (0, 1), l1.bb, (2, 0), (2, 1), optimize=True) - tmp128 += tmp66 * 0.5 - l1new.bb += einsum(tmp129, (0, 1, 2, 3), tmp128, (2, 1), (3, 0), optimize=True) * -2 - del tmp129, tmp128 - tmp127 = tmp38.transpose((1, 0, 2, 3)).copy() - tmp127 += tmp37 + tmp126 = tmp124.transpose((1, 0, 3, 2)).copy() + tmp126 += tmp122.transpose((2, 1, 0, 3)) + l1new.bb += einsum(tmp126, (0, 1, 2, 3), v.bbbb.ooov, (2, 0, 3, 4), (4, 1), optimize=True) * 2 + del tmp126 + tmp127 = tmp37.copy() + tmp127 += tmp38.transpose((1, 0, 2, 3)) l1new.bb += einsum(tmp127, (0, 1, 2, 3), v.aabb.ooov, (1, 0, 3, 4), (4, 2), optimize=True) del tmp127 - tmp123 = einsum(t2.bbbb, (0, 1, 2, 3), tmp73, (4, 1, 5, 3), (4, 5, 0, 2), optimize=True) * -1 - tmp126 = tmp123.transpose((0, 2, 1, 3)).copy() - tmp122 = einsum(t2.abab, (0, 1, 2, 3), tmp0, (0, 4, 5, 2), (4, 5, 1, 3), optimize=True) - tmp126 += tmp122.transpose((0, 2, 1, 3)) * 0.25 - tmp126 += einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 4), (4, 1, 0, 2), optimize=True) * -0.5 - l1new.bb += einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp126, (4, 0, 2, 3), (1, 4), optimize=True) * 4 - del tmp126 - tmp125 = einsum(tmp124, (0, 1, 2, 3), t1.bb, (0, 4), (3, 1, 2, 4), optimize=True) * 0.5 - del tmp124 - tmp125 += tmp123.transpose((2, 0, 1, 3)) - del tmp123 - tmp125 += tmp122.transpose((2, 0, 1, 3)) * 0.25 - del tmp122 - tmp125 += tmp73.transpose((1, 0, 2, 3)) * -0.5 - l1new.bb += einsum(v.bbbb.ovov, (0, 1, 2, 3), tmp125, (0, 4, 2, 1), (3, 4), optimize=True) * -4 - del tmp125 - tmp121 = einsum(tmp0, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - tmp121 += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) - l1new.bb += einsum(v.bbaa.ovvv, (0, 1, 2, 3), tmp121, (4, 0, 3, 2), (1, 4), optimize=True) * -1 - del tmp121 - tmp120 = einsum(tmp73, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 3, 4), optimize=True) * -1 - tmp120 += l2.bbbb.transpose((3, 2, 1, 0)) * -1 - l1new.bb += einsum(v.bbbb.ovvv, (0, 1, 2, 3), tmp120, (4, 0, 2, 1), (3, 4), optimize=True) * -2 - del tmp120 - tmp119 = einsum(tmp39, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 3, 4), optimize=True) * -1 - tmp119 += einsum(t2.abab, (0, 1, 2, 3), tmp73, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) * -2 - tmp119 += einsum(t2.abab, (0, 1, 2, 3), tmp36, (0, 4, 5, 3), (4, 5, 1, 2), optimize=True) * -1 - tmp119 += einsum(t2.aaaa, (0, 1, 2, 3), tmp0, (1, 4, 5, 3), (0, 4, 5, 2), optimize=True) * 2 - tmp119 += tmp0 - tmp119 += einsum(t2.abab, (0, 1, 2, 3), l1.bb, (3, 4), (0, 4, 1, 2), optimize=True) - l1new.bb += einsum(tmp119, (0, 1, 2, 3), v.aabb.ovov, (0, 3, 2, 4), (4, 1), optimize=True) * -1 + tmp128 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() * -1 + tmp128 += v.bbbb.ovvv.transpose((0, 3, 1, 2)) + tmp117 = einsum(t2.abab, (0, 1, 2, 3), l1.bb, (3, 4), (0, 4, 1, 2), optimize=True) + tmp117 += tmp0 + tmp117 += einsum(t2.aaaa, (0, 1, 2, 3), tmp0, (1, 4, 5, 3), (0, 4, 5, 2), optimize=True) * 2 + tmp117 += einsum(t2.abab, (0, 1, 2, 3), tmp36, (0, 4, 5, 3), (4, 5, 1, 2), optimize=True) * -1 + tmp117 += einsum(tmp72, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) * -2 + tmp117 += einsum(tmp39, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 3, 4), optimize=True) * -1 + l1new.bb += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp117, (0, 4, 2, 1), (3, 4), optimize=True) * -1 + del tmp117 + tmp119 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 5, 1), (3, 4, 0, 5), optimize=True) + tmp119 += einsum(t1.aa, (0, 1), tmp0, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + l1new.bb += einsum(v.bbaa.ovvv, (0, 1, 2, 3), tmp119, (4, 0, 3, 2), (1, 4), optimize=True) * -1 del tmp119 - l1new.bb += einsum(tmp115, (0, 1, 2, 3), tmp118, (4, 0, 3, 2), (1, 4), optimize=True) - del tmp118, tmp115 - tmp114 = einsum(t2.abab, (0, 1, 2, 3), l2.bbbb, (4, 3, 1, 5), (0, 5, 2, 4), optimize=True) * -2 - tmp114 += einsum(tmp36, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * -1 - tmp114 += einsum(t2.aaaa, (0, 1, 2, 3), l2.abab, (3, 4, 1, 5), (0, 5, 2, 4), optimize=True) * 2 - tmp114 += l2.abab.transpose((2, 3, 0, 1)) - l1new.bb += einsum(tmp114, (0, 1, 2, 3), v.aabb.ovvv, (0, 2, 3, 4), (4, 1), optimize=True) - del tmp114 - tmp112 = tmp111.transpose((3, 0, 2, 1)).copy() - tmp112 += tmp111.transpose((2, 0, 3, 1)) * -1 - del tmp111 - tmp112 += tmp110.transpose((2, 1, 3, 0)) * -1 - del tmp110 - tmp112 += tmp109.transpose((3, 1, 2, 0)) - del tmp109 - tmp112 += v.bbbb.oooo.transpose((2, 3, 1, 0)) - tmp113 = einsum(tmp112, (0, 1, 2, 3), t1.bb, (0, 4), (2, 3, 1, 4), optimize=True) - del tmp112 - tmp94 = einsum(t1.bb, (0, 1), v.bbbb.ovvv, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) - tmp108 = tmp94.transpose((0, 1, 3, 2)).copy() - tmp108 += v.bbbb.oovv.transpose((1, 0, 3, 2)) * -1 - tmp108 += v.bbbb.ovov.transpose((2, 0, 3, 1)) - tmp113 += einsum(tmp108, (0, 1, 2, 3), t1.bb, (4, 3), (1, 0, 4, 2), optimize=True) - del tmp108 - tmp113 += einsum(tmp103, (0, 1), t2.bbbb, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) - tmp113 += einsum(t2.abab, (0, 1, 2, 3), tmp19, (0, 4, 5, 2), (5, 1, 4, 3), optimize=True) - tmp107 = tmp98.transpose((0, 2, 1, 3)).copy() - tmp107 += tmp98 * -1 - tmp107 += v.bbbb.ooov.transpose((1, 2, 0, 3)) * -1 - tmp107 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - tmp113 += einsum(tmp107, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (1, 4, 0, 5), optimize=True) * 2 - del tmp107 - tmp113 += einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovvv, (4, 2, 3, 5), (4, 1, 0, 5), optimize=True) - tmp113 += v.bbbb.ooov.transpose((1, 0, 2, 3)) * -1 - l1new.bb += einsum(l2.bbbb, (0, 1, 2, 3), tmp113, (4, 2, 3, 0), (1, 4), optimize=True) * -2 - del tmp113 - tmp20 = einsum(tmp19, (0, 1, 2, 3), t1.aa, (4, 3), (4, 0, 1, 2), optimize=True) - del tmp19 - tmp21 = tmp20.transpose((1, 0, 3, 2)).copy() - del tmp20 - tmp21 += tmp18.transpose((1, 0, 3, 2)) - del tmp18 - tmp21 += tmp17.transpose((1, 0, 3, 2)) - del tmp17 - tmp21 += v.aabb.oooo.transpose((1, 0, 3, 2)) - tmp106 = einsum(tmp21, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 2, 4), optimize=True) * -1 - tmp105 = tmp104.transpose((1, 0, 3, 2)).copy() - del tmp104 - tmp105 += v.bbaa.oovv.transpose((1, 0, 3, 2)) - tmp106 += einsum(t1.aa, (0, 1), tmp105, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) - del tmp105 - tmp106 += einsum(t2.abab, (0, 1, 2, 3), tmp103, (4, 3), (0, 1, 4, 2), optimize=True) - del tmp103 - tmp10 = tmp9.transpose((1, 0, 2, 3)).copy() - tmp10 += v.aabb.ooov.transpose((1, 0, 2, 3)) - tmp106 += einsum(t2.abab, (0, 1, 2, 3), tmp10, (0, 4, 5, 3), (4, 1, 5, 2), optimize=True) * -1 - tmp106 += einsum(t2.aaaa, (0, 1, 2, 3), tmp8, (0, 4, 5, 2), (1, 5, 4, 3), optimize=True) * 2 - tmp99 = tmp98.transpose((2, 0, 1, 3)).copy() - tmp99 += tmp98.transpose((1, 0, 2, 3)) * -1 - del tmp98 - tmp99 += v.bbbb.ooov.transpose((2, 1, 0, 3)) * -1 - tmp99 += v.bbbb.ooov.transpose((1, 0, 2, 3)) - tmp106 += einsum(t2.abab, (0, 1, 2, 3), tmp99, (4, 5, 1, 3), (0, 5, 4, 2), optimize=True) - del tmp99 - tmp106 += einsum(t2.abab, (0, 1, 2, 3), v.bbaa.ovvv, (4, 3, 2, 5), (0, 1, 4, 5), optimize=True) - tmp106 += tmp7 + tmp113 = v.bbbb.ovvv.transpose((0, 1, 3, 2)).copy() + tmp113 += v.bbbb.ovvv.transpose((0, 3, 2, 1)) * -1 + l1new.bb += einsum(tmp113, (0, 1, 2, 3), tmp116, (4, 0, 2, 1), (3, 4), optimize=True) + del tmp116, tmp113 + tmp136 = f.bb.vv.transpose((1, 0)).copy() + tmp136 += tmp134.transpose((1, 0)) + del tmp134 + tmp136 += einsum(t1.bb, (0, 1), tmp135, (0, 2, 1, 3), (3, 2), optimize=True) * -1 + del tmp135 + l1new.bb += einsum(tmp136, (0, 1), l1.bb, (0, 2), (1, 2), optimize=True) + del tmp136 + tmp129 = t1.bb.copy() * -1 + tmp129 += tmp69 * -1 + tmp129 += tmp70 * -2 + tmp129 += tmp71 + tmp129 += tmp73 * 2 + tmp129 += tmp78 + l1new.bb += einsum(tmp99, (0, 1, 2, 3), tmp129, (0, 3), (2, 1), optimize=True) + del tmp99, tmp129 + tmp104 = v.aabb.ovoo.transpose((0, 3, 2, 1)).copy() + tmp104 += tmp7 del tmp7 - tmp106 += v.aabb.ovoo.transpose((0, 3, 2, 1)) - l1new.bb += einsum(tmp106, (0, 1, 2, 3), l2.abab, (3, 4, 0, 1), (4, 2), optimize=True) * -1 - del tmp106 - tmp97 = einsum(t1.aa, (0, 1), v.aabb.vvvv, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) - l1new.bb += einsum(tmp97, (0, 1, 2, 3), l2.abab, (1, 3, 0, 4), (2, 4), optimize=True) + tmp104 += einsum(v.bbaa.ovvv, (0, 1, 2, 3), t2.abab, (4, 5, 2, 1), (4, 5, 0, 3), optimize=True) + tmp104 += einsum(t2.abab, (0, 1, 2, 3), tmp97, (4, 5, 1, 3), (0, 5, 4, 2), optimize=True) del tmp97 - l1new.bb += einsum(tmp73, (0, 1, 2, 3), v.bbbb.oovv, (1, 2, 4, 3), (4, 0), optimize=True) * -2 - l1new.bb += einsum(tmp96, (0, 1, 2, 3), v.bbbb.ooov, (1, 2, 3, 4), (4, 0), optimize=True) * -2 - del tmp96 - l1new.bb += einsum(tmp95, (0, 1, 2, 3), v.bbbb.ooov, (3, 1, 2, 4), (4, 0), optimize=True) * 2 + tmp104 += einsum(tmp8, (0, 1, 2, 3), t2.aaaa, (0, 4, 3, 5), (4, 2, 1, 5), optimize=True) * 2 + tmp104 += einsum(t2.abab, (0, 1, 2, 3), tmp10, (0, 4, 5, 3), (4, 1, 5, 2), optimize=True) * -1 + tmp104 += einsum(tmp101, (0, 1), t2.abab, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + tmp104 += einsum(tmp103, (0, 1, 2, 3), t1.aa, (4, 2), (4, 1, 0, 3), optimize=True) + del tmp103 + tmp104 += einsum(tmp21, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 2, 4), optimize=True) * -1 + l1new.bb += einsum(l2.abab, (0, 1, 2, 3), tmp104, (2, 3, 4, 0), (1, 4), optimize=True) * -1 + del tmp104 + tmp68 = tmp65.copy() + del tmp65 + tmp68 += tmp66 + del tmp66 + tmp68 += tmp67 * 2 + del tmp67 + l1new.bb += einsum(tmp68, (0, 1), tmp128, (2, 3, 1, 0), (3, 2), optimize=True) * -1 + del tmp128 + l1new.aa += einsum(tmp68, (0, 1), v.aabb.ovvv, (2, 3, 1, 0), (3, 2), optimize=True) + del tmp68 + tmp95 = einsum(v.aabb.vvvv, (0, 1, 2, 3), t1.aa, (4, 1), (4, 0, 2, 3), optimize=True) + l1new.bb += einsum(l2.abab, (0, 1, 2, 3), tmp95, (2, 0, 4, 1), (4, 3), optimize=True) del tmp95 - l1new.bb += f.bb.ov.transpose((1, 0)) - l1new.bb += einsum(tmp73, (0, 1, 2, 3), tmp94, (1, 2, 4, 3), (4, 0), optimize=True) * 2 - del tmp73, tmp94 - l1new.bb += einsum(v.aabb.oovv, (0, 1, 2, 3), tmp36, (0, 1, 4, 3), (2, 4), optimize=True) * -1 tmp93 = einsum(t1.bb, (0, 1), v.bbbb.vvvv, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) l1new.bb += einsum(tmp93, (0, 1, 2, 3), l2.bbbb, (3, 2, 4, 0), (1, 4), optimize=True) * -2 del tmp93 - l1new.aa = einsum(l1.aa, (0, 1), tmp92, (1, 2), (0, 2), optimize=True) * -1 - del tmp92 - l1new.aa += einsum(tmp63, (0, 1), tmp14, (1, 2), (2, 0), optimize=True) * -2 + tmp112 = l2.abab.transpose((2, 3, 0, 1)).copy() * 0.5 + tmp112 += einsum(l2.abab, (0, 1, 2, 3), t2.aaaa, (4, 2, 5, 0), (4, 3, 5, 1), optimize=True) + tmp112 += einsum(t1.aa, (0, 1), tmp36, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * -0.5 + tmp112 += einsum(l2.bbbb, (0, 1, 2, 3), t2.abab, (4, 2, 5, 1), (4, 3, 5, 0), optimize=True) * -1 + l1new.bb += einsum(v.aabb.ovvv, (0, 1, 2, 3), tmp112, (0, 4, 1, 2), (3, 4), optimize=True) * 2 + del tmp112 + tmp125 = tmp120.copy() * 0.25 + tmp125 += tmp121 + tmp125 += einsum(t1.bb, (0, 1), tmp124, (2, 0, 3, 4), (2, 4, 3, 1), optimize=True) * 0.5 + del tmp124 + l1new.bb += einsum(tmp125, (0, 1, 2, 3), v.bbbb.ovov, (2, 4, 1, 3), (4, 0), optimize=True) * 4 + del tmp125 + tmp111 = v.bbbb.ooov.transpose((1, 2, 0, 3)).copy() * 0.5 + tmp111 += einsum(t2.bbbb, (0, 1, 2, 3), v.bbbb.ovvv, (4, 2, 3, 5), (4, 1, 0, 5), optimize=True) * 0.5 + tmp111 += einsum(t2.bbbb, (0, 1, 2, 3), tmp105, (4, 5, 0, 2), (5, 1, 4, 3), optimize=True) + del tmp105 + tmp111 += einsum(t2.abab, (0, 1, 2, 3), tmp19, (0, 4, 5, 2), (5, 1, 4, 3), optimize=True) * 0.5 + del tmp19 + tmp111 += einsum(t2.bbbb, (0, 1, 2, 3), tmp101, (4, 2), (4, 1, 0, 3), optimize=True) * 0.5 + del tmp101 + tmp111 += einsum(tmp106, (0, 1, 2, 3), t1.bb, (4, 3), (1, 0, 4, 2), optimize=True) * 0.5 + del tmp106 + tmp111 += einsum(tmp110, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 3, 4), optimize=True) * -0.5 + del tmp110 + l1new.bb += einsum(tmp111, (0, 1, 2, 3), l2.bbbb, (3, 4, 1, 2), (4, 0), optimize=True) * -4 + del tmp111 + tmp131 = l1.aa.transpose((1, 0)).copy() * -0.5 + tmp131 += t1.aa * -0.5 + tmp131 += tmp56 * -1 + tmp131 += tmp57 * -0.5 + tmp131 += tmp58 + tmp131 += tmp59 * 0.5 + tmp131 += einsum(tmp63, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) + l1new.bb += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp131, (0, 1), (3, 2), optimize=True) * -2 + del tmp131 + tmp130 = tmp51.copy() * 0.5 + tmp130 += tmp52 + tmp130 += tmp53 * 0.5 + l1new.bb += einsum(tmp130, (0, 1), v.bbaa.ovvv, (2, 3, 1, 0), (3, 2), optimize=True) * 2 + del tmp130 + tmp123 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 4), (4, 1, 0, 2), optimize=True) * -1 + tmp123 += tmp72.transpose((1, 0, 2, 3)) + del tmp72 + tmp123 += tmp120.transpose((0, 2, 1, 3)) * 0.5 + del tmp120 + tmp123 += tmp121.transpose((0, 2, 1, 3)) * 2 + del tmp121 + tmp123 += einsum(t1.bb, (0, 1), tmp122, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * -1 + del tmp122 + l1new.bb += einsum(tmp123, (0, 1, 2, 3), v.bbbb.ovov, (1, 3, 2, 4), (4, 0), optimize=True) * -2 + del tmp123 + tmp22 = v.aabb.ooov.transpose((1, 0, 2, 3)).copy() + tmp22 += einsum(v.aabb.oovv, (0, 1, 2, 3), t1.bb, (4, 3), (1, 0, 4, 2), optimize=True) + tmp22 += einsum(v.aabb.ovvv, (0, 1, 2, 3), t2.abab, (4, 5, 1, 2), (4, 0, 5, 3), optimize=True) + tmp22 += einsum(tmp6, (0, 1, 2, 3), t2.abab, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) + del tmp6 + tmp22 += einsum(tmp8, (0, 1, 2, 3), t2.abab, (4, 1, 3, 5), (4, 0, 2, 5), optimize=True) * -1 + del tmp8 + tmp22 += einsum(tmp10, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) * 2 + del tmp10 + tmp22 += einsum(tmp14, (0, 1), t2.abab, (2, 3, 1, 4), (2, 0, 3, 4), optimize=True) + tmp22 += einsum(t1.aa, (0, 1), tmp16, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) + del tmp16 + tmp22 += einsum(tmp21, (0, 1, 2, 3), t1.bb, (2, 4), (1, 0, 3, 4), optimize=True) * -1 + del tmp21 + l1new.aa += einsum(tmp22, (0, 1, 2, 3), l2.abab, (4, 3, 0, 2), (4, 1), optimize=True) * -1 + del tmp22 + tmp64 = t1.aa.copy() * -1 + tmp64 += tmp56 * -2 + del tmp56 + tmp64 += tmp57 * -1 + del tmp57 + tmp64 += tmp58 * 2 + del tmp58 + tmp64 += tmp59 + del tmp59 + tmp64 += einsum(tmp63, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * 2 del tmp63 - tmp85 = einsum(t1.aa, (0, 1), tmp84, (0, 2, 1, 3), (3, 2), optimize=True) * -1 - del tmp84 + l1new.aa += einsum(tmp12, (0, 1, 2, 3), tmp64, (0, 2), (3, 1), optimize=True) + del tmp12, tmp64 + tmp85 = f.aa.vv.transpose((1, 0)).copy() tmp85 += tmp83.transpose((1, 0)) del tmp83 - tmp85 += f.aa.vv.transpose((1, 0)) - l1new.aa += einsum(tmp85, (0, 1), l1.aa, (0, 2), (1, 2), optimize=True) + tmp85 += einsum(t1.aa, (0, 1), tmp84, (0, 1, 2, 3), (3, 2), optimize=True) * -1 + del tmp84 + l1new.aa += einsum(l1.aa, (0, 1), tmp85, (0, 2), (2, 1), optimize=True) del tmp85 - l1new.aa += einsum(v.aabb.ovoo, (0, 1, 2, 3), tmp78, (3, 2), (1, 0), optimize=True) * -1 - tmp82 = v.aaaa.oovv.transpose((1, 0, 3, 2)).copy() * -1 - tmp82 += v.aaaa.ovov.transpose((2, 0, 3, 1)) - l1new.aa += einsum(l1.aa, (0, 1), tmp82, (1, 2, 0, 3), (3, 2), optimize=True) - del tmp82 - tmp81 = v.aaaa.ooov.transpose((1, 2, 0, 3)).copy() - tmp81 += v.aaaa.ooov.transpose((1, 0, 2, 3)) * -1 - l1new.aa += einsum(tmp80, (0, 1), tmp81, (0, 2, 1, 3), (3, 2), optimize=True) * -1 - del tmp80, tmp81 - tmp79 = einsum(t1.bb, (0, 1), tmp78, (0, 2), (2, 1), optimize=True) * 0.5 - del tmp78 - tmp79 += tmp74 - del tmp74 - tmp79 += tmp72 * 0.5 - del tmp72 - tmp79 += tmp71 * -1 - del tmp71 - tmp79 += tmp70 * -0.5 - del tmp70 - tmp79 += t1.bb * -0.5 - tmp79 += l1.bb.transpose((1, 0)) * -0.5 - l1new.aa += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp79, (2, 3), (1, 0), optimize=True) * -2 - del tmp79 - tmp69 = tmp68.copy() * 2 - del tmp68 - tmp69 += tmp67 - del tmp67 - tmp69 += tmp66 - del tmp66 - l1new.aa += einsum(tmp69, (0, 1), v.aabb.ovvv, (2, 3, 1, 0), (3, 2), optimize=True) - del tmp69 - tmp65 = tmp64.copy() - del tmp64 - tmp65 += tmp59 - del tmp59 - tmp65 += tmp58 * 2 - del tmp58 - tmp65 += tmp57 * -1 - del tmp57 - tmp65 += tmp56 * -2 - del tmp56 - tmp65 += t1.aa * -1 - l1new.aa += einsum(tmp12, (0, 1, 2, 3), tmp65, (0, 3), (2, 1), optimize=True) - del tmp12, tmp65 - l1new.aa += einsum(tmp54, (0, 1), tmp55, (2, 3, 1, 0), (3, 2), optimize=True) * -1 + tmp54 = tmp51.copy() + del tmp51 + tmp54 += tmp52 * 2 + del tmp52 + tmp54 += tmp53 + del tmp53 + l1new.aa += einsum(tmp54, (0, 1), tmp55, (2, 1, 0, 3), (3, 2), optimize=True) * -1 del tmp55, tmp54 - tmp50 = tmp38.transpose((0, 1, 3, 2)).copy() - del tmp38 - tmp50 += tmp37 - del tmp37 - l1new.aa += einsum(v.aabb.ovoo, (0, 1, 2, 3), tmp50, (4, 0, 3, 2), (1, 4), optimize=True) - del tmp50 - tmp49 = tmp47.transpose((2, 1, 0, 3)).copy() - tmp49 += tmp44.transpose((1, 0, 3, 2)) - l1new.aa += einsum(v.aaaa.ooov, (0, 1, 2, 3), tmp49, (1, 4, 0, 2), (3, 4), optimize=True) * 2 - del tmp49 - tmp45 = einsum(t2.abab, (0, 1, 2, 3), tmp36, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) - tmp48 = tmp45.transpose((2, 0, 1, 3)).copy() * 0.25 - tmp48 += einsum(tmp47, (0, 1, 2, 3), t1.aa, (0, 4), (3, 1, 2, 4), optimize=True) * 0.5 - del tmp47 - tmp43 = einsum(t2.aaaa, (0, 1, 2, 3), tmp3, (4, 1, 5, 3), (4, 5, 0, 2), optimize=True) * -1 - tmp48 += tmp43.transpose((2, 0, 1, 3)) - tmp48 += tmp3.transpose((1, 0, 2, 3)) * -0.5 - l1new.aa += einsum(v.aaaa.ovov, (0, 1, 2, 3), tmp48, (0, 4, 2, 1), (3, 4), optimize=True) * -4 + tmp41 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 5), (2, 4, 1, 5), optimize=True) + tmp41 += einsum(tmp36, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + l1new.aa += einsum(tmp41, (0, 1, 2, 3), v.aabb.ovvv, (1, 4, 3, 2), (4, 0), optimize=True) * -1 + del tmp41 + tmp42 = l2.aaaa.transpose((3, 2, 1, 0)).copy() * -1 + tmp42 += einsum(tmp3, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 3, 4), optimize=True) + l1new.aa += einsum(v.aaaa.ovvv, (0, 1, 2, 3), tmp42, (4, 0, 2, 1), (3, 4), optimize=True) * -2 + del tmp42 + tmp48 = tmp43.copy() + tmp48 += einsum(tmp47, (0, 1, 2, 3), t1.aa, (1, 4), (0, 3, 2, 4), optimize=True) * 0.5 + tmp48 += tmp45 * 0.25 + l1new.aa += einsum(v.aaaa.ovov, (0, 1, 2, 3), tmp48, (4, 2, 0, 3), (1, 4), optimize=True) * 4 del tmp48 - tmp46 = tmp45.transpose((0, 2, 1, 3)).copy() * 0.25 - del tmp45 - tmp46 += einsum(tmp44, (0, 1, 2, 3), t1.aa, (1, 4), (0, 3, 2, 4), optimize=True) * -0.5 - del tmp44 + tmp46 = einsum(l1.aa, (0, 1), t2.aaaa, (2, 3, 4, 0), (1, 3, 2, 4), optimize=True) * -0.5 + tmp46 += tmp3.transpose((1, 0, 2, 3)) * 0.5 tmp46 += tmp43.transpose((0, 2, 1, 3)) del tmp43 - tmp46 += einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 4), (4, 1, 0, 2), optimize=True) * -0.5 - l1new.aa += einsum(tmp46, (0, 1, 2, 3), v.aaaa.ovov, (1, 4, 2, 3), (4, 0), optimize=True) * 4 + tmp46 += einsum(tmp44, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 3, 4), optimize=True) * -0.5 + tmp46 += tmp45.transpose((0, 2, 1, 3)) * 0.25 + del tmp45 + l1new.aa += einsum(tmp46, (0, 1, 2, 3), v.aaaa.ovov, (1, 3, 2, 4), (4, 0), optimize=True) * -4 del tmp46 - tmp42 = einsum(tmp36, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) - tmp42 += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) - l1new.aa += einsum(tmp42, (0, 1, 2, 3), v.aabb.ovvv, (1, 4, 3, 2), (4, 0), optimize=True) * -1 - del tmp42 - tmp41 = einsum(t1.aa, (0, 1), tmp3, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * -1 - tmp41 += l2.aaaa.transpose((3, 2, 1, 0)) * -1 - l1new.aa += einsum(v.aaaa.ovvv, (0, 1, 2, 3), tmp41, (4, 0, 2, 1), (3, 4), optimize=True) * -2 - del tmp41 - tmp40 = einsum(tmp39, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 3, 4), optimize=True) * -1 - del tmp39 - tmp40 += einsum(t2.abab, (0, 1, 2, 3), tmp0, (4, 1, 5, 2), (4, 0, 5, 3), optimize=True) * -1 - tmp40 += einsum(t2.bbbb, (0, 1, 2, 3), tmp36, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) * 2 - tmp40 += einsum(tmp3, (0, 1, 2, 3), t2.abab, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) * -2 - tmp40 += tmp36 - del tmp36 - tmp40 += einsum(l1.aa, (0, 1), t2.abab, (2, 3, 0, 4), (1, 2, 3, 4), optimize=True) - l1new.aa += einsum(tmp40, (0, 1, 2, 3), v.aabb.ovov, (1, 4, 2, 3), (4, 0), optimize=True) * -1 - del tmp40 - tmp32 = v.aaaa.ovvv.transpose((0, 3, 2, 1)).copy() * -1 - tmp32 += v.aaaa.ovvv.transpose((0, 1, 3, 2)) - l1new.aa += einsum(tmp35, (0, 1, 2, 3), tmp32, (1, 3, 2, 4), (4, 0), optimize=True) - del tmp35, tmp32 - tmp31 = einsum(t1.bb, (0, 1), tmp0, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) * -1 - tmp31 += einsum(t2.bbbb, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) * 2 + tmp82 = v.aaaa.ovov.transpose((2, 0, 3, 1)).copy() + tmp82 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 + l1new.aa += einsum(tmp82, (0, 1, 2, 3), l1.aa, (2, 0), (3, 1), optimize=True) + del tmp82 + tmp81 = v.aaaa.ooov.transpose((1, 0, 2, 3)).copy() + tmp81 += v.aaaa.ooov.transpose((2, 1, 0, 3)) * -1 + l1new.aa += einsum(tmp80, (0, 1), tmp81, (1, 0, 2, 3), (3, 2), optimize=True) * -1 + del tmp80, tmp81 + tmp31 = l2.abab.transpose((2, 3, 0, 1)).copy() tmp31 += einsum(t2.abab, (0, 1, 2, 3), l2.aaaa, (4, 2, 0, 5), (5, 1, 4, 3), optimize=True) * -2 - tmp31 += l2.abab.transpose((2, 3, 0, 1)) + tmp31 += einsum(t2.bbbb, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) * 2 + tmp31 += einsum(tmp0, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) * -1 l1new.aa += einsum(tmp31, (0, 1, 2, 3), v.bbaa.ovvv, (1, 3, 2, 4), (4, 0), optimize=True) del tmp31 - tmp29 = tmp28.transpose((3, 0, 2, 1)).copy() - tmp29 += tmp28.transpose((2, 0, 3, 1)) * -1 - del tmp28 - tmp29 += tmp27.transpose((2, 1, 3, 0)) * -1 - del tmp27 - tmp29 += tmp26.transpose((3, 1, 2, 0)) - del tmp26 - tmp29 += v.aaaa.oooo.transpose((2, 3, 1, 0)) - tmp30 = einsum(tmp29, (0, 1, 2, 3), t1.aa, (0, 4), (2, 3, 1, 4), optimize=True) * 0.5 - del tmp29 - tmp4 = einsum(t1.aa, (0, 1), v.aaaa.ovvv, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) - tmp25 = tmp4.transpose((0, 1, 3, 2)).copy() - tmp25 += v.aaaa.oovv.transpose((1, 0, 3, 2)) * -1 - tmp25 += v.aaaa.ovov.transpose((2, 0, 3, 1)) - tmp30 += einsum(tmp25, (0, 1, 2, 3), t1.aa, (4, 3), (1, 0, 4, 2), optimize=True) * 0.5 - del tmp25 - tmp30 += einsum(t2.aaaa, (0, 1, 2, 3), tmp14, (4, 2), (4, 1, 0, 3), optimize=True) * 0.5 - tmp24 = tmp9.copy() - del tmp9 - tmp24 += v.aabb.ooov.transpose((1, 0, 2, 3)) - tmp30 += einsum(t2.abab, (0, 1, 2, 3), tmp24, (4, 5, 1, 3), (5, 0, 4, 2), optimize=True) * 0.5 - del tmp24 - tmp23 = tmp5.transpose((0, 2, 1, 3)).copy() - tmp23 += tmp5 * -1 - tmp23 += v.aaaa.ooov.transpose((1, 2, 0, 3)) * -1 - tmp23 += v.aaaa.ooov.transpose((1, 0, 2, 3)) - tmp30 += einsum(t2.aaaa, (0, 1, 2, 3), tmp23, (4, 5, 0, 2), (5, 1, 4, 3), optimize=True) + tmp79 = l1.bb.transpose((1, 0)).copy() * -1 + tmp79 += t1.bb * -1 + tmp79 += tmp69 * -1 + del tmp69 + tmp79 += tmp70 * -2 + del tmp70 + tmp79 += tmp71 + del tmp71 + tmp79 += tmp73 * 2 + del tmp73 + tmp79 += tmp78 + del tmp78 + l1new.aa += einsum(v.aabb.ovov, (0, 1, 2, 3), tmp79, (2, 3), (1, 0), optimize=True) * -1 + del tmp79 + tmp49 = tmp47.transpose((1, 0, 3, 2)).copy() + del tmp47 + tmp49 += tmp44.transpose((2, 1, 0, 3)) + del tmp44 + l1new.aa += einsum(v.aaaa.ooov, (0, 1, 2, 3), tmp49, (1, 4, 0, 2), (3, 4), optimize=True) * 2 + del tmp49 + tmp30 = v.aaaa.ooov.transpose((1, 2, 0, 3)).copy() + tmp30 += einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovvv, (4, 2, 3, 5), (4, 1, 0, 5), optimize=True) + tmp30 += einsum(tmp23, (0, 1, 2, 3), t2.aaaa, (2, 4, 3, 5), (1, 4, 0, 5), optimize=True) * 2 del tmp23 - tmp30 += einsum(t2.aaaa, (0, 1, 2, 3), v.aaaa.ovvv, (4, 2, 3, 5), (4, 1, 0, 5), optimize=True) * 0.5 - tmp30 += v.aaaa.ooov.transpose((1, 0, 2, 3)) * -0.5 - l1new.aa += einsum(tmp30, (0, 1, 2, 3), l2.aaaa, (3, 4, 1, 2), (4, 0), optimize=True) * -4 - del tmp30 - tmp22 = einsum(t1.bb, (0, 1), tmp21, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -0.5 - del tmp21 - tmp16 = tmp15.copy() - del tmp15 - tmp16 += v.aabb.ovov.transpose((0, 2, 1, 3)) - tmp22 += einsum(tmp16, (0, 1, 2, 3), t1.aa, (4, 2), (4, 0, 1, 3), optimize=True) * 0.5 - del tmp16 - tmp22 += einsum(t2.abab, (0, 1, 2, 3), tmp14, (4, 2), (0, 4, 1, 3), optimize=True) * 0.5 + tmp30 += einsum(t2.abab, (0, 1, 2, 3), tmp24, (4, 5, 1, 3), (5, 0, 4, 2), optimize=True) + del tmp24 + tmp30 += einsum(tmp14, (0, 1), t2.aaaa, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) del tmp14 - tmp22 += einsum(tmp10, (0, 1, 2, 3), t2.bbbb, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) - del tmp10 - tmp22 += einsum(t2.abab, (0, 1, 2, 3), tmp8, (4, 1, 5, 2), (0, 4, 5, 3), optimize=True) * -0.5 - del tmp8 - tmp6 = tmp5.transpose((2, 0, 1, 3)).copy() * -1 - tmp6 += tmp5.transpose((1, 0, 2, 3)) - del tmp5 - tmp6 += v.aaaa.ooov.transpose((2, 1, 0, 3)) - tmp6 += v.aaaa.ooov.transpose((1, 0, 2, 3)) * -1 - tmp22 += einsum(t2.abab, (0, 1, 2, 3), tmp6, (0, 4, 5, 2), (4, 5, 1, 3), optimize=True) * 0.5 - del tmp6 - tmp22 += einsum(v.aabb.ovvv, (0, 1, 2, 3), t2.abab, (4, 5, 1, 2), (4, 0, 5, 3), optimize=True) * 0.5 - tmp22 += einsum(v.aabb.oovv, (0, 1, 2, 3), t1.bb, (4, 3), (1, 0, 4, 2), optimize=True) * 0.5 - tmp22 += v.aabb.ooov.transpose((1, 0, 2, 3)) * 0.5 - l1new.aa += einsum(tmp22, (0, 1, 2, 3), l2.abab, (4, 3, 0, 2), (4, 1), optimize=True) * -2 - del tmp22 - l1new.aa += einsum(tmp3, (0, 1, 2, 3), v.aaaa.oovv, (1, 2, 4, 3), (4, 0), optimize=True) * -2 - l1new.aa += einsum(tmp3, (0, 1, 2, 3), tmp4, (1, 2, 4, 3), (4, 0), optimize=True) * 2 - del tmp3, tmp4 - l1new.aa += f.aa.ov.transpose((1, 0)) - tmp2 = einsum(t1.bb, (0, 1), v.aabb.vvvv, (2, 3, 4, 1), (0, 2, 3, 4), optimize=True) - l1new.aa += einsum(l2.abab, (0, 1, 2, 3), tmp2, (3, 4, 0, 1), (4, 2), optimize=True) - del tmp2 - tmp1 = einsum(t1.aa, (0, 1), v.aaaa.vvvv, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) - l1new.aa += einsum(l2.aaaa, (0, 1, 2, 3), tmp1, (3, 4, 1, 0), (4, 2), optimize=True) * -2 + tmp30 += einsum(tmp25, (0, 1, 2, 3), t1.aa, (4, 3), (1, 0, 4, 2), optimize=True) + del tmp25 + tmp30 += einsum(tmp29, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 3, 4), optimize=True) * -1 + del tmp29 + l1new.aa += einsum(l2.aaaa, (0, 1, 2, 3), tmp30, (4, 2, 3, 0), (1, 4), optimize=True) * -2 + del tmp30 + tmp1 = einsum(v.aabb.vvvv, (0, 1, 2, 3), t1.bb, (4, 3), (4, 0, 1, 2), optimize=True) + l1new.aa += einsum(tmp1, (0, 1, 2, 3), l2.abab, (2, 3, 4, 0), (1, 4), optimize=True) del tmp1 - l1new.aa += einsum(tmp0, (0, 1, 2, 3), v.bbaa.oovv, (1, 2, 4, 3), (4, 0), optimize=True) * -1 + tmp40 = einsum(l1.aa, (0, 1), t2.abab, (2, 3, 0, 4), (1, 2, 3, 4), optimize=True) + tmp40 += tmp36 + tmp40 += einsum(tmp3, (0, 1, 2, 3), t2.abab, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) * -2 + del tmp3 + tmp40 += einsum(tmp36, (0, 1, 2, 3), t2.bbbb, (4, 2, 5, 3), (0, 1, 4, 5), optimize=True) * 2 + del tmp36 + tmp40 += einsum(tmp0, (0, 1, 2, 3), t2.abab, (4, 1, 3, 5), (0, 4, 2, 5), optimize=True) * -1 del tmp0 + tmp40 += einsum(tmp39, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 3, 4), optimize=True) * -1 + del tmp39 + l1new.aa += einsum(tmp40, (0, 1, 2, 3), v.aabb.ovov, (1, 4, 2, 3), (4, 0), optimize=True) * -1 + del tmp40 + tmp2 = einsum(t1.aa, (0, 1), v.aaaa.vvvv, (2, 3, 1, 4), (0, 2, 3, 4), optimize=True) + l1new.aa += einsum(l2.aaaa, (0, 1, 2, 3), tmp2, (3, 4, 1, 0), (4, 2), optimize=True) * -2 + del tmp2 + tmp50 = tmp37.copy() + del tmp37 + tmp50 += tmp38.transpose((0, 1, 3, 2)) + del tmp38 + l1new.aa += einsum(tmp50, (0, 1, 2, 3), v.aabb.ovoo, (1, 4, 3, 2), (4, 0), optimize=True) + del tmp50 + l1new.aa += f.aa.ov.transpose((1, 0)) + l1new.bb += f.bb.ov.transpose((1, 0)) + l2new.aaaa += v.aaaa.ovov.transpose((3, 1, 2, 0)) + l2new.aaaa += v.aaaa.ovov.transpose((1, 3, 2, 0)) * -1 + l2new.abab += v.aabb.ovov.transpose((1, 3, 0, 2)) + l2new.abab += einsum(v.aabb.ovvv, (0, 1, 2, 3), l1.bb, (3, 4), (1, 2, 0, 4), optimize=True) + l2new.abab += einsum(l1.aa, (0, 1), v.bbaa.ovvv, (2, 3, 4, 0), (4, 3, 1, 2), optimize=True) + l2new.bbbb += v.bbbb.ovov.transpose((3, 1, 2, 0)) + l2new.bbbb += v.bbbb.ovov.transpose((1, 3, 2, 0)) * -1 return {f"l1new": l1new, f"l2new": l2new} def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:26:46.164774. + Code generated by `albert` 0.0.0 on 2024-07-18T20:19:40.623843. Parameters ---------- @@ -1900,66 +1973,66 @@ def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): rdm1.aa = Namespace() rdm1.bb = Namespace() delta = Namespace( - aa=Namespace(oo=np.eye(t1.aa.shape[0]), vv=np.eye(t1.aa.shape[1])), - bb=Namespace(oo=np.eye(t1.bb.shape[0]), vv=np.eye(t1.bb.shape[1])), + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t1.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t1.bbbb.shape[-1])), ) - rdm1.bb.vv = einsum(t1.bb, (0, 1), l1.bb, (2, 0), (2, 1), optimize=True) - rdm1.bb.vv += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) - rdm1.bb.vv += einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (3, 4, 0, 1), (4, 2), optimize=True) * -2 - rdm1.aa.vv = einsum(t1.aa, (0, 1), l1.aa, (2, 0), (2, 1), optimize=True) - rdm1.aa.vv += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 1), (4, 2), optimize=True) - rdm1.aa.vv += einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (3, 4, 0, 1), (4, 2), optimize=True) * -2 - rdm1.bb.vo = l1.bb.copy() - rdm1.aa.vo = l1.aa.copy() + tmp5 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) + rdm1.bb.oo = tmp5.transpose((1, 0)).copy() * -1 + tmp3 = einsum(t1.bb, (0, 1), l1.bb, (1, 2), (2, 0), optimize=True) + rdm1.bb.oo += tmp3.transpose((1, 0)) * -1 tmp4 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 1), (4, 0), optimize=True) - tmp11 = tmp4.copy() * 2 - tmp3 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) - tmp11 += tmp3 - tmp5 = einsum(t1.bb, (0, 1), l1.bb, (1, 2), (2, 0), optimize=True) + rdm1.bb.oo += tmp4.transpose((1, 0)) * -2 + tmp0 = einsum(l1.aa, (0, 1), t1.aa, (2, 0), (1, 2), optimize=True) + rdm1.aa.oo = tmp0.transpose((1, 0)).copy() * -1 + tmp1 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) + rdm1.aa.oo += tmp1.transpose((1, 0)) * -1 + tmp2 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 1), (4, 0), optimize=True) + rdm1.aa.oo += tmp2.transpose((1, 0)) * -2 + tmp9 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) + rdm1.bb.ov = einsum(tmp9, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 3), (2, 4), optimize=True) * 2 + del tmp9 + tmp11 = tmp3.copy() + del tmp3 tmp11 += tmp5 - rdm1.bb.ov = einsum(t1.bb, (0, 1), tmp11, (0, 2), (2, 1), optimize=True) * -1 + del tmp5 + tmp11 += tmp4 * 2 + del tmp4 + rdm1.bb.ov += einsum(tmp11, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) * -1 del tmp11 - tmp10 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) - rdm1.bb.ov += einsum(t2.bbbb, (0, 1, 2, 3), tmp10, (0, 1, 4, 3), (4, 2), optimize=True) * 2 + tmp10 = einsum(t1.bb, (0, 1), l2.abab, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + rdm1.bb.ov += einsum(tmp10, (0, 1, 2, 3), t2.abab, (0, 1, 3, 4), (2, 4), optimize=True) * -1 del tmp10 - rdm1.bb.ov += einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) * 2 - rdm1.bb.ov += einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) - tmp9 = einsum(t1.bb, (0, 1), l2.abab, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) - rdm1.bb.ov += einsum(t2.abab, (0, 1, 2, 3), tmp9, (0, 1, 4, 2), (4, 3), optimize=True) * -1 - del tmp9 - rdm1.bb.ov += t1.bb - tmp2 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) - tmp8 = tmp2.copy() * 0.5 - tmp0 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 3, 0, 1), (2, 4), optimize=True) - tmp8 += tmp0 - tmp1 = einsum(l1.aa, (0, 1), t1.aa, (2, 0), (1, 2), optimize=True) - tmp8 += tmp1 * 0.5 - rdm1.aa.ov = einsum(tmp8, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * -2 - del tmp8 - tmp7 = einsum(t1.aa, (0, 1), l2.aaaa, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) - rdm1.aa.ov += einsum(t2.aaaa, (0, 1, 2, 3), tmp7, (0, 1, 4, 3), (4, 2), optimize=True) * 2 + tmp7 = einsum(l2.aaaa, (0, 1, 2, 3), t1.aa, (4, 1), (2, 3, 4, 0), optimize=True) + rdm1.aa.ov = einsum(tmp7, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 3), (2, 4), optimize=True) * 2 del tmp7 - rdm1.aa.ov += einsum(t2.abab, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) - rdm1.aa.ov += einsum(l1.aa, (0, 1), t2.aaaa, (2, 1, 3, 0), (2, 3), optimize=True) * 2 - rdm1.aa.ov += t1.aa - tmp6 = einsum(t1.aa, (0, 1), l2.abab, (1, 2, 3, 4), (3, 0, 4, 2), optimize=True) - rdm1.aa.ov += einsum(tmp6, (0, 1, 2, 3), t2.abab, (0, 2, 4, 3), (1, 4), optimize=True) * -1 + tmp6 = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (4, 0), (2, 4, 3, 1), optimize=True) + rdm1.aa.ov += einsum(t2.abab, (0, 1, 2, 3), tmp6, (0, 4, 1, 3), (4, 2), optimize=True) * -1 del tmp6 - rdm1.bb.oo = tmp5.transpose((1, 0)).copy() * -1 - del tmp5 - rdm1.bb.oo += tmp4.transpose((1, 0)) * -2 - del tmp4 - rdm1.bb.oo += tmp3.transpose((1, 0)) * -1 - del tmp3 - rdm1.bb.oo += delta.bb.oo.transpose((1, 0)) - rdm1.aa.oo = tmp2.transpose((1, 0)).copy() * -1 + tmp8 = tmp0.copy() * 0.5 + del tmp0 + tmp8 += tmp2 del tmp2 - rdm1.aa.oo += tmp1.transpose((1, 0)) * -1 + tmp8 += tmp1 * 0.5 del tmp1 - rdm1.aa.oo += tmp0.transpose((1, 0)) * -2 - del tmp0 + rdm1.aa.ov += einsum(tmp8, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * -2 + del tmp8 rdm1.aa.oo += delta.aa.oo.transpose((1, 0)) + rdm1.bb.oo += delta.bb.oo.transpose((1, 0)) del delta + rdm1.aa.ov += einsum(l1.bb, (0, 1), t2.abab, (2, 1, 3, 0), (2, 3), optimize=True) + rdm1.aa.ov += t1.aa + rdm1.aa.ov += einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 1), (0, 2), optimize=True) * 2 + rdm1.bb.ov += einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) + rdm1.bb.ov += t1.bb + rdm1.bb.ov += einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) * 2 + rdm1.aa.vo = l1.aa.copy() + rdm1.bb.vo = l1.bb.copy() + rdm1.aa.vv = einsum(l1.aa, (0, 1), t1.aa, (1, 2), (0, 2), optimize=True) + rdm1.aa.vv += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 1), (4, 2), optimize=True) + rdm1.aa.vv += einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 0), (1, 4), optimize=True) * -2 + rdm1.bb.vv = einsum(l1.bb, (0, 1), t1.bb, (1, 2), (0, 2), optimize=True) + rdm1.bb.vv += einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 0), (1, 4), optimize=True) * -2 + rdm1.bb.vv += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) rdm1.aa = np.block([[rdm1.aa.oo, rdm1.aa.ov], [rdm1.aa.vo, rdm1.aa.vv]]) rdm1.bb = np.block([[rdm1.bb.oo, rdm1.bb.ov], [rdm1.bb.vo, rdm1.bb.vv]]) @@ -1967,7 +2040,7 @@ def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): """ - Code generated by `albert` 0.0.0 on 2024-03-02T15:27:22.043395. + Code generated by `albert` 0.0.0 on 2024-07-18T20:20:17.522400. Parameters ---------- @@ -1991,652 +2064,629 @@ def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): rdm2.abab = Namespace() rdm2.bbbb = Namespace() delta = Namespace( - aa=Namespace(oo=np.eye(t1.aa.shape[0]), vv=np.eye(t1.aa.shape[1])), - bb=Namespace(oo=np.eye(t1.bb.shape[0]), vv=np.eye(t1.bb.shape[1])), + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t1.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t1.bbbb.shape[-1])), ) - tmp131 = einsum(t1.bb, (0, 1), l2.bbbb, (2, 3, 4, 0), (4, 2, 3, 1), optimize=True) + tmp13 = einsum(t1.bb, (0, 1), l2.abab, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + rdm2.abab.vovv = einsum(tmp13, (0, 1, 2, 3), t2.abab, (0, 1, 4, 5), (3, 2, 4, 5), optimize=True) * -1 + rdm2.abab.vovo = einsum(tmp13, (0, 1, 2, 3), t1.aa, (0, 4), (3, 2, 4, 1), optimize=True) * -1 + rdm2.abab.vooo = tmp13.transpose((3, 2, 0, 1)).copy() * -1 + tmp18 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) + rdm2.bbbb.vooo = tmp18.transpose((3, 2, 1, 0)).copy() * 2 + rdm2.bbbb.ovoo = tmp18.transpose((2, 3, 1, 0)).copy() * -2 + tmp9 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) + tmp10 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 1), (4, 0), optimize=True) + tmp0 = einsum(l1.aa, (0, 1), t1.aa, (2, 0), (1, 2), optimize=True) + tmp1 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 1), (4, 0), optimize=True) + tmp2 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) + tmp8 = einsum(t1.bb, (0, 1), l1.bb, (1, 2), (2, 0), optimize=True) + tmp6 = einsum(l2.aaaa, (0, 1, 2, 3), t1.aa, (4, 1), (2, 3, 4, 0), optimize=True) + rdm2.aaaa.vooo = tmp6.transpose((3, 2, 1, 0)).copy() * 2 + rdm2.aaaa.ovoo = tmp6.transpose((2, 3, 1, 0)).copy() * -2 + tmp26 = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (4, 0), (2, 4, 3, 1), optimize=True) + rdm2.abab.ovvv = einsum(tmp26, (0, 1, 2, 3), t2.abab, (0, 2, 4, 5), (1, 3, 4, 5), optimize=True) * -1 + rdm2.abab.ovov = einsum(tmp26, (0, 1, 2, 3), t1.bb, (2, 4), (1, 3, 0, 4), optimize=True) * -1 + rdm2.abab.ovoo = tmp26.transpose((1, 3, 0, 2)).copy() * -1 + tmp114 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + rdm2.bbbb.vovo = tmp114.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.bbbb.voov = tmp114.transpose((2, 1, 0, 3)).copy() + rdm2.bbbb.ovvo = tmp114.transpose((1, 2, 3, 0)).copy() + rdm2.bbbb.ovov = tmp114.transpose((1, 2, 0, 3)).copy() * -1 + tmp94 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (3, 4, 5, 1), (5, 0, 4, 2), optimize=True) * -1 + rdm2.bbbb.vovo += tmp94.transpose((2, 1, 3, 0)) * -4 + rdm2.bbbb.voov += tmp94.transpose((2, 1, 0, 3)) * 4 + rdm2.bbbb.ovvo += tmp94.transpose((1, 2, 3, 0)) * 4 + rdm2.bbbb.ovov += tmp94.transpose((1, 2, 0, 3)) * -4 + tmp65 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 3, 5, 0), (2, 4, 1, 5), optimize=True) * -1 + rdm2.aaaa.vovo = tmp65.transpose((2, 1, 3, 0)).copy() * -4 + rdm2.aaaa.voov = tmp65.transpose((2, 1, 0, 3)).copy() * 4 + rdm2.aaaa.ovvo = tmp65.transpose((1, 2, 3, 0)).copy() * 4 + rdm2.aaaa.ovov = tmp65.transpose((1, 2, 0, 3)).copy() * -4 + tmp86 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + rdm2.aaaa.vovo += tmp86.transpose((2, 1, 3, 0)) * -1 + rdm2.aaaa.voov += tmp86.transpose((2, 1, 0, 3)) + rdm2.aaaa.ovvo += tmp86.transpose((1, 2, 3, 0)) + rdm2.aaaa.ovov += tmp86.transpose((1, 2, 0, 3)) * -1 + tmp52 = einsum(t2.abab, (0, 1, 2, 3), tmp13, (0, 4, 5, 2), (4, 5, 1, 3), optimize=True) + rdm2.bbbb.oovo = tmp52.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.bbbb.oovo += tmp52.transpose((1, 2, 3, 0)) + rdm2.bbbb.ooov = tmp52.transpose((2, 1, 0, 3)).copy() + rdm2.bbbb.ooov += tmp52.transpose((1, 2, 0, 3)) * -1 + tmp53 = einsum(tmp18, (0, 1, 2, 3), t2.bbbb, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 + rdm2.bbbb.oovo += tmp53.transpose((2, 1, 3, 0)) * -4 + rdm2.bbbb.oovo += tmp53.transpose((1, 2, 3, 0)) * 4 + rdm2.bbbb.ooov += tmp53.transpose((2, 1, 0, 3)) * 4 + rdm2.bbbb.ooov += tmp53.transpose((1, 2, 0, 3)) * -4 + tmp17 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + rdm2.bbbb.oooo = tmp17.transpose((3, 2, 1, 0)).copy() * 2 + tmp19 = einsum(tmp18, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) + rdm2.bbbb.oooo += tmp19.transpose((2, 3, 1, 0)) * -2 + tmp100 = tmp9.copy() * 0.5 + tmp100 += tmp10 + tmp28 = tmp0.copy() * 0.5 + tmp28 += tmp1 + tmp28 += tmp2 * 0.5 + rdm2.abab.oovv = einsum(tmp28, (0, 1), t2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -2 + rdm2.aaaa.oovo = einsum(t1.aa, (0, 1), tmp28, (2, 3), (0, 3, 1, 2), optimize=True) * -2 + rdm2.aaaa.oovo += einsum(tmp28, (0, 1), t1.aa, (2, 3), (1, 2, 3, 0), optimize=True) * 2 + rdm2.abab.ooov = einsum(tmp28, (0, 1), t1.bb, (2, 3), (1, 2, 0, 3), optimize=True) * -2 + tmp16 = tmp8.copy() + tmp16 += tmp9 + tmp16 += tmp10 * 2 + rdm2.abab.oovv += einsum(tmp16, (0, 1), t2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + rdm2.bbbb.oovo += einsum(tmp16, (0, 1), t1.bb, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.bbbb.oovo += einsum(tmp16, (0, 1), t1.bb, (2, 3), (1, 2, 3, 0), optimize=True) + rdm2.abab.oovo = einsum(tmp16, (0, 1), t1.aa, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.bbbb.ooov += einsum(tmp16, (0, 1), t1.bb, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.bbbb.ooov += einsum(tmp16, (0, 1), t1.bb, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.bbbb.oooo += einsum(tmp16, (0, 1), delta.bb.oo, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp16, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + tmp12 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 5), (4, 0, 5, 1), optimize=True) + rdm2.abab.oooo = tmp12.transpose((1, 3, 0, 2)).copy() + tmp14 = einsum(tmp13, (0, 1, 2, 3), t1.aa, (4, 3), (0, 4, 1, 2), optimize=True) + rdm2.abab.oooo += tmp14.transpose((1, 3, 0, 2)) + tmp5 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + rdm2.aaaa.oooo = tmp5.transpose((3, 2, 1, 0)).copy() * 2 + tmp7 = einsum(t1.aa, (0, 1), tmp6, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + rdm2.aaaa.oooo += tmp7.transpose((2, 3, 1, 0)) * -2 + tmp32 = einsum(tmp26, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (0, 1, 4, 5), optimize=True) + rdm2.aaaa.oovo += tmp32.transpose((2, 1, 3, 0)) * -1 + rdm2.aaaa.oovo += tmp32.transpose((1, 2, 3, 0)) + rdm2.aaaa.ooov = tmp32.transpose((2, 1, 0, 3)).copy() + rdm2.aaaa.ooov += tmp32.transpose((1, 2, 0, 3)) * -1 + tmp31 = einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 + rdm2.aaaa.oovo += tmp31.transpose((2, 1, 3, 0)) * -4 + rdm2.aaaa.oovo += tmp31.transpose((1, 2, 3, 0)) * 4 + rdm2.aaaa.ooov += tmp31.transpose((2, 1, 0, 3)) * 4 + rdm2.aaaa.ooov += tmp31.transpose((1, 2, 0, 3)) * -4 + tmp74 = tmp1.copy() * 2 + tmp74 += tmp2 + tmp83 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 0), (1, 4), optimize=True) * -1 + tmp82 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + tmp111 = einsum(l1.bb, (0, 1), t1.bb, (1, 2), (0, 2), optimize=True) + rdm2.bbbb.ovvv = einsum(t1.bb, (0, 1), tmp111, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.bbbb.ovvv += einsum(tmp111, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + tmp124 = tmp114.copy() + del tmp114 + tmp124 += tmp94 * 4 + tmp115 = einsum(t1.bb, (0, 1), tmp18, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + rdm2.bbbb.vovo += tmp115.transpose((2, 1, 3, 0)) * 2 + rdm2.bbbb.voov += tmp115.transpose((2, 1, 0, 3)) * -2 + rdm2.bbbb.ovvo += tmp115.transpose((1, 2, 3, 0)) * -2 + rdm2.bbbb.ovov += tmp115.transpose((1, 2, 0, 3)) * 2 + tmp96 = einsum(t2.bbbb, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + rdm2.abab.voov = tmp96.transpose((2, 1, 0, 3)).copy() * 2 + tmp92 = einsum(l2.aaaa, (0, 1, 2, 3), t2.abab, (3, 4, 0, 5), (2, 4, 1, 5), optimize=True) * -1 + rdm2.abab.voov += tmp92.transpose((2, 1, 0, 3)) * 2 + tmp108 = einsum(l1.aa, (0, 1), t1.aa, (1, 2), (0, 2), optimize=True) + rdm2.aaaa.ovvv = einsum(t1.aa, (0, 1), tmp108, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.aaaa.ovvv += einsum(tmp108, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) + tmp62 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 0), (1, 4), optimize=True) * -1 + tmp63 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 1), (4, 2), optimize=True) + tmp87 = tmp65.copy() * 4 + tmp87 += tmp86 + del tmp86 + rdm2.abab.oovv += einsum(tmp87, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + tmp110 = einsum(tmp6, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 3, 4), optimize=True) + rdm2.aaaa.vovo += tmp110.transpose((2, 1, 3, 0)) * 2 + rdm2.aaaa.voov += tmp110.transpose((2, 1, 0, 3)) * -2 + rdm2.aaaa.ovvo += tmp110.transpose((1, 2, 3, 0)) * -2 + rdm2.aaaa.ovov += tmp110.transpose((1, 2, 0, 3)) * 2 + tmp67 = einsum(t2.abab, (0, 1, 2, 3), l2.bbbb, (3, 4, 5, 1), (0, 5, 2, 4), optimize=True) * -1 + rdm2.abab.ovvo = tmp67.transpose((0, 3, 2, 1)).copy() * 2 + tmp69 = einsum(l2.abab, (0, 1, 2, 3), t2.aaaa, (4, 2, 5, 0), (4, 3, 5, 1), optimize=True) + rdm2.abab.ovvo += tmp69.transpose((0, 3, 2, 1)) * 2 + tmp35 = einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) + tmp36 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) + tmp106 = tmp52.copy() + del tmp52 + tmp106 += tmp53 * 4 + del tmp53 + tmp54 = tmp17.transpose((1, 0, 3, 2)).copy() + del tmp17 + tmp54 += tmp19.transpose((0, 1, 3, 2)) * -1 + del tmp19 + rdm2.bbbb.oovv = einsum(t2.bbbb, (0, 1, 2, 3), tmp54, (0, 1, 4, 5), (5, 4, 3, 2), optimize=True) * 2 + tmp39 = einsum(t2.abab, (0, 1, 2, 3), tmp13, (0, 1, 4, 2), (4, 3), optimize=True) + tmp101 = einsum(t1.bb, (0, 1), tmp100, (0, 2), (2, 1), optimize=True) * 2 + del tmp100 + tmp40 = einsum(tmp18, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 3), (2, 4), optimize=True) * -1 + tmp49 = einsum(l1.bb, (0, 1), t2.bbbb, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) + rdm2.bbbb.oovo += tmp49.transpose((2, 1, 3, 0)) * 2 + rdm2.bbbb.ooov += tmp49.transpose((2, 1, 0, 3)) * -2 + tmp60 = einsum(t2.abab, (0, 1, 2, 3), tmp18, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) * -1 + rdm2.abab.oovo += tmp60.transpose((0, 2, 3, 1)) * -2 + tmp59 = einsum(tmp13, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 3), (4, 1, 2, 5), optimize=True) + rdm2.abab.oovo += tmp59.transpose((0, 2, 3, 1)) * -2 + tmp21 = einsum(l1.bb, (0, 1), t2.abab, (2, 1, 3, 0), (2, 3), optimize=True) + tmp20 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 1), (0, 2), optimize=True) + tmp27 = einsum(t2.abab, (0, 1, 2, 3), tmp26, (0, 4, 1, 3), (4, 2), optimize=True) + tmp25 = einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 3), (2, 4), optimize=True) * -1 + tmp56 = einsum(tmp28, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) + tmp43 = einsum(tmp6, (0, 1, 2, 3), t2.abab, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) * -1 + rdm2.abab.ooov += tmp43.transpose((1, 2, 0, 3)) * -2 + tmp44 = einsum(t2.bbbb, (0, 1, 2, 3), tmp26, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + rdm2.abab.ooov += tmp44.transpose((1, 2, 0, 3)) * -2 + tmp41 = einsum(tmp16, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) * 0.5 + tmp45 = tmp12.copy() + del tmp12 + tmp45 += tmp14 + del tmp14 + rdm2.abab.oovv += einsum(tmp45, (0, 1, 2, 3), t2.abab, (0, 2, 4, 5), (1, 3, 4, 5), optimize=True) + rdm2.abab.oovo += einsum(tmp45, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 4, 2), optimize=True) + tmp33 = tmp5.transpose((1, 0, 3, 2)).copy() + del tmp5 + tmp33 += tmp7.transpose((0, 1, 3, 2)) * -1 + del tmp7 + rdm2.aaaa.oovv = einsum(t2.aaaa, (0, 1, 2, 3), tmp33, (0, 1, 4, 5), (5, 4, 3, 2), optimize=True) * 2 + tmp4 = tmp0.copy() + tmp4 += tmp1 * 2 + tmp4 += tmp2 + rdm2.aaaa.ooov += einsum(t1.aa, (0, 1), tmp4, (2, 3), (0, 3, 2, 1), optimize=True) + rdm2.aaaa.ooov += einsum(tmp4, (0, 1), t1.aa, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.abab.oooo += einsum(delta.bb.oo, (0, 1), tmp4, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), tmp4, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), tmp4, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + tmp80 = tmp31.copy() * 4 + del tmp31 + tmp80 += tmp32 + del tmp32 + tmp75 = einsum(t1.aa, (0, 1), tmp74, (0, 2), (2, 1), optimize=True) * 0.5 + del tmp74 + tmp24 = einsum(l1.aa, (0, 1), t2.aaaa, (2, 3, 4, 0), (1, 2, 3, 4), optimize=True) + rdm2.aaaa.oovo += tmp24.transpose((2, 1, 3, 0)) * 2 + rdm2.aaaa.ooov += tmp24.transpose((2, 1, 0, 3)) * -2 + tmp50 = einsum(tmp16, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) + tmp29 = einsum(tmp28, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * 2 + del tmp28 + tmp131 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (3, 4), (2, 0, 1, 4), optimize=True) rdm2.bbbb.vvvv = einsum(t1.bb, (0, 1), tmp131, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * 2 - rdm2.bbbb.vvvv += einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 - tmp130 = einsum(t1.bb, (0, 1), l2.abab, (2, 3, 4, 0), (4, 2, 3, 1), optimize=True) - rdm2.abab.vvvv = einsum(t1.aa, (0, 1), tmp130, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) - rdm2.abab.vvvv += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) - tmp129 = einsum(t1.aa, (0, 1), l2.aaaa, (2, 3, 4, 0), (4, 2, 3, 1), optimize=True) - rdm2.aaaa.vvvv = einsum(t1.aa, (0, 1), tmp129, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * 2 - rdm2.aaaa.vvvv += einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 rdm2.bbbb.vvvo = tmp131.transpose((2, 1, 3, 0)).copy() * 2 - rdm2.abab.vvvo = einsum(t1.aa, (0, 1), l2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) - rdm2.aaaa.vvvo = tmp129.transpose((2, 1, 3, 0)).copy() * 2 rdm2.bbbb.vvov = tmp131.transpose((2, 1, 0, 3)).copy() * -2 del tmp131 + tmp130 = einsum(l2.abab, (0, 1, 2, 3), t1.bb, (3, 4), (2, 0, 1, 4), optimize=True) + rdm2.abab.vvvv = einsum(tmp130, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) rdm2.abab.vvov = tmp130.transpose((1, 2, 0, 3)).copy() del tmp130 + tmp129 = einsum(t1.aa, (0, 1), l2.aaaa, (2, 3, 4, 0), (4, 2, 3, 1), optimize=True) + rdm2.aaaa.vvvv = einsum(t1.aa, (0, 1), tmp129, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * 2 + rdm2.aaaa.vvvo = tmp129.transpose((2, 1, 3, 0)).copy() * 2 rdm2.aaaa.vvov = tmp129.transpose((2, 1, 0, 3)).copy() * -2 del tmp129 - tmp17 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) - tmp114 = einsum(tmp17, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) - tmp128 = einsum(tmp114, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 3, 4), optimize=True) * -1 - rdm2.bbbb.vovv = tmp128.transpose((1, 0, 3, 2)).copy() * 2 - tmp83 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (3, 4, 5, 1), (5, 0, 4, 2), optimize=True) * -1 - tmp84 = tmp83.copy() * 4 - tmp82 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) - tmp84 += tmp82 - tmp127 = einsum(t1.bb, (0, 1), tmp84, (0, 2, 3, 4), (2, 1, 3, 4), optimize=True) - rdm2.bbbb.vovv += tmp127.transpose((2, 0, 3, 1)) * -1 - rdm2.bbbb.vovv += tmp127.transpose((2, 0, 1, 3)) - tmp77 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (3, 4, 0, 1), (4, 2), optimize=True) * -1 - tmp113 = tmp77.copy() * 2 - tmp76 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) - tmp113 += tmp76 - tmp110 = einsum(t1.bb, (0, 1), l1.bb, (2, 0), (2, 1), optimize=True) - tmp113 += tmp110 - rdm2.bbbb.vovv += einsum(t1.bb, (0, 1), tmp113, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.bbbb.vovv += einsum(tmp113, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - tmp126 = einsum(l1.bb, (0, 1), t2.bbbb, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) + tmp112 = tmp111.copy() + tmp112 += tmp82 + tmp112 += tmp83 * 2 + rdm2.bbbb.vovv = einsum(tmp112, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.vovv += einsum(tmp112, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.abab.ovvv += einsum(tmp112, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.bbbb.voov += einsum(tmp112, (0, 1), delta.bb.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.bbbb.ovov += einsum(tmp112, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.abab.ovov += einsum(tmp112, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp112 + tmp125 = einsum(tmp124, (0, 1, 2, 3), t1.bb, (0, 4), (1, 4, 2, 3), optimize=True) + del tmp124 + rdm2.bbbb.vovv += tmp125.transpose((2, 0, 3, 1)) * -1 + rdm2.bbbb.vovv += tmp125.transpose((2, 0, 1, 3)) + rdm2.bbbb.ovvv += tmp125.transpose((0, 2, 3, 1)) + rdm2.bbbb.ovvv += tmp125.transpose((0, 2, 1, 3)) * -1 + del tmp125 + tmp123 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (4, 1), (0, 4, 2, 3), optimize=True) + rdm2.bbbb.vovv += tmp123.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.ovvv += tmp123.transpose((0, 1, 3, 2)) * -2 + del tmp123 + tmp126 = einsum(tmp18, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) + del tmp18 rdm2.bbbb.vovv += tmp126.transpose((1, 0, 3, 2)) * 2 - tmp125 = einsum(tmp17, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) - rdm2.bbbb.vovv += tmp125.transpose((1, 0, 3, 2)) * 2 - tmp13 = einsum(t1.bb, (0, 1), l2.abab, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) - tmp117 = einsum(t1.bb, (0, 1), tmp13, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) - rdm2.abab.vovv = einsum(t1.aa, (0, 1), tmp117, (0, 2, 3, 4), (3, 2, 1, 4), optimize=True) * -1 - tmp90 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) - rdm2.abab.vovv += einsum(t1.bb, (0, 1), tmp90, (0, 2, 3, 4), (3, 2, 4, 1), optimize=True) * -1 - tmp80 = einsum(t2.bbbb, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) - tmp81 = tmp80.copy() - tmp79 = einsum(t2.abab, (0, 1, 2, 3), l2.aaaa, (2, 4, 5, 0), (5, 1, 4, 3), optimize=True) * -1 - tmp81 += tmp79 - rdm2.abab.vovv += einsum(t1.aa, (0, 1), tmp81, (0, 2, 3, 4), (3, 2, 1, 4), optimize=True) * 2 - tmp57 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 1), (4, 2), optimize=True) - tmp108 = tmp57.copy() - tmp56 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (3, 4, 0, 1), (4, 2), optimize=True) * -1 - tmp108 += tmp56 * 2 - tmp107 = einsum(t1.aa, (0, 1), l1.aa, (2, 0), (2, 1), optimize=True) - tmp108 += tmp107 - rdm2.abab.vovv += einsum(tmp108, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.abab.vovv += einsum(l1.aa, (0, 1), t2.abab, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) - rdm2.abab.vovv += einsum(tmp13, (0, 1, 2, 3), t2.abab, (0, 1, 4, 5), (3, 2, 4, 5), optimize=True) * -1 - tmp6 = einsum(t1.aa, (0, 1), l2.aaaa, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) - tmp109 = einsum(tmp6, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 3, 4), optimize=True) - tmp123 = einsum(t1.aa, (0, 1), tmp109, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * -1 - rdm2.aaaa.vovv = tmp123.transpose((1, 0, 3, 2)).copy() * 2 - tmp64 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) - tmp121 = tmp64.copy() - tmp62 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 3, 5, 0), (2, 4, 1, 5), optimize=True) * -1 - tmp121 += tmp62 * 4 - tmp122 = einsum(tmp121, (0, 1, 2, 3), t1.aa, (0, 4), (1, 4, 2, 3), optimize=True) - del tmp121 - rdm2.aaaa.vovv += tmp122.transpose((2, 0, 3, 1)) * -1 - rdm2.aaaa.vovv += tmp122.transpose((2, 0, 1, 3)) - rdm2.aaaa.vovv += einsum(t1.aa, (0, 1), tmp108, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.aaaa.vovv += einsum(t1.aa, (0, 1), tmp108, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - tmp120 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (4, 1), (0, 4, 2, 3), optimize=True) - rdm2.aaaa.vovv += tmp120.transpose((1, 0, 3, 2)) * 2 - tmp119 = einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) - rdm2.aaaa.vovv += tmp119.transpose((1, 0, 3, 2)) * 2 - rdm2.bbbb.ovvv = tmp128.transpose((0, 1, 3, 2)).copy() * -2 - del tmp128 - rdm2.bbbb.ovvv += tmp127.transpose((0, 2, 3, 1)) - rdm2.bbbb.ovvv += tmp127.transpose((0, 2, 1, 3)) * -1 - del tmp127 - rdm2.bbbb.ovvv += einsum(t1.bb, (0, 1), tmp110, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.bbbb.ovvv += einsum(tmp110, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) - tmp78 = tmp77.copy() * 2 - tmp78 += tmp76 - rdm2.bbbb.ovvv += einsum(t1.bb, (0, 1), tmp78, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.bbbb.ovvv += einsum(tmp78, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) rdm2.bbbb.ovvv += tmp126.transpose((0, 1, 3, 2)) * -2 del tmp126 - rdm2.bbbb.ovvv += tmp125.transpose((0, 1, 3, 2)) * -2 - del tmp125 - tmp22 = einsum(t1.aa, (0, 1), l2.abab, (1, 2, 3, 4), (3, 0, 4, 2), optimize=True) - tmp116 = einsum(tmp22, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - rdm2.abab.ovvv = einsum(t1.bb, (0, 1), tmp116, (2, 0, 3, 4), (2, 4, 3, 1), optimize=True) * -1 - tmp60 = einsum(l2.bbbb, (0, 1, 2, 3), t2.abab, (4, 3, 5, 0), (4, 2, 5, 1), optimize=True) * -1 - tmp124 = tmp60.copy() - tmp115 = einsum(t2.aaaa, (0, 1, 2, 3), l2.abab, (3, 4, 1, 5), (0, 5, 2, 4), optimize=True) - tmp124 += tmp115 - rdm2.abab.ovvv += einsum(t1.bb, (0, 1), tmp124, (2, 0, 3, 4), (2, 4, 3, 1), optimize=True) * 2 - del tmp124 - tmp112 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) - rdm2.abab.ovvv += einsum(tmp112, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * -1 - tmp111 = tmp77.copy() - tmp111 += tmp76 * 0.5 - tmp111 += tmp110 * 0.5 + tmp127 = einsum(t1.bb, (0, 1), tmp115, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * -1 + del tmp115 + rdm2.bbbb.vovv += tmp127.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.ovvv += tmp127.transpose((0, 1, 3, 2)) * -2 + del tmp127 + tmp118 = einsum(t1.bb, (0, 1), tmp13, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + rdm2.abab.vovv += einsum(tmp118, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 4, 3), optimize=True) * -1 + rdm2.abab.voov += tmp118.transpose((2, 1, 0, 3)) * -1 + del tmp118 + tmp88 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 5, 1), (3, 4, 0, 5), optimize=True) + rdm2.abab.vovv += einsum(tmp88, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 3, 4), optimize=True) * -1 + rdm2.abab.vovo += tmp88.transpose((2, 1, 3, 0)) * -1 + rdm2.abab.oovv += einsum(tmp88, (0, 1, 2, 3), t2.abab, (4, 0, 2, 5), (4, 1, 3, 5), optimize=True) + del tmp88 + tmp128 = tmp92.copy() + tmp128 += tmp96 + rdm2.abab.vovv += einsum(tmp128, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 4, 3), optimize=True) * 2 + del tmp128 + tmp109 = tmp108.copy() + del tmp108 + tmp109 += tmp62 * 2 + tmp109 += tmp63 + rdm2.abab.vovv += einsum(t1.bb, (0, 1), tmp109, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.aaaa.vovv = einsum(t1.aa, (0, 1), tmp109, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.aaaa.vovv += einsum(tmp109, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.abab.vovo += einsum(delta.bb.oo, (0, 1), tmp109, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.aaaa.vovo += einsum(delta.aa.oo, (0, 1), tmp109, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.aaaa.voov += einsum(delta.aa.oo, (0, 1), tmp109, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.aaaa.ovvo += einsum(delta.aa.oo, (0, 1), tmp109, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.aaaa.ovov += einsum(delta.aa.oo, (0, 1), tmp109, (2, 3), (1, 2, 0, 3), optimize=True) + del tmp109 + tmp120 = einsum(tmp87, (0, 1, 2, 3), t1.aa, (0, 4), (1, 4, 2, 3), optimize=True) + del tmp87 + rdm2.aaaa.vovv += tmp120.transpose((2, 0, 3, 1)) * -1 + rdm2.aaaa.vovv += tmp120.transpose((2, 0, 1, 3)) + rdm2.aaaa.ovvv += tmp120.transpose((0, 2, 3, 1)) + rdm2.aaaa.ovvv += tmp120.transpose((0, 2, 1, 3)) * -1 + del tmp120 + tmp122 = einsum(t1.aa, (0, 1), tmp110, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * -1 del tmp110 - rdm2.abab.ovvv += einsum(t1.aa, (0, 1), tmp111, (2, 3), (0, 2, 1, 3), optimize=True) * 2 - rdm2.abab.ovvv += einsum(tmp22, (0, 1, 2, 3), t2.abab, (0, 2, 4, 5), (1, 3, 4, 5), optimize=True) * -1 - rdm2.abab.ovvv += einsum(l1.bb, (0, 1), t2.abab, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) - rdm2.aaaa.ovvv = tmp123.transpose((0, 1, 3, 2)).copy() * -2 - del tmp123 - rdm2.aaaa.ovvv += tmp122.transpose((0, 2, 3, 1)) - rdm2.aaaa.ovvv += tmp122.transpose((0, 2, 1, 3)) * -1 + rdm2.aaaa.vovv += tmp122.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.ovvv += tmp122.transpose((0, 1, 3, 2)) * -2 del tmp122 - rdm2.aaaa.ovvv += einsum(t1.aa, (0, 1), tmp107, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.aaaa.ovvv += einsum(t1.aa, (0, 1), tmp107, (2, 3), (0, 2, 1, 3), optimize=True) - tmp58 = tmp57.copy() * 0.5 - tmp58 += tmp56 - rdm2.aaaa.ovvv += einsum(t1.aa, (0, 1), tmp58, (2, 3), (0, 2, 3, 1), optimize=True) * -2 - rdm2.aaaa.ovvv += einsum(t1.aa, (0, 1), tmp58, (2, 3), (0, 2, 1, 3), optimize=True) * 2 - rdm2.aaaa.ovvv += tmp120.transpose((0, 1, 3, 2)) * -2 - del tmp120 + tmp121 = einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) + del tmp6 + rdm2.aaaa.vovv += tmp121.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.ovvv += tmp121.transpose((0, 1, 3, 2)) * -2 + del tmp121 + tmp119 = einsum(l1.aa, (0, 1), t2.aaaa, (2, 1, 3, 4), (2, 0, 3, 4), optimize=True) + rdm2.aaaa.vovv += tmp119.transpose((1, 0, 3, 2)) * 2 rdm2.aaaa.ovvv += tmp119.transpose((0, 1, 3, 2)) * -2 del tmp119 - rdm2.bbbb.vvoo = l2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 - rdm2.abab.vvoo = l2.abab.copy() - rdm2.aaaa.vvoo = l2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 - rdm2.bbbb.vovo = tmp114.transpose((2, 1, 3, 0)).copy() * 2 - rdm2.bbbb.vovo += tmp83.transpose((2, 1, 3, 0)) * -4 - rdm2.bbbb.vovo += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.bbbb.vovo += tmp82.transpose((2, 1, 3, 0)) * -1 - rdm2.bbbb.vovo += einsum(delta.bb.oo, (0, 1), tmp113, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.abab.vovo = einsum(t1.aa, (0, 1), tmp13, (0, 2, 3, 4), (4, 3, 1, 2), optimize=True) * -1 - rdm2.abab.vovo += tmp90.transpose((2, 1, 3, 0)) * -1 - tmp118 = tmp57.copy() * 0.5 - del tmp57 - tmp118 += tmp56 - del tmp56 - tmp118 += tmp107 * 0.5 - del tmp107 - rdm2.abab.vovo += einsum(tmp118, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 - del tmp118 - rdm2.aaaa.vovo = tmp109.transpose((2, 1, 3, 0)).copy() * 2 - rdm2.aaaa.vovo += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.aaaa.vovo += tmp64.transpose((2, 1, 3, 0)) * -1 - rdm2.aaaa.vovo += tmp62.transpose((2, 1, 3, 0)) * -4 - rdm2.aaaa.vovo += einsum(delta.aa.oo, (0, 1), tmp108, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.bbbb.voov = tmp114.transpose((2, 1, 0, 3)).copy() * -2 - rdm2.bbbb.voov += tmp83.transpose((2, 1, 0, 3)) * 4 - rdm2.bbbb.voov += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.bbbb.voov += tmp82.transpose((2, 1, 0, 3)) - rdm2.bbbb.voov += einsum(delta.bb.oo, (0, 1), tmp113, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.abab.voov = tmp117.transpose((2, 1, 0, 3)).copy() * -1 - del tmp117 - rdm2.abab.voov += einsum(l1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.abab.voov += tmp80.transpose((2, 1, 0, 3)) * 2 - rdm2.abab.voov += tmp79.transpose((2, 1, 0, 3)) * 2 - rdm2.aaaa.voov = tmp109.transpose((2, 1, 0, 3)).copy() * -2 - rdm2.aaaa.voov += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.aaaa.voov += tmp64.transpose((2, 1, 0, 3)) - rdm2.aaaa.voov += tmp62.transpose((2, 1, 0, 3)) * 4 - rdm2.aaaa.voov += einsum(delta.aa.oo, (0, 1), tmp108, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.bbbb.ovvo = tmp114.transpose((1, 2, 3, 0)).copy() * -2 - rdm2.bbbb.ovvo += tmp83.transpose((1, 2, 3, 0)) * 4 - rdm2.bbbb.ovvo += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.bbbb.ovvo += tmp82.transpose((1, 2, 3, 0)) - rdm2.bbbb.ovvo += einsum(delta.bb.oo, (0, 1), tmp113, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - rdm2.abab.ovvo = tmp116.transpose((0, 3, 2, 1)).copy() * -1 - del tmp116 - rdm2.abab.ovvo += einsum(l1.bb, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.abab.ovvo += tmp60.transpose((0, 3, 2, 1)) * 2 - rdm2.abab.ovvo += tmp115.transpose((0, 3, 2, 1)) * 2 - del tmp115 - rdm2.aaaa.ovvo = tmp109.transpose((1, 2, 3, 0)).copy() * -2 - rdm2.aaaa.ovvo += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (0, 2, 1, 3), optimize=True) - rdm2.aaaa.ovvo += tmp64.transpose((1, 2, 3, 0)) - rdm2.aaaa.ovvo += tmp62.transpose((1, 2, 3, 0)) * 4 - rdm2.aaaa.ovvo += einsum(delta.aa.oo, (0, 1), tmp108, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - rdm2.bbbb.ovov = tmp114.transpose((1, 2, 0, 3)).copy() * 2 - del tmp114 - rdm2.bbbb.ovov += tmp83.transpose((1, 2, 0, 3)) * -4 - rdm2.bbbb.ovov += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.bbbb.ovov += tmp82.transpose((1, 2, 0, 3)) * -1 - del tmp82 - rdm2.bbbb.ovov += einsum(delta.bb.oo, (0, 1), tmp113, (2, 3), (1, 2, 0, 3), optimize=True) + tmp91 = tmp82.copy() + tmp91 += tmp83 * 2 + rdm2.bbbb.ovvv += einsum(tmp91, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.bbbb.ovvv += einsum(tmp91, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp91, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -2 + del tmp91 + tmp85 = tmp69.copy() + tmp85 += tmp67 + rdm2.abab.ovvv += einsum(tmp85, (0, 1, 2, 3), t1.bb, (1, 4), (0, 3, 2, 4), optimize=True) * 2 + rdm2.abab.oovv += einsum(tmp85, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 4 + del tmp85 + tmp113 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 5), (2, 4, 1, 5), optimize=True) + rdm2.abab.ovvv += einsum(tmp113, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * -1 + rdm2.abab.ovov += tmp113.transpose((1, 2, 0, 3)) * -1 del tmp113 - rdm2.abab.ovov = einsum(tmp22, (0, 1, 2, 3), t1.bb, (2, 4), (1, 3, 0, 4), optimize=True) * -1 - rdm2.abab.ovov += tmp112.transpose((1, 2, 0, 3)) * -1 - del tmp112 - rdm2.abab.ovov += einsum(delta.aa.oo, (0, 1), tmp111, (2, 3), (1, 2, 0, 3), optimize=True) * 2 + tmp116 = einsum(t1.aa, (0, 1), tmp26, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + rdm2.abab.ovvv += einsum(tmp116, (0, 1, 2, 3), t1.bb, (1, 4), (0, 3, 2, 4), optimize=True) * -1 + rdm2.abab.ovvo += tmp116.transpose((0, 3, 2, 1)) * -1 + del tmp116 + tmp64 = tmp62.copy() + tmp64 += tmp63 * 0.5 + rdm2.aaaa.ovvv += einsum(t1.aa, (0, 1), tmp64, (2, 3), (0, 2, 3, 1), optimize=True) * -2 + rdm2.aaaa.ovvv += einsum(tmp64, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) * 2 + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp64, (2, 4), (0, 1, 4, 3), optimize=True) * -2 + rdm2.aaaa.oovv += einsum(tmp64, (0, 1), t2.aaaa, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -4 + del tmp64 + tmp117 = tmp111.copy() * 0.5 del tmp111 - rdm2.aaaa.ovov = tmp109.transpose((1, 2, 0, 3)).copy() * 2 - del tmp109 - rdm2.aaaa.ovov += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.aaaa.ovov += tmp64.transpose((1, 2, 0, 3)) * -1 - rdm2.aaaa.ovov += tmp62.transpose((1, 2, 0, 3)) * -4 - rdm2.aaaa.ovov += einsum(delta.aa.oo, (0, 1), tmp108, (2, 3), (1, 2, 0, 3), optimize=True) - del tmp108 - tmp18 = einsum(tmp17, (0, 1, 2, 3), t1.bb, (4, 3), (0, 1, 4, 2), optimize=True) - tmp47 = einsum(tmp18, (0, 1, 2, 3), t1.bb, (0, 4), (1, 3, 2, 4), optimize=True) - rdm2.bbbb.oovv = einsum(tmp47, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 4, 3), optimize=True) * -2 - tmp45 = einsum(tmp17, (0, 1, 2, 3), t2.bbbb, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 - tmp105 = tmp45.copy() * 4 - tmp43 = einsum(t2.abab, (0, 1, 2, 3), tmp13, (0, 4, 5, 2), (4, 5, 1, 3), optimize=True) - tmp105 += tmp43 - tmp106 = einsum(t1.bb, (0, 1), tmp105, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) - del tmp105 - rdm2.bbbb.oovv += tmp106.transpose((1, 0, 3, 2)) * -1 - rdm2.bbbb.oovv += tmp106.transpose((1, 0, 2, 3)) + tmp117 += tmp82 * 0.5 + tmp117 += tmp83 + rdm2.bbbb.vovo += einsum(tmp117, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 + rdm2.bbbb.ovvo += einsum(tmp117, (0, 1), delta.bb.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -2 + del tmp117 + tmp93 = einsum(tmp92, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp92 + rdm2.bbbb.oovv += tmp93.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp93.transpose((0, 1, 3, 2)) * -2 + del tmp93 + tmp48 = t1.bb.copy() + tmp48 += tmp35 + tmp48 += tmp36 * 2 + rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp48, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.bbbb.ooov += einsum(tmp48, (0, 1), delta.bb.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + del tmp48 + tmp107 = einsum(tmp106, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) del tmp106 - tmp104 = einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - tmp104 += t2.bbbb.transpose((1, 0, 3, 2)) - tmp16 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) - rdm2.bbbb.oovv += einsum(tmp16, (0, 1, 2, 3), tmp104, (0, 1, 4, 5), (3, 2, 5, 4), optimize=True) * 2 - del tmp104 - tmp10 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 1), (4, 0), optimize=True) - tmp102 = tmp10.copy() * 2 - tmp9 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) - tmp102 += tmp9 - tmp103 = einsum(tmp102, (0, 1), t2.bbbb, (0, 2, 3, 4), (2, 1, 3, 4), optimize=True) * 2 - del tmp102 - rdm2.bbbb.oovv += tmp103.transpose((0, 1, 3, 2)) * -1 - tmp88 = tmp10.copy() - tmp88 += tmp9 * 0.5 - tmp101 = einsum(t1.bb, (0, 1), tmp88, (0, 2), (2, 1), optimize=True) * 2 - rdm2.bbbb.oovv += einsum(tmp101, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) - rdm2.bbbb.oovv += einsum(tmp101, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - tmp8 = einsum(t1.bb, (0, 1), l1.bb, (1, 2), (2, 0), optimize=True) - tmp100 = einsum(t1.bb, (0, 1), tmp8, (0, 2), (2, 1), optimize=True) - rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp100, (2, 3), (0, 2, 3, 1), optimize=True) - rdm2.bbbb.oovv += einsum(tmp100, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - rdm2.bbbb.oovv += tmp103.transpose((1, 0, 3, 2)) - del tmp103 - rdm2.bbbb.oovv += einsum(tmp101, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * -1 - rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp101, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.bbbb.oovv += tmp107.transpose((0, 1, 3, 2)) + rdm2.bbbb.oovv += tmp107.transpose((1, 0, 3, 2)) * -1 + rdm2.bbbb.oovv += tmp107 * -1 + rdm2.bbbb.oovv += tmp107.transpose((1, 0, 2, 3)) + del tmp107 + tmp105 = einsum(t1.bb, (0, 1), tmp54, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp105, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) * 2 + del tmp105 + tmp102 = tmp39.copy() + tmp102 += tmp40 * 2 + tmp102 += tmp101 del tmp101 - rdm2.bbbb.oovv += einsum(tmp100, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * -1 - rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp100, (2, 3), (2, 0, 1, 3), optimize=True) - del tmp100 - rdm2.bbbb.oovv += einsum(tmp18, (0, 1, 2, 3), t2.bbbb, (1, 0, 4, 5), (3, 2, 5, 4), optimize=True) * -2 - tmp92 = einsum(tmp8, (0, 1), t2.bbbb, (2, 0, 3, 4), (1, 2, 3, 4), optimize=True) - rdm2.bbbb.oovv += tmp92.transpose((1, 0, 3, 2)) * 2 - tmp99 = tmp45.transpose((0, 2, 1, 3)).copy() * 4 - tmp99 += tmp43.transpose((0, 2, 1, 3)) - tmp44 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 4), (4, 0, 1, 2), optimize=True) - tmp99 += tmp44.transpose((0, 2, 1, 3)) * -2 - rdm2.bbbb.oovv += einsum(tmp99, (0, 1, 2, 3), t1.bb, (0, 4), (2, 1, 3, 4), optimize=True) - del tmp99 - tmp98 = tmp45.transpose((0, 2, 1, 3)).copy() * 2 - tmp98 += tmp43.transpose((0, 2, 1, 3)) * 0.5 - tmp98 += tmp44.transpose((0, 2, 1, 3)) * -1 - rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp98, (0, 2, 3, 4), (3, 2, 1, 4), optimize=True) * -2 + rdm2.bbbb.oovv += einsum(tmp102, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + rdm2.bbbb.oovv += einsum(tmp102, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp102, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.bbbb.oovv += einsum(tmp102, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + del tmp102 + tmp37 = t1.bb.copy() + tmp37 += tmp35 + tmp37 += tmp36 * 2 + rdm2.bbbb.oovv += einsum(tmp37, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp37, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.oovo += einsum(tmp37, (0, 1), delta.bb.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.bbbb.oovo += einsum(tmp37, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.bbbb.ooov += einsum(tmp37, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.abab.ooov += einsum(tmp37, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp37 + tmp98 = tmp35.copy() + del tmp35 + tmp98 += tmp36 * 2 + del tmp36 + rdm2.bbbb.oovv += einsum(tmp98, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.bbbb.oovv += einsum(tmp98, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) del tmp98 - rdm2.bbbb.oovv += einsum(t2.bbbb, (0, 1, 2, 3), tmp78, (2, 4), (1, 0, 4, 3), optimize=True) * 2 - tmp34 = einsum(t2.bbbb, (0, 1, 2, 3), tmp17, (0, 1, 4, 3), (4, 2), optimize=True) * -1 - tmp97 = tmp34.copy() * -2 - tmp33 = einsum(t2.abab, (0, 1, 2, 3), tmp13, (0, 1, 4, 2), (4, 3), optimize=True) - tmp97 += tmp33 * -1 - tmp32 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) - tmp97 += tmp32 * 2 - tmp31 = einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) - tmp97 += tmp31 - rdm2.bbbb.oovv += einsum(tmp97, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 - rdm2.bbbb.oovv += einsum(tmp97, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - del tmp97 - tmp35 = tmp34.copy() * -2 - tmp35 += tmp33 * -1 - tmp35 += tmp32 * 2 - tmp35 += tmp31 - tmp35 += t1.bb - rdm2.bbbb.oovv += einsum(tmp35, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) - tmp96 = einsum(t2.abab, (0, 1, 2, 3), tmp80, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp80 - rdm2.bbbb.oovv += tmp96.transpose((1, 0, 3, 2)) * 2 - rdm2.bbbb.oovv += tmp96 * 2 - tmp95 = einsum(tmp79, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) - del tmp79 - rdm2.bbbb.oovv += tmp95.transpose((1, 0, 3, 2)) * 2 - tmp94 = einsum(t2.bbbb, (0, 1, 2, 3), tmp83, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) + tmp103 = einsum(t1.bb, (0, 1), tmp8, (0, 2), (2, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp103, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + rdm2.bbbb.oovv += einsum(tmp103, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp103, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.bbbb.oovv += einsum(tmp103, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + del tmp103 + tmp104 = einsum(t2.bbbb, (0, 1, 2, 3), tmp16, (0, 4), (1, 4, 2, 3), optimize=True) * 2 + del tmp16 + rdm2.bbbb.oovv += tmp104.transpose((1, 0, 3, 2)) + rdm2.bbbb.oovv += tmp104.transpose((0, 1, 3, 2)) * -1 + del tmp104 + tmp84 = tmp82.copy() * 0.5 + del tmp82 + tmp84 += tmp83 del tmp83 - rdm2.bbbb.oovv += tmp94 * 8 - rdm2.bbbb.oovv += einsum(tmp35, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.bbbb.oovv += tmp96.transpose((1, 0, 2, 3)) * -2 - rdm2.bbbb.oovv += tmp96.transpose((0, 1, 3, 2)) * -2 + rdm2.bbbb.oovv += einsum(tmp84, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 4 + rdm2.abab.oovv += einsum(tmp84, (0, 1), t2.abab, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) * -2 + del tmp84 + tmp99 = einsum(tmp49, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp49 + rdm2.bbbb.oovv += tmp99.transpose((0, 1, 3, 2)) * -2 + rdm2.bbbb.oovv += tmp99 * 2 + del tmp99 + tmp97 = einsum(tmp96, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) del tmp96 - rdm2.bbbb.oovv += tmp95.transpose((0, 1, 3, 2)) * -2 - del tmp95 - rdm2.bbbb.oovv += tmp94.transpose((0, 1, 3, 2)) * -8 + rdm2.bbbb.oovv += tmp97.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp97 * 2 + rdm2.bbbb.oovv += tmp97.transpose((1, 0, 2, 3)) * -2 + rdm2.bbbb.oovv += tmp97.transpose((0, 1, 3, 2)) * -2 + del tmp97 + tmp95 = einsum(t2.bbbb, (0, 1, 2, 3), tmp94, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) del tmp94 - tmp93 = tmp77.copy() - del tmp77 - tmp93 += tmp76 * 0.5 - del tmp76 - rdm2.bbbb.oovv += einsum(t2.bbbb, (0, 1, 2, 3), tmp93, (2, 4), (1, 0, 3, 4), optimize=True) * -4 - del tmp93 - rdm2.bbbb.oovv += t2.bbbb.transpose((1, 0, 3, 2)) * 2 - rdm2.bbbb.oovv += tmp92.transpose((0, 1, 3, 2)) * -2 - del tmp92 - tmp14 = einsum(t1.aa, (0, 1), tmp13, (2, 3, 4, 1), (2, 0, 3, 4), optimize=True) - tmp41 = einsum(t1.bb, (0, 1), tmp14, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) - rdm2.abab.oovv = einsum(tmp41, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - tmp53 = einsum(t2.abab, (0, 1, 2, 3), tmp17, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) * -1 - tmp91 = tmp53.copy() - tmp52 = einsum(t2.aaaa, (0, 1, 2, 3), tmp13, (1, 4, 5, 3), (0, 4, 5, 2), optimize=True) - tmp91 += tmp52 - rdm2.abab.oovv += einsum(tmp91, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) * -2 - del tmp91 - tmp40 = einsum(t2.abab, (0, 1, 2, 3), tmp13, (4, 1, 5, 2), (4, 0, 5, 3), optimize=True) - rdm2.abab.oovv += einsum(tmp40, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - tmp2 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 1), (4, 0), optimize=True) - tmp4 = tmp2.copy() * 0.5 - tmp1 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 3, 0, 1), (2, 4), optimize=True) - tmp4 += tmp1 - tmp0 = einsum(l1.aa, (0, 1), t1.aa, (2, 0), (1, 2), optimize=True) - tmp4 += tmp0 * 0.5 - tmp28 = einsum(tmp4, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * 2 - rdm2.abab.oovv += einsum(tmp28, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * -1 - rdm2.abab.oovv += einsum(tmp90, (0, 1, 2, 3), t2.abab, (4, 0, 2, 5), (4, 1, 3, 5), optimize=True) + rdm2.bbbb.oovv += tmp95 * 8 + rdm2.bbbb.oovv += tmp95.transpose((0, 1, 3, 2)) * -8 + del tmp95 + tmp90 = tmp59.copy() + del tmp59 + tmp90 += tmp60 + del tmp60 + rdm2.abab.oovv += einsum(t1.bb, (0, 1), tmp90, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) * -2 del tmp90 - tmp89 = einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) - tmp89 += t2.abab - tmp12 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 5), (4, 0, 5, 1), optimize=True) - rdm2.abab.oovv += einsum(tmp12, (0, 1, 2, 3), tmp89, (0, 2, 4, 5), (1, 3, 4, 5), optimize=True) + tmp71 = tmp20.copy() * 2 + tmp71 += tmp21 + rdm2.abab.oovv += einsum(tmp71, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.aaaa.oovv += einsum(tmp71, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp71, (2, 3), (2, 0, 3, 1), optimize=True) + del tmp71 + tmp57 = tmp25.copy() + tmp57 += tmp27 * 0.5 + tmp57 += tmp56 + del tmp56 + rdm2.abab.oovv += einsum(t1.bb, (0, 1), tmp57, (2, 3), (2, 0, 3, 1), optimize=True) * -2 + rdm2.abab.oovo += einsum(delta.bb.oo, (0, 1), tmp57, (2, 3), (2, 1, 3, 0), optimize=True) * -2 + rdm2.aaaa.oovo += einsum(tmp57, (0, 1), delta.aa.oo, (2, 3), (3, 0, 1, 2), optimize=True) * 2 + rdm2.aaaa.oovo += einsum(delta.aa.oo, (0, 1), tmp57, (2, 3), (2, 1, 3, 0), optimize=True) * -2 + del tmp57 + tmp61 = einsum(t2.abab, (0, 1, 2, 3), tmp26, (0, 4, 5, 3), (4, 5, 1, 2), optimize=True) + del tmp26 + rdm2.abab.oovv += einsum(tmp61, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) + rdm2.abab.oovo += tmp61.transpose((0, 2, 3, 1)) + del tmp61 + tmp89 = tmp43.copy() + del tmp43 + tmp89 += tmp44 + del tmp44 + rdm2.abab.oovv += einsum(tmp89, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * -2 del tmp89 - tmp11 = tmp10.copy() * 2 - tmp11 += tmp9 - tmp11 += tmp8 - tmp39 = einsum(t1.bb, (0, 1), tmp11, (0, 2), (2, 1), optimize=True) - rdm2.abab.oovv += einsum(tmp39, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp88, (1, 4), (0, 4, 2, 3), optimize=True) * -2 - del tmp88 - tmp72 = tmp2.copy() * 0.5 - tmp72 += tmp1 - rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp72, (0, 4), (4, 1, 2, 3), optimize=True) * -2 - rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp8, (1, 4), (0, 4, 2, 3), optimize=True) * -1 - rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp14, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) - tmp51 = einsum(tmp22, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (1, 2, 4, 5), optimize=True) - tmp87 = tmp51.copy() * -1 - tmp50 = einsum(t2.abab, (0, 1, 2, 3), l1.bb, (3, 4), (0, 4, 1, 2), optimize=True) - tmp87 += tmp50 - rdm2.abab.oovv += einsum(tmp87, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) * -1 - del tmp87 - tmp37 = einsum(t2.bbbb, (0, 1, 2, 3), tmp22, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) - tmp86 = tmp37.copy() * 2 - tmp36 = einsum(t2.abab, (0, 1, 2, 3), tmp6, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) * -1 - tmp86 += tmp36 * 2 + tmp58 = einsum(t2.abab, (0, 1, 2, 3), l1.bb, (3, 4), (0, 4, 1, 2), optimize=True) + rdm2.abab.oovv += einsum(tmp58, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) * -1 + rdm2.abab.oovo += tmp58.transpose((0, 2, 3, 1)) * -1 + del tmp58 + tmp42 = tmp39.copy() * 0.5 + tmp42 += tmp40 + tmp42 += tmp41 + del tmp41 + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp42, (2, 3), (0, 2, 1, 3), optimize=True) * -2 + rdm2.bbbb.oovo += einsum(tmp42, (0, 1), delta.bb.oo, (2, 3), (3, 0, 1, 2), optimize=True) * 2 + rdm2.bbbb.oovo += einsum(tmp42, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -2 + rdm2.abab.ooov += einsum(tmp42, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -2 + del tmp42 + tmp46 = einsum(tmp45, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 3, 4), optimize=True) + del tmp45 + rdm2.abab.oovv += einsum(tmp46, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + rdm2.abab.ooov += tmp46.transpose((1, 2, 0, 3)) + del tmp46 tmp38 = einsum(l1.aa, (0, 1), t2.abab, (2, 3, 0, 4), (1, 2, 3, 4), optimize=True) - tmp86 += tmp38 - rdm2.abab.oovv += einsum(tmp86, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * -1 - del tmp86 - rdm2.abab.oovv += einsum(tmp58, (0, 1), t2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -2 - tmp23 = einsum(tmp22, (0, 1, 2, 3), t2.abab, (0, 2, 4, 3), (1, 4), optimize=True) - tmp85 = tmp23.copy() * -0.5 - tmp21 = einsum(t2.aaaa, (0, 1, 2, 3), tmp6, (0, 1, 4, 3), (4, 2), optimize=True) * -1 - tmp85 += tmp21 * -1 - tmp20 = einsum(t2.abab, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) - tmp85 += tmp20 * 0.5 - tmp19 = einsum(l1.aa, (0, 1), t2.aaaa, (2, 1, 3, 0), (2, 3), optimize=True) - tmp85 += tmp19 - rdm2.abab.oovv += einsum(tmp85, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * 2 - del tmp85 - rdm2.abab.oovv += einsum(tmp35, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) - rdm2.abab.oovv += einsum(tmp84, (0, 1, 2, 3), t2.abab, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) - del tmp84 - rdm2.abab.oovv += einsum(t2.aaaa, (0, 1, 2, 3), tmp81, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * 4 - del tmp81 - rdm2.abab.oovv += einsum(tmp78, (0, 1), t2.abab, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) * -1 + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp38, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + rdm2.abab.ooov += tmp38.transpose((1, 2, 0, 3)) * -1 + del tmp38 + tmp47 = einsum(t2.abab, (0, 1, 2, 3), tmp13, (4, 1, 5, 2), (4, 0, 5, 3), optimize=True) + del tmp13 + rdm2.abab.oovv += einsum(tmp47, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + rdm2.abab.ooov += tmp47.transpose((1, 2, 0, 3)) + del tmp47 + tmp22 = t1.aa.copy() + tmp22 += tmp20 * 2 + tmp22 += tmp21 + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp22, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.aaaa.ooov += einsum(tmp22, (0, 1), delta.aa.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + del tmp22 + tmp66 = einsum(tmp65, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp65 + rdm2.aaaa.oovv += tmp66 * 8 + rdm2.aaaa.oovv += tmp66.transpose((0, 1, 3, 2)) * -8 + del tmp66 + tmp70 = einsum(tmp69, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp69 + rdm2.aaaa.oovv += tmp70.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.oovv += tmp70 * 2 + rdm2.aaaa.oovv += tmp70.transpose((1, 0, 2, 3)) * -2 + rdm2.aaaa.oovv += tmp70.transpose((0, 1, 3, 2)) * -2 + del tmp70 + tmp79 = einsum(tmp33, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 2, 4), optimize=True) + rdm2.aaaa.oovv += einsum(tmp79, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * 2 + del tmp79 + tmp78 = einsum(t2.aaaa, (0, 1, 2, 3), tmp4, (0, 4), (4, 1, 2, 3), optimize=True) * 2 + del tmp4 + rdm2.aaaa.oovv += tmp78.transpose((0, 1, 3, 2)) + rdm2.aaaa.oovv += tmp78.transpose((1, 0, 3, 2)) * -1 del tmp78 - rdm2.abab.oovv += t2.abab - rdm2.abab.oovv += einsum(tmp0, (0, 1), t2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -1 - tmp7 = einsum(tmp6, (0, 1, 2, 3), t1.aa, (4, 3), (0, 1, 4, 2), optimize=True) - tmp30 = einsum(t1.aa, (0, 1), tmp7, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) - rdm2.aaaa.oovv = einsum(tmp30, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 4, 3), optimize=True) * -2 - tmp27 = einsum(t2.abab, (0, 1, 2, 3), tmp22, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) - tmp74 = tmp27.copy() - tmp26 = einsum(t2.aaaa, (0, 1, 2, 3), tmp6, (4, 1, 5, 3), (4, 5, 0, 2), optimize=True) * -1 - tmp74 += tmp26 * 4 - tmp75 = einsum(tmp74, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) - del tmp74 - rdm2.aaaa.oovv += tmp75.transpose((1, 0, 3, 2)) * -1 - rdm2.aaaa.oovv += tmp75.transpose((1, 0, 2, 3)) + tmp23 = t1.aa.copy() + tmp23 += tmp20 * 2 + del tmp20 + tmp23 += tmp21 + del tmp21 + rdm2.aaaa.oovv += einsum(tmp23, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.abab.oovo += einsum(delta.bb.oo, (0, 1), tmp23, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.aaaa.oovo += einsum(tmp23, (0, 1), delta.aa.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.aaaa.oovo += einsum(delta.aa.oo, (0, 1), tmp23, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.aaaa.ooov += einsum(tmp23, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp23 + tmp77 = einsum(tmp0, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp77, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.aaaa.oovv += einsum(tmp77, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.aaaa.oovv += einsum(tmp77, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.aaaa.oovv += einsum(tmp77, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + del tmp77 + tmp81 = einsum(tmp80, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp80 + rdm2.aaaa.oovv += tmp81.transpose((0, 1, 3, 2)) + rdm2.aaaa.oovv += tmp81.transpose((1, 0, 3, 2)) * -1 + rdm2.aaaa.oovv += tmp81 * -1 + rdm2.aaaa.oovv += tmp81.transpose((1, 0, 2, 3)) + del tmp81 + tmp76 = tmp25.copy() + tmp76 += tmp27 * 0.5 + tmp76 += tmp75 del tmp75 - tmp73 = einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) - tmp73 += t2.aaaa.transpose((1, 0, 3, 2)) - tmp5 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) - rdm2.aaaa.oovv += einsum(tmp73, (0, 1, 2, 3), tmp5, (0, 1, 4, 5), (5, 4, 3, 2), optimize=True) * 2 + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp76, (2, 3), (2, 0, 3, 1), optimize=True) * -2 + rdm2.aaaa.oovv += einsum(tmp76, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * 2 + rdm2.aaaa.oovv += einsum(tmp76, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * 2 + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp76, (2, 3), (0, 2, 1, 3), optimize=True) * -2 + del tmp76 + tmp73 = tmp62.copy() * 2 + del tmp62 + tmp73 += tmp63 + del tmp63 + rdm2.aaaa.oovv += einsum(tmp73, (0, 1), t2.aaaa, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 del tmp73 - tmp70 = tmp2.copy() - tmp70 += tmp1 * 2 - rdm2.aaaa.oovv += einsum(t2.aaaa, (0, 1, 2, 3), tmp70, (0, 4), (1, 4, 3, 2), optimize=True) * -2 - tmp71 = einsum(tmp70, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * 0.5 - del tmp70 - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp71, (2, 3), (0, 2, 3, 1), optimize=True) * 2 - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp71, (2, 3), (0, 2, 1, 3), optimize=True) * -2 - tmp69 = einsum(tmp0, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp69, (2, 3), (0, 2, 3, 1), optimize=True) - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp69, (2, 3), (0, 2, 1, 3), optimize=True) * -1 - rdm2.aaaa.oovv += einsum(tmp72, (0, 1), t2.aaaa, (0, 2, 3, 4), (1, 2, 4, 3), optimize=True) * 4 + tmp72 = einsum(tmp24, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp24 + rdm2.aaaa.oovv += tmp72.transpose((0, 1, 3, 2)) * -2 + rdm2.aaaa.oovv += tmp72 * 2 del tmp72 - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp71, (2, 3), (2, 0, 3, 1), optimize=True) * -2 - rdm2.aaaa.oovv += einsum(tmp71, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * 2 - del tmp71 - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp69, (2, 3), (2, 0, 3, 1), optimize=True) * -1 - rdm2.aaaa.oovv += einsum(tmp69, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) - del tmp69 - rdm2.aaaa.oovv += einsum(t2.aaaa, (0, 1, 2, 3), tmp7, (1, 0, 4, 5), (5, 4, 3, 2), optimize=True) * -2 - tmp55 = einsum(tmp0, (0, 1), t2.aaaa, (2, 0, 3, 4), (1, 2, 3, 4), optimize=True) - rdm2.aaaa.oovv += tmp55.transpose((1, 0, 3, 2)) * 2 - tmp68 = tmp27.transpose((0, 2, 1, 3)).copy() - tmp68 += tmp26.transpose((0, 2, 1, 3)) * 4 - tmp25 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 4), (4, 0, 1, 2), optimize=True) - tmp68 += tmp25.transpose((0, 2, 1, 3)) * -2 - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp68, (0, 2, 3, 4), (3, 2, 4, 1), optimize=True) - del tmp68 - tmp67 = tmp27.transpose((0, 2, 1, 3)).copy() * 0.5 - tmp67 += tmp26.transpose((0, 2, 1, 3)) * 2 - tmp67 += tmp25.transpose((0, 2, 1, 3)) * -1 - rdm2.aaaa.oovv += einsum(tmp67, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 4, 3), optimize=True) * -2 + tmp68 = einsum(tmp67, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) del tmp67 - tmp59 = einsum(t2.aaaa, (0, 1, 2, 3), tmp58, (2, 4), (0, 1, 4, 3), optimize=True) * 4 - del tmp58 - rdm2.aaaa.oovv += tmp59.transpose((1, 0, 2, 3)) - tmp66 = tmp23.copy() * -1 - tmp66 += tmp21 * -2 - tmp66 += tmp20 - tmp66 += tmp19 * 2 - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp66, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp66, (2, 3), (2, 0, 3, 1), optimize=True) - del tmp66 - tmp24 = tmp23.copy() * -1 - tmp24 += tmp21 * -2 - tmp24 += tmp20 - tmp24 += tmp19 * 2 - tmp24 += t1.aa - rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp24, (2, 3), (0, 2, 1, 3), optimize=True) - tmp65 = einsum(tmp64, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) - del tmp64 - rdm2.aaaa.oovv += tmp65.transpose((1, 0, 3, 2)) * 2 - rdm2.aaaa.oovv += tmp65 * 2 - tmp63 = einsum(tmp62, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) - del tmp62 - rdm2.aaaa.oovv += tmp63 * 8 - tmp61 = einsum(t2.abab, (0, 1, 2, 3), tmp60, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) - del tmp60 - rdm2.aaaa.oovv += tmp61 * 2 - rdm2.aaaa.oovv += einsum(tmp24, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * -1 - rdm2.aaaa.oovv += tmp65.transpose((1, 0, 2, 3)) * -2 - rdm2.aaaa.oovv += tmp65.transpose((0, 1, 3, 2)) * -2 - del tmp65 - rdm2.aaaa.oovv += tmp63.transpose((0, 1, 3, 2)) * -8 - del tmp63 - rdm2.aaaa.oovv += tmp61.transpose((0, 1, 3, 2)) * -2 - del tmp61 - rdm2.aaaa.oovv += tmp59.transpose((1, 0, 3, 2)) * -1 - del tmp59 - rdm2.aaaa.oovv += t2.aaaa.transpose((1, 0, 3, 2)) * 2 - rdm2.aaaa.oovv += tmp55.transpose((0, 1, 3, 2)) * -2 - del tmp55 - rdm2.bbbb.vooo = tmp17.transpose((3, 2, 1, 0)).copy() * 2 - rdm2.bbbb.vooo += einsum(l1.bb, (0, 1), delta.bb.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 - rdm2.bbbb.vooo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.abab.vooo = tmp13.transpose((3, 2, 0, 1)).copy() * -1 - del tmp13 - rdm2.abab.vooo += einsum(delta.bb.oo, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.aaaa.vooo = tmp6.transpose((3, 2, 1, 0)).copy() * 2 - rdm2.aaaa.vooo += einsum(delta.aa.oo, (0, 1), l1.aa, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - rdm2.aaaa.vooo += einsum(delta.aa.oo, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.bbbb.ovoo = tmp17.transpose((2, 3, 1, 0)).copy() * -2 - del tmp17 - rdm2.bbbb.ovoo += einsum(l1.bb, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.bbbb.ovoo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - rdm2.abab.ovoo = tmp22.transpose((1, 3, 0, 2)).copy() * -1 - del tmp22 - rdm2.abab.ovoo += einsum(delta.aa.oo, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) - rdm2.aaaa.ovoo = tmp6.transpose((2, 3, 1, 0)).copy() * -2 - del tmp6 - rdm2.aaaa.ovoo += einsum(delta.aa.oo, (0, 1), l1.aa, (2, 3), (1, 2, 0, 3), optimize=True) - rdm2.aaaa.ovoo += einsum(delta.aa.oo, (0, 1), l1.aa, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - rdm2.bbbb.oovo = tmp47.transpose((1, 2, 3, 0)).copy() * -2 - rdm2.bbbb.oovo += tmp45.transpose((2, 1, 3, 0)) * -4 - rdm2.bbbb.oovo += tmp43.transpose((2, 1, 3, 0)) * -1 - tmp46 = einsum(tmp16, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) - rdm2.bbbb.oovo += tmp46.transpose((1, 2, 3, 0)) * -2 - rdm2.bbbb.oovo += einsum(tmp11, (0, 1), t1.bb, (2, 3), (2, 1, 3, 0), optimize=True) * -1 - rdm2.bbbb.oovo += einsum(t1.bb, (0, 1), tmp11, (2, 3), (3, 0, 1, 2), optimize=True) - tmp54 = einsum(t1.bb, (0, 1), tmp11, (0, 2), (2, 1), optimize=True) * 0.5 - rdm2.bbbb.oovo += einsum(delta.bb.oo, (0, 1), tmp54, (2, 3), (1, 2, 3, 0), optimize=True) * 2 - rdm2.bbbb.oovo += einsum(delta.bb.oo, (0, 1), tmp54, (2, 3), (2, 1, 3, 0), optimize=True) * -2 + rdm2.aaaa.oovv += tmp68 * 2 + rdm2.aaaa.oovv += tmp68.transpose((0, 1, 3, 2)) * -2 + del tmp68 + tmp55 = einsum(t1.bb, (0, 1), tmp54, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * 2 del tmp54 - rdm2.bbbb.oovo += tmp45.transpose((1, 2, 3, 0)) * 4 - rdm2.bbbb.oovo += tmp44.transpose((2, 1, 3, 0)) * 2 - rdm2.bbbb.oovo += tmp43.transpose((1, 2, 3, 0)) - rdm2.bbbb.oovo += einsum(delta.bb.oo, (0, 1), tmp35, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - rdm2.bbbb.oovo += einsum(tmp35, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) - rdm2.abab.oovo = einsum(tmp14, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 4, 2), optimize=True) - rdm2.abab.oovo += tmp53.transpose((0, 2, 3, 1)) * -2 - del tmp53 - rdm2.abab.oovo += tmp52.transpose((0, 2, 3, 1)) * -2 - del tmp52 - rdm2.abab.oovo += einsum(tmp12, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 4, 2), optimize=True) - rdm2.abab.oovo += einsum(tmp11, (0, 1), t1.aa, (2, 3), (2, 1, 3, 0), optimize=True) * -1 - tmp48 = einsum(tmp4, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) - rdm2.abab.oovo += einsum(delta.bb.oo, (0, 1), tmp48, (2, 3), (2, 1, 3, 0), optimize=True) * -2 - rdm2.abab.oovo += tmp51.transpose((0, 2, 3, 1)) - del tmp51 - rdm2.abab.oovo += tmp50.transpose((0, 2, 3, 1)) * -1 - del tmp50 - tmp49 = tmp23.copy() * -0.5 - del tmp23 - tmp49 += tmp21 * -1 - del tmp21 - tmp49 += tmp20 * 0.5 - del tmp20 - tmp49 += tmp19 - del tmp19 - tmp49 += t1.aa * 0.5 - rdm2.abab.oovo += einsum(tmp49, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 - del tmp49 - rdm2.aaaa.oovo = tmp30.transpose((1, 2, 3, 0)).copy() * -2 - rdm2.aaaa.oovo += tmp27.transpose((2, 1, 3, 0)) * -1 - rdm2.aaaa.oovo += tmp26.transpose((2, 1, 3, 0)) * -4 - tmp29 = einsum(t1.aa, (0, 1), tmp5, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) - rdm2.aaaa.oovo += tmp29.transpose((1, 2, 3, 0)) * -2 - tmp3 = tmp2.copy() - del tmp2 - tmp3 += tmp1 * 2 - del tmp1 - tmp3 += tmp0 - del tmp0 - rdm2.aaaa.oovo += einsum(t1.aa, (0, 1), tmp3, (2, 3), (0, 3, 1, 2), optimize=True) * -1 - rdm2.aaaa.oovo += einsum(tmp3, (0, 1), t1.aa, (2, 3), (1, 2, 3, 0), optimize=True) - rdm2.aaaa.oovo += einsum(delta.aa.oo, (0, 1), tmp48, (2, 3), (1, 2, 3, 0), optimize=True) * 2 - rdm2.aaaa.oovo += einsum(delta.aa.oo, (0, 1), tmp48, (2, 3), (2, 1, 3, 0), optimize=True) * -2 - del tmp48 - rdm2.aaaa.oovo += tmp27.transpose((1, 2, 3, 0)) - rdm2.aaaa.oovo += tmp26.transpose((1, 2, 3, 0)) * 4 - rdm2.aaaa.oovo += tmp25.transpose((2, 1, 3, 0)) * 2 - rdm2.aaaa.oovo += einsum(tmp24, (0, 1), delta.aa.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 - rdm2.aaaa.oovo += einsum(delta.aa.oo, (0, 1), tmp24, (2, 3), (2, 1, 3, 0), optimize=True) - rdm2.bbbb.ooov = tmp47.transpose((1, 2, 0, 3)).copy() * 2 - del tmp47 - rdm2.bbbb.ooov += tmp45.transpose((2, 1, 0, 3)) * 4 - rdm2.bbbb.ooov += tmp43.transpose((2, 1, 0, 3)) - rdm2.bbbb.ooov += tmp46.transpose((1, 2, 0, 3)) * 2 - del tmp46 - rdm2.bbbb.ooov += einsum(tmp11, (0, 1), t1.bb, (2, 3), (2, 1, 0, 3), optimize=True) - rdm2.bbbb.ooov += einsum(t1.bb, (0, 1), tmp11, (2, 3), (3, 0, 2, 1), optimize=True) * -1 - rdm2.bbbb.ooov += einsum(delta.bb.oo, (0, 1), tmp39, (2, 3), (1, 2, 0, 3), optimize=True) * -1 - rdm2.bbbb.ooov += einsum(delta.bb.oo, (0, 1), tmp39, (2, 3), (2, 1, 0, 3), optimize=True) - rdm2.bbbb.ooov += tmp45.transpose((1, 2, 0, 3)) * -4 - del tmp45 - rdm2.bbbb.ooov += tmp44.transpose((2, 1, 0, 3)) * -2 - del tmp44 - rdm2.bbbb.ooov += tmp43.transpose((1, 2, 0, 3)) * -1 - del tmp43 - tmp42 = tmp34.copy() * -1 - del tmp34 - tmp42 += tmp33 * -0.5 + rdm2.bbbb.oovo += tmp55.transpose((2, 1, 3, 0)) * -1 + rdm2.bbbb.ooov += tmp55.transpose((2, 1, 0, 3)) + del tmp55 + tmp34 = einsum(t1.aa, (0, 1), tmp33, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * 2 del tmp33 - tmp42 += tmp32 - del tmp32 - tmp42 += tmp31 * 0.5 - del tmp31 - tmp42 += t1.bb * 0.5 - rdm2.bbbb.ooov += einsum(delta.bb.oo, (0, 1), tmp42, (2, 3), (1, 2, 0, 3), optimize=True) * 2 - rdm2.bbbb.ooov += einsum(delta.bb.oo, (0, 1), tmp42, (2, 3), (2, 1, 0, 3), optimize=True) * -2 - del tmp42 - rdm2.abab.ooov = tmp41.transpose((1, 2, 0, 3)).copy() - del tmp41 - rdm2.abab.ooov += tmp40.transpose((1, 2, 0, 3)) - del tmp40 - rdm2.abab.ooov += einsum(t1.bb, (0, 1), tmp12, (2, 3, 0, 4), (3, 4, 2, 1), optimize=True) - rdm2.abab.ooov += einsum(t1.bb, (0, 1), tmp3, (2, 3), (3, 0, 2, 1), optimize=True) * -1 - rdm2.abab.ooov += einsum(delta.aa.oo, (0, 1), tmp39, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.aaaa.oovo += tmp34.transpose((2, 1, 3, 0)) * -1 + rdm2.aaaa.ooov += tmp34.transpose((2, 1, 0, 3)) + del tmp34 + tmp51 = tmp39.copy() del tmp39 - rdm2.abab.ooov += tmp38.transpose((1, 2, 0, 3)) * -1 - del tmp38 - rdm2.abab.ooov += tmp37.transpose((1, 2, 0, 3)) * -2 - del tmp37 - rdm2.abab.ooov += tmp36.transpose((1, 2, 0, 3)) * -2 - del tmp36 - rdm2.abab.ooov += einsum(delta.aa.oo, (0, 1), tmp35, (2, 3), (1, 2, 0, 3), optimize=True) - del tmp35 - rdm2.aaaa.ooov = tmp30.transpose((1, 2, 0, 3)).copy() * 2 - del tmp30 - rdm2.aaaa.ooov += tmp27.transpose((2, 1, 0, 3)) - rdm2.aaaa.ooov += tmp26.transpose((2, 1, 0, 3)) * 4 - rdm2.aaaa.ooov += tmp29.transpose((1, 2, 0, 3)) * 2 - del tmp29 - rdm2.aaaa.ooov += einsum(tmp4, (0, 1), t1.aa, (2, 3), (2, 1, 0, 3), optimize=True) * 2 - rdm2.aaaa.ooov += einsum(tmp4, (0, 1), t1.aa, (2, 3), (1, 2, 0, 3), optimize=True) * -2 - rdm2.aaaa.ooov += einsum(tmp28, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 - rdm2.aaaa.ooov += einsum(tmp28, (0, 1), delta.aa.oo, (2, 3), (0, 3, 2, 1), optimize=True) - del tmp28 - rdm2.aaaa.ooov += tmp27.transpose((1, 2, 0, 3)) * -1 - del tmp27 - rdm2.aaaa.ooov += tmp26.transpose((1, 2, 0, 3)) * -4 - del tmp26 - rdm2.aaaa.ooov += tmp25.transpose((2, 1, 0, 3)) * -2 + tmp51 += tmp40 * 2 + del tmp40 + tmp51 += tmp50 + del tmp50 + rdm2.bbbb.ooov += einsum(tmp51, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + rdm2.bbbb.ooov += einsum(tmp51, (0, 1), delta.bb.oo, (2, 3), (0, 3, 2, 1), optimize=True) + del tmp51 + tmp30 = tmp25.copy() * 2 del tmp25 - rdm2.aaaa.ooov += einsum(tmp24, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) - rdm2.aaaa.ooov += einsum(delta.aa.oo, (0, 1), tmp24, (2, 3), (2, 1, 0, 3), optimize=True) * -1 - del tmp24 - rdm2.bbbb.oooo = tmp18.transpose((2, 3, 1, 0)).copy() * -2 - del tmp18 - rdm2.bbbb.oooo += tmp16.transpose((3, 2, 1, 0)) * 2 - del tmp16 - rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp11, (2, 3), (1, 3, 0, 2), optimize=True) * -1 - rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp11, (2, 3), (3, 1, 0, 2), optimize=True) - tmp15 = tmp10.copy() - del tmp10 - tmp15 += tmp9 * 0.5 - del tmp9 + tmp30 += tmp27 + del tmp27 + tmp30 += tmp29 + del tmp29 + rdm2.aaaa.ooov += einsum(tmp30, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + rdm2.aaaa.ooov += einsum(delta.aa.oo, (0, 1), tmp30, (2, 3), (2, 1, 0, 3), optimize=True) + del tmp30 + tmp15 = delta.bb.oo.transpose((1, 0)).copy() * -0.5 tmp15 += tmp8 * 0.5 - del tmp8 - rdm2.bbbb.oooo += einsum(tmp15, (0, 1), delta.bb.oo, (2, 3), (3, 1, 0, 2), optimize=True) * 2 - rdm2.bbbb.oooo += einsum(tmp15, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -2 + tmp15 += tmp9 * 0.5 + tmp15 += tmp10 + rdm2.bbbb.oooo += einsum(tmp15, (0, 1), delta.bb.oo, (2, 3), (1, 3, 2, 0), optimize=True) * 2 + rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp15, (2, 3), (1, 3, 0, 2), optimize=True) * -2 del tmp15 - rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), delta.bb.oo, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) - rdm2.abab.oooo = tmp14.transpose((1, 3, 0, 2)).copy() - del tmp14 - rdm2.abab.oooo += tmp12.transpose((1, 3, 0, 2)) - del tmp12 - rdm2.abab.oooo += einsum(delta.aa.oo, (0, 1), tmp11, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp11 = delta.bb.oo.transpose((1, 0)).copy() * -1 + tmp11 += tmp8 + del tmp8 + tmp11 += tmp9 + del tmp9 + tmp11 += tmp10 * 2 + del tmp10 + rdm2.abab.oooo += einsum(tmp11, (0, 1), delta.aa.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 del tmp11 - rdm2.abab.oooo += einsum(tmp4, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -2 - rdm2.abab.oooo += einsum(delta.aa.oo, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) - rdm2.aaaa.oooo = tmp7.transpose((2, 3, 1, 0)).copy() * -2 - del tmp7 - rdm2.aaaa.oooo += tmp5.transpose((3, 2, 1, 0)) * 2 - del tmp5 - rdm2.aaaa.oooo += einsum(tmp4, (0, 1), delta.aa.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -2 - rdm2.aaaa.oooo += einsum(tmp4, (0, 1), delta.aa.oo, (2, 3), (1, 3, 2, 0), optimize=True) * 2 - del tmp4 - rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), tmp3, (2, 3), (1, 3, 2, 0), optimize=True) - rdm2.aaaa.oooo += einsum(tmp3, (0, 1), delta.aa.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp3 = delta.aa.oo.transpose((1, 0)).copy() * -0.5 + tmp3 += tmp0 * 0.5 + del tmp0 + tmp3 += tmp1 + del tmp1 + tmp3 += tmp2 * 0.5 + del tmp2 + rdm2.aaaa.oooo += einsum(tmp3, (0, 1), delta.aa.oo, (2, 3), (1, 3, 2, 0), optimize=True) * 2 + rdm2.aaaa.oooo += einsum(tmp3, (0, 1), delta.aa.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -2 del tmp3 - rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), delta.aa.oo, (2, 3), (1, 2, 3, 0), optimize=True) * -1 - rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), delta.aa.oo, (2, 3), (1, 3, 0, 2), optimize=True) + rdm2.aaaa.ovoo += einsum(l1.aa, (0, 1), delta.aa.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.aaaa.ovoo += einsum(l1.aa, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.abab.ovoo += einsum(delta.aa.oo, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.bbbb.ovoo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.bbbb.ovoo += einsum(l1.bb, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.aaaa.vooo += einsum(l1.aa, (0, 1), delta.aa.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.aaaa.vooo += einsum(l1.aa, (0, 1), delta.aa.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.abab.vooo += einsum(l1.aa, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.bbbb.vooo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.bbbb.vooo += einsum(l1.bb, (0, 1), delta.bb.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 del delta + rdm2.aaaa.oovv += t2.aaaa.transpose((1, 0, 3, 2)) * 2 + rdm2.abab.oovv += t2.abab + rdm2.bbbb.oovv += t2.bbbb.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.ovov += einsum(l1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.bbbb.ovov += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.aaaa.ovvo += einsum(l1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.abab.ovvo += einsum(t1.aa, (0, 1), l1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.ovvo += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.aaaa.voov += einsum(l1.aa, (0, 1), t1.aa, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.abab.voov += einsum(l1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.voov += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.aaaa.vovo += einsum(l1.aa, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.bbbb.vovo += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.aaaa.vvoo = l2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.abab.vvoo = l2.abab.copy() + rdm2.bbbb.vvoo = l2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.abab.ovvv += einsum(t2.abab, (0, 1, 2, 3), l1.bb, (4, 1), (0, 4, 2, 3), optimize=True) + rdm2.abab.vovv += einsum(l1.aa, (0, 1), t2.abab, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) + rdm2.abab.vvvo = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) + rdm2.aaaa.vvvv += einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * 2 + rdm2.abab.vvvv += einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) + rdm2.bbbb.vvvv += einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 rdm2.aaaa = pack_2e(rdm2.aaaa.oooo, rdm2.aaaa.ooov, rdm2.aaaa.oovo, rdm2.aaaa.ovoo, rdm2.aaaa.vooo, rdm2.aaaa.oovv, rdm2.aaaa.ovov, rdm2.aaaa.ovvo, rdm2.aaaa.voov, rdm2.aaaa.vovo, rdm2.aaaa.vvoo, rdm2.aaaa.ovvv, rdm2.aaaa.vovv, rdm2.aaaa.vvov, rdm2.aaaa.vvvo, rdm2.aaaa.vvvv) rdm2.abab = pack_2e(rdm2.abab.oooo, rdm2.abab.ooov, rdm2.abab.oovo, rdm2.abab.ovoo, rdm2.abab.vooo, rdm2.abab.oovv, rdm2.abab.ovov, rdm2.abab.ovvo, rdm2.abab.voov, rdm2.abab.vovo, rdm2.abab.vvoo, rdm2.abab.ovvv, rdm2.abab.vovv, rdm2.abab.vvov, rdm2.abab.vvvo, rdm2.abab.vvvv) rdm2.bbbb = pack_2e(rdm2.bbbb.oooo, rdm2.bbbb.ooov, rdm2.bbbb.oovo, rdm2.bbbb.ovoo, rdm2.bbbb.vooo, rdm2.bbbb.oovv, rdm2.bbbb.ovov, rdm2.bbbb.ovvo, rdm2.bbbb.voov, rdm2.bbbb.vovo, rdm2.bbbb.vvoo, rdm2.bbbb.ovvv, rdm2.bbbb.vovv, rdm2.bbbb.vvov, rdm2.bbbb.vvvo, rdm2.bbbb.vvvv) diff --git a/ebcc/codegen/UDFCCD.py b/ebcc/codegen/UDFCCD.py new file mode 100644 index 00000000..119ea890 --- /dev/null +++ b/ebcc/codegen/UDFCCD.py @@ -0,0 +1,926 @@ +""" +Code generated by `albert`: +https://github.com/obackhouse/albert + + * date: 2024-07-18T20:30:59.078557 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + * albert version: 0.0.0 + * caller: /home/ollie/git/albert/albert/codegen/einsum.py + * node: ollie-desktop + * system: Linux + * processor: x86_64 + * release: 6.5.0-44-generic +""" + +from ebcc import numpy as np +from ebcc.util import pack_2e, einsum, direct_sum, Namespace + + +def energy(t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:30:59.475230. + + Parameters + ---------- + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + e_cc : float + Coupled cluster energy. + """ + + tmp0 = einsum(t2.aaaa, (0, 1, 2, 3), v.baa.xov, (4, 1, 3), (0, 2, 4), optimize=True) + e_cc = einsum(tmp0, (0, 1, 2), v.baa.xov, (2, 0, 1), (), optimize=True) + del tmp0 + tmp1 = einsum(t2.abab, (0, 1, 2, 3), v.baa.xov, (4, 0, 2), (1, 3, 4), optimize=True) + tmp1 += einsum(t2.bbbb, (0, 1, 2, 3), v.bbb.xov, (4, 1, 3), (0, 2, 4), optimize=True) + e_cc += einsum(v.bbb.xov, (0, 1, 2), tmp1, (1, 2, 0), (), optimize=True) + del tmp1 + + return e_cc + +def update_amps(f=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:31:11.392834. + + Parameters + ---------- + f : Namespace of arrays + Fock matrix. + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + t2new : Namespace of arrays + Updated T2 residuals. + """ + + t1new = Namespace() + t2new = Namespace() + tmp31 = einsum(t2.abab, (0, 1, 2, 3), v.baa.xov, (4, 0, 2), (1, 3, 4), optimize=True) + tmp32 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbb.xov, (4, 0, 3), (1, 2, 4), optimize=True) * -1 + tmp4 = einsum(v.bbb.xov, (0, 1, 2), t2.abab, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp3 = einsum(t2.aaaa, (0, 1, 2, 3), v.baa.xov, (4, 0, 3), (1, 2, 4), optimize=True) * -1 + tmp15 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xov, (0, 3, 4), (1, 3, 2, 4), optimize=True) + t2new.bbbb = tmp15.transpose((1, 0, 2, 3)).copy() * -1 + t2new.bbbb += tmp15.transpose((1, 0, 3, 2)) + tmp33 = tmp31.copy() * 0.5 + tmp33 += tmp32 + tmp10 = einsum(v.baa.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (1, 3, 2, 4), optimize=True) + t2new.aaaa = tmp10.transpose((1, 0, 2, 3)).copy() * -1 + t2new.aaaa += tmp10.transpose((1, 0, 3, 2)) + tmp7 = tmp3.copy() * 2 + tmp7 += tmp4 + tmp5 = tmp3.copy() * 2 + tmp5 += tmp4 + tmp43 = einsum(v.bbb.xvv, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + t2new.abab = einsum(tmp43, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) * -1 + tmp55 = tmp15.transpose((1, 0, 2, 3)).copy() + tmp55 += tmp15.transpose((1, 0, 3, 2)) * -1 + tmp48 = einsum(v.bbb.xoo, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (1, 4, 3, 2), optimize=True) + tmp65 = einsum(tmp33, (0, 1, 2), v.bbb.xov, (2, 3, 1), (0, 3), optimize=True) + tmp59 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp59 += tmp32 * 2 + tmp61 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp61 += tmp31 + tmp13 = tmp10.transpose((1, 0, 2, 3)).copy() * -1 + tmp13 += tmp10.transpose((1, 0, 3, 2)) + tmp51 = einsum(tmp33, (0, 1, 2), v.bbb.xov, (2, 0, 3), (1, 3), optimize=True) * 2 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp51, (4, 2), (1, 0, 3, 4), optimize=True) * -2 + tmp35 = tmp31.copy() + tmp35 += tmp32 * 2 + t2new.abab += einsum(v.baa.xov, (0, 1, 2), tmp35, (3, 4, 0), (1, 3, 2, 4), optimize=True) + tmp38 = einsum(v.bbb.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + t2new.abab += tmp38 + tmp12 = einsum(v.baa.xoo, (0, 1, 2), v.baa.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + tmp8 = einsum(tmp7, (0, 1, 2), v.baa.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + t2new.aaaa += tmp8.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp8.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp8 + tmp19 = einsum(tmp10, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 2), (4, 0, 5, 3), optimize=True) + tmp29 = einsum(v.baa.xoo, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (1, 2, 3, 4), optimize=True) + tmp36 = tmp3.copy() + tmp36 += tmp4 * 0.5 + tmp22 = einsum(tmp15, (0, 1, 2, 3), t2.abab, (4, 1, 5, 2), (4, 0, 5, 3), optimize=True) + tmp40 = einsum(v.bbb.xov, (0, 1, 2), tmp7, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp7 + t2new.abab += tmp40 + tmp23 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp23 += tmp4 + tmp20 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp20 += tmp3 * 2 + tmp27 = einsum(tmp5, (0, 1, 2), v.baa.xov, (2, 3, 1), (3, 0), optimize=True) * 0.5 + t2new.abab += einsum(tmp27, (0, 1), t2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -2 + tmp16 = tmp15.transpose((1, 0, 2, 3)).copy() * -1 + tmp16 += tmp15.transpose((1, 0, 3, 2)) + tmp0 = einsum(v.baa.xoo, (0, 1, 2), v.baa.xoo, (0, 3, 4), (1, 4, 3, 2), optimize=True) + tmp6 = einsum(tmp5, (0, 1, 2), v.baa.xov, (2, 0, 3), (3, 1), optimize=True) + del tmp5 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp6, (2, 4), (1, 0, 3, 4), optimize=True) * -2 + tmp56 = tmp43.transpose((1, 0, 3, 2)).copy() + tmp56 += einsum(t2.bbbb, (0, 1, 2, 3), tmp55, (0, 4, 5, 2), (1, 4, 3, 5), optimize=True) * -2 + del tmp55 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp56, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * -2 + del tmp56 + tmp49 = einsum(t2.bbbb, (0, 1, 2, 3), tmp48, (4, 1, 5, 0), (5, 4, 2, 3), optimize=True) * -1 + del tmp48 + t2new.bbbb += tmp49.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp49.transpose((0, 1, 3, 2)) * -1 + del tmp49 + tmp66 = einsum(t2.bbbb, (0, 1, 2, 3), tmp65, (4, 0), (1, 4, 2, 3), optimize=True) * 4 + del tmp65 + t2new.bbbb += tmp66.transpose((1, 0, 3, 2)) + t2new.bbbb += tmp66.transpose((0, 1, 3, 2)) * -1 + del tmp66 + tmp50 = einsum(f.bb.oo, (0, 1), t2.bbbb, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + t2new.bbbb += tmp50.transpose((0, 1, 3, 2)) * -2 + t2new.bbbb += tmp50.transpose((1, 0, 3, 2)) * 2 + del tmp50 + tmp60 = tmp43.transpose((1, 0, 3, 2)).copy() * -1 + tmp60 += einsum(t2.bbbb, (0, 1, 2, 3), tmp15, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) * -2 + tmp60 += einsum(tmp59, (0, 1, 2), v.bbb.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) + del tmp59 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp60, (4, 0, 5, 2), (1, 4, 5, 3), optimize=True) * -2 + del tmp60 + tmp62 = einsum(t2.abab, (0, 1, 2, 3), tmp10, (0, 4, 5, 2), (4, 1, 5, 3), optimize=True) * -1 + tmp62 += einsum(v.baa.xov, (0, 1, 2), tmp61, (3, 4, 0), (1, 3, 2, 4), optimize=True) + del tmp61 + t2new.bbbb += einsum(t2.abab, (0, 1, 2, 3), tmp62, (0, 4, 2, 5), (1, 4, 5, 3), optimize=True) * -1 + del tmp62 + tmp58 = einsum(t2.bbbb, (0, 1, 2, 3), tmp43, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp43 + t2new.bbbb += tmp58 * -2 + t2new.bbbb += tmp58.transpose((1, 0, 2, 3)) * 2 + del tmp58 + tmp54 = einsum(tmp31, (0, 1, 2), tmp32, (3, 4, 2), (0, 3, 1, 4), optimize=True) + del tmp31, tmp32 + t2new.bbbb += tmp54.transpose((1, 0, 2, 3)) * -2 + t2new.bbbb += tmp54.transpose((0, 1, 3, 2)) * -2 + t2new.bbbb += tmp54.transpose((1, 0, 3, 2)) * 2 + t2new.bbbb += tmp54 * 2 + del tmp54 + tmp57 = einsum(t2.abab, (0, 1, 2, 3), tmp13, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + t2new.bbbb += einsum(tmp57, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp57 + tmp53 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp53 += tmp51 + del tmp51 + t2new.bbbb += einsum(tmp53, (0, 1), t2.bbbb, (2, 3, 1, 4), (3, 2, 0, 4), optimize=True) * 2 + del tmp53 + tmp63 = einsum(v.bbb.xvv, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (3, 2, 1, 4), optimize=True) + t2new.bbbb += einsum(tmp63, (0, 1, 2, 3), t2.bbbb, (4, 5, 3, 1), (4, 5, 0, 2), optimize=True) * 2 + del tmp63 + tmp64 = einsum(t2.bbbb, (0, 1, 2, 3), tmp15, (4, 5, 2, 3), (0, 1, 5, 4), optimize=True) * -1 + del tmp15 + t2new.bbbb += einsum(tmp64, (0, 1, 2, 3), t2.bbbb, (3, 2, 4, 5), (1, 0, 5, 4), optimize=True) * -2 + del tmp64 + tmp52 = einsum(v.bbb.xov, (0, 1, 2), tmp35, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp35 + t2new.bbbb += tmp52 + t2new.bbbb += tmp52.transpose((1, 0, 2, 3)) * -1 + t2new.bbbb += tmp52.transpose((1, 0, 3, 2)) + del tmp52 + tmp42 = einsum(v.bbb.xoo, (0, 1, 2), v.baa.xvv, (0, 3, 4), (2, 1, 4, 3), optimize=True) + tmp42 += einsum(tmp38, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (1, 4, 2, 5), optimize=True) * -1 + t2new.abab += einsum(tmp42, (0, 1, 2, 3), t2.abab, (4, 0, 2, 5), (4, 1, 3, 5), optimize=True) * -1 + del tmp42 + tmp39 = tmp12.transpose((1, 0, 3, 2)).copy() + tmp39 += tmp19.transpose((1, 0, 3, 2)) * 2 + tmp39 += tmp8 * -1 + del tmp8 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp39, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 + del tmp39 + tmp30 = einsum(tmp29, (0, 1, 2, 3), t2.abab, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) + del tmp29 + t2new.abab += tmp30 * 0.5 + t2new.abab += tmp30 * 0.5 + del tmp30 + tmp47 = einsum(tmp33, (0, 1, 2), v.bbb.xov, (2, 3, 1), (0, 3), optimize=True) * 2 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp47, (4, 1), (0, 4, 2, 3), optimize=True) * -1 + del tmp47 + tmp37 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp37 += einsum(tmp36, (0, 1, 2), v.baa.xov, (2, 0, 3), (3, 1), optimize=True) * 2 + del tmp36 + t2new.abab += einsum(tmp37, (0, 1), t2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -1 + del tmp37 + tmp41 = tmp22.copy() * -1 + tmp41 += tmp40 + del tmp40 + t2new.abab += einsum(t2.bbbb, (0, 1, 2, 3), tmp41, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * 2 + del tmp41 + tmp45 = einsum(v.bbb.xvv, (0, 1, 2), v.baa.xvv, (0, 3, 4), (3, 4, 1, 2), optimize=True) + t2new.abab += einsum(tmp45, (0, 1, 2, 3), t2.abab, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + del tmp45 + tmp34 = einsum(tmp33, (0, 1, 2), v.bbb.xov, (2, 0, 3), (1, 3), optimize=True) + del tmp33 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp34, (4, 3), (0, 1, 2, 4), optimize=True) * -2 + del tmp34 + tmp44 = einsum(v.baa.xoo, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + t2new.abab += einsum(tmp44, (0, 1, 2, 3), t2.abab, (1, 4, 5, 3), (0, 4, 5, 2), optimize=True) * -1 + del tmp44 + tmp46 = einsum(tmp38, (0, 1, 2, 3), t2.abab, (4, 5, 2, 3), (4, 0, 5, 1), optimize=True) + del tmp38 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp46, (4, 0, 5, 1), (4, 5, 2, 3), optimize=True) + del tmp46 + tmp18 = einsum(tmp12, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + t2new.aaaa += tmp18 * -2 + t2new.aaaa += tmp18.transpose((1, 0, 2, 3)) * 2 + del tmp18 + tmp24 = tmp22.copy() * -1 + del tmp22 + tmp24 += einsum(v.bbb.xov, (0, 1, 2), tmp23, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp23 + t2new.aaaa += einsum(tmp24, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) * -1 + del tmp24 + tmp14 = tmp12.transpose((1, 0, 3, 2)).copy() + tmp14 += einsum(t2.aaaa, (0, 1, 2, 3), tmp13, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -2 + del tmp13 + t2new.aaaa += einsum(tmp14, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * -2 + del tmp14 + tmp26 = einsum(t2.aaaa, (0, 1, 2, 3), tmp10, (4, 5, 2, 3), (0, 1, 5, 4), optimize=True) * -1 + del tmp10 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp26, (4, 5, 1, 0), (5, 4, 3, 2), optimize=True) * -2 + del tmp26 + tmp21 = tmp12.transpose((1, 0, 3, 2)).copy() * -1 + del tmp12 + tmp21 += tmp19 * -2 + del tmp19 + tmp21 += einsum(tmp20, (0, 1, 2), v.baa.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) + del tmp20 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp21, (4, 0, 5, 2), (1, 4, 5, 3), optimize=True) * -2 + del tmp21 + tmp28 = einsum(t2.aaaa, (0, 1, 2, 3), tmp27, (0, 4), (4, 1, 2, 3), optimize=True) * 4 + del tmp27 + t2new.aaaa += tmp28.transpose((0, 1, 3, 2)) + t2new.aaaa += tmp28.transpose((1, 0, 3, 2)) * -1 + del tmp28 + tmp25 = einsum(v.baa.xvv, (0, 1, 2), v.baa.xvv, (0, 3, 4), (1, 4, 3, 2), optimize=True) + t2new.aaaa += einsum(tmp25, (0, 1, 2, 3), t2.aaaa, (4, 5, 3, 1), (4, 5, 0, 2), optimize=True) * 2 + del tmp25 + tmp17 = einsum(t2.abab, (0, 1, 2, 3), tmp16, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) * -1 + del tmp16 + t2new.aaaa += einsum(t2.abab, (0, 1, 2, 3), tmp17, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp17 + tmp2 = einsum(f.aa.oo, (0, 1), t2.aaaa, (2, 1, 3, 4), (0, 2, 3, 4), optimize=True) + t2new.aaaa += tmp2.transpose((0, 1, 3, 2)) * -2 + t2new.aaaa += tmp2.transpose((1, 0, 3, 2)) * 2 + del tmp2 + tmp11 = einsum(tmp3, (0, 1, 2), tmp4, (3, 4, 2), (0, 3, 1, 4), optimize=True) + del tmp3, tmp4 + t2new.aaaa += tmp11.transpose((1, 0, 2, 3)) * -2 + t2new.aaaa += tmp11.transpose((0, 1, 3, 2)) * -2 + t2new.aaaa += tmp11.transpose((1, 0, 3, 2)) * 2 + t2new.aaaa += tmp11 * 2 + del tmp11 + tmp1 = einsum(t2.aaaa, (0, 1, 2, 3), tmp0, (4, 1, 5, 0), (5, 4, 2, 3), optimize=True) * -1 + del tmp0 + t2new.aaaa += tmp1.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp1.transpose((0, 1, 3, 2)) * -1 + del tmp1 + tmp9 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp9 += tmp6.transpose((1, 0)) + del tmp6 + t2new.aaaa += einsum(tmp9, (0, 1), t2.aaaa, (2, 3, 1, 4), (3, 2, 0, 4), optimize=True) * 2 + del tmp9 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), f.aa.vv, (4, 3), (1, 0, 2, 4), optimize=True) * -2 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), f.bb.oo, (4, 1), (0, 4, 2, 3), optimize=True) * -1 + t2new.abab += einsum(f.aa.oo, (0, 1), t2.abab, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) * -1 + t2new.abab += einsum(f.bb.vv, (0, 1), t2.abab, (2, 3, 4, 1), (2, 3, 4, 0), optimize=True) + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), f.bb.vv, (4, 3), (1, 0, 2, 4), optimize=True) * -2 + + return {f"t2new": t2new} + +def update_lams(f=None, l2=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:31:31.055236. + + Parameters + ---------- + f : Namespace of arrays + Fock matrix. + l2 : Namespace of arrays + L2 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + l2new : Namespace of arrays + Updated L2 residuals. + """ + + l1new = Namespace() + l2new = Namespace() + tmp41 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + tmp42 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (4, 2, 0, 1), (4, 3), optimize=True) * -1 + tmp56 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (3, 4, 0, 1), (2, 4), optimize=True) * -1 + tmp55 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) + tmp17 = einsum(t2.abab, (0, 1, 2, 3), v.baa.xov, (4, 0, 2), (1, 3, 4), optimize=True) + tmp18 = einsum(t2.bbbb, (0, 1, 2, 3), v.bbb.xov, (4, 1, 3), (0, 2, 4), optimize=True) + tmp14 = einsum(v.bbb.xov, (0, 1, 2), t2.abab, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp13 = einsum(t2.aaaa, (0, 1, 2, 3), v.baa.xov, (4, 1, 3), (0, 2, 4), optimize=True) + tmp0 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 1, 4), (0, 4), optimize=True) * -1 + tmp1 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + tmp21 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 0), (4, 1), optimize=True) * -1 + tmp22 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 1), (2, 4), optimize=True) + tmp43 = tmp41.copy() * 0.5 + del tmp41 + tmp43 += tmp42 + del tmp42 + tmp57 = tmp55.copy() * 0.5 + del tmp55 + tmp57 += tmp56 + del tmp56 + tmp19 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp19 += tmp17 + tmp19 += tmp18 * 2 + tmp15 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp15 += tmp13 * 2 + tmp15 += tmp14 + tmp47 = tmp17.copy() * 0.5 + tmp47 += tmp18 + tmp2 = tmp0.copy() * 2 + del tmp0 + tmp2 += tmp1 + del tmp1 + tmp27 = tmp13.copy() * 2 + tmp27 += tmp14 + tmp23 = tmp21.copy() * 2 + del tmp21 + tmp23 += tmp22 + del tmp22 + tmp76 = einsum(v.bbb.xov, (0, 1, 2), tmp43, (3, 2), (1, 3, 0), optimize=True) * 2 + tmp86 = einsum(tmp57, (0, 1), v.bbb.xov, (2, 1, 3), (0, 3, 2), optimize=True) * 0.5 + tmp85 = einsum(tmp19, (0, 1, 2), l2.bbbb, (1, 3, 0, 4), (4, 3, 2), optimize=True) * 0.5 + tmp84 = einsum(tmp15, (0, 1, 2), l2.abab, (1, 3, 0, 4), (4, 3, 2), optimize=True) * 0.25 + tmp65 = einsum(v.bbb.xov, (0, 1, 2), tmp47, (1, 3, 0), (2, 3), optimize=True) * 2 + tmp58 = einsum(tmp57, (0, 1), v.bbb.xov, (2, 1, 3), (0, 3, 2), optimize=True) + del tmp57 + tmp53 = einsum(tmp15, (0, 1, 2), l2.abab, (1, 3, 0, 4), (4, 3, 2), optimize=True) * 0.5 + tmp54 = einsum(tmp19, (0, 1, 2), l2.bbbb, (1, 3, 0, 4), (4, 3, 2), optimize=True) + tmp89 = einsum(v.bbb.xov, (0, 1, 2), tmp47, (3, 2, 0), (1, 3), optimize=True) * 2 + tmp80 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + tmp81 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (4, 2, 5, 0), (5, 1, 4, 3), optimize=True) + tmp3 = einsum(tmp2, (0, 1), v.baa.xov, (2, 3, 1), (3, 0, 2), optimize=True) + tmp35 = einsum(v.baa.xov, (0, 1, 2), tmp27, (1, 3, 0), (3, 2), optimize=True) * 0.5 + tmp24 = einsum(v.baa.xov, (0, 1, 2), tmp23, (3, 1), (3, 2, 0), optimize=True) * 0.5 + del tmp23 + l2new.abab = einsum(v.bbb.xov, (0, 1, 2), tmp24, (3, 4, 0), (4, 2, 3, 1), optimize=True) * -2 + tmp20 = einsum(l2.abab, (0, 1, 2, 3), tmp19, (3, 1, 4), (2, 0, 4), optimize=True) * 0.5 + del tmp19 + tmp16 = einsum(tmp15, (0, 1, 2), l2.aaaa, (1, 3, 0, 4), (4, 3, 2), optimize=True) + del tmp15 + tmp28 = einsum(v.baa.xov, (0, 1, 2), tmp27, (3, 2, 0), (3, 1), optimize=True) + tmp8 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (3, 4, 1, 5), (2, 4, 0, 5), optimize=True) + tmp9 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + tmp77 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp77 += tmp76 * -1 + del tmp76 + tmp68 = einsum(v.bbb.xvv, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp68, (4, 3, 5, 1), (0, 5, 2, 4), optimize=True) * -1 + tmp87 = tmp84.copy() + del tmp84 + tmp87 += tmp85 + del tmp85 + tmp87 += tmp86 * -1 + del tmp86 + tmp66 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp66 += tmp65.transpose((1, 0)) + del tmp65 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp66, (1, 4), (0, 4, 2, 3), optimize=True) * -1 + tmp59 = tmp53.copy() + del tmp53 + tmp59 += tmp54 + del tmp54 + tmp59 += tmp58 * -1 + del tmp58 + l2new.abab += einsum(tmp59, (0, 1, 2), v.baa.xov, (2, 3, 4), (4, 1, 3, 0), optimize=True) * 2 + tmp44 = einsum(v.bbb.xov, (0, 1, 2), tmp43, (3, 2), (1, 3, 0), optimize=True) + del tmp43 + tmp95 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + tmp70 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xov, (0, 3, 4), (1, 3, 2, 4), optimize=True) + tmp90 = f.bb.oo.transpose((1, 0)).copy() + tmp90 += tmp89.transpose((1, 0)) + del tmp89 + tmp93 = einsum(v.bbb.xvv, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (3, 2, 1, 4), optimize=True) + tmp82 = tmp80.copy() + del tmp80 + tmp82 += tmp81 * 4 + del tmp81 + tmp60 = einsum(v.bbb.xvv, (0, 1, 2), v.baa.xvv, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp71 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp71 += tmp13 * 2 + del tmp13 + tmp71 += tmp14 + del tmp14 + tmp72 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp72 += tmp17 + del tmp17 + tmp72 += tmp18 * 2 + del tmp18 + tmp6 = einsum(v.baa.xoo, (0, 1, 2), v.baa.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + tmp11 = einsum(v.baa.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (1, 3, 2, 4), optimize=True) + tmp50 = einsum(v.bbb.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + tmp62 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 5), (4, 0, 5, 1), optimize=True) + tmp4 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp4 += tmp3 * -1 + del tmp3 + tmp31 = einsum(v.baa.xvv, (0, 1, 2), v.baa.xvv, (0, 3, 4), (1, 4, 3, 2), optimize=True) + tmp33 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + tmp36 = f.aa.vv.transpose((1, 0)).copy() * -0.5 + tmp36 += tmp35 + del tmp35 + tmp39 = einsum(tmp2, (0, 1), v.baa.xov, (2, 3, 1), (3, 0, 2), optimize=True) * 0.5 + del tmp2 + l2new.abab += einsum(tmp39, (0, 1, 2), v.bbb.xov, (2, 3, 4), (1, 4, 0, 3), optimize=True) * -2 + tmp25 = tmp16.copy() + del tmp16 + tmp25 += tmp20 + del tmp20 + tmp25 += tmp24 * -1 + del tmp24 + tmp29 = f.aa.oo.transpose((1, 0)).copy() + tmp29 += tmp28 + del tmp28 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp29, (2, 4), (0, 1, 4, 3), optimize=True) * -1 + tmp10 = tmp8.copy() * 4 + del tmp8 + tmp10 += tmp9 + del tmp9 + tmp78 = einsum(tmp77, (0, 1, 2), v.bbb.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + del tmp77 + l2new.bbbb = tmp78.transpose((3, 2, 0, 1)).copy() * -1 + l2new.bbbb += tmp78.transpose((2, 3, 0, 1)) + del tmp78 + tmp79 = einsum(l2.bbbb, (0, 1, 2, 3), tmp68, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + del tmp68 + l2new.bbbb += tmp79.transpose((2, 3, 1, 0)) * 2 + l2new.bbbb += tmp79.transpose((2, 3, 0, 1)) * -2 + l2new.bbbb += tmp79.transpose((3, 2, 1, 0)) * -2 + l2new.bbbb += tmp79.transpose((3, 2, 0, 1)) * 2 + del tmp79 + tmp88 = einsum(v.bbb.xov, (0, 1, 2), tmp87, (3, 4, 0), (1, 3, 2, 4), optimize=True) * 4 + del tmp87 + l2new.bbbb += tmp88.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp88.transpose((2, 3, 1, 0)) * -1 + del tmp88 + tmp97 = einsum(l2.bbbb, (0, 1, 2, 3), tmp66, (0, 4), (2, 3, 1, 4), optimize=True) * 2 + del tmp66 + l2new.bbbb += tmp97.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp97.transpose((3, 2, 1, 0)) + del tmp97 + tmp92 = einsum(v.bbb.xov, (0, 1, 2), tmp59, (3, 4, 0), (1, 3, 2, 4), optimize=True) * 2 + del tmp59 + l2new.bbbb += tmp92.transpose((3, 2, 0, 1)) * -1 + l2new.bbbb += tmp92.transpose((2, 3, 0, 1)) + del tmp92 + tmp99 = einsum(v.bbb.xov, (0, 1, 2), tmp44, (3, 4, 0), (1, 3, 2, 4), optimize=True) * -2 + l2new.bbbb += tmp99.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp99.transpose((2, 3, 1, 0)) * -1 + del tmp99 + tmp96 = einsum(tmp95, (0, 1, 2, 3), tmp70, (2, 3, 4, 5), (0, 1, 4, 5), optimize=True) + del tmp95 + l2new.bbbb += tmp96.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp96.transpose((3, 2, 1, 0)) + del tmp96 + tmp91 = einsum(tmp90, (0, 1), l2.bbbb, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) * 2 + del tmp90 + l2new.bbbb += tmp91.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp91.transpose((3, 2, 0, 1)) * -1 + del tmp91 + tmp98 = einsum(v.bbb.xoo, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (2, 3, 4, 1), optimize=True) + tmp98 += einsum(tmp70, (0, 1, 2, 3), t2.bbbb, (4, 5, 2, 3), (5, 4, 1, 0), optimize=True) * -1 + l2new.bbbb += einsum(l2.bbbb, (0, 1, 2, 3), tmp98, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * -2 + del tmp98 + tmp94 = einsum(l2.bbbb, (0, 1, 2, 3), tmp93, (4, 1, 5, 0), (2, 3, 5, 4), optimize=True) * -1 + del tmp93 + l2new.bbbb += tmp94.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp94.transpose((2, 3, 1, 0)) * -1 + del tmp94 + tmp83 = einsum(tmp70, (0, 1, 2, 3), tmp82, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) + del tmp82 + l2new.bbbb += tmp83.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp83.transpose((3, 2, 0, 1)) + l2new.bbbb += tmp83.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp83.transpose((2, 3, 0, 1)) * -1 + del tmp83 + tmp61 = einsum(tmp60, (0, 1, 2, 3), l2.abab, (1, 3, 4, 5), (4, 5, 0, 2), optimize=True) + del tmp60 + l2new.abab += tmp61.transpose((2, 3, 0, 1)) * 0.5 + l2new.abab += tmp61.transpose((2, 3, 0, 1)) * 0.5 + del tmp61 + tmp51 = einsum(l2.bbbb, (0, 1, 2, 3), t2.abab, (4, 3, 5, 1), (4, 2, 5, 0), optimize=True) + l2new.abab += einsum(tmp51, (0, 1, 2, 3), tmp11, (4, 0, 2, 5), (5, 3, 4, 1), optimize=True) * -2 + del tmp51 + tmp48 = f.bb.oo.transpose((1, 0)).copy() * 0.5 + tmp48 += einsum(v.bbb.xov, (0, 1, 2), tmp47, (3, 2, 0), (3, 1), optimize=True) + del tmp47 + l2new.abab += einsum(tmp48, (0, 1), l2.abab, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) * -2 + del tmp48 + tmp73 = einsum(tmp71, (0, 1, 2), l2.aaaa, (1, 3, 0, 4), (4, 3, 2), optimize=True) * 2 + del tmp71 + tmp73 += einsum(tmp72, (0, 1, 2), l2.abab, (3, 1, 4, 0), (4, 3, 2), optimize=True) + del tmp72 + l2new.abab += einsum(v.bbb.xov, (0, 1, 2), tmp73, (3, 4, 0), (4, 2, 3, 1), optimize=True) + del tmp73 + tmp52 = tmp6.transpose((1, 0, 3, 2)).copy() * 0.5 + tmp52 += einsum(tmp11, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 2), (4, 0, 5, 3), optimize=True) + l2new.abab += einsum(tmp52, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) * -2 + del tmp52 + tmp69 = einsum(t2.abab, (0, 1, 2, 3), l2.aaaa, (4, 2, 5, 0), (5, 1, 4, 3), optimize=True) + tmp69 += einsum(t2.bbbb, (0, 1, 2, 3), l2.abab, (4, 2, 5, 0), (5, 1, 4, 3), optimize=True) + l2new.abab += einsum(tmp70, (0, 1, 2, 3), tmp69, (4, 0, 5, 3), (5, 2, 4, 1), optimize=True) * -2 + del tmp70, tmp69 + tmp67 = einsum(v.bbb.xoo, (0, 1, 2), v.baa.xoo, (0, 3, 4), (4, 3, 2, 1), optimize=True) + tmp67 += einsum(tmp50, (0, 1, 2, 3), t2.abab, (4, 5, 2, 3), (4, 0, 5, 1), optimize=True) + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp67, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) + del tmp67 + tmp63 = einsum(tmp50, (0, 1, 2, 3), tmp62, (4, 0, 5, 1), (4, 5, 2, 3), optimize=True) + del tmp62 + l2new.abab += tmp63.transpose((2, 3, 0, 1)) * 0.5 + l2new.abab += tmp63.transpose((2, 3, 0, 1)) * 0.5 + del tmp63 + tmp64 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp64 += einsum(v.baa.xov, (0, 1, 2), tmp27, (1, 3, 0), (3, 2), optimize=True) + del tmp27 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp64, (0, 4), (4, 1, 2, 3), optimize=True) * -1 + del tmp64 + tmp49 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) + l2new.abab += einsum(tmp50, (0, 1, 2, 3), tmp49, (4, 1, 5, 2), (5, 3, 0, 4), optimize=True) + del tmp49 + tmp45 = v.bbb.xov.transpose((1, 2, 0)).copy() * 0.5 + tmp45 += tmp44 * -1 + del tmp44 + l2new.abab += einsum(tmp45, (0, 1, 2), v.baa.xov, (2, 3, 4), (4, 1, 3, 0), optimize=True) * 2 + del tmp45 + tmp74 = einsum(v.baa.xoo, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + l2new.abab += einsum(tmp74, (0, 1, 2, 3), l2.abab, (4, 3, 1, 5), (4, 2, 0, 5), optimize=True) * -1 + del tmp74 + tmp75 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) + l2new.abab += einsum(tmp50, (0, 1, 2, 3), tmp75, (4, 0, 5, 3), (2, 5, 4, 1), optimize=True) + del tmp50, tmp75 + tmp46 = einsum(v.bbb.xoo, (0, 1, 2), v.baa.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + l2new.abab += einsum(tmp46, (0, 1, 2, 3), l2.abab, (3, 4, 5, 1), (2, 4, 5, 0), optimize=True) * -1 + del tmp46 + tmp5 = einsum(v.baa.xov, (0, 1, 2), tmp4, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp4 + l2new.aaaa = tmp5.transpose((2, 3, 1, 0)).copy() * -1 + l2new.aaaa += tmp5.transpose((3, 2, 1, 0)) + del tmp5 + tmp32 = einsum(l2.aaaa, (0, 1, 2, 3), tmp31, (4, 1, 5, 0), (2, 3, 5, 4), optimize=True) * -1 + del tmp31 + l2new.aaaa += tmp32.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp32.transpose((2, 3, 1, 0)) * -1 + del tmp32 + tmp38 = einsum(v.baa.xoo, (0, 1, 2), v.baa.xoo, (0, 3, 4), (2, 3, 4, 1), optimize=True) + tmp38 += einsum(tmp11, (0, 1, 2, 3), t2.aaaa, (4, 5, 2, 3), (5, 4, 1, 0), optimize=True) * -1 + l2new.aaaa += einsum(tmp38, (0, 1, 2, 3), l2.aaaa, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * -2 + del tmp38 + tmp34 = einsum(tmp11, (0, 1, 2, 3), tmp33, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + del tmp33 + l2new.aaaa += tmp34.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp34.transpose((3, 2, 1, 0)) + del tmp34 + tmp37 = einsum(l2.aaaa, (0, 1, 2, 3), tmp36, (0, 4), (2, 3, 1, 4), optimize=True) * 4 + del tmp36 + l2new.aaaa += tmp37.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp37.transpose((3, 2, 1, 0)) + del tmp37 + tmp40 = einsum(tmp39, (0, 1, 2), v.baa.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) * -2 + del tmp39 + l2new.aaaa += tmp40.transpose((2, 3, 0, 1)) + l2new.aaaa += tmp40.transpose((3, 2, 0, 1)) * -1 + del tmp40 + tmp26 = einsum(tmp25, (0, 1, 2), v.baa.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) * 2 + del tmp25 + l2new.aaaa += tmp26.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp26.transpose((2, 3, 0, 1)) + l2new.aaaa += tmp26.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp26.transpose((3, 2, 0, 1)) * -1 + del tmp26 + tmp30 = einsum(tmp29, (0, 1), l2.aaaa, (2, 3, 0, 4), (4, 1, 2, 3), optimize=True) * 2 + del tmp29 + l2new.aaaa += tmp30.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp30.transpose((3, 2, 0, 1)) * -1 + del tmp30 + tmp7 = einsum(tmp6, (0, 1, 2, 3), l2.aaaa, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + del tmp6 + l2new.aaaa += tmp7.transpose((2, 3, 1, 0)) * 2 + l2new.aaaa += tmp7.transpose((2, 3, 0, 1)) * -2 + l2new.aaaa += tmp7.transpose((3, 2, 1, 0)) * -2 + l2new.aaaa += tmp7.transpose((3, 2, 0, 1)) * 2 + del tmp7 + tmp12 = einsum(tmp11, (0, 1, 2, 3), tmp10, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) + del tmp11, tmp10 + l2new.aaaa += tmp12.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp12.transpose((3, 2, 0, 1)) + l2new.aaaa += tmp12.transpose((2, 3, 1, 0)) + l2new.aaaa += tmp12.transpose((2, 3, 0, 1)) * -1 + del tmp12 + + return {f"l2new": l2new} + +def make_rdm1_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:31:31.485370. + + Parameters + ---------- + l2 : Namespace of arrays + L2 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + + Returns + ------- + rdm1 : Namespace of arrays + One-particle reduced density matrix. + """ + + rdm1 = Namespace() + rdm1.aa = Namespace() + rdm1.bb = Namespace() + delta = Namespace( + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t1.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t1.bbbb.shape[-1])), + ) + rdm1.aa.oo = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 1), (4, 2), optimize=True) * -1 + rdm1.aa.oo += einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 1), (0, 4), optimize=True) * -2 + rdm1.aa.oo += delta.aa.oo.transpose((1, 0)) + rdm1.bb.oo = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 1), (0, 4), optimize=True) * -2 + rdm1.bb.oo += einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 1), (4, 3), optimize=True) * -1 + rdm1.bb.oo += delta.bb.oo.transpose((1, 0)) + del delta + rdm1.aa.vv = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + rdm1.aa.vv += einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 1), (0, 4), optimize=True) * 2 + rdm1.bb.vv = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + rdm1.bb.vv += einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (4, 3, 0, 1), (4, 2), optimize=True) * 2 + rdm1.aa.oo = np.zeros((t2.aa.shape[0], t2.aa.shape[0])) + rdm1.aa.vv = np.zeros((t2.aa.shape[-1], t2.aa.shape[-1])) + rdm1.bb.oo = np.zeros((t2.bb.shape[0], t2.bb.shape[0])) + rdm1.bb.vv = np.zeros((t2.bb.shape[-1], t2.bb.shape[-1])) + rdm1.aa = np.block([[rdm1.aa.oo, rdm1.aa.ov], [rdm1.aa.vo, rdm1.aa.vv]]) + rdm1.bb = np.block([[rdm1.bb.oo, rdm1.bb.ov], [rdm1.bb.vo, rdm1.bb.vv]]) + + return rdm1 + +def make_rdm2_f(l2=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:31:38.746069. + + Parameters + ---------- + l2 : Namespace of arrays + L2 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + + Returns + ------- + rdm2 : Namespace of arrays + Two-particle reduced density matrix. + """ + + rdm2 = Namespace() + rdm2.aaaa = Namespace() + rdm2.abab = Namespace() + rdm2.bbbb = Namespace() + delta = Namespace( + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t1.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t1.bbbb.shape[-1])), + ) + tmp5 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 0, 4), (4, 1), optimize=True) + tmp6 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 3, 0, 1), (2, 4), optimize=True) + tmp0 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 1), (4, 0), optimize=True) + tmp1 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 1), (2, 4), optimize=True) + tmp25 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (3, 4, 0, 1), (4, 2), optimize=True) * -1 + tmp24 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + tmp14 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + tmp13 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (3, 4, 0, 1), (4, 2), optimize=True) * -1 + tmp36 = einsum(l2.abab, (0, 1, 2, 3), t2.bbbb, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + rdm2.abab.voov = tmp36.transpose((2, 1, 0, 3)).copy() * 2 + tmp32 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + rdm2.bbbb.vovo = tmp32.transpose((2, 1, 3, 0)).copy() * -4 + rdm2.bbbb.voov = tmp32.transpose((2, 1, 0, 3)).copy() * 4 + rdm2.bbbb.ovvo = tmp32.transpose((1, 2, 3, 0)).copy() * 4 + rdm2.bbbb.ovov = tmp32.transpose((1, 2, 0, 3)).copy() * -4 + tmp34 = einsum(t2.abab, (0, 1, 2, 3), l2.aaaa, (2, 4, 0, 5), (5, 1, 4, 3), optimize=True) + rdm2.abab.voov += tmp34.transpose((2, 1, 0, 3)) * 2 + tmp11 = tmp5.copy() + tmp11 += tmp6 * 2 + rdm2.abab.oovv = einsum(tmp11, (0, 1), t2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + rdm2.bbbb.oooo = einsum(tmp11, (0, 1), delta.bb.oo, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.bbbb.oooo += einsum(tmp11, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp28 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + rdm2.aaaa.vovo = tmp28.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.aaaa.voov = tmp28.transpose((2, 1, 0, 3)).copy() + rdm2.aaaa.ovvo = tmp28.transpose((1, 2, 3, 0)).copy() + rdm2.aaaa.ovov = tmp28.transpose((1, 2, 0, 3)).copy() * -1 + tmp19 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + rdm2.aaaa.vovo += tmp19.transpose((2, 1, 3, 0)) * -4 + rdm2.aaaa.voov += tmp19.transpose((2, 1, 0, 3)) * 4 + rdm2.aaaa.ovvo += tmp19.transpose((1, 2, 3, 0)) * 4 + rdm2.aaaa.ovov += tmp19.transpose((1, 2, 0, 3)) * -4 + tmp21 = einsum(t2.aaaa, (0, 1, 2, 3), l2.abab, (3, 4, 1, 5), (0, 5, 2, 4), optimize=True) + rdm2.abab.ovvo = tmp21.transpose((0, 3, 2, 1)).copy() * 2 + tmp17 = einsum(l2.bbbb, (0, 1, 2, 3), t2.abab, (4, 3, 5, 1), (4, 2, 5, 0), optimize=True) + rdm2.abab.ovvo += tmp17.transpose((0, 3, 2, 1)) * 2 + tmp3 = tmp0.copy() + tmp3 += tmp1 * 0.5 + rdm2.aaaa.oooo = einsum(tmp3, (0, 1), delta.aa.oo, (2, 3), (3, 1, 0, 2), optimize=True) * 2 + rdm2.aaaa.oooo += einsum(tmp3, (0, 1), delta.aa.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -2 + tmp39 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + rdm2.bbbb.vovo += tmp39.transpose((2, 1, 3, 0)) * -1 + rdm2.bbbb.voov += tmp39.transpose((2, 1, 0, 3)) + rdm2.bbbb.ovvo += tmp39.transpose((1, 2, 3, 0)) + rdm2.bbbb.ovov += tmp39.transpose((1, 2, 0, 3)) * -1 + del tmp39 + tmp26 = tmp24.copy() * 0.5 + tmp26 += tmp25 + rdm2.bbbb.vovo += einsum(delta.bb.oo, (0, 1), tmp26, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.bbbb.ovvo += einsum(delta.bb.oo, (0, 1), tmp26, (2, 3), (1, 2, 3, 0), optimize=True) * -2 + rdm2.abab.ovov = einsum(delta.aa.oo, (0, 1), tmp26, (2, 3), (1, 2, 0, 3), optimize=True) * 2 + rdm2.bbbb.oovv = einsum(tmp26, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -4 + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp26, (3, 4), (0, 1, 2, 4), optimize=True) * -2 + del tmp26 + tmp23 = tmp13.copy() + tmp23 += tmp14 * 0.5 + rdm2.abab.vovo = einsum(delta.bb.oo, (0, 1), tmp23, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.aaaa.vovo += einsum(delta.aa.oo, (0, 1), tmp23, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.aaaa.ovvo += einsum(delta.aa.oo, (0, 1), tmp23, (2, 3), (1, 2, 3, 0), optimize=True) * -2 + rdm2.aaaa.oovv = einsum(t2.aaaa, (0, 1, 2, 3), tmp23, (2, 4), (1, 0, 4, 3), optimize=True) * 4 + del tmp23 + tmp38 = tmp24.copy() + del tmp24 + tmp38 += tmp25 * 2 + del tmp25 + rdm2.bbbb.voov += einsum(delta.bb.oo, (0, 1), tmp38, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.bbbb.ovov += einsum(delta.bb.oo, (0, 1), tmp38, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.bbbb.oovv += einsum(tmp38, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 + del tmp38 + tmp15 = tmp13.copy() * 2 + del tmp13 + tmp15 += tmp14 + del tmp14 + rdm2.aaaa.voov += einsum(delta.aa.oo, (0, 1), tmp15, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.aaaa.ovov += einsum(delta.aa.oo, (0, 1), tmp15, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.abab.oovv += einsum(tmp15, (0, 1), t2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -1 + rdm2.aaaa.oovv += einsum(tmp15, (0, 1), t2.aaaa, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -2 + del tmp15 + tmp27 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 5, 1), (5, 0, 4, 3), optimize=True) + rdm2.abab.ovov += tmp27.transpose((1, 2, 0, 3)) * -1 + rdm2.abab.oovv += einsum(tmp27, (0, 1, 2, 3), t2.abab, (0, 4, 5, 2), (1, 4, 5, 3), optimize=True) + del tmp27 + tmp37 = einsum(tmp36, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp36 + rdm2.bbbb.oovv += tmp37.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp37 * 2 + rdm2.bbbb.oovv += tmp37.transpose((1, 0, 2, 3)) * -2 + rdm2.bbbb.oovv += tmp37.transpose((0, 1, 3, 2)) * -2 + del tmp37 + tmp33 = einsum(t2.bbbb, (0, 1, 2, 3), tmp32, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) + del tmp32 + rdm2.bbbb.oovv += tmp33 * 8 + rdm2.bbbb.oovv += tmp33.transpose((0, 1, 3, 2)) * -8 + del tmp33 + tmp35 = einsum(tmp34, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + del tmp34 + rdm2.bbbb.oovv += tmp35.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp35.transpose((0, 1, 3, 2)) * -2 + del tmp35 + tmp31 = einsum(t2.bbbb, (0, 1, 2, 3), tmp11, (0, 4), (1, 4, 2, 3), optimize=True) * 2 + del tmp11 + rdm2.bbbb.oovv += tmp31.transpose((0, 1, 3, 2)) * -1 + rdm2.bbbb.oovv += tmp31.transpose((1, 0, 3, 2)) + del tmp31 + tmp12 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp12, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 5), (3, 2, 5, 4), optimize=True) * 2 + rdm2.bbbb.oooo += tmp12.transpose((3, 2, 1, 0)) * 2 + del tmp12 + tmp29 = tmp19.copy() * 4 + tmp29 += tmp28 + del tmp28 + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp29, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp29 + tmp30 = tmp21.copy() + tmp30 += tmp17 + rdm2.abab.oovv += einsum(tmp30, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 4 + del tmp30 + tmp9 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 3, 4, 5), (4, 0, 5, 1), optimize=True) + rdm2.abab.oovv += einsum(tmp9, (0, 1, 2, 3), t2.abab, (0, 2, 4, 5), (1, 3, 4, 5), optimize=True) + rdm2.abab.oooo = tmp9.transpose((1, 3, 0, 2)).copy() + del tmp9 + tmp8 = tmp0.copy() * 2 + tmp8 += tmp1 + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp8, (0, 4), (4, 1, 2, 3), optimize=True) * -1 + rdm2.abab.oooo += einsum(delta.bb.oo, (0, 1), tmp8, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + del tmp8 + tmp4 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + rdm2.aaaa.oovv += einsum(tmp4, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 5), (3, 2, 5, 4), optimize=True) * 2 + rdm2.aaaa.oooo += tmp4.transpose((3, 2, 1, 0)) * 2 + del tmp4 + tmp18 = einsum(tmp17, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp17 + rdm2.aaaa.oovv += tmp18 * 2 + rdm2.aaaa.oovv += tmp18.transpose((0, 1, 3, 2)) * -2 + del tmp18 + tmp22 = einsum(t2.abab, (0, 1, 2, 3), tmp21, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp21 + rdm2.aaaa.oovv += tmp22.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.oovv += tmp22 * 2 + rdm2.aaaa.oovv += tmp22.transpose((1, 0, 2, 3)) * -2 + rdm2.aaaa.oovv += tmp22.transpose((0, 1, 3, 2)) * -2 + del tmp22 + tmp20 = einsum(tmp19, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 2), (1, 4, 3, 5), optimize=True) + del tmp19 + rdm2.aaaa.oovv += tmp20 * 8 + rdm2.aaaa.oovv += tmp20.transpose((0, 1, 3, 2)) * -8 + del tmp20 + tmp16 = einsum(tmp3, (0, 1), t2.aaaa, (0, 2, 3, 4), (2, 1, 3, 4), optimize=True) * 4 + del tmp3 + rdm2.aaaa.oovv += tmp16.transpose((0, 1, 3, 2)) * -1 + rdm2.aaaa.oovv += tmp16.transpose((1, 0, 3, 2)) + del tmp16 + tmp10 = delta.bb.oo.transpose((1, 0)).copy() * -0.5 + tmp10 += tmp5 * 0.5 + tmp10 += tmp6 + rdm2.bbbb.oooo += einsum(tmp10, (0, 1), delta.bb.oo, (2, 3), (1, 3, 2, 0), optimize=True) * 2 + rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp10, (2, 3), (1, 3, 0, 2), optimize=True) * -2 + del tmp10 + tmp7 = delta.bb.oo.transpose((1, 0)).copy() * -1 + tmp7 += tmp5 + del tmp5 + tmp7 += tmp6 * 2 + del tmp6 + rdm2.abab.oooo += einsum(tmp7, (0, 1), delta.aa.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + del tmp7 + tmp2 = delta.aa.oo.transpose((1, 0)).copy() * -1 + tmp2 += tmp0 * 2 + del tmp0 + tmp2 += tmp1 + del tmp1 + rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), tmp2, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), tmp2, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + del delta, tmp2 + rdm2.aaaa.oovv += t2.aaaa.transpose((1, 0, 3, 2)) * 2 + rdm2.abab.oovv += t2.abab + rdm2.bbbb.oovv += t2.bbbb.transpose((1, 0, 3, 2)) * 2 + rdm2.abab.vovo += einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 5, 1), (0, 4, 5, 3), optimize=True) * -1 + rdm2.aaaa.vvoo = l2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.abab.vvoo = l2.abab.copy() + rdm2.bbbb.vvoo = l2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.aaaa.vvvv = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 + rdm2.abab.vvvv = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + rdm2.bbbb.vvvv = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 + rdm2.aaaa.ooov = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.aaaa.oovo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.aaaa.ovoo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.aaaa.vooo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.aaaa.ovvv = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.aaaa.vovv = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.aaaa.vvov = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.aaaa.vvvo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.aabb.ooov = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.aabb.oovo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.aabb.ovoo = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.aabb.vooo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.aabb.ovvv = np.zeros((t2.aaaa.shape[0], t2.aaaa.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.aabb.vovv = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.aabb.vvov = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.aabb.vvvo = np.zeros((t2.aaaa.shape[-1], t2.aaaa.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.bbaa.ooov = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.bbaa.oovo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.bbaa.ovoo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.bbaa.vooo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.aaaa.shape[0], t2.aaaa.shape[0])) + rdm2.bbaa.ovvv = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.bbaa.vovv = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.aaaa.shape[-1], t2.aaaa.shape[-1])) + rdm2.bbaa.vvov = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.aaaa.shape[0], t2.aaaa.shape[-1])) + rdm2.bbaa.vvvo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.aaaa.shape[-1], t2.aaaa.shape[0])) + rdm2.bbbb.ooov = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.bbbb.oovo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.bbbb.ovoo = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.bbbb.vooo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[0], t2.bbbb.shape[0])) + rdm2.bbbb.ovvv = np.zeros((t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.bbbb.vovv = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[-1], t2.bbbb.shape[-1])) + rdm2.bbbb.vvov = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[0], t2.bbbb.shape[-1])) + rdm2.bbbb.vvvo = np.zeros((t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[-1], t2.bbbb.shape[0])) + rdm2.aaaa = pack_2e(rdm2.aaaa.oooo, rdm2.aaaa.ooov, rdm2.aaaa.oovo, rdm2.aaaa.ovoo, rdm2.aaaa.vooo, rdm2.aaaa.oovv, rdm2.aaaa.ovov, rdm2.aaaa.ovvo, rdm2.aaaa.voov, rdm2.aaaa.vovo, rdm2.aaaa.vvoo, rdm2.aaaa.ovvv, rdm2.aaaa.vovv, rdm2.aaaa.vvov, rdm2.aaaa.vvvo, rdm2.aaaa.vvvv) + rdm2.abab = pack_2e(rdm2.abab.oooo, rdm2.abab.ooov, rdm2.abab.oovo, rdm2.abab.ovoo, rdm2.abab.vooo, rdm2.abab.oovv, rdm2.abab.ovov, rdm2.abab.ovvo, rdm2.abab.voov, rdm2.abab.vovo, rdm2.abab.vvoo, rdm2.abab.ovvv, rdm2.abab.vovv, rdm2.abab.vvov, rdm2.abab.vvvo, rdm2.abab.vvvv) + rdm2.bbbb = pack_2e(rdm2.bbbb.oooo, rdm2.bbbb.ooov, rdm2.bbbb.oovo, rdm2.bbbb.ovoo, rdm2.bbbb.vooo, rdm2.bbbb.oovv, rdm2.bbbb.ovov, rdm2.bbbb.ovvo, rdm2.bbbb.voov, rdm2.bbbb.vovo, rdm2.bbbb.vvoo, rdm2.bbbb.ovvv, rdm2.bbbb.vovv, rdm2.bbbb.vvov, rdm2.bbbb.vvvo, rdm2.bbbb.vvvv) + rdm2 = Namespace( + aaaa=rdm2.aaaa.swapaxes(1, 2), + aabb=rdm2.abab.swapaxes(1, 2), + bbbb=rdm2.bbbb.swapaxes(1, 2), + ) + + return rdm2 + diff --git a/ebcc/codegen/UDFCCSD.py b/ebcc/codegen/UDFCCSD.py new file mode 100644 index 00000000..c2ad657f --- /dev/null +++ b/ebcc/codegen/UDFCCSD.py @@ -0,0 +1,2580 @@ +""" +Code generated by `albert`: +https://github.com/obackhouse/albert + + * date: 2024-07-18T20:45:25.229848 + * python version: 3.10.12 (main, Mar 22 2024, 16:50:05) [GCC 11.4.0] + * albert version: 0.0.0 + * caller: /home/ollie/git/albert/albert/codegen/einsum.py + * node: ollie-desktop + * system: Linux + * processor: x86_64 + * release: 6.5.0-44-generic +""" + +from ebcc import numpy as np +from ebcc.util import pack_2e, einsum, direct_sum, Namespace + + +def energy(f=None, t1=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:45:26.470368. + + Parameters + ---------- + f : Namespace of arrays + Fock matrix. + t1 : Namespace of arrays + T1 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + e_cc : float + Coupled cluster energy. + """ + + tmp0 = einsum(v.bbb.xov, (0, 1, 2), t1.bb, (1, 2), (0,), optimize=True) + tmp5 = einsum(v.bbb.xov, (0, 1, 2), t1.bb, (3, 2), (3, 1, 0), optimize=True) + tmp3 = einsum(t1.aa, (0, 1), v.baa.xov, (2, 3, 1), (0, 3, 2), optimize=True) + tmp1 = einsum(t1.aa, (0, 1), v.baa.xov, (2, 0, 1), (2,), optimize=True) + tmp1 += tmp0 * 2 + tmp7 = einsum(v.bbb.xov, (0, 1, 2), t2.bbbb, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp7 += einsum(tmp0, (0,), t1.bb, (1, 2), (1, 2, 0), optimize=True) * 0.5 + del tmp0 + e_cc = einsum(v.bbb.xov, (0, 1, 2), tmp7, (1, 2, 0), (), optimize=True) + del tmp7 + tmp6 = f.bb.ov.copy() * 2 + tmp6 += einsum(v.bbb.xov, (0, 1, 2), tmp5, (1, 3, 0), (3, 2), optimize=True) * -1 + del tmp5 + e_cc += einsum(tmp6, (0, 1), t1.bb, (0, 1), (), optimize=True) * 0.5 + del tmp6 + tmp4 = f.aa.ov.copy() * 2 + tmp4 += einsum(tmp3, (0, 1, 2), v.baa.xov, (2, 0, 3), (1, 3), optimize=True) * -1 + del tmp3 + e_cc += einsum(t1.aa, (0, 1), tmp4, (0, 1), (), optimize=True) * 0.5 + del tmp4 + tmp2 = einsum(v.baa.xov, (0, 1, 2), t2.aaaa, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp2 += einsum(v.bbb.xov, (0, 1, 2), t2.abab, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp2 += einsum(tmp1, (0,), t1.aa, (1, 2), (1, 2, 0), optimize=True) * 0.5 + del tmp1 + e_cc += einsum(tmp2, (0, 1, 2), v.baa.xov, (2, 0, 1), (), optimize=True) + del tmp2 + + return e_cc + +def update_amps(f=None, t1=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:46:30.783199. + + Parameters + ---------- + f : Namespace of arrays + Fock matrix. + t1 : Namespace of arrays + T1 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + t1new : Namespace of arrays + Updated T1 residuals. + t2new : Namespace of arrays + Updated T2 residuals. + """ + + t1new = Namespace() + t2new = Namespace() + tmp8 = einsum(t1.aa, (0, 1), v.baa.xov, (2, 0, 1), (2,), optimize=True) + tmp9 = einsum(v.bbb.xov, (0, 1, 2), t1.bb, (1, 2), (0,), optimize=True) + tmp12 = einsum(v.bbb.xov, (0, 1, 2), t1.bb, (3, 2), (3, 1, 0), optimize=True) + tmp0 = einsum(t1.aa, (0, 1), v.baa.xov, (2, 3, 1), (0, 3, 2), optimize=True) + tmp154 = einsum(v.bbb.xov, (0, 1, 2), t1.bb, (1, 3), (3, 2, 0), optimize=True) + tmp10 = tmp8.copy() + tmp10 += tmp9 + tmp33 = einsum(v.bbb.xov, (0, 1, 2), t2.bbbb, (3, 1, 2, 4), (3, 4, 0), optimize=True) * -1 + tmp30 = einsum(v.baa.xov, (0, 1, 2), t2.abab, (1, 3, 2, 4), (3, 4, 0), optimize=True) + tmp13 = einsum(tmp12, (0, 1, 2), v.bbb.xov, (2, 0, 3), (1, 3), optimize=True) + tmp168 = einsum(t1.bb, (0, 1), tmp12, (2, 0, 3), (2, 1, 3), optimize=True) + tmp131 = einsum(t1.bb, (0, 1), v.bbb.xvv, (2, 3, 1), (0, 3, 2), optimize=True) + tmp14 = tmp8.copy() + del tmp8 + tmp14 += tmp9 + del tmp9 + tmp71 = einsum(t1.aa, (0, 1), tmp0, (2, 0, 3), (2, 1, 3), optimize=True) + tmp60 = einsum(v.baa.xvv, (0, 1, 2), t1.aa, (3, 2), (3, 1, 0), optimize=True) + tmp47 = einsum(t1.aa, (0, 1), v.baa.xov, (2, 0, 3), (1, 3, 2), optimize=True) + tmp6 = einsum(v.bbb.xov, (0, 1, 2), t2.abab, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp20 = einsum(v.baa.xov, (0, 1, 2), t2.aaaa, (1, 3, 4, 2), (3, 4, 0), optimize=True) * -1 + tmp17 = einsum(v.baa.xov, (0, 1, 2), tmp0, (1, 3, 0), (3, 2), optimize=True) + tmp210 = v.bbb.xvv.transpose((2, 1, 0)).copy() + tmp210 += tmp154.transpose((1, 0, 2)) * -1 + tmp180 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp136 = tmp30.copy() + tmp136 += tmp33 * 2 + tmp136 += einsum(tmp10, (0,), t1.bb, (1, 2), (1, 2, 0), optimize=True) + tmp200 = f.bb.ov.copy() * -1 + tmp200 += tmp13 + tmp169 = tmp131.copy() + tmp169 += tmp168 * -1 + t2new.abab = einsum(tmp20, (0, 1, 2), tmp169, (3, 4, 2), (0, 3, 1, 4), optimize=True) * 2 + tmp151 = v.bbb.xoo.transpose((2, 1, 0)).copy() + tmp151 += tmp12.transpose((1, 0, 2)) + tmp15 = einsum(v.bbb.xov, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + t1new.bb = tmp15.copy() + tmp88 = v.baa.xoo.transpose((2, 1, 0)).copy() + tmp88 += tmp0.transpose((1, 0, 2)) + tmp72 = tmp60.copy() + tmp72 += tmp71 * -1 + tmp89 = v.baa.xvv.transpose((2, 1, 0)).copy() + tmp89 += tmp47.transpose((1, 0, 2)) * -1 + tmp75 = tmp20.copy() * 2 + tmp75 += tmp6 + tmp75 += einsum(t1.aa, (0, 1), tmp10, (2,), (0, 1, 2), optimize=True) + tmp77 = f.aa.ov.copy() * -1 + tmp77 += tmp17 + tmp42 = einsum(v.baa.xov, (0, 1, 2), v.baa.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp45 = einsum(v.baa.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + tmp220 = einsum(tmp210, (0, 1, 2), v.bbb.xoo, (2, 3, 4), (3, 4, 0, 1), optimize=True) + tmp181 = einsum(t1.bb, (0, 1), tmp180, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp180 + t2new.bbbb = tmp181.copy() * -1 + t2new.bbbb += tmp181.transpose((1, 0, 2, 3)) + t2new.bbbb += tmp181.transpose((0, 1, 3, 2)) + tmp199 = einsum(v.bbb.xov, (0, 1, 2), tmp136, (3, 2, 0), (1, 3), optimize=True) + tmp201 = einsum(tmp200, (0, 1), t1.bb, (2, 1), (0, 2), optimize=True) + del tmp200 + tmp29 = einsum(t1.bb, (0, 1), v.bbb.xoo, (2, 3, 0), (3, 1, 2), optimize=True) + tmp208 = t2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + tmp208 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + tmp52 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xov, (0, 3, 4), (1, 3, 2, 4), optimize=True) + tmp226 = einsum(tmp12, (0, 1, 2), tmp12, (3, 4, 2), (0, 3, 1, 4), optimize=True) + tmp170 = einsum(v.bbb.xov, (0, 1, 2), tmp169, (3, 4, 0), (1, 3, 2, 4), optimize=True) + tmp217 = einsum(tmp210, (0, 1, 2), tmp12, (3, 4, 2), (3, 4, 0, 1), optimize=True) + tmp152 = einsum(tmp151, (0, 1, 2), t1.bb, (0, 3), (1, 3, 2), optimize=True) + tmp16 = f.bb.ov.copy() + tmp16 += tmp13 * -1 + tmp16 += tmp15 + del tmp15 + t1new.bb += einsum(t2.bbbb, (0, 1, 2, 3), tmp16, (0, 2), (1, 3), optimize=True) * 2 + t1new.aa = einsum(t2.abab, (0, 1, 2, 3), tmp16, (1, 3), (0, 2), optimize=True) + tmp184 = v.bbb.xvv.transpose((2, 1, 0)).copy() + tmp184 += tmp154.transpose((1, 0, 2)) * -1 + tmp195 = einsum(v.bbb.xoo, (0, 1, 2), tmp12, (3, 4, 0), (3, 2, 1, 4), optimize=True) + tmp5 = einsum(t1.aa, (0, 1), v.baa.xoo, (2, 3, 0), (3, 1, 2), optimize=True) + tmp22 = f.aa.ov.copy() + tmp22 += tmp17 * -1 + tmp61 = tmp60.copy() + tmp61 += tmp20 * 2 + tmp61 += tmp6 + tmp61 += einsum(t1.aa, (0, 1), tmp10, (2,), (0, 1, 2), optimize=True) + tmp144 = einsum(v.bbb.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + tmp18 = einsum(v.baa.xov, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + t1new.aa += tmp18 + tmp86 = t2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + tmp86 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + tmp92 = einsum(t1.aa, (0, 1), tmp88, (0, 2, 3), (2, 1, 3), optimize=True) + tmp98 = einsum(v.baa.xov, (0, 1, 2), tmp72, (3, 4, 0), (1, 3, 2, 4), optimize=True) + tmp99 = einsum(tmp0, (0, 1, 2), tmp89, (3, 4, 2), (0, 1, 3, 4), optimize=True) + tmp50 = einsum(v.bbb.xov, (0, 1, 2), v.baa.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + tmp76 = einsum(tmp75, (0, 1, 2), v.baa.xov, (2, 3, 1), (3, 0), optimize=True) + del tmp75 + tmp78 = einsum(t1.aa, (0, 1), tmp77, (2, 1), (0, 2), optimize=True) + del tmp77 + tmp108 = einsum(tmp0, (0, 1, 2), tmp0, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp48 = v.baa.xvv.transpose((2, 1, 0)).copy() + tmp48 += tmp47.transpose((1, 0, 2)) * -1 + tmp43 = einsum(t1.aa, (0, 1), tmp42, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp42 + t2new.aaaa = tmp43.copy() * -1 + t2new.aaaa += tmp43.transpose((1, 0, 2, 3)) + t2new.aaaa += tmp43.transpose((0, 1, 3, 2)) + tmp102 = einsum(v.baa.xoo, (0, 1, 2), tmp89, (3, 4, 0), (1, 2, 3, 4), optimize=True) + tmp69 = einsum(tmp0, (0, 1, 2), v.baa.xoo, (2, 3, 4), (0, 4, 3, 1), optimize=True) + tmp204 = einsum(v.bbb.xoo, (0, 1, 2), tmp131, (3, 4, 0), (3, 2, 1, 4), optimize=True) + tmp186 = einsum(v.baa.xov, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (1, 3, 4, 2), optimize=True) + tmp187 = tmp45.transpose((1, 0, 2, 3)).copy() * -1 + tmp187 += tmp45.transpose((1, 0, 3, 2)) + tmp221 = tmp181.copy() + tmp221 += tmp220.transpose((1, 0, 3, 2)) + del tmp220 + tmp237 = einsum(tmp12, (0, 1, 2), v.bbb.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) + tmp202 = tmp199.transpose((1, 0)).copy() + del tmp199 + tmp202 += tmp201.transpose((1, 0)) * -1 + del tmp201 + tmp209 = tmp29.copy() * -1 + tmp209 += tmp131 + tmp209 += einsum(v.bbb.xov, (0, 1, 2), tmp208, (1, 3, 2, 4), (3, 4, 0), optimize=True) + del tmp208 + tmp192 = tmp131.copy() + tmp192 += tmp30 + tmp192 += tmp33 * 2 + tmp192 += einsum(tmp10, (0,), t1.bb, (1, 2), (1, 2, 0), optimize=True) + tmp36 = f.bb.ov.copy() + tmp36 += tmp13 * -1 + del tmp13 + tmp128 = tmp30.copy() * 0.5 + tmp128 += tmp33 + tmp233 = einsum(tmp52, (0, 1, 2, 3), t2.bbbb, (4, 5, 2, 3), (4, 5, 1, 0), optimize=True) * -1 + tmp124 = einsum(v.bbb.xoo, (0, 1, 2), tmp12, (2, 3, 0), (1, 3), optimize=True) + tmp230 = einsum(t1.bb, (0, 1), tmp226, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) + tmp35 = einsum(tmp10, (0,), v.bbb.xoo, (0, 1, 2), (1, 2), optimize=True) + tmp218 = tmp170.transpose((1, 0, 3, 2)).copy() * -1 + tmp218 += tmp217.transpose((0, 1, 3, 2)) + del tmp217 + tmp212 = tmp131.copy() * -1 + tmp212 += tmp30 * -1 + tmp212 += tmp152 + tmp215 = einsum(tmp30, (0, 1, 2), v.bbb.xoo, (2, 3, 4), (0, 4, 3, 1), optimize=True) + tmp133 = einsum(v.bbb.xvv, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp132 = einsum(v.bbb.xov, (0, 1, 2), tmp131, (1, 3, 0), (2, 3), optimize=True) + tmp134 = einsum(tmp16, (0, 1), t1.bb, (0, 2), (2, 1), optimize=True) + del tmp16 + tmp197 = einsum(tmp169, (0, 1, 2), v.bbb.xoo, (2, 3, 4), (3, 4, 0, 1), optimize=True) + tmp130 = tmp30.copy() + tmp130 += tmp33 * 2 + t2new.abab += einsum(v.baa.xov, (0, 1, 2), tmp130, (3, 4, 0), (1, 3, 2, 4), optimize=True) + tmp240 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 3, 4, 2), optimize=True) + tmp228 = einsum(tmp131, (0, 1, 2), tmp12, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp235 = einsum(v.bbb.xov, (0, 1, 2), tmp184, (3, 4, 0), (1, 4, 3, 2), optimize=True) + tmp206 = einsum(t1.bb, (0, 1), tmp195, (2, 3, 4, 0), (2, 3, 4, 1), optimize=True) + tmp183 = tmp52.transpose((1, 0, 2, 3)).copy() + tmp183 += tmp52.transpose((1, 0, 3, 2)) * -1 + tmp147 = tmp5.copy() * -1 + tmp147 += tmp20 * 2 + tmp147 += tmp6 + tmp91 = einsum(t2.abab, (0, 1, 2, 3), tmp52, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) + tmp141 = tmp20.copy() + tmp141 += tmp6 * 0.5 + tmp141 += einsum(t1.aa, (0, 1), tmp10, (2,), (0, 1, 2), optimize=True) * 0.5 + tmp23 = einsum(t1.aa, (0, 1), tmp22, (2, 1), (0, 2), optimize=True) * 0.5 + tmp38 = einsum(tmp0, (0, 1, 2), v.baa.xoo, (2, 3, 0), (3, 1), optimize=True) + tmp57 = einsum(v.baa.xoo, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp27 = v.bbb.xoo.transpose((2, 1, 0)).copy() + tmp27 += tmp12 + tmp145 = v.baa.xvv.transpose((2, 1, 0)).copy() + tmp145 += tmp47 * -1 + tmp148 = v.baa.xvv.transpose((2, 1, 0)).copy() + tmp148 += tmp47 * -1 + del tmp47 + tmp155 = v.bbb.xvv.transpose((2, 1, 0)).copy() + tmp155 += tmp154 * -1 + tmp174 = einsum(v.baa.xov, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + tmp85 = einsum(tmp45, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) + tmp62 = einsum(v.baa.xov, (0, 1, 2), tmp61, (1, 3, 0), (2, 3), optimize=True) + del tmp61 + tmp63 = einsum(v.baa.xvv, (0, 1, 2), tmp10, (0,), (1, 2), optimize=True) + tmp64 = einsum(t1.aa, (0, 1), tmp22, (0, 2), (1, 2), optimize=True) + del tmp22 + tmp165 = einsum(tmp144, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 4, 3), optimize=True) + tmp166 = v.bbb.xvv.transpose((2, 1, 0)).copy() + tmp166 += tmp154 * -1 + del tmp154 + tmp31 = t2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + tmp31 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + tmp161 = v.bbb.xov.transpose((1, 2, 0)).copy() * -1 + tmp161 += tmp29 + tmp19 = f.aa.ov.copy() + tmp19 += tmp17 * -1 + del tmp17 + tmp19 += tmp18 + del tmp18 + t1new.bb += einsum(tmp19, (0, 1), t2.abab, (0, 2, 1, 3), (2, 3), optimize=True) + t1new.aa += einsum(t2.aaaa, (0, 1, 2, 3), tmp19, (0, 2), (1, 3), optimize=True) * 2 + tmp87 = tmp5.copy() * -1 + tmp87 += tmp60 + tmp87 += einsum(v.baa.xov, (0, 1, 2), tmp86, (1, 3, 2, 4), (3, 4, 0), optimize=True) + del tmp86 + tmp93 = tmp60.copy() * -1 + tmp93 += tmp6 * -1 + tmp93 += tmp92 + tmp100 = tmp98.transpose((1, 0, 3, 2)).copy() * -1 + tmp100 += tmp99.transpose((0, 1, 3, 2)) + del tmp99 + tmp96 = einsum(tmp6, (0, 1, 2), v.baa.xoo, (2, 3, 4), (0, 4, 3, 1), optimize=True) + tmp51 = einsum(tmp50, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp50 + t2new.abab += tmp51 * -1 + tmp53 = tmp52.transpose((1, 0, 2, 3)).copy() * -1 + tmp53 += tmp52.transpose((1, 0, 3, 2)) + tmp55 = tmp20.copy() * 2 + tmp55 += tmp6 + tmp79 = tmp76.transpose((1, 0)).copy() + del tmp76 + tmp79 += tmp78 * -1 + del tmp78 + tmp112 = einsum(tmp108, (0, 1, 2, 3), t1.aa, (2, 4), (1, 0, 3, 4), optimize=True) + tmp115 = einsum(t2.aaaa, (0, 1, 2, 3), tmp45, (4, 5, 2, 3), (0, 1, 5, 4), optimize=True) * -1 + tmp117 = einsum(v.baa.xov, (0, 1, 2), tmp48, (3, 4, 0), (1, 4, 3, 2), optimize=True) + tmp122 = einsum(v.baa.xvv, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 2, 4), optimize=True) + tmp103 = tmp43.copy() + tmp103 += tmp102.transpose((1, 0, 3, 2)) + del tmp102 + tmp81 = einsum(tmp69, (0, 1, 2, 3), t1.aa, (3, 4), (0, 1, 2, 4), optimize=True) + tmp46 = tmp45.transpose((1, 0, 2, 3)).copy() * -1 + tmp46 += tmp45.transpose((1, 0, 3, 2)) + tmp73 = einsum(tmp72, (0, 1, 2), v.baa.xoo, (2, 3, 4), (3, 4, 0, 1), optimize=True) + tmp83 = einsum(tmp60, (0, 1, 2), v.baa.xoo, (2, 3, 4), (0, 4, 3, 1), optimize=True) + tmp110 = einsum(tmp60, (0, 1, 2), tmp0, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp66 = tmp20.copy() * 2 + tmp66 += tmp6 + tmp119 = einsum(tmp0, (0, 1, 2), v.baa.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) + tmp25 = v.bbb.xoo.transpose((2, 1, 0)).copy() + tmp25 += tmp12.transpose((1, 0, 2)) + tmp34 = tmp29.copy() * -1 + tmp34 += tmp30 + tmp34 += tmp33 * 2 + tmp34 += einsum(tmp10, (0,), t1.bb, (1, 2), (1, 2, 0), optimize=True) + tmp7 = t2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + tmp7 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + tmp21 = tmp5.copy() * -1 + tmp21 += tmp20 * 2 + tmp21 += tmp6 + tmp21 += einsum(t1.aa, (0, 1), tmp10, (2,), (0, 1, 2), optimize=True) + tmp3 = v.baa.xoo.transpose((2, 1, 0)).copy() + tmp3 += tmp0 + tmp1 = v.baa.xoo.transpose((2, 1, 0)).copy() + tmp1 += tmp0.transpose((1, 0, 2)) + tmp205 = einsum(t1.bb, (0, 1), tmp204, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp204 + t2new.bbbb += tmp205.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp205 + del tmp205 + tmp188 = einsum(t1.bb, (0, 1), tmp186, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) + del tmp186 + tmp188 += einsum(tmp187, (0, 1, 2, 3), t2.abab, (0, 4, 3, 5), (1, 4, 2, 5), optimize=True) + del tmp187 + t2new.bbbb += einsum(t2.abab, (0, 1, 2, 3), tmp188, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -1 + del tmp188 + tmp222 = einsum(t2.bbbb, (0, 1, 2, 3), tmp221, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp221 + t2new.bbbb += tmp222.transpose((0, 1, 3, 2)) * 2 + t2new.bbbb += tmp222.transpose((1, 0, 3, 2)) * -2 + del tmp222 + tmp238 = einsum(tmp237, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp237 + t2new.bbbb += tmp238 * -1 + t2new.bbbb += tmp238.transpose((1, 0, 2, 3)) + del tmp238 + tmp203 = einsum(tmp202, (0, 1), t2.bbbb, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) * 2 + del tmp202 + t2new.bbbb += tmp203.transpose((0, 1, 3, 2)) + t2new.bbbb += tmp203.transpose((1, 0, 3, 2)) * -1 + del tmp203 + tmp227 = einsum(t2.bbbb, (0, 1, 2, 3), tmp226, (4, 5, 0, 1), (5, 4, 2, 3), optimize=True) * -1 + del tmp226 + t2new.bbbb += tmp227.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp227.transpose((0, 1, 3, 2)) * -1 + del tmp227 + tmp211 = einsum(t2.bbbb, (0, 1, 2, 3), tmp52, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) * 2 + del tmp52 + tmp211 += einsum(v.bbb.xov, (0, 1, 2), tmp209, (3, 4, 0), (3, 1, 4, 2), optimize=True) * -1 + del tmp209 + tmp211 += einsum(tmp151, (0, 1, 2), tmp210, (3, 4, 2), (1, 0, 4, 3), optimize=True) + del tmp210, tmp151 + t2new.bbbb += einsum(tmp211, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (4, 0, 2, 5), optimize=True) * 2 + del tmp211 + tmp193 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp193 += einsum(v.bbb.xov, (0, 1, 2), tmp192, (1, 3, 0), (2, 3), optimize=True) + del tmp192 + tmp193 += einsum(v.bbb.xvv, (0, 1, 2), tmp10, (0,), (2, 1), optimize=True) * -1 + tmp193 += einsum(t1.bb, (0, 1), tmp36, (0, 2), (2, 1), optimize=True) + t2new.bbbb += einsum(tmp193, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 + del tmp193 + tmp189 = einsum(tmp128, (0, 1, 2), v.bbb.xov, (2, 0, 3), (1, 3), optimize=True) + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp189, (4, 2), (1, 0, 3, 4), optimize=True) * -4 + del tmp189 + tmp234 = einsum(tmp233, (0, 1, 2, 3), t2.bbbb, (3, 2, 4, 5), (1, 0, 4, 5), optimize=True) + del tmp233 + t2new.bbbb += tmp234.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp234.transpose((0, 1, 3, 2)) * -1 + del tmp234 + tmp225 = einsum(v.bbb.xov, (0, 1, 2), tmp131, (3, 4, 0), (3, 1, 2, 4), optimize=True) + t2new.bbbb += tmp225.transpose((1, 0, 3, 2)) * -1 + t2new.bbbb += tmp225.transpose((0, 1, 3, 2)) + del tmp225 + tmp179 = t2.bbbb.transpose((1, 0, 3, 2)).copy() + tmp179 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + tmp190 = f.bb.oo.transpose((1, 0)).copy() + tmp190 += tmp124.transpose((1, 0)) * -1 + tmp190 += einsum(v.bbb.xoo, (0, 1, 2), tmp14, (0,), (2, 1), optimize=True) + t2new.bbbb += einsum(tmp190, (0, 1), t2.bbbb, (0, 2, 3, 4), (1, 2, 4, 3), optimize=True) * 2 + del tmp190 + tmp231 = einsum(t1.bb, (0, 1), tmp230, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp230 + t2new.bbbb += tmp231.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp231 + del tmp231 + tmp125 = f.bb.oo.transpose((1, 0)).copy() + tmp125 += tmp124.transpose((1, 0)) * -1 + del tmp124 + tmp125 += tmp35.transpose((1, 0)) + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp125, (0, 4), (1, 4, 3, 2), optimize=True) * -2 + t2new.abab += einsum(tmp125, (0, 1), t2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + del tmp125 + tmp219 = einsum(t2.bbbb, (0, 1, 2, 3), tmp218, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp218 + t2new.bbbb += tmp219.transpose((0, 1, 3, 2)) * 2 + t2new.bbbb += tmp219.transpose((1, 0, 3, 2)) * -2 + t2new.bbbb += tmp219 * -2 + del tmp219 + tmp213 = einsum(tmp45, (0, 1, 2, 3), t2.abab, (0, 4, 3, 5), (1, 4, 2, 5), optimize=True) + del tmp45 + tmp213 += einsum(tmp212, (0, 1, 2), v.baa.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + del tmp212 + t2new.bbbb += einsum(t2.abab, (0, 1, 2, 3), tmp213, (0, 4, 2, 5), (1, 4, 5, 3), optimize=True) + del tmp213 + tmp216 = einsum(t1.bb, (0, 1), tmp215, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp215 + t2new.bbbb += tmp216.transpose((1, 0, 3, 2)) + t2new.bbbb += tmp216.transpose((0, 1, 3, 2)) * -1 + del tmp216 + tmp196 = einsum(t2.bbbb, (0, 1, 2, 3), tmp195, (4, 1, 5, 0), (4, 5, 2, 3), optimize=True) * -1 + del tmp195 + t2new.bbbb += tmp196.transpose((0, 1, 3, 2)) * 2 + t2new.bbbb += tmp196.transpose((1, 0, 3, 2)) * -2 + del tmp196 + tmp232 = einsum(tmp131, (0, 1, 2), tmp131, (3, 4, 2), (3, 0, 4, 1), optimize=True) + t2new.bbbb += tmp232.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp232 + del tmp232 + tmp191 = t2.bbbb.transpose((1, 0, 3, 2)).copy() + tmp191 += einsum(t1.bb, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + tmp239 = tmp131.copy() * -1 + tmp239 += tmp168 + t2new.bbbb += einsum(tmp239, (0, 1, 2), tmp30, (3, 4, 2), (3, 0, 4, 1), optimize=True) * -1 + del tmp239 + tmp135 = f.bb.vv.transpose((1, 0)).copy() + tmp135 += tmp132 * -1 + del tmp132 + tmp135 += tmp133.transpose((1, 0)) + del tmp133 + tmp135 += tmp134.transpose((1, 0)) * -1 + del tmp134 + t2new.bbbb += einsum(t2.bbbb, (0, 1, 2, 3), tmp135, (2, 4), (1, 0, 3, 4), optimize=True) * 2 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp135, (3, 4), (0, 1, 2, 4), optimize=True) + del tmp135 + tmp198 = einsum(t1.bb, (0, 1), tmp197, (2, 0, 3, 4), (3, 2, 4, 1), optimize=True) + del tmp197 + t2new.bbbb += tmp198.transpose((1, 0, 2, 3)) + t2new.bbbb += tmp198.transpose((1, 0, 3, 2)) * -1 + del tmp198 + tmp194 = einsum(v.bbb.xov, (0, 1, 2), tmp130, (3, 4, 0), (1, 3, 2, 4), optimize=True) + del tmp130 + t2new.bbbb += tmp194.transpose((1, 0, 3, 2)) + t2new.bbbb += tmp194.transpose((1, 0, 2, 3)) * -1 + t2new.bbbb += tmp194.transpose((0, 1, 3, 2)) * -1 + t2new.bbbb += tmp194 + del tmp194 + tmp241 = einsum(tmp240, (0, 1, 2, 3), t2.bbbb, (4, 5, 3, 2), (4, 5, 0, 1), optimize=True) + del tmp240 + t2new.bbbb += einsum(tmp241, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 4, 3), optimize=True) * -2 + del tmp241 + tmp178 = einsum(v.bbb.xoo, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (1, 4, 3, 2), optimize=True) + t2new.bbbb += einsum(tmp178, (0, 1, 2, 3), tmp191, (0, 2, 4, 5), (1, 3, 5, 4), optimize=True) + del tmp191 + t2new.bbbb += einsum(tmp179, (0, 1, 2, 3), tmp178, (0, 4, 1, 5), (4, 5, 3, 2), optimize=True) + del tmp178, tmp179 + tmp182 = einsum(tmp30, (0, 1, 2), tmp33, (3, 4, 2), (0, 3, 1, 4), optimize=True) + t2new.bbbb += tmp182.transpose((1, 0, 2, 3)) * -2 + t2new.bbbb += tmp182.transpose((0, 1, 3, 2)) * -2 + t2new.bbbb += tmp182.transpose((1, 0, 3, 2)) * 2 + t2new.bbbb += tmp182 * 2 + del tmp182 + tmp223 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp223 += tmp131 + tmp223 += tmp168 * -1 + del tmp168 + t2new.bbbb += einsum(v.bbb.xov, (0, 1, 2), tmp223, (3, 4, 0), (3, 1, 2, 4), optimize=True) * -1 + del tmp223 + tmp214 = v.bbb.xov.transpose((1, 2, 0)).copy() * -1 + tmp214 += tmp131 * -1 + tmp214 += tmp152 + t2new.bbbb += einsum(v.bbb.xov, (0, 1, 2), tmp214, (3, 4, 0), (1, 3, 2, 4), optimize=True) * -1 + del tmp214 + tmp229 = einsum(t1.bb, (0, 1), tmp228, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp228 + t2new.bbbb += tmp229.transpose((1, 0, 2, 3)) + t2new.bbbb += tmp229 * -1 + t2new.bbbb += tmp229.transpose((1, 0, 3, 2)) * -1 + t2new.bbbb += tmp229.transpose((0, 1, 3, 2)) + del tmp229 + tmp236 = einsum(v.bbb.xvv, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (4, 1, 2, 3), optimize=True) + tmp236 += einsum(tmp235, (0, 1, 2, 3), t1.bb, (0, 4), (3, 2, 4, 1), optimize=True) + del tmp235 + t2new.bbbb += einsum(tmp236, (0, 1, 2, 3), t2.bbbb, (4, 5, 0, 1), (5, 4, 3, 2), optimize=True) * -2 + del tmp236 + tmp207 = einsum(tmp206, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp206 + t2new.bbbb += tmp207.transpose((0, 1, 3, 2)) + t2new.bbbb += tmp207 * -1 + del tmp207 + tmp185 = tmp181.copy() * 0.5 + del tmp181 + tmp185 += einsum(tmp183, (0, 1, 2, 3), t2.bbbb, (0, 4, 3, 5), (4, 1, 5, 2), optimize=True) * -1 + del tmp183 + tmp185 += einsum(tmp184, (0, 1, 2), v.bbb.xoo, (2, 3, 4), (4, 3, 1, 0), optimize=True) * 0.5 + del tmp184 + t2new.bbbb += einsum(tmp185, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * -4 + del tmp185 + tmp224 = einsum(tmp30, (0, 1, 2), tmp169, (3, 4, 2), (0, 3, 1, 4), optimize=True) + del tmp169 + t2new.bbbb += tmp224.transpose((1, 0, 2, 3)) * -1 + t2new.bbbb += tmp224.transpose((1, 0, 3, 2)) + del tmp224 + tmp150 = tmp91.copy() * -1 + tmp150 += einsum(v.bbb.xov, (0, 1, 2), tmp147, (3, 4, 0), (3, 1, 4, 2), optimize=True) + t2new.abab += einsum(tmp150, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * 2 + del tmp150 + tmp142 = einsum(v.baa.xov, (0, 1, 2), tmp141, (3, 2, 0), (1, 3), optimize=True) + del tmp141 + tmp142 += tmp23.transpose((1, 0)) + t2new.abab += einsum(tmp142, (0, 1), t2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -2 + del tmp142 + tmp138 = einsum(tmp12, (0, 1, 2), v.baa.xoo, (2, 3, 4), (4, 3, 0, 1), optimize=True) + tmp172 = einsum(v.bbb.xov, (0, 1, 2), tmp0, (3, 4, 0), (3, 4, 1, 2), optimize=True) + t2new.abab += einsum(t1.aa, (0, 1), tmp172, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + del tmp172 + tmp139 = t2.abab.copy() + tmp139 += einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + t2new.abab += einsum(tmp138, (0, 1, 2, 3), tmp139, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) + del tmp138 + tmp58 = f.aa.oo.transpose((1, 0)).copy() + tmp58 += tmp38.transpose((1, 0)) * -1 + tmp58 += tmp57.transpose((1, 0)) + del tmp57 + t2new.abab += einsum(tmp58, (0, 1), t2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -1 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp58, (0, 4), (4, 1, 3, 2), optimize=True) * 2 + del tmp58 + tmp146 = einsum(t2.abab, (0, 1, 2, 3), tmp144, (0, 4, 5, 3), (4, 1, 5, 2), optimize=True) + tmp146 += einsum(tmp27, (0, 1, 2), tmp145, (3, 4, 2), (1, 0, 4, 3), optimize=True) * -1 + del tmp145 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp146, (1, 4, 2, 5), (0, 4, 5, 3), optimize=True) + del tmp146 + tmp176 = einsum(v.baa.xoo, (0, 1, 2), tmp131, (3, 4, 0), (2, 1, 3, 4), optimize=True) + t2new.abab += einsum(t1.aa, (0, 1), tmp176, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + del tmp176 + tmp158 = tmp98.transpose((1, 0, 2, 3)).copy() * -1 + del tmp98 + tmp158 += einsum(tmp148, (0, 1, 2), tmp0, (3, 4, 2), (3, 4, 1, 0), optimize=True) + t2new.abab += einsum(tmp158, (0, 1, 2, 3), t2.abab, (1, 4, 2, 5), (0, 4, 3, 5), optimize=True) * -1 + del tmp158 + tmp171 = tmp170.transpose((1, 0, 2, 3)).copy() * -1 + del tmp170 + tmp171 += einsum(tmp155, (0, 1, 2), tmp12, (3, 4, 2), (3, 4, 1, 0), optimize=True) + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp171, (4, 1, 3, 5), (0, 4, 2, 5), optimize=True) * -1 + del tmp171 + tmp140 = einsum(tmp60, (0, 1, 2), v.bbb.xoo, (2, 3, 4), (0, 4, 3, 1), optimize=True) + t2new.abab += einsum(tmp140, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) * -1 + del tmp140 + tmp175 = einsum(t2.abab, (0, 1, 2, 3), tmp174, (4, 2, 5, 3), (0, 4, 1, 5), optimize=True) + del tmp174 + t2new.abab += einsum(t1.aa, (0, 1), tmp175, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + del tmp175 + tmp149 = tmp85.transpose((1, 0, 3, 2)).copy() * 2 + tmp149 += einsum(tmp147, (0, 1, 2), v.baa.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) * -1 + del tmp147 + tmp149 += einsum(tmp148, (0, 1, 2), v.baa.xoo, (2, 3, 4), (4, 3, 1, 0), optimize=True) + del tmp148 + t2new.abab += einsum(tmp149, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) * -1 + del tmp149 + tmp157 = einsum(tmp33, (0, 1, 2), tmp0, (3, 4, 2), (3, 4, 0, 1), optimize=True) + del tmp33 + t2new.abab += einsum(t1.aa, (0, 1), tmp157, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) * -2 + del tmp157 + tmp137 = einsum(v.bbb.xov, (0, 1, 2), tmp136, (3, 2, 0), (1, 3), optimize=True) * 0.5 + del tmp136 + tmp137 += einsum(t1.bb, (0, 1), tmp36, (2, 1), (2, 0), optimize=True) * 0.5 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp137, (1, 4), (0, 4, 2, 3), optimize=True) * -2 + del tmp137 + tmp177 = einsum(tmp0, (0, 1, 2), tmp131, (3, 4, 2), (0, 1, 3, 4), optimize=True) + t2new.abab += einsum(t1.aa, (0, 1), tmp177, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + del tmp177 + tmp65 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp65 += tmp62 + del tmp62 + tmp65 += tmp63.transpose((1, 0)) * -1 + del tmp63 + tmp65 += tmp64.transpose((1, 0)) + del tmp64 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp65, (2, 4), (0, 1, 4, 3), optimize=True) * -1 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp65, (2, 4), (1, 0, 4, 3), optimize=True) * 2 + del tmp65 + tmp160 = einsum(tmp0, (0, 1, 2), tmp12, (3, 4, 2), (0, 1, 3, 4), optimize=True) + del tmp12 + t2new.abab += einsum(tmp160, (0, 1, 2, 3), tmp139, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) + del tmp160 + tmp167 = einsum(tmp165, (0, 1, 2, 3), t1.aa, (0, 4), (1, 4, 3, 2), optimize=True) + del tmp165 + tmp167 += einsum(v.baa.xvv, (0, 1, 2), tmp166, (3, 4, 0), (2, 1, 4, 3), optimize=True) + del tmp166 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp167, (2, 4, 3, 5), (0, 1, 4, 5), optimize=True) + del tmp167 + tmp164 = einsum(tmp144, (0, 1, 2, 3), t2.abab, (4, 5, 2, 3), (4, 0, 5, 1), optimize=True) + del tmp144 + t2new.abab += einsum(tmp164, (0, 1, 2, 3), t2.abab, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) + del tmp164 + tmp159 = v.bbb.xov.transpose((1, 2, 0)).copy() * 0.5 + tmp159 += tmp131 * 0.5 + tmp159 += einsum(v.bbb.xov, (0, 1, 2), tmp31, (1, 3, 2, 4), (3, 4, 0), optimize=True) * 0.5 + t2new.abab += einsum(tmp60, (0, 1, 2), tmp159, (3, 4, 2), (0, 3, 1, 4), optimize=True) * 2 + del tmp159 + tmp143 = einsum(tmp0, (0, 1, 2), v.bbb.xoo, (2, 3, 4), (0, 1, 4, 3), optimize=True) + t2new.abab += einsum(tmp139, (0, 1, 2, 3), tmp143, (4, 0, 1, 5), (4, 5, 2, 3), optimize=True) + del tmp139, tmp143 + tmp173 = einsum(tmp0, (0, 1, 2), tmp155, (3, 4, 2), (0, 1, 4, 3), optimize=True) + del tmp0 + t2new.abab += einsum(tmp173, (0, 1, 2, 3), t2.abab, (1, 4, 5, 2), (0, 4, 5, 3), optimize=True) * -1 + del tmp173 + tmp163 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp163 += tmp29 * -1 + t2new.abab += einsum(tmp20, (0, 1, 2), tmp163, (3, 4, 2), (0, 3, 1, 4), optimize=True) * 2 + del tmp163 + tmp162 = einsum(v.bbb.xov, (0, 1, 2), tmp161, (3, 4, 0), (1, 3, 2, 4), optimize=True) + del tmp161 + tmp162 += einsum(tmp155, (0, 1, 2), v.bbb.xoo, (2, 3, 4), (4, 3, 1, 0), optimize=True) + t2new.abab += einsum(tmp162, (0, 1, 2, 3), t2.abab, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * -1 + del tmp162 + tmp126 = einsum(v.baa.xoo, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (1, 2, 3, 4), optimize=True) + t2new.abab += einsum(tmp126, (0, 1, 2, 3), t2.abab, (1, 3, 4, 5), (0, 2, 4, 5), optimize=True) * 0.5 + tmp127 = t2.abab.copy() + tmp127 += einsum(t1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * 2 + t2new.abab += einsum(tmp127, (0, 1, 2, 3), tmp126, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) * 0.5 + del tmp126, tmp127 + tmp156 = einsum(tmp155, (0, 1, 2), v.baa.xoo, (2, 3, 4), (4, 3, 1, 0), optimize=True) + del tmp155 + t2new.abab += einsum(tmp156, (0, 1, 2, 3), t2.abab, (0, 4, 5, 2), (1, 4, 5, 3), optimize=True) * -1 + del tmp156 + tmp129 = einsum(tmp128, (0, 1, 2), v.bbb.xov, (2, 0, 3), (1, 3), optimize=True) * 2 + del tmp128 + t2new.abab += einsum(t2.abab, (0, 1, 2, 3), tmp129, (4, 3), (0, 1, 2, 4), optimize=True) * -1 + del tmp129 + tmp153 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp153 += tmp131 + del tmp131 + tmp153 += tmp152 * -1 + del tmp152 + t2new.abab += einsum(tmp153, (0, 1, 2), v.baa.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) + del tmp153 + tmp68 = f.aa.vv.transpose((1, 0)).copy() + tmp68 += einsum(tmp60, (0, 1, 2), v.baa.xov, (2, 0, 3), (3, 1), optimize=True) * -1 + tmp68 += einsum(v.baa.xvv, (0, 1, 2), tmp14, (0,), (2, 1), optimize=True) + del tmp14 + tmp68 += einsum(tmp19, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * -1 + del tmp19 + t2new.aaaa += einsum(tmp68, (0, 1), t2.aaaa, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * 2 + del tmp68 + tmp90 = tmp85.copy() * 2 + del tmp85 + tmp90 += einsum(tmp87, (0, 1, 2), v.baa.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) * -1 + del tmp87 + tmp90 += einsum(tmp89, (0, 1, 2), tmp88, (3, 4, 2), (4, 3, 1, 0), optimize=True) + del tmp88, tmp89 + t2new.aaaa += einsum(tmp90, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (4, 0, 2, 5), optimize=True) * 2 + del tmp90 + tmp94 = tmp91.copy() + del tmp91 + tmp94 += einsum(v.bbb.xov, (0, 1, 2), tmp93, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp93 + t2new.aaaa += einsum(t2.abab, (0, 1, 2, 3), tmp94, (4, 1, 5, 3), (0, 4, 5, 2), optimize=True) + del tmp94 + tmp39 = f.aa.oo.transpose((1, 0)).copy() + tmp39 += tmp38.transpose((1, 0)) * -1 + del tmp38 + tmp39 += einsum(tmp10, (0,), v.baa.xoo, (0, 1, 2), (2, 1), optimize=True) + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp39, (0, 4), (1, 4, 3, 2), optimize=True) * -2 + del tmp39 + tmp105 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp105 += tmp60 + tmp105 += tmp71 * -1 + t2new.aaaa += einsum(v.baa.xov, (0, 1, 2), tmp105, (3, 4, 0), (3, 1, 2, 4), optimize=True) * -1 + del tmp105 + tmp95 = v.baa.xov.transpose((1, 2, 0)).copy() * -1 + tmp95 += tmp60 * -1 + tmp95 += tmp92 + del tmp92 + t2new.aaaa += einsum(tmp95, (0, 1, 2), v.baa.xov, (2, 3, 4), (3, 0, 4, 1), optimize=True) * -1 + del tmp95 + tmp101 = einsum(tmp100, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp100 + t2new.aaaa += tmp101.transpose((1, 0, 2, 3)) * 2 + t2new.aaaa += tmp101 * -2 + t2new.aaaa += tmp101.transpose((1, 0, 3, 2)) * -2 + del tmp101 + tmp97 = einsum(tmp96, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp96 + t2new.aaaa += tmp97.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp97.transpose((0, 1, 3, 2)) * -1 + del tmp97 + tmp40 = einsum(v.baa.xoo, (0, 1, 2), v.baa.xoo, (0, 3, 4), (1, 4, 3, 2), optimize=True) + tmp121 = tmp60.copy() * -1 + tmp121 += tmp71 + del tmp71 + t2new.aaaa += einsum(tmp6, (0, 1, 2), tmp121, (3, 4, 2), (0, 3, 1, 4), optimize=True) * -1 + del tmp121 + tmp54 = tmp51.copy() + del tmp51 + tmp54 += einsum(t2.abab, (0, 1, 2, 3), tmp53, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * -1 + del tmp53 + t2new.aaaa += einsum(tmp54, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) * -1 + del tmp54 + tmp56 = einsum(v.baa.xov, (0, 1, 2), tmp55, (1, 3, 0), (3, 2), optimize=True) + del tmp55 + t2new.aaaa += einsum(tmp56, (0, 1), t2.aaaa, (2, 3, 1, 4), (3, 2, 4, 0), optimize=True) * -2 + del tmp56 + tmp70 = einsum(t2.aaaa, (0, 1, 2, 3), tmp69, (4, 1, 5, 0), (4, 5, 2, 3), optimize=True) * -1 + del tmp69 + t2new.aaaa += tmp70.transpose((0, 1, 3, 2)) * 2 + t2new.aaaa += tmp70.transpose((1, 0, 3, 2)) * -2 + del tmp70 + tmp44 = einsum(tmp20, (0, 1, 2), tmp6, (3, 4, 2), (0, 3, 1, 4), optimize=True) + del tmp20 + t2new.aaaa += tmp44.transpose((1, 0, 2, 3)) * -2 + t2new.aaaa += tmp44.transpose((0, 1, 3, 2)) * -2 + t2new.aaaa += tmp44.transpose((1, 0, 3, 2)) * 2 + t2new.aaaa += tmp44 * 2 + del tmp44 + tmp80 = einsum(tmp79, (0, 1), t2.aaaa, (1, 2, 3, 4), (2, 0, 3, 4), optimize=True) * 2 + del tmp79 + t2new.aaaa += tmp80.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp80.transpose((0, 1, 3, 2)) * -1 + del tmp80 + tmp113 = einsum(t1.aa, (0, 1), tmp112, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp112 + t2new.aaaa += tmp113.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp113 + del tmp113 + tmp107 = einsum(tmp60, (0, 1, 2), v.baa.xov, (2, 3, 4), (0, 3, 4, 1), optimize=True) + t2new.aaaa += tmp107.transpose((1, 0, 3, 2)) * -1 + t2new.aaaa += tmp107.transpose((0, 1, 3, 2)) + del tmp107 + tmp116 = einsum(t2.aaaa, (0, 1, 2, 3), tmp115, (4, 5, 1, 0), (5, 4, 2, 3), optimize=True) + del tmp115 + t2new.aaaa += tmp116.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp116.transpose((0, 1, 3, 2)) * -1 + del tmp116 + tmp118 = einsum(v.baa.xvv, (0, 1, 2), v.baa.xvv, (0, 3, 4), (4, 1, 2, 3), optimize=True) + tmp118 += einsum(t1.aa, (0, 1), tmp117, (0, 2, 3, 4), (4, 3, 1, 2), optimize=True) + del tmp117 + t2new.aaaa += einsum(t2.aaaa, (0, 1, 2, 3), tmp118, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * -2 + del tmp118 + tmp123 = einsum(tmp122, (0, 1, 2, 3), t2.aaaa, (4, 5, 3, 2), (4, 5, 0, 1), optimize=True) + del tmp122 + t2new.aaaa += einsum(t1.aa, (0, 1), tmp123, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -2 + del tmp123 + tmp41 = t2.aaaa.transpose((1, 0, 3, 2)).copy() + tmp41 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (0, 2, 1, 3), optimize=True) + t2new.aaaa += einsum(tmp41, (0, 1, 2, 3), tmp40, (0, 4, 1, 5), (4, 5, 3, 2), optimize=True) + del tmp41 + tmp104 = einsum(tmp103, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (4, 0, 5, 2), optimize=True) + del tmp103 + t2new.aaaa += tmp104.transpose((1, 0, 2, 3)) * 2 + t2new.aaaa += tmp104 * -2 + del tmp104 + tmp82 = einsum(tmp81, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 4, 3), optimize=True) + del tmp81 + t2new.aaaa += tmp82.transpose((0, 1, 3, 2)) + t2new.aaaa += tmp82 * -1 + del tmp82 + tmp49 = tmp43.copy() + del tmp43 + tmp49 += einsum(tmp46, (0, 1, 2, 3), t2.aaaa, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) * -2 + del tmp46 + tmp49 += einsum(v.baa.xoo, (0, 1, 2), tmp48, (3, 4, 0), (2, 1, 4, 3), optimize=True) + del tmp48 + t2new.aaaa += einsum(tmp49, (0, 1, 2, 3), t2.aaaa, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) * -2 + del tmp49 + tmp74 = einsum(tmp73, (0, 1, 2, 3), t1.aa, (1, 4), (2, 0, 4, 3), optimize=True) + del tmp73 + t2new.aaaa += tmp74.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp74.transpose((1, 0, 2, 3)) * -1 + del tmp74 + tmp109 = einsum(tmp108, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 5), (1, 0, 4, 5), optimize=True) * -1 + del tmp108 + t2new.aaaa += tmp109.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp109.transpose((0, 1, 3, 2)) * -1 + del tmp109 + tmp59 = t2.aaaa.transpose((1, 0, 3, 2)).copy() + tmp59 += einsum(t1.aa, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + t2new.aaaa += einsum(tmp59, (0, 1, 2, 3), tmp40, (0, 4, 1, 5), (4, 5, 3, 2), optimize=True) + del tmp40, tmp59 + tmp84 = einsum(t1.aa, (0, 1), tmp83, (2, 0, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp83 + t2new.aaaa += tmp84.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp84 + del tmp84 + tmp111 = einsum(tmp110, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) + del tmp110 + t2new.aaaa += tmp111.transpose((1, 0, 2, 3)) + t2new.aaaa += tmp111 * -1 + t2new.aaaa += tmp111.transpose((1, 0, 3, 2)) * -1 + t2new.aaaa += tmp111.transpose((0, 1, 3, 2)) + del tmp111 + tmp67 = einsum(v.baa.xov, (0, 1, 2), tmp66, (3, 4, 0), (1, 3, 2, 4), optimize=True) + del tmp66 + t2new.aaaa += tmp67.transpose((1, 0, 3, 2)) + t2new.aaaa += tmp67.transpose((1, 0, 2, 3)) * -1 + t2new.aaaa += tmp67.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp67 + del tmp67 + tmp106 = einsum(tmp72, (0, 1, 2), tmp6, (3, 4, 2), (3, 0, 4, 1), optimize=True) + del tmp72 + t2new.aaaa += tmp106.transpose((1, 0, 2, 3)) * -1 + t2new.aaaa += tmp106.transpose((1, 0, 3, 2)) + del tmp106 + tmp120 = einsum(t1.aa, (0, 1), tmp119, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) + del tmp119 + t2new.aaaa += tmp120 * -1 + t2new.aaaa += tmp120.transpose((1, 0, 2, 3)) + del tmp120 + tmp114 = einsum(tmp60, (0, 1, 2), tmp60, (3, 4, 2), (3, 0, 4, 1), optimize=True) + del tmp60 + t2new.aaaa += tmp114.transpose((0, 1, 3, 2)) * -1 + t2new.aaaa += tmp114 + del tmp114 + tmp28 = einsum(tmp27, (0, 1, 2), v.baa.xov, (2, 3, 4), (3, 1, 0, 4), optimize=True) + del tmp27 + t1new.bb += einsum(tmp28, (0, 1, 2, 3), t2.abab, (0, 1, 3, 4), (2, 4), optimize=True) * -1 + del tmp28 + tmp32 = tmp29.copy() * -1 + del tmp29 + tmp32 += tmp30 + del tmp30 + tmp32 += einsum(v.bbb.xov, (0, 1, 2), tmp31, (1, 3, 2, 4), (3, 4, 0), optimize=True) + del tmp31 + tmp32 += einsum(tmp10, (0,), t1.bb, (1, 2), (1, 2, 0), optimize=True) + t1new.bb += einsum(tmp32, (0, 1, 2), v.bbb.xvv, (2, 1, 3), (0, 3), optimize=True) + del tmp32 + tmp26 = einsum(v.bbb.xov, (0, 1, 2), tmp25, (3, 4, 0), (4, 1, 3, 2), optimize=True) + del tmp25 + t1new.bb += einsum(tmp26, (0, 1, 2, 3), t2.bbbb, (1, 2, 3, 4), (0, 4), optimize=True) * -2 + del tmp26 + tmp37 = f.bb.oo.transpose((1, 0)).copy() + tmp37 += einsum(v.bbb.xov, (0, 1, 2), tmp34, (3, 2, 0), (1, 3), optimize=True) + del tmp34 + tmp37 += tmp35.transpose((1, 0)) + del tmp35 + tmp37 += einsum(t1.bb, (0, 1), tmp36, (2, 1), (2, 0), optimize=True) + del tmp36 + t1new.bb += einsum(t1.bb, (0, 1), tmp37, (0, 2), (2, 1), optimize=True) * -1 + del tmp37 + tmp11 = tmp5.copy() * -1 + del tmp5 + tmp11 += tmp6 + del tmp6 + tmp11 += einsum(v.baa.xov, (0, 1, 2), tmp7, (1, 3, 2, 4), (3, 4, 0), optimize=True) + del tmp7 + tmp11 += einsum(t1.aa, (0, 1), tmp10, (2,), (0, 1, 2), optimize=True) + t1new.aa += einsum(v.baa.xvv, (0, 1, 2), tmp11, (3, 1, 0), (3, 2), optimize=True) + del tmp11 + tmp24 = f.aa.oo.transpose((1, 0)).copy() * 0.5 + tmp24 += einsum(tmp21, (0, 1, 2), v.baa.xov, (2, 3, 1), (3, 0), optimize=True) * 0.5 + del tmp21 + tmp24 += einsum(tmp10, (0,), v.baa.xoo, (0, 1, 2), (2, 1), optimize=True) * 0.5 + del tmp10 + tmp24 += tmp23.transpose((1, 0)) + del tmp23 + t1new.aa += einsum(tmp24, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * -2 + del tmp24 + tmp4 = einsum(v.bbb.xov, (0, 1, 2), tmp3, (3, 4, 0), (4, 3, 1, 2), optimize=True) + del tmp3 + t1new.aa += einsum(t2.abab, (0, 1, 2, 3), tmp4, (0, 4, 1, 3), (4, 2), optimize=True) * -1 + del tmp4 + tmp2 = einsum(tmp1, (0, 1, 2), v.baa.xov, (2, 3, 4), (1, 3, 0, 4), optimize=True) + del tmp1 + t1new.aa += einsum(t2.aaaa, (0, 1, 2, 3), tmp2, (4, 0, 1, 2), (4, 3), optimize=True) * -2 + del tmp2 + t1new.aa += einsum(f.aa.vv, (0, 1), t1.aa, (2, 1), (2, 0), optimize=True) + t1new.aa += f.aa.ov + t1new.bb += f.bb.ov + t1new.bb += einsum(f.bb.vv, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) + + return {f"t1new": t1new, f"t2new": t2new} + +def update_lams(f=None, l1=None, l2=None, t1=None, t2=None, v=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:48:57.648335. + + Parameters + ---------- + f : Namespace of arrays + Fock matrix. + l1 : Namespace of arrays + L1 amplitudes. + l2 : Namespace of arrays + L2 amplitudes. + t1 : Namespace of arrays + T1 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + v : Namespace of arrays + Electron repulsion integrals. + + Returns + ------- + l1new : Namespace of arrays + Updated L1 residuals. + l2new : Namespace of arrays + Updated L2 residuals. + """ + + l1new = Namespace() + l2new = Namespace() + tmp12 = einsum(t1.aa, (0, 1), v.baa.xov, (2, 0, 1), (2,), optimize=True) + tmp13 = einsum(v.bbb.xov, (0, 1, 2), t1.bb, (1, 2), (0,), optimize=True) + tmp1 = einsum(t1.aa, (0, 1), v.baa.xov, (2, 3, 1), (0, 3, 2), optimize=True) + tmp14 = tmp12.copy() + tmp14 += tmp13 + tmp66 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 0, 4), (4, 1), optimize=True) + tmp67 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 1), (2, 4), optimize=True) + tmp65 = einsum(t1.aa, (0, 1), l1.aa, (1, 2), (2, 0), optimize=True) + tmp89 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 4, 0, 1), (3, 4), optimize=True) + tmp88 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 1), (3, 4), optimize=True) + tmp87 = einsum(l1.bb, (0, 1), t1.bb, (2, 0), (1, 2), optimize=True) + tmp76 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + tmp77 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 4, 0, 1), (4, 3), optimize=True) + tmp4 = einsum(v.bbb.xov, (0, 1, 2), t1.bb, (3, 2), (3, 1, 0), optimize=True) + tmp7 = einsum(t1.bb, (0, 1), v.bbb.xvv, (2, 3, 1), (0, 3, 2), optimize=True) + tmp9 = einsum(v.bbb.xov, (0, 1, 2), t2.bbbb, (1, 3, 2, 4), (3, 4, 0), optimize=True) + tmp8 = einsum(v.baa.xov, (0, 1, 2), t2.abab, (1, 3, 2, 4), (3, 4, 0), optimize=True) + tmp27 = einsum(v.baa.xvv, (0, 1, 2), t1.aa, (3, 1), (3, 2, 0), optimize=True) + tmp24 = einsum(v.baa.xov, (0, 1, 2), t2.aaaa, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp25 = einsum(v.bbb.xov, (0, 1, 2), t2.abab, (3, 1, 4, 2), (3, 4, 0), optimize=True) + tmp11 = einsum(tmp1, (0, 1, 2), v.baa.xov, (2, 0, 3), (1, 3), optimize=True) + l2new.aaaa = einsum(tmp11, (0, 1), l1.aa, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + l2new.aaaa += einsum(l1.aa, (0, 1), tmp11, (2, 3), (3, 0, 1, 2), optimize=True) + l2new.aaaa += einsum(tmp11, (0, 1), l1.aa, (2, 3), (2, 1, 0, 3), optimize=True) + l2new.aaaa += einsum(tmp11, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + tmp15 = einsum(v.baa.xov, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp45 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + tmp44 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 0, 4), (1, 4), optimize=True) + tmp54 = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (4, 0), (2, 4, 3, 1), optimize=True) + tmp68 = tmp65.copy() * 0.5 + tmp68 += tmp66 + tmp68 += tmp67 * 0.5 + tmp35 = einsum(l2.aaaa, (0, 1, 2, 3), t1.aa, (4, 1), (2, 3, 4, 0), optimize=True) + tmp90 = tmp87.copy() + tmp90 += tmp88 + tmp90 += tmp89 * 2 + tmp85 = einsum(t1.bb, (0, 1), l2.bbbb, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + tmp37 = einsum(l2.abab, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) + tmp132 = tmp76.copy() * 0.5 + tmp132 += tmp77 + tmp111 = einsum(v.bbb.xov, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp110 = einsum(v.bbb.xov, (0, 1, 2), tmp4, (1, 3, 0), (3, 2), optimize=True) + l2new.bbbb = einsum(tmp110, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + l2new.bbbb += einsum(tmp110, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) + l2new.bbbb += einsum(l1.bb, (0, 1), tmp110, (2, 3), (0, 3, 2, 1), optimize=True) + l2new.bbbb += einsum(l1.bb, (0, 1), tmp110, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + tmp10 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp10 += tmp7 + tmp10 += tmp8 + tmp10 += tmp9 * 2 + tmp41 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp41 += tmp27 + tmp41 += tmp24 * 2 + tmp41 += tmp25 + tmp218 = tmp7.copy() + tmp218 += tmp8 + tmp218 += tmp9 * 2 + tmp183 = tmp27.copy() * 0.5 + tmp183 += tmp24 + tmp183 += tmp25 * 0.5 + tmp102 = tmp24.copy() * 2 + tmp102 += tmp25 + tmp16 = f.aa.ov.copy() + tmp16 += tmp11 * -1 + tmp16 += tmp15 + tmp46 = tmp44.copy() * 2 + tmp46 += tmp45 + tmp17 = einsum(v.bbb.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + tmp120 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xov, (0, 3, 4), (1, 3, 2, 4), optimize=True) + tmp62 = einsum(l1.bb, (0, 1), t2.abab, (2, 1, 3, 0), (2, 3), optimize=True) + tmp64 = einsum(t2.abab, (0, 1, 2, 3), tmp54, (0, 4, 1, 3), (4, 2), optimize=True) + tmp69 = einsum(t1.aa, (0, 1), tmp68, (0, 2), (2, 1), optimize=True) + tmp61 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (2, 0), (1, 3), optimize=True) + tmp63 = einsum(t2.aaaa, (0, 1, 2, 3), tmp35, (0, 1, 4, 2), (4, 3), optimize=True) + tmp75 = einsum(l1.bb, (0, 1), t1.bb, (1, 2), (0, 2), optimize=True) + tmp72 = einsum(l1.aa, (0, 1), t1.aa, (1, 2), (0, 2), optimize=True) + tmp91 = einsum(tmp90, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) + tmp82 = einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) + tmp86 = einsum(tmp85, (0, 1, 2, 3), t2.bbbb, (0, 1, 3, 4), (2, 4), optimize=True) + tmp83 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) + tmp84 = einsum(tmp37, (0, 1, 2, 3), t2.abab, (0, 1, 3, 4), (2, 4), optimize=True) + tmp29 = einsum(v.baa.xov, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 4, 2), optimize=True) + tmp205 = v.bbb.xoo.transpose((2, 1, 0)).copy() + tmp205 += tmp4.transpose((1, 0, 2)) + tmp192 = einsum(tmp132, (0, 1), v.bbb.xov, (2, 3, 1), (3, 0, 2), optimize=True) * 2 + l2new.bbbb += einsum(tmp192, (0, 1, 2), v.bbb.xov, (2, 3, 4), (4, 1, 0, 3), optimize=True) + tmp137 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + tmp138 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (4, 2, 0, 5), (5, 1, 4, 3), optimize=True) * -1 + tmp112 = f.bb.ov.copy() + tmp112 += tmp110 * -1 + tmp112 += tmp111 + l1new.bb = einsum(tmp90, (0, 1), tmp112, (1, 2), (2, 0), optimize=True) * -1 + tmp148 = tmp8.copy() * 0.5 + tmp148 += tmp9 + tmp234 = einsum(l2.bbbb, (0, 1, 2, 3), tmp10, (2, 0, 4), (3, 1, 4), optimize=True) * 2 + tmp197 = einsum(v.bbb.xvv, (0, 1, 2), l1.bb, (2, 3), (3, 1, 0), optimize=True) + tmp128 = einsum(tmp54, (0, 1, 2, 3), tmp1, (0, 1, 4), (2, 3, 4), optimize=True) + tmp233 = einsum(l2.abab, (0, 1, 2, 3), tmp41, (2, 0, 4), (3, 1, 4), optimize=True) + tmp126 = einsum(tmp54, (0, 1, 2, 3), v.baa.xoo, (4, 0, 1), (2, 3, 4), optimize=True) + tmp235 = einsum(tmp90, (0, 1), v.bbb.xov, (2, 1, 3), (0, 3, 2), optimize=True) + tmp127 = einsum(v.bbb.xoo, (0, 1, 2), tmp85, (1, 3, 2, 4), (3, 4, 0), optimize=True) * -1 + tmp129 = einsum(tmp4, (0, 1, 2), tmp85, (3, 0, 1, 4), (3, 4, 2), optimize=True) + tmp142 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + tmp136 = einsum(t1.bb, (0, 1), tmp85, (2, 3, 4, 1), (3, 2, 4, 0), optimize=True) + tmp145 = tmp12.copy() + del tmp12 + tmp145 += tmp13 + del tmp13 + tmp220 = einsum(v.bbb.xvv, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp219 = einsum(v.bbb.xov, (0, 1, 2), tmp218, (1, 3, 0), (3, 2), optimize=True) + del tmp218 + tmp58 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 0, 1), (2, 4, 3, 5), optimize=True) + tmp59 = einsum(tmp37, (0, 1, 2, 3), t1.aa, (4, 3), (0, 4, 1, 2), optimize=True) + tmp155 = v.baa.xoo.transpose((2, 1, 0)).copy() + tmp155 += tmp1.transpose((1, 0, 2)) + tmp184 = einsum(tmp183, (0, 1, 2), v.baa.xov, (2, 0, 3), (1, 3), optimize=True) * 2 + tmp99 = einsum(v.baa.xvv, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp38 = einsum(tmp37, (0, 1, 2, 3), v.bbb.xoo, (4, 1, 2), (0, 3, 4), optimize=True) + tmp43 = einsum(l2.abab, (0, 1, 2, 3), tmp10, (3, 1, 4), (2, 0, 4), optimize=True) + tmp39 = einsum(tmp35, (0, 1, 2, 3), tmp1, (1, 2, 4), (0, 3, 4), optimize=True) + tmp172 = einsum(tmp68, (0, 1), v.baa.xov, (2, 1, 3), (0, 3, 2), optimize=True) * 2 + tmp165 = einsum(v.baa.xvv, (0, 1, 2), l1.aa, (2, 3), (3, 1, 0), optimize=True) + tmp40 = einsum(tmp4, (0, 1, 2), tmp37, (3, 0, 1, 4), (3, 4, 2), optimize=True) + tmp42 = einsum(l2.aaaa, (0, 1, 2, 3), tmp41, (2, 0, 4), (3, 1, 4), optimize=True) * 2 + tmp36 = einsum(tmp35, (0, 1, 2, 3), v.baa.xoo, (4, 0, 2), (1, 3, 4), optimize=True) * -1 + tmp104 = einsum(v.baa.xoo, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp103 = einsum(tmp102, (0, 1, 2), v.baa.xov, (2, 3, 1), (0, 3), optimize=True) + tmp105 = einsum(t1.aa, (0, 1), tmp16, (2, 1), (0, 2), optimize=True) + tmp101 = einsum(v.baa.xoo, (0, 1, 2), tmp1, (1, 3, 0), (2, 3), optimize=True) + tmp49 = einsum(t1.aa, (0, 1), tmp35, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + tmp57 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + tmp47 = einsum(v.baa.xov, (0, 1, 2), tmp46, (3, 2), (1, 3, 0), optimize=True) + l2new.abab = einsum(v.bbb.xov, (0, 1, 2), tmp47, (3, 4, 0), (4, 2, 3, 1), optimize=True) * -1 + tmp51 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (4, 2, 0, 5), (5, 1, 4, 3), optimize=True) * -1 + tmp52 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + tmp113 = v.bbb.xoo.transpose((2, 1, 0)).copy() + tmp113 += tmp4.transpose((1, 0, 2)) + tmp2 = v.baa.xoo.transpose((2, 1, 0)).copy() + tmp2 += tmp1 + tmp18 = einsum(tmp17, (0, 1, 2, 3), t2.abab, (4, 5, 2, 3), (4, 0, 5, 1), optimize=True) + tmp5 = v.bbb.xoo.transpose((2, 1, 0)).copy() + tmp5 += tmp4 + tmp119 = einsum(v.bbb.xoo, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (1, 4, 3, 2), optimize=True) + tmp121 = einsum(tmp120, (0, 1, 2, 3), t2.bbbb, (4, 5, 3, 2), (4, 5, 1, 0), optimize=True) + tmp122 = einsum(tmp4, (0, 1, 2), tmp4, (3, 4, 2), (0, 3, 1, 4), optimize=True) + tmp123 = einsum(v.bbb.xoo, (0, 1, 2), tmp4, (3, 4, 0), (3, 1, 2, 4), optimize=True) + tmp95 = tmp87.copy() + del tmp87 + tmp95 += tmp88.transpose((1, 0)) + del tmp88 + tmp95 += tmp89 * 2 + del tmp89 + tmp80 = l1.aa.transpose((1, 0)).copy() * -0.5 + tmp80 += t1.aa * -0.5 + tmp80 += tmp61 * -1 + tmp80 += tmp62 * -0.5 + tmp80 += tmp63 + tmp80 += tmp64 * 0.5 + tmp80 += tmp69 + tmp78 = tmp75.copy() + del tmp75 + tmp78 += tmp76 + del tmp76 + tmp78 += tmp77 * 2 + del tmp77 + tmp73 = tmp72.copy() * 0.5 + del tmp72 + tmp73 += tmp44 + del tmp44 + tmp73 += tmp45.transpose((1, 0)) * 0.5 + del tmp45 + tmp92 = l1.bb.transpose((1, 0)).copy() * -1 + tmp92 += t1.bb * -1 + tmp92 += tmp82 * -1 + tmp92 += tmp83 * -2 + tmp92 += tmp84 + tmp92 += tmp86 * 2 + tmp92 += tmp91 + tmp31 = einsum(tmp1, (0, 1, 2), tmp1, (3, 4, 2), (3, 0, 4, 1), optimize=True) + tmp30 = einsum(t2.aaaa, (0, 1, 2, 3), tmp29, (4, 5, 3, 2), (0, 1, 5, 4), optimize=True) + tmp28 = einsum(v.baa.xoo, (0, 1, 2), v.baa.xoo, (0, 3, 4), (1, 4, 3, 2), optimize=True) + tmp32 = einsum(tmp1, (0, 1, 2), v.baa.xoo, (2, 3, 4), (0, 3, 4, 1), optimize=True) + tmp19 = v.baa.xoo.transpose((2, 1, 0)).copy() + tmp19 += tmp1.transpose((1, 0, 2)) + tmp147 = einsum(tmp4, (0, 1, 2), v.bbb.xoo, (2, 0, 3), (3, 1), optimize=True) + tmp206 = einsum(tmp205, (0, 1, 2), v.bbb.xvv, (2, 3, 4), (0, 1, 3, 4), optimize=True) + tmp226 = einsum(tmp205, (0, 1, 2), v.bbb.xov, (2, 3, 4), (0, 1, 3, 4), optimize=True) + l2new.bbbb += einsum(tmp226, (0, 1, 2, 3), l1.bb, (4, 1), (3, 4, 0, 2), optimize=True) + tmp204 = einsum(tmp4, (0, 1, 2), v.bbb.xov, (2, 3, 4), (0, 3, 1, 4), optimize=True) + l2new.abab += einsum(tmp37, (0, 1, 2, 3), tmp204, (1, 2, 4, 5), (3, 5, 0, 4), optimize=True) + tmp193 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp193 += tmp192 * -1 + del tmp192 + l2new.abab += einsum(v.baa.xov, (0, 1, 2), tmp193, (3, 4, 0), (2, 4, 1, 3), optimize=True) + tmp243 = einsum(v.bbb.xvv, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 4, 3, 2), optimize=True) + tmp116 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 3, 4, 2), optimize=True) + tmp230 = tmp137.copy() + tmp230 += tmp138 * 4 + tmp151 = einsum(t1.bb, (0, 1), tmp112, (2, 1), (2, 0), optimize=True) + tmp150 = einsum(v.bbb.xoo, (0, 1, 2), tmp14, (0,), (1, 2), optimize=True) + tmp149 = einsum(tmp148, (0, 1, 2), v.bbb.xov, (2, 3, 1), (0, 3), optimize=True) * 2 + tmp236 = tmp197.copy() + tmp236 += tmp126 * -1 + tmp236 += tmp127 * -2 + tmp236 += tmp128 * -1 + tmp236 += tmp129 * -2 + tmp236 += tmp233 + del tmp233 + tmp236 += tmp234 + del tmp234 + tmp236 += tmp235 * -1 + del tmp235 + tmp245 = tmp142.transpose((1, 0, 3, 2)).copy() + tmp245 += tmp136.transpose((0, 1, 3, 2)) * -1 + tmp211 = einsum(v.bbb.xov, (0, 1, 2), tmp145, (0,), (1, 2), optimize=True) + tmp202 = einsum(v.bbb.xov, (0, 1, 2), v.bbb.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + l2new.abab += einsum(tmp202, (0, 1, 2, 3), tmp37, (4, 1, 2, 5), (5, 3, 4, 0), optimize=True) + tmp221 = f.bb.vv.transpose((1, 0)).copy() * -1 + tmp221 += tmp219 + del tmp219 + tmp221 += tmp220.transpose((1, 0)) * -1 + del tmp220 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp221, (1, 4), (0, 4, 2, 3), optimize=True) * -1 + tmp214 = einsum(v.baa.xvv, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + tmp209 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp209 += tmp7 + tmp209 += tmp8 + tmp209 += tmp9 * 2 + tmp208 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp208 += tmp27 + tmp208 += tmp24 * 2 + tmp208 += tmp25 + tmp60 = tmp58.copy() + del tmp58 + tmp60 += tmp59 + del tmp59 + tmp170 = einsum(tmp155, (0, 1, 2), v.baa.xvv, (2, 3, 4), (0, 1, 3, 4), optimize=True) + tmp130 = einsum(l2.abab, (0, 1, 2, 3), tmp41, (2, 0, 4), (3, 1, 4), optimize=True) * 0.5 + tmp131 = einsum(l2.bbbb, (0, 1, 2, 3), tmp10, (2, 0, 4), (3, 1, 4), optimize=True) + tmp175 = einsum(tmp145, (0,), v.baa.xov, (0, 1, 2), (1, 2), optimize=True) + tmp179 = einsum(v.baa.xvv, (0, 1, 2), v.baa.xvv, (0, 3, 4), (3, 2, 1, 4), optimize=True) + tmp185 = f.aa.vv.transpose((1, 0)).copy() * -1 + tmp185 += tmp184 + del tmp184 + tmp185 += tmp99.transpose((1, 0)) * -1 + tmp160 = einsum(v.baa.xov, (0, 1, 2), tmp1, (3, 4, 0), (3, 1, 4, 2), optimize=True) + l2new.abab += einsum(tmp160, (0, 1, 2, 3), tmp54, (0, 1, 4, 5), (3, 5, 2, 4), optimize=True) + tmp173 = tmp165.copy() + tmp173 += tmp36 * -2 + tmp173 += tmp38 * -1 + tmp173 += tmp39 * -2 + tmp173 += tmp40 * -1 + tmp173 += tmp42 + tmp173 += tmp43 + tmp173 += tmp172 * -1 + del tmp172 + tmp106 = f.aa.oo.transpose((1, 0)).copy() + tmp106 += tmp101 * -1 + tmp106 += tmp103 + del tmp103 + tmp106 += tmp104.transpose((1, 0)) + del tmp104 + tmp106 += tmp105 + del tmp105 + l1new.aa = einsum(tmp106, (0, 1), l1.aa, (2, 0), (2, 1), optimize=True) * -1 + tmp156 = einsum(tmp155, (0, 1, 2), v.baa.xov, (2, 3, 4), (0, 1, 3, 4), optimize=True) + l2new.aaaa += einsum(tmp156, (0, 1, 2, 3), l1.aa, (4, 1), (3, 4, 0, 2), optimize=True) + tmp190 = einsum(v.baa.xov, (0, 1, 2), tmp46, (3, 2), (1, 3, 0), optimize=True) * 0.5 + del tmp46 + tmp181 = tmp57.transpose((1, 0, 3, 2)).copy() + tmp181 += tmp49.transpose((0, 1, 3, 2)) * -1 + tmp153 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp153 += tmp47 * -1 + tmp22 = einsum(v.baa.xvv, (0, 1, 2), v.baa.xov, (0, 3, 4), (3, 1, 2, 4), optimize=True) + tmp166 = einsum(tmp68, (0, 1), v.baa.xov, (2, 1, 3), (0, 3, 2), optimize=True) + l2new.abab += einsum(v.bbb.xov, (0, 1, 2), tmp166, (3, 4, 0), (4, 2, 3, 1), optimize=True) * -2 + tmp158 = einsum(v.baa.xov, (0, 1, 2), v.baa.xoo, (0, 3, 4), (3, 4, 1, 2), optimize=True) + l2new.abab += einsum(tmp54, (0, 1, 2, 3), tmp158, (4, 0, 1, 5), (5, 3, 4, 2), optimize=True) + tmp162 = tmp51.copy() * 4 + tmp162 += tmp52 + tmp114 = tmp18.transpose((1, 0, 2, 3)).copy() + tmp114 += einsum(tmp113, (0, 1, 2), tmp2, (3, 4, 2), (4, 3, 1, 0), optimize=True) + tmp108 = einsum(v.bbb.xov, (0, 1, 2), tmp2, (3, 4, 0), (4, 3, 1, 2), optimize=True) + tmp109 = einsum(v.bbb.xov, (0, 1, 2), tmp5, (3, 4, 0), (4, 3, 1, 2), optimize=True) + tmp107 = einsum(v.baa.xvv, (0, 1, 2), v.bbb.xov, (0, 3, 4), (3, 1, 2, 4), optimize=True) + l2new.abab += einsum(tmp37, (0, 1, 2, 3), tmp107, (2, 4, 3, 5), (4, 5, 0, 1), optimize=True) * -1 + tmp139 = tmp137.copy() * 0.25 + del tmp137 + tmp139 += tmp138 + del tmp138 + tmp140 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 4), (4, 1, 0, 2), optimize=True) * 0.5 + tmp140 += einsum(tmp37, (0, 1, 2, 3), t2.abab, (0, 4, 3, 5), (1, 2, 4, 5), optimize=True) * 0.25 + tmp140 += einsum(tmp85, (0, 1, 2, 3), t2.bbbb, (1, 4, 3, 5), (0, 2, 4, 5), optimize=True) * -1 + tmp135 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) + l2new.abab += einsum(tmp17, (0, 1, 2, 3), tmp135, (4, 1, 5, 2), (5, 3, 0, 4), optimize=True) + tmp141 = einsum(l1.bb, (0, 1), t2.abab, (2, 3, 4, 0), (2, 1, 3, 4), optimize=True) + tmp141 += einsum(tmp54, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (1, 2, 4, 5), optimize=True) * -1 + tmp143 = t1.bb.copy() * -1 + tmp143 += tmp82 * -1 + del tmp82 + tmp143 += tmp83 * -2 + del tmp83 + tmp143 += tmp84 + del tmp84 + tmp143 += tmp86 * 2 + del tmp86 + tmp143 += tmp91 + del tmp91 + tmp118 = v.bbb.xov.transpose((1, 2, 0)).copy() + tmp118 += tmp8 + del tmp8 + tmp118 += tmp9 * 2 + del tmp9 + tmp117 = einsum(tmp113, (0, 1, 2), v.bbb.xov, (2, 3, 4), (0, 1, 3, 4), optimize=True) + l2new.bbbb += einsum(l1.bb, (0, 1), tmp117, (2, 1, 3, 4), (4, 0, 3, 2), optimize=True) * -1 + tmp124 = tmp119.transpose((3, 2, 1, 0)).copy() + tmp124 += tmp121.transpose((2, 3, 1, 0)) + tmp124 += tmp122.transpose((2, 3, 1, 0)) + tmp124 += tmp123.transpose((1, 3, 0, 2)) + tmp124 += tmp123.transpose((3, 2, 0, 1)) * -1 + tmp133 = einsum(tmp132, (0, 1), v.bbb.xov, (2, 3, 1), (3, 0, 2), optimize=True) + del tmp132 + l2new.bbbb += einsum(v.bbb.xov, (0, 1, 2), tmp133, (3, 4, 0), (4, 2, 3, 1), optimize=True) * -2 + tmp96 = einsum(tmp95, (0, 1), v.bbb.xoo, (2, 1, 0), (2,), optimize=True) + del tmp95 + tmp81 = einsum(tmp80, (0, 1), v.baa.xov, (2, 0, 1), (2,), optimize=True) * 2 + del tmp80 + tmp94 = einsum(tmp68, (0, 1), v.baa.xoo, (2, 1, 0), (2,), optimize=True) * 2 + tmp79 = einsum(v.bbb.xvv, (0, 1, 2), tmp78, (2, 1), (0,), optimize=True) + del tmp78 + tmp74 = einsum(tmp73, (0, 1), v.baa.xvv, (2, 1, 0), (2,), optimize=True) * 2 + del tmp73 + tmp93 = einsum(v.bbb.xov, (0, 1, 2), tmp92, (1, 2), (0,), optimize=True) + del tmp92 + tmp55 = einsum(l1.aa, (0, 1), t2.aaaa, (2, 3, 4, 0), (1, 3, 2, 4), optimize=True) * 2 + tmp55 += einsum(t2.aaaa, (0, 1, 2, 3), tmp35, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) * -4 + tmp55 += einsum(tmp54, (0, 1, 2, 3), t2.abab, (4, 2, 5, 3), (0, 1, 4, 5), optimize=True) + tmp56 = einsum(t2.abab, (0, 1, 2, 3), l1.aa, (2, 4), (4, 0, 1, 3), optimize=True) + tmp56 += einsum(tmp37, (0, 1, 2, 3), t2.abab, (4, 1, 3, 5), (0, 4, 2, 5), optimize=True) * -1 + tmp70 = t1.aa.copy() * -0.5 + tmp70 += tmp61 * -1 + del tmp61 + tmp70 += tmp62 * -0.5 + del tmp62 + tmp70 += tmp63 + del tmp63 + tmp70 += tmp64 * 0.5 + del tmp64 + tmp70 += tmp69 + del tmp69 + tmp53 = tmp51.copy() * 4 + del tmp51 + tmp53 += tmp52.transpose((0, 1, 3, 2)) + del tmp52 + tmp50 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 5), (2, 4, 1, 5), optimize=True) + l2new.abab += einsum(tmp50, (0, 1, 2, 3), tmp17, (1, 4, 5, 3), (5, 2, 0, 4), optimize=True) + tmp26 = v.baa.xov.transpose((1, 2, 0)).copy() + tmp26 += tmp24 * 2 + del tmp24 + tmp26 += tmp25 + del tmp25 + tmp33 = tmp28.transpose((3, 2, 1, 0)).copy() + tmp33 += tmp30.transpose((2, 3, 1, 0)) + tmp33 += tmp31.transpose((2, 3, 1, 0)) + tmp33 += tmp32.transpose((1, 3, 0, 2)) + tmp33 += tmp32.transpose((3, 2, 0, 1)) * -1 + tmp23 = einsum(tmp19, (0, 1, 2), v.baa.xov, (2, 3, 4), (3, 0, 1, 4), optimize=True) + l2new.aaaa += einsum(tmp23, (0, 1, 2, 3), l1.aa, (4, 2), (3, 4, 0, 1), optimize=True) * -1 + tmp0 = einsum(v.baa.xov, (0, 1, 2), v.bbb.xvv, (0, 3, 4), (1, 2, 3, 4), optimize=True) + l2new.abab += einsum(tmp54, (0, 1, 2, 3), tmp0, (1, 4, 3, 5), (4, 5, 0, 2), optimize=True) * -1 + tmp3 = einsum(v.baa.xov, (0, 1, 2), tmp2, (3, 4, 0), (4, 3, 1, 2), optimize=True) + tmp6 = einsum(v.baa.xov, (0, 1, 2), tmp5, (3, 4, 0), (1, 4, 3, 2), optimize=True) + tmp20 = tmp18.transpose((0, 1, 3, 2)).copy() + tmp20 += einsum(tmp5, (0, 1, 2), tmp19, (3, 4, 2), (4, 3, 1, 0), optimize=True) + tmp238 = f.bb.oo.transpose((1, 0)).copy() * 0.5 + tmp238 += tmp147 * -0.5 + tmp238 += einsum(tmp148, (0, 1, 2), v.bbb.xov, (2, 3, 1), (0, 3), optimize=True) + del tmp148 + tmp238 += einsum(v.bbb.xoo, (0, 1, 2), tmp14, (0,), (2, 1), optimize=True) * 0.5 + tmp238 += einsum(tmp112, (0, 1), t1.bb, (2, 1), (2, 0), optimize=True) * 0.5 + l2new.bbbb += einsum(l2.bbbb, (0, 1, 2, 3), tmp238, (2, 4), (1, 0, 3, 4), optimize=True) * -4 + del tmp238 + tmp240 = einsum(tmp206, (0, 1, 2, 3), l2.bbbb, (2, 4, 1, 5), (0, 5, 3, 4), optimize=True) + l2new.bbbb += tmp240.transpose((3, 2, 0, 1)) * 2 + l2new.bbbb += tmp240.transpose((3, 2, 1, 0)) * -2 + l2new.bbbb += tmp240.transpose((2, 3, 0, 1)) * -2 + del tmp240 + tmp227 = einsum(tmp226, (0, 1, 2, 3), l1.bb, (4, 1), (2, 0, 3, 4), optimize=True) + del tmp226 + l2new.bbbb += tmp227.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp227.transpose((3, 2, 0, 1)) + del tmp227 + tmp228 = einsum(tmp204, (0, 1, 2, 3), tmp85, (4, 0, 1, 5), (4, 2, 5, 3), optimize=True) + del tmp204 + l2new.bbbb += tmp228.transpose((3, 2, 1, 0)) * 2 + l2new.bbbb += tmp228.transpose((3, 2, 0, 1)) * -2 + l2new.bbbb += tmp228.transpose((2, 3, 1, 0)) * -2 + l2new.bbbb += tmp228.transpose((2, 3, 0, 1)) * 2 + del tmp228 + tmp225 = einsum(v.bbb.xov, (0, 1, 2), tmp193, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp193 + l2new.bbbb += tmp225.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp225.transpose((3, 2, 1, 0)) + del tmp225 + tmp244 = einsum(l2.bbbb, (0, 1, 2, 3), tmp243, (4, 5, 0, 1), (3, 2, 4, 5), optimize=True) + del tmp243 + l2new.bbbb += tmp244.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp244.transpose((2, 3, 1, 0)) * -1 + del tmp244 + tmp242 = einsum(tmp116, (0, 1, 2, 3), tmp85, (4, 5, 0, 2), (5, 4, 3, 1), optimize=True) + l2new.bbbb += tmp242.transpose((3, 2, 1, 0)) * -2 + l2new.bbbb += tmp242.transpose((2, 3, 1, 0)) * 2 + del tmp242 + tmp231 = einsum(tmp120, (0, 1, 2, 3), tmp230, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) + del tmp230 + l2new.bbbb += tmp231.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp231.transpose((3, 2, 0, 1)) + l2new.bbbb += tmp231.transpose((2, 3, 1, 0)) + l2new.bbbb += tmp231.transpose((2, 3, 0, 1)) * -1 + del tmp231 + tmp152 = f.bb.oo.transpose((1, 0)).copy() + tmp152 += tmp147 * -1 + del tmp147 + tmp152 += tmp149 + del tmp149 + tmp152 += tmp150.transpose((1, 0)) + del tmp150 + tmp152 += tmp151.transpose((1, 0)) + del tmp151 + l2new.bbbb += einsum(l2.bbbb, (0, 1, 2, 3), tmp152, (2, 4), (1, 0, 4, 3), optimize=True) * 2 + l2new.abab += einsum(l2.abab, (0, 1, 2, 3), tmp152, (3, 4), (0, 1, 2, 4), optimize=True) * -1 + l1new.bb += einsum(tmp152, (0, 1), l1.bb, (2, 0), (2, 1), optimize=True) * -1 + del tmp152 + tmp237 = einsum(v.bbb.xov, (0, 1, 2), tmp236, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp236 + l2new.bbbb += tmp237.transpose((2, 3, 1, 0)) * -1 + l2new.bbbb += tmp237.transpose((2, 3, 0, 1)) + l2new.bbbb += tmp237.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp237.transpose((3, 2, 0, 1)) * -1 + del tmp237 + tmp232 = einsum(v.bbb.xvv, (0, 1, 2), tmp113, (3, 4, 0), (4, 3, 2, 1), optimize=True) + l2new.bbbb += einsum(tmp232, (0, 1, 2, 3), l2.bbbb, (3, 4, 0, 5), (2, 4, 5, 1), optimize=True) * 2 + del tmp232 + tmp246 = einsum(tmp120, (0, 1, 2, 3), tmp245, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + del tmp245 + l2new.bbbb += tmp246.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp246.transpose((3, 2, 1, 0)) + del tmp246 + tmp250 = tmp119.transpose((3, 2, 1, 0)).copy() + del tmp119 + tmp250 += tmp121.transpose((0, 3, 1, 2)) + del tmp121 + tmp250 += tmp122.transpose((0, 3, 1, 2)) + del tmp122 + l2new.bbbb += einsum(tmp250, (0, 1, 2, 3), l2.bbbb, (4, 5, 0, 2), (5, 4, 1, 3), optimize=True) * 2 + del tmp250 + tmp239 = f.bb.ov.copy() + tmp239 += tmp111 + del tmp111 + l2new.bbbb += einsum(tmp239, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + del tmp239 + tmp241 = f.bb.ov.copy() + tmp241 += tmp211 + l2new.bbbb += einsum(l1.bb, (0, 1), tmp241, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + l2new.bbbb += einsum(l1.bb, (0, 1), tmp241, (2, 3), (0, 3, 1, 2), optimize=True) + l2new.bbbb += einsum(l1.bb, (0, 1), tmp241, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp241 + tmp249 = einsum(l2.bbbb, (0, 1, 2, 3), tmp123, (3, 2, 4, 5), (4, 5, 0, 1), optimize=True) * -1 + del tmp123 + l2new.bbbb += tmp249.transpose((2, 3, 1, 0)) * 2 + l2new.bbbb += tmp249.transpose((2, 3, 0, 1)) * -2 + del tmp249 + tmp229 = einsum(tmp202, (0, 1, 2, 3), tmp85, (4, 0, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp202 + l2new.bbbb += tmp229.transpose((3, 2, 1, 0)) * 2 + l2new.bbbb += tmp229.transpose((3, 2, 0, 1)) * -2 + l2new.bbbb += tmp229.transpose((2, 3, 1, 0)) * -2 + l2new.bbbb += tmp229.transpose((2, 3, 0, 1)) * 2 + del tmp229 + tmp248 = einsum(tmp85, (0, 1, 2, 3), tmp112, (2, 4), (0, 1, 4, 3), optimize=True) * 2 + l2new.bbbb += tmp248.transpose((3, 2, 1, 0)) + l2new.bbbb += tmp248.transpose((2, 3, 1, 0)) * -1 + del tmp248 + tmp247 = einsum(l2.bbbb, (0, 1, 2, 3), tmp221, (0, 4), (2, 3, 4, 1), optimize=True) * 2 + del tmp221 + l2new.bbbb += tmp247.transpose((3, 2, 1, 0)) * -1 + l2new.bbbb += tmp247.transpose((2, 3, 1, 0)) + del tmp247 + tmp222 = tmp18.copy() + del tmp18 + tmp222 += einsum(tmp113, (0, 1, 2), tmp19, (3, 4, 2), (4, 3, 1, 0), optimize=True) + l2new.abab += einsum(tmp222, (0, 1, 2, 3), l2.abab, (4, 5, 0, 2), (4, 5, 1, 3), optimize=True) + del tmp222 + tmp200 = f.aa.oo.transpose((1, 0)).copy() * 0.5 + tmp200 += tmp101 * -0.5 + del tmp101 + tmp200 += einsum(tmp102, (0, 1, 2), v.baa.xov, (2, 3, 1), (0, 3), optimize=True) * 0.5 + del tmp102 + tmp200 += einsum(v.baa.xoo, (0, 1, 2), tmp14, (0,), (2, 1), optimize=True) * 0.5 + tmp200 += einsum(t1.aa, (0, 1), tmp16, (2, 1), (0, 2), optimize=True) * 0.5 + l2new.abab += einsum(tmp200, (0, 1), l2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -2 + del tmp200 + tmp203 = einsum(l2.aaaa, (0, 1, 2, 3), t2.abab, (2, 4, 1, 5), (3, 4, 0, 5), optimize=True) * -1 + l2new.abab += einsum(tmp203, (0, 1, 2, 3), tmp120, (4, 1, 3, 5), (2, 5, 0, 4), optimize=True) * -2 + del tmp203 + tmp215 = einsum(tmp214, (0, 1, 2, 3), l2.abab, (1, 2, 4, 5), (4, 5, 0, 3), optimize=True) + del tmp214 + l2new.abab += tmp215.transpose((2, 3, 0, 1)) * 0.5 + l2new.abab += tmp215.transpose((2, 3, 0, 1)) * 0.5 + del tmp215 + tmp210 = tmp165.copy() + tmp210 += tmp36 * -2 + tmp210 += tmp38 * -1 + tmp210 += tmp39 * -2 + tmp210 += tmp40 * -1 + tmp210 += einsum(l2.aaaa, (0, 1, 2, 3), tmp208, (2, 0, 4), (3, 1, 4), optimize=True) * 2 + del tmp208 + tmp210 += einsum(l2.abab, (0, 1, 2, 3), tmp209, (3, 1, 4), (2, 0, 4), optimize=True) + del tmp209 + l2new.abab += einsum(v.bbb.xov, (0, 1, 2), tmp210, (3, 4, 0), (4, 2, 3, 1), optimize=True) + del tmp210 + tmp213 = einsum(v.baa.xvv, (0, 1, 2), tmp205, (3, 4, 0), (4, 3, 2, 1), optimize=True) + l2new.abab += einsum(tmp213, (0, 1, 2, 3), l2.abab, (2, 4, 5, 0), (3, 4, 5, 1), optimize=True) * -1 + del tmp213 + tmp216 = einsum(tmp17, (0, 1, 2, 3), tmp60, (4, 0, 5, 1), (4, 5, 2, 3), optimize=True) * 0.5 + del tmp17 + l2new.abab += tmp216.transpose((2, 3, 0, 1)) + l2new.abab += tmp216.transpose((2, 3, 0, 1)) + del tmp216 + tmp196 = einsum(tmp29, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 2), (4, 0, 5, 3), optimize=True) * 2 + tmp196 += tmp170.transpose((1, 0, 3, 2)) + l2new.abab += einsum(tmp196, (0, 1, 2, 3), l2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) * -1 + del tmp196 + tmp198 = tmp197.copy() * 0.5 + del tmp197 + tmp198 += tmp126 * -0.5 + tmp198 += tmp127 * -1 + tmp198 += tmp128 * -0.5 + tmp198 += tmp129 * -1 + tmp198 += tmp130 + tmp198 += tmp131 + tmp198 += einsum(tmp90, (0, 1), v.bbb.xov, (2, 1, 3), (0, 3, 2), optimize=True) * -0.5 + l2new.abab += einsum(tmp198, (0, 1, 2), v.baa.xov, (2, 3, 4), (4, 1, 3, 0), optimize=True) * 2 + del tmp198 + tmp194 = einsum(v.baa.xov, (0, 1, 2), tmp113, (3, 4, 0), (1, 4, 3, 2), optimize=True) + l2new.abab += einsum(tmp194, (0, 1, 2, 3), l1.bb, (4, 1), (3, 4, 0, 2), optimize=True) * -1 + del tmp194 + tmp217 = f.aa.vv.transpose((1, 0)).copy() * -0.5 + tmp217 += einsum(tmp183, (0, 1, 2), v.baa.xov, (2, 0, 3), (1, 3), optimize=True) + del tmp183 + tmp217 += einsum(v.baa.xvv, (0, 1, 2), tmp14, (0,), (2, 1), optimize=True) * -0.5 + del tmp14 + l2new.abab += einsum(tmp217, (0, 1), l2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -2 + del tmp217 + tmp223 = einsum(v.bbb.xvv, (0, 1, 2), tmp155, (3, 4, 0), (4, 3, 2, 1), optimize=True) + l2new.abab += einsum(tmp223, (0, 1, 2, 3), l2.abab, (4, 2, 0, 5), (4, 3, 1, 5), optimize=True) * -1 + del tmp223 + tmp199 = einsum(tmp155, (0, 1, 2), v.bbb.xov, (2, 3, 4), (0, 1, 3, 4), optimize=True) + del tmp155 + l2new.abab += einsum(tmp199, (0, 1, 2, 3), l1.aa, (4, 1), (4, 3, 0, 2), optimize=True) * -1 + l2new.abab += einsum(tmp199, (0, 1, 2, 3), tmp37, (1, 4, 2, 5), (5, 3, 0, 4), optimize=True) + del tmp199 + tmp201 = f.aa.ov.copy() + tmp201 += tmp11 * -1 + del tmp11 + tmp201 += tmp175 + l2new.abab += einsum(tmp54, (0, 1, 2, 3), tmp201, (1, 4), (4, 3, 0, 2), optimize=True) * -1 + l2new.abab += einsum(tmp201, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) + del tmp201 + tmp207 = einsum(tmp120, (0, 1, 2, 3), t2.bbbb, (4, 0, 5, 3), (4, 1, 5, 2), optimize=True) * 2 + del tmp120 + tmp207 += tmp206.transpose((1, 0, 3, 2)) + del tmp206 + l2new.abab += einsum(tmp207, (0, 1, 2, 3), l2.abab, (4, 2, 5, 0), (4, 3, 5, 1), optimize=True) * -1 + del tmp207 + tmp195 = einsum(l2.bbbb, (0, 1, 2, 3), t2.abab, (4, 2, 5, 1), (4, 3, 5, 0), optimize=True) * -1 + l2new.abab += einsum(tmp195, (0, 1, 2, 3), tmp29, (4, 0, 2, 5), (5, 3, 4, 1), optimize=True) * -2 + del tmp195 + tmp212 = f.bb.ov.copy() + tmp212 += tmp110 * -1 + del tmp110 + tmp212 += tmp211 + del tmp211 + l2new.abab += einsum(tmp37, (0, 1, 2, 3), tmp212, (2, 4), (3, 4, 0, 1), optimize=True) * -1 + l2new.abab += einsum(l1.aa, (0, 1), tmp212, (2, 3), (0, 3, 1, 2), optimize=True) + del tmp212 + tmp224 = einsum(v.baa.xov, (0, 1, 2), tmp205, (3, 4, 0), (1, 4, 3, 2), optimize=True) + del tmp205 + l2new.abab += einsum(tmp224, (0, 1, 2, 3), tmp54, (4, 0, 1, 5), (3, 5, 4, 2), optimize=True) + del tmp224 + tmp180 = einsum(l2.aaaa, (0, 1, 2, 3), tmp179, (4, 5, 0, 1), (3, 2, 4, 5), optimize=True) + del tmp179 + l2new.aaaa += tmp180.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp180.transpose((2, 3, 1, 0)) * -1 + del tmp180 + tmp188 = einsum(l2.aaaa, (0, 1, 2, 3), tmp32, (3, 2, 4, 5), (4, 5, 0, 1), optimize=True) * -1 + del tmp32 + l2new.aaaa += tmp188.transpose((2, 3, 1, 0)) * 2 + l2new.aaaa += tmp188.transpose((2, 3, 0, 1)) * -2 + del tmp188 + tmp186 = einsum(l2.aaaa, (0, 1, 2, 3), tmp185, (0, 4), (2, 3, 4, 1), optimize=True) * 2 + del tmp185 + l2new.aaaa += tmp186.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp186.transpose((2, 3, 1, 0)) + del tmp186 + tmp161 = einsum(tmp160, (0, 1, 2, 3), tmp35, (4, 0, 1, 5), (4, 2, 5, 3), optimize=True) + del tmp160 + l2new.aaaa += tmp161.transpose((3, 2, 1, 0)) * 2 + l2new.aaaa += tmp161.transpose((3, 2, 0, 1)) * -2 + l2new.aaaa += tmp161.transpose((2, 3, 1, 0)) * -2 + l2new.aaaa += tmp161.transpose((2, 3, 0, 1)) * 2 + del tmp161 + tmp189 = tmp28.transpose((3, 2, 1, 0)).copy() + del tmp28 + tmp189 += tmp30.transpose((0, 3, 1, 2)) + del tmp30 + tmp189 += tmp31.transpose((0, 3, 1, 2)) + del tmp31 + l2new.aaaa += einsum(l2.aaaa, (0, 1, 2, 3), tmp189, (2, 4, 3, 5), (1, 0, 4, 5), optimize=True) * 2 + del tmp189 + tmp174 = einsum(v.baa.xov, (0, 1, 2), tmp173, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp173 + l2new.aaaa += tmp174.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp174.transpose((3, 2, 1, 0)) + del tmp174 + tmp176 = f.aa.ov.copy() + tmp176 += tmp175 + del tmp175 + l2new.aaaa += einsum(tmp176, (0, 1), l1.aa, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + l2new.aaaa += einsum(tmp176, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) + l2new.aaaa += einsum(tmp176, (0, 1), l1.aa, (2, 3), (1, 2, 0, 3), optimize=True) + del tmp176 + tmp171 = einsum(tmp170, (0, 1, 2, 3), l2.aaaa, (2, 4, 1, 5), (0, 5, 3, 4), optimize=True) + del tmp170 + l2new.aaaa += tmp171.transpose((3, 2, 0, 1)) * 2 + l2new.aaaa += tmp171.transpose((3, 2, 1, 0)) * -2 + l2new.aaaa += tmp171.transpose((2, 3, 0, 1)) * -2 + del tmp171 + tmp169 = f.aa.ov.copy() + tmp169 += tmp15 + del tmp15 + l2new.aaaa += einsum(l1.aa, (0, 1), tmp169, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + del tmp169 + tmp168 = einsum(tmp106, (0, 1), l2.aaaa, (2, 3, 0, 4), (1, 4, 2, 3), optimize=True) * 2 + del tmp106 + l2new.aaaa += tmp168.transpose((3, 2, 0, 1)) + l2new.aaaa += tmp168.transpose((3, 2, 1, 0)) * -1 + del tmp168 + tmp157 = einsum(tmp156, (0, 1, 2, 3), l1.aa, (4, 1), (2, 0, 3, 4), optimize=True) + del tmp156 + l2new.aaaa += tmp157.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp157.transpose((3, 2, 0, 1)) + del tmp157 + tmp177 = tmp165.copy() * 0.25 + tmp177 += tmp36 * -0.5 + tmp177 += tmp38 * -0.25 + tmp177 += tmp39 * -0.5 + tmp177 += tmp40 * -0.25 + tmp177 += einsum(l2.aaaa, (0, 1, 2, 3), tmp41, (2, 0, 4), (3, 1, 4), optimize=True) * 0.5 + tmp177 += einsum(l2.abab, (0, 1, 2, 3), tmp10, (3, 1, 4), (2, 0, 4), optimize=True) * 0.25 + tmp177 += einsum(tmp68, (0, 1), v.baa.xov, (2, 1, 3), (0, 3, 2), optimize=True) * -0.5 + l2new.aaaa += einsum(tmp177, (0, 1, 2), v.baa.xov, (2, 3, 4), (1, 4, 0, 3), optimize=True) * 4 + del tmp177 + tmp191 = einsum(v.baa.xov, (0, 1, 2), tmp190, (3, 4, 0), (3, 1, 4, 2), optimize=True) * -2 + del tmp190 + l2new.aaaa += tmp191.transpose((2, 3, 0, 1)) + l2new.aaaa += tmp191.transpose((3, 2, 0, 1)) * -1 + del tmp191 + tmp182 = einsum(tmp29, (0, 1, 2, 3), tmp181, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + del tmp181 + l2new.aaaa += tmp182.transpose((3, 2, 1, 0)) + l2new.aaaa += tmp182.transpose((3, 2, 1, 0)) + del tmp182 + tmp154 = einsum(v.baa.xov, (0, 1, 2), tmp153, (3, 4, 0), (3, 1, 4, 2), optimize=True) + del tmp153 + l2new.aaaa += tmp154.transpose((2, 3, 1, 0)) * -1 + l2new.aaaa += tmp154.transpose((3, 2, 1, 0)) + del tmp154 + tmp178 = einsum(tmp35, (0, 1, 2, 3), tmp22, (2, 4, 3, 5), (1, 0, 5, 4), optimize=True) + l2new.aaaa += tmp178.transpose((3, 2, 1, 0)) * -2 + l2new.aaaa += tmp178.transpose((2, 3, 1, 0)) * 2 + del tmp178 + tmp164 = einsum(v.baa.xvv, (0, 1, 2), tmp19, (3, 4, 0), (4, 3, 2, 1), optimize=True) + l2new.aaaa += einsum(l2.aaaa, (0, 1, 2, 3), tmp164, (2, 4, 5, 0), (5, 1, 3, 4), optimize=True) * 2 + del tmp164 + tmp167 = tmp165.copy() * 0.5 + del tmp165 + tmp167 += tmp36 * -1 + tmp167 += tmp38 * -0.5 + tmp167 += tmp39 * -1 + tmp167 += tmp40 * -0.5 + tmp167 += einsum(l2.aaaa, (0, 1, 2, 3), tmp41, (2, 0, 4), (3, 1, 4), optimize=True) + tmp167 += einsum(l2.abab, (0, 1, 2, 3), tmp10, (3, 1, 4), (2, 0, 4), optimize=True) * 0.5 + tmp167 += tmp166 * -1 + del tmp166 + l2new.aaaa += einsum(tmp167, (0, 1, 2), v.baa.xov, (2, 3, 4), (4, 1, 0, 3), optimize=True) * -2 + del tmp167 + tmp187 = einsum(tmp16, (0, 1), tmp35, (2, 3, 0, 4), (2, 3, 4, 1), optimize=True) * 2 + l2new.aaaa += tmp187.transpose((2, 3, 1, 0)) + l2new.aaaa += tmp187.transpose((3, 2, 1, 0)) * -1 + del tmp187 + tmp159 = einsum(tmp35, (0, 1, 2, 3), tmp158, (1, 4, 2, 5), (0, 4, 3, 5), optimize=True) + del tmp158 + l2new.aaaa += tmp159.transpose((3, 2, 1, 0)) * 2 + l2new.aaaa += tmp159.transpose((3, 2, 0, 1)) * -2 + l2new.aaaa += tmp159.transpose((2, 3, 1, 0)) * -2 + l2new.aaaa += tmp159.transpose((2, 3, 0, 1)) * 2 + del tmp159 + tmp163 = einsum(tmp162, (0, 1, 2, 3), tmp29, (1, 4, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp29, tmp162 + l2new.aaaa += tmp163.transpose((3, 2, 1, 0)) * -1 + l2new.aaaa += tmp163.transpose((3, 2, 0, 1)) + l2new.aaaa += tmp163.transpose((2, 3, 1, 0)) + l2new.aaaa += tmp163.transpose((2, 3, 0, 1)) * -1 + del tmp163 + tmp115 = einsum(tmp107, (0, 1, 2, 3), t2.abab, (4, 5, 1, 3), (4, 0, 5, 2), optimize=True) + del tmp107 + tmp115 += einsum(tmp108, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (1, 2, 4, 5), optimize=True) * -1 + del tmp108 + tmp115 += einsum(tmp109, (0, 1, 2, 3), t2.abab, (4, 0, 5, 3), (4, 2, 1, 5), optimize=True) * -1 + del tmp109 + tmp115 += einsum(tmp5, (0, 1, 2), tmp41, (3, 4, 2), (3, 1, 0, 4), optimize=True) + tmp115 += einsum(t2.abab, (0, 1, 2, 3), tmp112, (4, 3), (0, 4, 1, 2), optimize=True) + tmp115 += einsum(t1.aa, (0, 1), tmp114, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) * -1 + del tmp114 + l1new.bb += einsum(tmp115, (0, 1, 2, 3), l2.abab, (3, 4, 0, 2), (4, 1), optimize=True) * -1 + del tmp115 + tmp144 = einsum(tmp7, (0, 1, 2), l1.bb, (1, 3), (0, 3, 2), optimize=True) + tmp144 += einsum(tmp135, (0, 1, 2, 3), v.baa.xvv, (4, 3, 2), (1, 0, 4), optimize=True) + del tmp135 + tmp144 += einsum(tmp136, (0, 1, 2, 3), v.bbb.xoo, (4, 1, 2), (3, 0, 4), optimize=True) * 2 + tmp144 += einsum(tmp136, (0, 1, 2, 3), tmp4, (0, 2, 4), (3, 1, 4), optimize=True) * -2 + del tmp136 + tmp144 += einsum(v.bbb.xvv, (0, 1, 2), tmp139, (3, 4, 2, 1), (4, 3, 0), optimize=True) * 4 + del tmp139 + tmp144 += einsum(tmp37, (0, 1, 2, 3), tmp41, (0, 3, 4), (2, 1, 4), optimize=True) + del tmp37 + tmp144 += einsum(tmp10, (0, 1, 2), tmp85, (0, 3, 4, 1), (4, 3, 2), optimize=True) * 2 + del tmp85 + tmp144 += einsum(v.bbb.xov, (0, 1, 2), tmp140, (3, 1, 4, 2), (4, 3, 0), optimize=True) * -4 + del tmp140 + tmp144 += einsum(v.baa.xov, (0, 1, 2), tmp141, (1, 3, 4, 2), (4, 3, 0), optimize=True) + del tmp141 + tmp144 += einsum(tmp142, (0, 1, 2, 3), tmp113, (2, 0, 4), (3, 1, 4), optimize=True) * -2 + del tmp142, tmp113 + tmp144 += einsum(tmp60, (0, 1, 2, 3), v.baa.xoo, (4, 0, 1), (3, 2, 4), optimize=True) * -1 + tmp144 += einsum(tmp60, (0, 1, 2, 3), tmp1, (0, 1, 4), (3, 2, 4), optimize=True) * -1 + tmp144 += einsum(v.bbb.xov, (0, 1, 2), tmp143, (3, 2), (3, 1, 0), optimize=True) * -1 + del tmp143 + tmp144 += einsum(v.bbb.xoo, (0, 1, 2), tmp90, (1, 3), (3, 2, 0), optimize=True) * -1 + del tmp90 + l1new.bb += einsum(tmp144, (0, 1, 2), v.bbb.xov, (2, 0, 3), (3, 1), optimize=True) * -1 + del tmp144 + tmp125 = einsum(t2.bbbb, (0, 1, 2, 3), tmp116, (4, 3, 5, 2), (4, 1, 0, 5), optimize=True) + del tmp116 + tmp125 += einsum(tmp117, (0, 1, 2, 3), t2.bbbb, (0, 4, 3, 5), (2, 4, 1, 5), optimize=True) * -2 + del tmp117 + tmp125 += einsum(tmp5, (0, 1, 2), tmp118, (3, 4, 2), (1, 3, 0, 4), optimize=True) + del tmp118 + tmp125 += einsum(tmp112, (0, 1), t2.bbbb, (2, 3, 1, 4), (0, 3, 2, 4), optimize=True) + del tmp112 + tmp125 += einsum(tmp5, (0, 1, 2), tmp7, (3, 4, 2), (1, 0, 3, 4), optimize=True) * -1 + del tmp7 + tmp125 += einsum(t1.bb, (0, 1), tmp124, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) * -1 + del tmp124 + l1new.bb += einsum(l2.bbbb, (0, 1, 2, 3), tmp125, (4, 2, 3, 0), (1, 4), optimize=True) * -2 + del tmp125 + tmp134 = tmp126.copy() * -0.5 + del tmp126 + tmp134 += tmp127 * -1 + del tmp127 + tmp134 += tmp128 * -0.5 + del tmp128 + tmp134 += tmp129 * -1 + del tmp129 + tmp134 += tmp130 + del tmp130 + tmp134 += tmp131 + del tmp131 + tmp134 += tmp133 * -1 + del tmp133 + tmp134 += einsum(tmp5, (0, 1, 2), l1.bb, (3, 0), (1, 3, 2), optimize=True) * -0.5 + del tmp5 + l1new.bb += einsum(v.bbb.xvv, (0, 1, 2), tmp134, (3, 1, 0), (2, 3), optimize=True) * 2 + del tmp134 + tmp97 = tmp74.copy() + del tmp74 + tmp97 += tmp79 + del tmp79 + tmp97 += tmp81 * -1 + del tmp81 + tmp97 += tmp93 * -1 + del tmp93 + tmp97 += tmp94 * -1 + del tmp94 + tmp97 += tmp96 * -1 + del tmp96 + l1new.bb += einsum(v.bbb.xov, (0, 1, 2), tmp97, (0,), (2, 1), optimize=True) + l1new.aa += einsum(tmp97, (0,), v.baa.xov, (0, 1, 2), (2, 1), optimize=True) + del tmp97 + tmp146 = f.bb.vv.transpose((1, 0)).copy() + tmp146 += einsum(v.bbb.xvv, (0, 1, 2), tmp145, (0,), (2, 1), optimize=True) + del tmp145 + l1new.bb += einsum(tmp146, (0, 1), l1.bb, (0, 2), (1, 2), optimize=True) + del tmp146 + tmp71 = einsum(tmp27, (0, 1, 2), l1.aa, (1, 3), (0, 3, 2), optimize=True) + tmp71 += einsum(v.baa.xoo, (0, 1, 2), tmp49, (3, 1, 2, 4), (4, 3, 0), optimize=True) * 2 + tmp71 += einsum(v.bbb.xvv, (0, 1, 2), tmp50, (3, 4, 2, 1), (4, 3, 0), optimize=True) + del tmp50 + tmp71 += einsum(tmp1, (0, 1, 2), tmp49, (0, 3, 1, 4), (4, 3, 2), optimize=True) * -2 + del tmp1, tmp49 + tmp71 += einsum(v.baa.xvv, (0, 1, 2), tmp53, (3, 4, 2, 1), (4, 3, 0), optimize=True) + del tmp53 + tmp71 += einsum(tmp35, (0, 1, 2, 3), tmp41, (0, 3, 4), (2, 1, 4), optimize=True) * 2 + del tmp35, tmp41 + tmp71 += einsum(tmp54, (0, 1, 2, 3), tmp10, (2, 3, 4), (1, 0, 4), optimize=True) + del tmp54 + tmp71 += einsum(v.baa.xov, (0, 1, 2), tmp55, (3, 1, 4, 2), (4, 3, 0), optimize=True) * -1 + del tmp55 + tmp71 += einsum(v.bbb.xov, (0, 1, 2), tmp56, (3, 4, 1, 2), (4, 3, 0), optimize=True) + del tmp56 + tmp71 += einsum(tmp57, (0, 1, 2, 3), tmp19, (2, 0, 4), (3, 1, 4), optimize=True) * -2 + del tmp57, tmp19 + tmp71 += einsum(tmp60, (0, 1, 2, 3), v.bbb.xoo, (4, 2, 3), (1, 0, 4), optimize=True) * -1 + tmp71 += einsum(tmp4, (0, 1, 2), tmp60, (3, 4, 0, 1), (4, 3, 2), optimize=True) * -1 + del tmp4, tmp60 + tmp71 += einsum(tmp70, (0, 1), v.baa.xov, (2, 3, 1), (0, 3, 2), optimize=True) * -2 + del tmp70 + tmp71 += einsum(tmp68, (0, 1), v.baa.xoo, (2, 0, 3), (1, 3, 2), optimize=True) * -2 + del tmp68 + l1new.aa += einsum(v.baa.xov, (0, 1, 2), tmp71, (1, 3, 0), (2, 3), optimize=True) * -1 + del tmp71 + tmp34 = einsum(tmp22, (0, 1, 2, 3), t2.aaaa, (4, 5, 3, 2), (0, 5, 4, 1), optimize=True) + del tmp22 + tmp34 += einsum(t2.aaaa, (0, 1, 2, 3), tmp23, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * -2 + del tmp23 + tmp34 += einsum(tmp2, (0, 1, 2), tmp26, (3, 4, 2), (1, 3, 0, 4), optimize=True) + del tmp26 + tmp34 += einsum(t2.aaaa, (0, 1, 2, 3), tmp16, (4, 2), (4, 1, 0, 3), optimize=True) + tmp34 += einsum(tmp27, (0, 1, 2), tmp2, (3, 4, 2), (4, 3, 0, 1), optimize=True) * -1 + del tmp27 + tmp34 += einsum(tmp33, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 2, 4), optimize=True) * -1 + del tmp33 + l1new.aa += einsum(tmp34, (0, 1, 2, 3), l2.aaaa, (3, 4, 1, 2), (4, 0), optimize=True) * -2 + del tmp34 + tmp48 = tmp36.copy() * -2 + del tmp36 + tmp48 += tmp38 * -1 + del tmp38 + tmp48 += tmp39 * -2 + del tmp39 + tmp48 += tmp40 * -1 + del tmp40 + tmp48 += tmp42 + del tmp42 + tmp48 += tmp43 + del tmp43 + tmp48 += tmp47 * -1 + del tmp47 + tmp48 += einsum(tmp2, (0, 1, 2), l1.aa, (3, 0), (1, 3, 2), optimize=True) * -1 + l1new.aa += einsum(v.baa.xvv, (0, 1, 2), tmp48, (3, 1, 0), (2, 3), optimize=True) + del tmp48 + tmp100 = f.aa.vv.transpose((1, 0)).copy() + tmp100 += tmp99.transpose((1, 0)) + del tmp99 + l1new.aa += einsum(l1.aa, (0, 1), tmp100, (0, 2), (2, 1), optimize=True) + del tmp100 + tmp98 = tmp65.copy() + del tmp65 + tmp98 += tmp66 * 2 + del tmp66 + tmp98 += tmp67 + del tmp67 + l1new.aa += einsum(tmp98, (0, 1), tmp16, (1, 2), (2, 0), optimize=True) * -1 + del tmp98 + tmp21 = einsum(tmp0, (0, 1, 2, 3), t2.abab, (4, 5, 1, 2), (0, 4, 5, 3), optimize=True) + del tmp0 + tmp21 += einsum(t2.abab, (0, 1, 2, 3), tmp3, (0, 4, 5, 2), (5, 4, 1, 3), optimize=True) * -1 + del tmp3 + tmp21 += einsum(tmp6, (0, 1, 2, 3), t2.abab, (4, 1, 3, 5), (0, 4, 2, 5), optimize=True) * -1 + del tmp6 + tmp21 += einsum(tmp2, (0, 1, 2), tmp10, (3, 4, 2), (1, 0, 3, 4), optimize=True) + del tmp10, tmp2 + tmp21 += einsum(t2.abab, (0, 1, 2, 3), tmp16, (4, 2), (4, 0, 1, 3), optimize=True) + del tmp16 + tmp21 += einsum(t1.bb, (0, 1), tmp20, (2, 3, 0, 4), (3, 2, 4, 1), optimize=True) * -1 + del tmp20 + l1new.aa += einsum(l2.abab, (0, 1, 2, 3), tmp21, (4, 2, 3, 1), (0, 4), optimize=True) * -1 + del tmp21 + l1new.aa += f.aa.ov.transpose((1, 0)) + l1new.bb += f.bb.ov.transpose((1, 0)) + + return {f"l1new": l1new, f"l2new": l2new} + +def make_rdm1_f(l1=None, l2=None, t1=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:48:59.483678. + + Parameters + ---------- + l1 : Namespace of arrays + L1 amplitudes. + l2 : Namespace of arrays + L2 amplitudes. + t1 : Namespace of arrays + T1 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + + Returns + ------- + rdm1 : Namespace of arrays + One-particle reduced density matrix. + """ + + rdm1 = Namespace() + rdm1.aa = Namespace() + rdm1.bb = Namespace() + delta = Namespace( + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t2.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t2.bbbb.shape[-1])), + ) + tmp5 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 1), (4, 0), optimize=True) + rdm1.bb.oo = tmp5.transpose((1, 0)).copy() * -2 + tmp4 = einsum(l1.bb, (0, 1), t1.bb, (2, 0), (1, 2), optimize=True) + rdm1.bb.oo += tmp4.transpose((1, 0)) * -1 + tmp3 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 1), (3, 4), optimize=True) + rdm1.bb.oo += tmp3.transpose((1, 0)) * -1 + tmp0 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 1), (2, 4), optimize=True) + rdm1.aa.oo = tmp0.transpose((1, 0)).copy() * -1 + tmp1 = einsum(t1.aa, (0, 1), l1.aa, (1, 2), (2, 0), optimize=True) + rdm1.aa.oo += tmp1.transpose((1, 0)) * -1 + tmp2 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 1), (4, 0), optimize=True) + rdm1.aa.oo += tmp2.transpose((1, 0)) * -2 + tmp10 = einsum(t1.bb, (0, 1), l2.bbbb, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + rdm1.bb.ov = einsum(tmp10, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 3), (2, 4), optimize=True) * 2 + del tmp10 + tmp11 = tmp4.copy() + del tmp4 + tmp11 += tmp3 + del tmp3 + tmp11 += tmp5 * 2 + del tmp5 + rdm1.bb.ov += einsum(tmp11, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) * -1 + del tmp11 + tmp9 = einsum(l2.abab, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) + rdm1.bb.ov += einsum(tmp9, (0, 1, 2, 3), t2.abab, (0, 1, 3, 4), (2, 4), optimize=True) * -1 + del tmp9 + tmp7 = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (4, 0), (2, 4, 3, 1), optimize=True) + rdm1.aa.ov = einsum(t2.abab, (0, 1, 2, 3), tmp7, (0, 4, 1, 3), (4, 2), optimize=True) * -1 + del tmp7 + tmp6 = einsum(l2.aaaa, (0, 1, 2, 3), t1.aa, (4, 1), (2, 3, 4, 0), optimize=True) + rdm1.aa.ov += einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 3), (2, 4), optimize=True) * 2 + del tmp6 + tmp8 = tmp1.copy() + del tmp1 + tmp8 += tmp2 * 2 + del tmp2 + tmp8 += tmp0 + del tmp0 + rdm1.aa.ov += einsum(t1.aa, (0, 1), tmp8, (0, 2), (2, 1), optimize=True) * -1 + del tmp8 + rdm1.aa.oo += delta.aa.oo.transpose((1, 0)) + rdm1.bb.oo += delta.bb.oo.transpose((1, 0)) + del delta + rdm1.aa.ov += einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 1), (0, 2), optimize=True) * 2 + rdm1.aa.ov += t1.aa + rdm1.aa.ov += einsum(l1.bb, (0, 1), t2.abab, (2, 1, 3, 0), (2, 3), optimize=True) + rdm1.bb.ov += einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) * 2 + rdm1.bb.ov += t1.bb + rdm1.bb.ov += einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) + rdm1.aa.vo = l1.aa.copy() + rdm1.bb.vo = l1.bb.copy() + rdm1.aa.vv = einsum(l1.aa, (0, 1), t1.aa, (1, 2), (0, 2), optimize=True) + rdm1.aa.vv += einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + rdm1.aa.vv += einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 0), (1, 4), optimize=True) * -2 + rdm1.bb.vv = einsum(l1.bb, (0, 1), t1.bb, (1, 2), (0, 2), optimize=True) + rdm1.bb.vv += einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (3, 4, 0, 1), (4, 2), optimize=True) * -2 + rdm1.bb.vv += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + rdm1.aa = np.block([[rdm1.aa.oo, rdm1.aa.ov], [rdm1.aa.vo, rdm1.aa.vv]]) + rdm1.bb = np.block([[rdm1.bb.oo, rdm1.bb.ov], [rdm1.bb.vo, rdm1.bb.vv]]) + + return rdm1 + +def make_rdm2_f(l1=None, l2=None, t1=None, t2=None, **kwargs): + """ + Code generated by `albert` 0.0.0 on 2024-07-18T20:49:39.315668. + + Parameters + ---------- + l1 : Namespace of arrays + L1 amplitudes. + l2 : Namespace of arrays + L2 amplitudes. + t1 : Namespace of arrays + T1 amplitudes. + t2 : Namespace of arrays + T2 amplitudes. + + Returns + ------- + rdm2 : Namespace of arrays + Two-particle reduced density matrix. + """ + + rdm2 = Namespace() + rdm2.aaaa = Namespace() + rdm2.abab = Namespace() + rdm2.bbbb = Namespace() + delta = Namespace( + aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t2.aaaa.shape[-1])), + bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t2.bbbb.shape[-1])), + ) + tmp18 = einsum(t1.bb, (0, 1), l2.bbbb, (2, 1, 3, 4), (3, 4, 0, 2), optimize=True) + rdm2.bbbb.vooo = tmp18.transpose((3, 2, 1, 0)).copy() * 2 + rdm2.bbbb.ovoo = tmp18.transpose((2, 3, 1, 0)).copy() * -2 + tmp10 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (2, 3, 4, 1), (4, 0), optimize=True) + tmp9 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 1), (3, 4), optimize=True) + tmp13 = einsum(l2.abab, (0, 1, 2, 3), t1.bb, (4, 1), (2, 3, 4, 0), optimize=True) + rdm2.abab.vovv = einsum(t2.abab, (0, 1, 2, 3), tmp13, (0, 1, 4, 5), (5, 4, 2, 3), optimize=True) * -1 + rdm2.abab.vovo = einsum(tmp13, (0, 1, 2, 3), t1.aa, (0, 4), (3, 2, 4, 1), optimize=True) * -1 + rdm2.abab.vooo = tmp13.transpose((3, 2, 0, 1)).copy() * -1 + tmp1 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 1), (4, 0), optimize=True) + tmp0 = einsum(t1.aa, (0, 1), l1.aa, (1, 2), (2, 0), optimize=True) + tmp2 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 1), (2, 4), optimize=True) + tmp8 = einsum(l1.bb, (0, 1), t1.bb, (2, 0), (1, 2), optimize=True) + tmp6 = einsum(l2.aaaa, (0, 1, 2, 3), t1.aa, (4, 1), (2, 3, 4, 0), optimize=True) + rdm2.aaaa.vooo = tmp6.transpose((3, 2, 1, 0)).copy() * 2 + rdm2.aaaa.ovoo = tmp6.transpose((2, 3, 1, 0)).copy() * -2 + tmp26 = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (4, 0), (2, 4, 3, 1), optimize=True) + rdm2.abab.ovvv = einsum(tmp26, (0, 1, 2, 3), t2.abab, (0, 2, 4, 5), (1, 3, 4, 5), optimize=True) * -1 + rdm2.abab.ovov = einsum(t1.bb, (0, 1), tmp26, (2, 3, 0, 4), (3, 4, 2, 1), optimize=True) * -1 + rdm2.abab.ovoo = tmp26.transpose((1, 3, 0, 2)).copy() * -1 + tmp95 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 3, 5, 0), (2, 4, 1, 5), optimize=True) * -1 + rdm2.bbbb.vovo = tmp95.transpose((2, 1, 3, 0)).copy() * -4 + rdm2.bbbb.voov = tmp95.transpose((2, 1, 0, 3)).copy() * 4 + rdm2.bbbb.ovvo = tmp95.transpose((1, 2, 3, 0)).copy() * 4 + rdm2.bbbb.ovov = tmp95.transpose((1, 2, 0, 3)).copy() * -4 + tmp114 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 4, 0, 5), (3, 4, 1, 5), optimize=True) + rdm2.bbbb.vovo += tmp114.transpose((2, 1, 3, 0)) * -1 + rdm2.bbbb.voov += tmp114.transpose((2, 1, 0, 3)) + rdm2.bbbb.ovvo += tmp114.transpose((1, 2, 3, 0)) + rdm2.bbbb.ovov += tmp114.transpose((1, 2, 0, 3)) * -1 + tmp87 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 5, 1), (2, 4, 0, 5), optimize=True) + rdm2.aaaa.vovo = tmp87.transpose((2, 1, 3, 0)).copy() * -1 + rdm2.aaaa.voov = tmp87.transpose((2, 1, 0, 3)).copy() + rdm2.aaaa.ovvo = tmp87.transpose((1, 2, 3, 0)).copy() + rdm2.aaaa.ovov = tmp87.transpose((1, 2, 0, 3)).copy() * -1 + tmp65 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (3, 4, 5, 1), (5, 0, 4, 2), optimize=True) * -1 + rdm2.aaaa.vovo += tmp65.transpose((2, 1, 3, 0)) * -4 + rdm2.aaaa.voov += tmp65.transpose((2, 1, 0, 3)) * 4 + rdm2.aaaa.ovvo += tmp65.transpose((1, 2, 3, 0)) * 4 + rdm2.aaaa.ovov += tmp65.transpose((1, 2, 0, 3)) * -4 + tmp19 = einsum(t1.bb, (0, 1), tmp18, (2, 3, 4, 1), (2, 3, 0, 4), optimize=True) + rdm2.bbbb.oooo = tmp19.transpose((2, 3, 1, 0)).copy() * -2 + tmp17 = einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (4, 5, 0, 1), (2, 3, 4, 5), optimize=True) + rdm2.bbbb.oooo += tmp17.transpose((3, 2, 1, 0)) * 2 + tmp101 = tmp9.copy() * 0.5 + tmp101 += tmp10 + tmp50 = einsum(tmp18, (0, 1, 2, 3), t2.bbbb, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 + rdm2.bbbb.oovo = tmp50.transpose((2, 1, 3, 0)).copy() * -4 + rdm2.bbbb.oovo += tmp50.transpose((1, 2, 3, 0)) * 4 + rdm2.bbbb.ooov = tmp50.transpose((2, 1, 0, 3)).copy() * 4 + rdm2.bbbb.ooov += tmp50.transpose((1, 2, 0, 3)) * -4 + tmp51 = einsum(tmp13, (0, 1, 2, 3), t2.abab, (0, 4, 3, 5), (1, 2, 4, 5), optimize=True) + rdm2.bbbb.oovo += tmp51.transpose((2, 1, 3, 0)) * -1 + rdm2.bbbb.oovo += tmp51.transpose((1, 2, 3, 0)) + rdm2.bbbb.ooov += tmp51.transpose((2, 1, 0, 3)) + rdm2.bbbb.ooov += tmp51.transpose((1, 2, 0, 3)) * -1 + tmp28 = tmp0.copy() * 0.5 + tmp28 += tmp1 + tmp28 += tmp2 * 0.5 + rdm2.aaaa.ooov = einsum(t1.aa, (0, 1), tmp28, (2, 3), (0, 3, 2, 1), optimize=True) * 2 + tmp12 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 5, 0, 1), (2, 4, 3, 5), optimize=True) + rdm2.abab.oooo = tmp12.transpose((1, 3, 0, 2)).copy() + tmp14 = einsum(tmp13, (0, 1, 2, 3), t1.aa, (4, 3), (0, 4, 1, 2), optimize=True) + rdm2.abab.oooo += tmp14.transpose((1, 3, 0, 2)) + tmp15 = tmp8.copy() + tmp15 += tmp9 + tmp15 += tmp10 * 2 + rdm2.abab.oovv = einsum(tmp15, (0, 1), t2.abab, (2, 0, 3, 4), (2, 1, 3, 4), optimize=True) * -1 + rdm2.abab.oovo = einsum(tmp15, (0, 1), t1.aa, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.bbbb.ooov += einsum(tmp15, (0, 1), t1.bb, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.bbbb.ooov += einsum(tmp15, (0, 1), t1.bb, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.bbbb.oooo += einsum(tmp15, (0, 1), delta.bb.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp32 = einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (4, 1, 5, 3), (0, 2, 4, 5), optimize=True) * -1 + rdm2.aaaa.oovo = tmp32.transpose((2, 1, 3, 0)).copy() * -4 + rdm2.aaaa.oovo += tmp32.transpose((1, 2, 3, 0)) * 4 + rdm2.aaaa.ooov += tmp32.transpose((2, 1, 0, 3)) * 4 + rdm2.aaaa.ooov += tmp32.transpose((1, 2, 0, 3)) * -4 + tmp31 = einsum(t2.abab, (0, 1, 2, 3), tmp26, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + rdm2.aaaa.oovo += tmp31.transpose((2, 1, 3, 0)) * -1 + rdm2.aaaa.oovo += tmp31.transpose((1, 2, 3, 0)) + rdm2.aaaa.ooov += tmp31.transpose((2, 1, 0, 3)) + rdm2.aaaa.ooov += tmp31.transpose((1, 2, 0, 3)) * -1 + tmp5 = einsum(t2.aaaa, (0, 1, 2, 3), l2.aaaa, (2, 3, 4, 5), (4, 5, 0, 1), optimize=True) + rdm2.aaaa.oooo = tmp5.transpose((3, 2, 1, 0)).copy() * 2 + tmp7 = einsum(tmp6, (0, 1, 2, 3), t1.aa, (4, 3), (0, 1, 4, 2), optimize=True) + rdm2.aaaa.oooo += tmp7.transpose((2, 3, 1, 0)) * -2 + tmp75 = tmp1.copy() * 2 + tmp75 += tmp2 + tmp126 = tmp114.copy() + del tmp114 + tmp126 += tmp95 * 4 + tmp115 = einsum(t1.bb, (0, 1), tmp18, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + rdm2.bbbb.vovo += tmp115.transpose((2, 1, 3, 0)) * 2 + rdm2.bbbb.voov += tmp115.transpose((2, 1, 0, 3)) * -2 + rdm2.bbbb.ovvo += tmp115.transpose((1, 2, 3, 0)) * -2 + rdm2.bbbb.ovov += tmp115.transpose((1, 2, 0, 3)) * 2 + tmp112 = einsum(l1.bb, (0, 1), t1.bb, (1, 2), (0, 2), optimize=True) + rdm2.bbbb.ovvv = einsum(t1.bb, (0, 1), tmp112, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.bbbb.ovvv += einsum(tmp112, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + tmp83 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (2, 4, 0, 1), (4, 3), optimize=True) + tmp84 = einsum(t2.bbbb, (0, 1, 2, 3), l2.bbbb, (3, 4, 0, 1), (4, 2), optimize=True) * -1 + tmp97 = einsum(t2.bbbb, (0, 1, 2, 3), l2.abab, (4, 3, 5, 1), (5, 0, 4, 2), optimize=True) + rdm2.abab.voov = tmp97.transpose((2, 1, 0, 3)).copy() * 2 + tmp93 = einsum(t2.abab, (0, 1, 2, 3), l2.aaaa, (2, 4, 5, 0), (5, 1, 4, 3), optimize=True) * -1 + rdm2.abab.voov += tmp93.transpose((2, 1, 0, 3)) * 2 + tmp62 = einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 0), (1, 4), optimize=True) * -1 + tmp63 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (2, 3, 4, 1), (0, 4), optimize=True) + tmp109 = einsum(l1.aa, (0, 1), t1.aa, (1, 2), (0, 2), optimize=True) + rdm2.aaaa.ovvv = einsum(t1.aa, (0, 1), tmp109, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.aaaa.ovvv += einsum(t1.aa, (0, 1), tmp109, (2, 3), (0, 2, 1, 3), optimize=True) + tmp111 = einsum(tmp6, (0, 1, 2, 3), t1.aa, (1, 4), (0, 2, 3, 4), optimize=True) + rdm2.aaaa.vovo += tmp111.transpose((2, 1, 3, 0)) * 2 + rdm2.aaaa.voov += tmp111.transpose((2, 1, 0, 3)) * -2 + rdm2.aaaa.ovvo += tmp111.transpose((1, 2, 3, 0)) * -2 + rdm2.aaaa.ovov += tmp111.transpose((1, 2, 0, 3)) * 2 + tmp88 = tmp65.copy() * 4 + tmp88 += tmp87 + del tmp87 + rdm2.abab.oovv += einsum(tmp88, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (1, 4, 3, 5), optimize=True) + tmp67 = einsum(l2.bbbb, (0, 1, 2, 3), t2.abab, (4, 3, 5, 0), (4, 2, 5, 1), optimize=True) * -1 + rdm2.abab.ovvo = tmp67.transpose((0, 3, 2, 1)).copy() * 2 + tmp69 = einsum(l2.abab, (0, 1, 2, 3), t2.aaaa, (4, 2, 5, 0), (4, 3, 5, 1), optimize=True) + rdm2.abab.ovvo += tmp69.transpose((0, 3, 2, 1)) * 2 + tmp52 = tmp17.transpose((1, 0, 3, 2)).copy() + del tmp17 + tmp52 += tmp19.transpose((0, 1, 3, 2)) * -1 + del tmp19 + rdm2.bbbb.oovv = einsum(tmp52, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 5), (3, 2, 5, 4), optimize=True) * 2 + tmp39 = einsum(tmp13, (0, 1, 2, 3), t2.abab, (0, 1, 3, 4), (2, 4), optimize=True) + tmp40 = einsum(tmp18, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 3), (2, 4), optimize=True) * -1 + tmp102 = einsum(tmp101, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) * 2 + del tmp101 + tmp107 = tmp51.copy() + del tmp51 + tmp107 += tmp50 * 4 + del tmp50 + tmp35 = einsum(l1.aa, (0, 1), t2.abab, (1, 2, 0, 3), (2, 3), optimize=True) + tmp36 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 1), (0, 2), optimize=True) + tmp49 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (3, 4), (4, 0, 1, 2), optimize=True) + rdm2.bbbb.oovo += tmp49.transpose((2, 1, 3, 0)) * 2 + rdm2.bbbb.ooov += tmp49.transpose((2, 1, 0, 3)) * -2 + tmp43 = einsum(t2.bbbb, (0, 1, 2, 3), tmp26, (4, 5, 1, 3), (4, 5, 0, 2), optimize=True) + rdm2.abab.ooov = tmp43.transpose((1, 2, 0, 3)).copy() * -2 + tmp44 = einsum(t2.abab, (0, 1, 2, 3), tmp6, (4, 0, 5, 2), (4, 5, 1, 3), optimize=True) * -1 + rdm2.abab.ooov += tmp44.transpose((1, 2, 0, 3)) * -2 + tmp58 = einsum(tmp18, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (4, 0, 2, 5), optimize=True) * -1 + rdm2.abab.oovo += tmp58.transpose((0, 2, 3, 1)) * -2 + tmp57 = einsum(tmp13, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 3), (4, 1, 2, 5), optimize=True) + rdm2.abab.oovo += tmp57.transpose((0, 2, 3, 1)) * -2 + tmp27 = einsum(t2.abab, (0, 1, 2, 3), tmp26, (0, 4, 1, 3), (4, 2), optimize=True) + tmp25 = einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 3), (2, 4), optimize=True) * -1 + tmp29 = einsum(tmp28, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * 2 + tmp45 = tmp12.copy() + del tmp12 + tmp45 += tmp14 + del tmp14 + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp45, (0, 4, 1, 5), (4, 5, 2, 3), optimize=True) + rdm2.abab.oovo += einsum(t1.aa, (0, 1), tmp45, (0, 2, 3, 4), (2, 4, 1, 3), optimize=True) + tmp20 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 1), (0, 2), optimize=True) + tmp21 = einsum(l1.bb, (0, 1), t2.abab, (2, 1, 3, 0), (2, 3), optimize=True) + tmp41 = einsum(tmp15, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) + tmp24 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (3, 4), (4, 0, 1, 2), optimize=True) + rdm2.aaaa.oovo += tmp24.transpose((2, 1, 3, 0)) * 2 + rdm2.aaaa.ooov += tmp24.transpose((2, 1, 0, 3)) * -2 + tmp81 = tmp32.copy() * 4 + del tmp32 + tmp81 += tmp31 + del tmp31 + tmp33 = tmp5.transpose((1, 0, 3, 2)).copy() + del tmp5 + tmp33 += tmp7.transpose((0, 1, 3, 2)) * -1 + del tmp7 + rdm2.aaaa.oovv = einsum(t2.aaaa, (0, 1, 2, 3), tmp33, (0, 1, 4, 5), (5, 4, 3, 2), optimize=True) * 2 + tmp4 = tmp0.copy() + tmp4 += tmp1 * 2 + tmp4 += tmp2 + rdm2.abab.oovv += einsum(tmp4, (0, 1), t2.abab, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * -1 + rdm2.aaaa.oovo += einsum(t1.aa, (0, 1), tmp4, (2, 3), (0, 3, 1, 2), optimize=True) * -1 + rdm2.aaaa.oovo += einsum(tmp4, (0, 1), t1.aa, (2, 3), (1, 2, 3, 0), optimize=True) + rdm2.abab.ooov += einsum(tmp4, (0, 1), t1.bb, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.aaaa.ooov += einsum(tmp4, (0, 1), t1.aa, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + rdm2.abab.oooo += einsum(delta.bb.oo, (0, 1), tmp4, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), tmp4, (2, 3), (1, 3, 2, 0), optimize=True) + rdm2.aaaa.oooo += einsum(tmp4, (0, 1), delta.aa.oo, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + tmp76 = einsum(tmp75, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) * 0.5 + del tmp75 + tmp60 = einsum(tmp15, (0, 1), t1.bb, (0, 2), (1, 2), optimize=True) * 0.5 + tmp54 = einsum(tmp28, (0, 1), t1.aa, (0, 2), (1, 2), optimize=True) + del tmp28 + tmp133 = einsum(l2.bbbb, (0, 1, 2, 3), t1.bb, (3, 4), (2, 0, 1, 4), optimize=True) + rdm2.bbbb.vvvv = einsum(t1.bb, (0, 1), tmp133, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * 2 + rdm2.bbbb.vvvo = tmp133.transpose((2, 1, 3, 0)).copy() * 2 + rdm2.bbbb.vvov = tmp133.transpose((2, 1, 0, 3)).copy() * -2 + del tmp133 + tmp132 = einsum(l2.abab, (0, 1, 2, 3), t1.bb, (3, 4), (2, 0, 1, 4), optimize=True) + rdm2.abab.vvvv = einsum(tmp132, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + rdm2.abab.vvov = tmp132.transpose((1, 2, 0, 3)).copy() + del tmp132 + tmp131 = einsum(t1.aa, (0, 1), l2.aaaa, (2, 3, 4, 0), (4, 2, 3, 1), optimize=True) + rdm2.aaaa.vvvv = einsum(t1.aa, (0, 1), tmp131, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * 2 + rdm2.aaaa.vvvo = tmp131.transpose((2, 1, 3, 0)).copy() * 2 + rdm2.aaaa.vvov = tmp131.transpose((2, 1, 0, 3)).copy() * -2 + del tmp131 + tmp128 = einsum(tmp18, (0, 1, 2, 3), t2.bbbb, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) + del tmp18 + rdm2.bbbb.vovv = tmp128.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.bbbb.ovvv += tmp128.transpose((0, 1, 3, 2)) * -2 + del tmp128 + tmp127 = einsum(tmp126, (0, 1, 2, 3), t1.bb, (0, 4), (1, 4, 2, 3), optimize=True) + del tmp126 + rdm2.bbbb.vovv += tmp127.transpose((2, 0, 3, 1)) * -1 + rdm2.bbbb.vovv += tmp127.transpose((2, 0, 1, 3)) + rdm2.bbbb.ovvv += tmp127.transpose((0, 2, 3, 1)) + rdm2.bbbb.ovvv += tmp127.transpose((0, 2, 1, 3)) * -1 + del tmp127 + tmp125 = einsum(t2.bbbb, (0, 1, 2, 3), l1.bb, (4, 1), (0, 4, 2, 3), optimize=True) + rdm2.bbbb.vovv += tmp125.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.ovvv += tmp125.transpose((0, 1, 3, 2)) * -2 + del tmp125 + tmp129 = einsum(tmp115, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 3, 4), optimize=True) * -1 + del tmp115 + rdm2.bbbb.vovv += tmp129.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.ovvv += tmp129.transpose((0, 1, 3, 2)) * -2 + del tmp129 + tmp113 = tmp112.copy() + tmp113 += tmp83 + tmp113 += tmp84 * 2 + rdm2.bbbb.vovv += einsum(t1.bb, (0, 1), tmp113, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.bbbb.vovv += einsum(tmp113, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.abab.ovvv += einsum(t1.aa, (0, 1), tmp113, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.voov += einsum(delta.bb.oo, (0, 1), tmp113, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + rdm2.bbbb.ovov += einsum(delta.bb.oo, (0, 1), tmp113, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.abab.ovov += einsum(tmp113, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp113 + tmp130 = tmp93.copy() + tmp130 += tmp97 + rdm2.abab.vovv += einsum(t1.aa, (0, 1), tmp130, (0, 2, 3, 4), (3, 2, 1, 4), optimize=True) * 2 + del tmp130 + tmp119 = einsum(t1.bb, (0, 1), tmp13, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) + rdm2.abab.vovv += einsum(tmp119, (0, 1, 2, 3), t1.aa, (0, 4), (2, 1, 4, 3), optimize=True) * -1 + rdm2.abab.voov += tmp119.transpose((2, 1, 0, 3)) * -1 + del tmp119 + tmp120 = einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 3, 0, 5), (5, 1, 4, 2), optimize=True) + rdm2.abab.vovv += einsum(t1.bb, (0, 1), tmp120, (0, 2, 3, 4), (3, 2, 4, 1), optimize=True) * -1 + rdm2.abab.vovo += tmp120.transpose((2, 1, 3, 0)) * -1 + del tmp120 + tmp110 = tmp109.copy() + tmp110 += tmp62 * 2 + tmp110 += tmp63 + rdm2.abab.vovv += einsum(tmp110, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.aaaa.vovv = einsum(t1.aa, (0, 1), tmp110, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.aaaa.vovv += einsum(tmp110, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.abab.vovo += einsum(delta.bb.oo, (0, 1), tmp110, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.aaaa.voov += einsum(tmp110, (0, 1), delta.aa.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.aaaa.ovov += einsum(tmp110, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp110 + tmp123 = einsum(tmp6, (0, 1, 2, 3), t2.aaaa, (0, 1, 4, 5), (2, 3, 4, 5), optimize=True) + del tmp6 + rdm2.aaaa.vovv += tmp123.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.ovvv += tmp123.transpose((0, 1, 3, 2)) * -2 + del tmp123 + tmp124 = einsum(t1.aa, (0, 1), tmp111, (0, 2, 3, 4), (2, 3, 4, 1), optimize=True) * -1 + del tmp111 + rdm2.aaaa.vovv += tmp124.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.ovvv += tmp124.transpose((0, 1, 3, 2)) * -2 + del tmp124 + tmp122 = einsum(tmp88, (0, 1, 2, 3), t1.aa, (0, 4), (1, 4, 2, 3), optimize=True) + del tmp88 + rdm2.aaaa.vovv += tmp122.transpose((2, 0, 3, 1)) * -1 + rdm2.aaaa.vovv += tmp122.transpose((2, 0, 1, 3)) + rdm2.aaaa.ovvv += tmp122.transpose((0, 2, 3, 1)) + rdm2.aaaa.ovvv += tmp122.transpose((0, 2, 1, 3)) * -1 + del tmp122 + tmp121 = einsum(t2.aaaa, (0, 1, 2, 3), l1.aa, (4, 1), (0, 4, 2, 3), optimize=True) + rdm2.aaaa.vovv += tmp121.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.ovvv += tmp121.transpose((0, 1, 3, 2)) * -2 + del tmp121 + tmp85 = tmp83.copy() + tmp85 += tmp84 * 2 + rdm2.bbbb.ovvv += einsum(t1.bb, (0, 1), tmp85, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.bbbb.ovvv += einsum(t1.bb, (0, 1), tmp85, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.oovv += einsum(tmp85, (0, 1), t2.bbbb, (2, 3, 0, 4), (3, 2, 1, 4), optimize=True) * 2 + rdm2.abab.oovv += einsum(t2.abab, (0, 1, 2, 3), tmp85, (3, 4), (0, 1, 2, 4), optimize=True) * -1 + del tmp85 + tmp117 = einsum(t1.aa, (0, 1), tmp26, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + rdm2.abab.ovvv += einsum(t1.bb, (0, 1), tmp117, (2, 0, 3, 4), (2, 4, 3, 1), optimize=True) * -1 + rdm2.abab.ovvo += tmp117.transpose((0, 3, 2, 1)) * -1 + del tmp117 + tmp89 = einsum(l2.abab, (0, 1, 2, 3), t2.abab, (4, 3, 0, 5), (2, 4, 1, 5), optimize=True) + rdm2.abab.ovvv += einsum(t1.aa, (0, 1), tmp89, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + rdm2.abab.ovov += tmp89.transpose((1, 2, 0, 3)) * -1 + rdm2.abab.oovv += einsum(tmp89, (0, 1, 2, 3), t2.abab, (0, 4, 5, 2), (1, 4, 5, 3), optimize=True) + del tmp89 + tmp86 = tmp69.copy() + tmp86 += tmp67 + rdm2.abab.ovvv += einsum(t1.bb, (0, 1), tmp86, (2, 0, 3, 4), (2, 4, 3, 1), optimize=True) * 2 + rdm2.abab.oovv += einsum(t2.bbbb, (0, 1, 2, 3), tmp86, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) * 4 + del tmp86 + tmp74 = tmp62.copy() + tmp74 += tmp63 * 0.5 + rdm2.aaaa.ovvv += einsum(t1.aa, (0, 1), tmp74, (2, 3), (0, 2, 3, 1), optimize=True) * -2 + rdm2.aaaa.ovvv += einsum(tmp74, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) * 2 + rdm2.aaaa.oovv += einsum(t2.aaaa, (0, 1, 2, 3), tmp74, (2, 4), (1, 0, 4, 3), optimize=True) * 4 + del tmp74 + tmp118 = tmp112.copy() * 0.5 + del tmp112 + tmp118 += tmp83 * 0.5 + tmp118 += tmp84 + rdm2.bbbb.vovo += einsum(delta.bb.oo, (0, 1), tmp118, (2, 3), (2, 1, 3, 0), optimize=True) * 2 + rdm2.bbbb.ovvo += einsum(delta.bb.oo, (0, 1), tmp118, (2, 3), (1, 2, 3, 0), optimize=True) * -2 + del tmp118 + tmp116 = tmp109.copy() * 0.5 + del tmp109 + tmp116 += tmp62 + tmp116 += tmp63 * 0.5 + rdm2.aaaa.vovo += einsum(tmp116, (0, 1), delta.aa.oo, (2, 3), (0, 3, 1, 2), optimize=True) * 2 + rdm2.aaaa.ovvo += einsum(tmp116, (0, 1), delta.aa.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -2 + del tmp116 + tmp106 = einsum(t1.bb, (0, 1), tmp52, (0, 2, 3, 4), (2, 4, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp106, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) * 2 + del tmp106 + tmp96 = einsum(t2.bbbb, (0, 1, 2, 3), tmp95, (1, 4, 3, 5), (0, 4, 2, 5), optimize=True) + del tmp95 + rdm2.bbbb.oovv += tmp96 * 8 + rdm2.bbbb.oovv += tmp96.transpose((0, 1, 3, 2)) * -8 + del tmp96 + tmp104 = einsum(t1.bb, (0, 1), tmp8, (0, 2), (2, 1), optimize=True) + rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp104, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.bbbb.oovv += einsum(tmp104, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp104, (0, 1), t1.bb, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.bbbb.oovv += einsum(tmp104, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + del tmp104 + tmp103 = tmp39.copy() + tmp103 += tmp40 * 2 + tmp103 += tmp102 + del tmp102 + rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp103, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + rdm2.bbbb.oovv += einsum(tmp103, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp103, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.bbbb.oovv += einsum(tmp103, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) * -1 + del tmp103 + tmp94 = einsum(t2.abab, (0, 1, 2, 3), tmp93, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp93 + rdm2.bbbb.oovv += tmp94.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp94.transpose((0, 1, 3, 2)) * -2 + del tmp94 + tmp108 = einsum(tmp107, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp107 + rdm2.bbbb.oovv += tmp108.transpose((0, 1, 3, 2)) + rdm2.bbbb.oovv += tmp108.transpose((1, 0, 3, 2)) * -1 + rdm2.bbbb.oovv += tmp108 * -1 + rdm2.bbbb.oovv += tmp108.transpose((1, 0, 2, 3)) + del tmp108 + tmp105 = einsum(tmp15, (0, 1), t2.bbbb, (0, 2, 3, 4), (2, 1, 3, 4), optimize=True) * 2 + del tmp15 + rdm2.bbbb.oovv += tmp105.transpose((1, 0, 3, 2)) + rdm2.bbbb.oovv += tmp105.transpose((0, 1, 3, 2)) * -1 + del tmp105 + tmp48 = t1.bb.copy() * 0.5 + tmp48 += tmp35 * 0.5 + tmp48 += tmp36 + rdm2.bbbb.oovv += einsum(tmp48, (0, 1), t1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -2 + rdm2.bbbb.ooov += einsum(delta.bb.oo, (0, 1), tmp48, (2, 3), (2, 1, 0, 3), optimize=True) * -2 + del tmp48 + tmp100 = einsum(tmp49, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 4, 3), optimize=True) + del tmp49 + rdm2.bbbb.oovv += tmp100.transpose((0, 1, 3, 2)) * -2 + rdm2.bbbb.oovv += tmp100 * 2 + del tmp100 + tmp37 = t1.bb.copy() + tmp37 += tmp35 + tmp37 += tmp36 * 2 + rdm2.bbbb.oovv += einsum(tmp37, (0, 1), t1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp37, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.oovo += einsum(tmp37, (0, 1), delta.bb.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.bbbb.oovo += einsum(delta.bb.oo, (0, 1), tmp37, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.bbbb.ooov += einsum(tmp37, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.abab.ooov += einsum(delta.aa.oo, (0, 1), tmp37, (2, 3), (1, 2, 0, 3), optimize=True) + del tmp37 + tmp98 = einsum(tmp97, (0, 1, 2, 3), t2.abab, (0, 4, 2, 5), (4, 1, 5, 3), optimize=True) + del tmp97 + rdm2.bbbb.oovv += tmp98.transpose((1, 0, 3, 2)) * 2 + rdm2.bbbb.oovv += tmp98 * 2 + rdm2.bbbb.oovv += tmp98.transpose((1, 0, 2, 3)) * -2 + rdm2.bbbb.oovv += tmp98.transpose((0, 1, 3, 2)) * -2 + del tmp98 + tmp99 = tmp35.copy() + del tmp35 + tmp99 += tmp36 * 2 + del tmp36 + rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp99, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.bbbb.oovv += einsum(t1.bb, (0, 1), tmp99, (2, 3), (2, 0, 3, 1), optimize=True) + del tmp99 + tmp92 = tmp83.copy() * 0.5 + del tmp83 + tmp92 += tmp84 + del tmp84 + rdm2.bbbb.oovv += einsum(t2.bbbb, (0, 1, 2, 3), tmp92, (2, 4), (1, 0, 3, 4), optimize=True) * -4 + del tmp92 + tmp64 = tmp62.copy() * 2 + del tmp62 + tmp64 += tmp63 + del tmp63 + rdm2.abab.oovv += einsum(tmp64, (0, 1), t2.abab, (2, 3, 0, 4), (2, 3, 1, 4), optimize=True) * -1 + rdm2.aaaa.oovv += einsum(t2.aaaa, (0, 1, 2, 3), tmp64, (2, 4), (1, 0, 3, 4), optimize=True) * -2 + del tmp64 + tmp90 = tmp44.copy() + del tmp44 + tmp90 += tmp43 + del tmp43 + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp90, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * -2 + del tmp90 + tmp56 = einsum(l1.bb, (0, 1), t2.abab, (2, 3, 4, 0), (2, 1, 3, 4), optimize=True) + rdm2.abab.oovv += einsum(tmp56, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) * -1 + rdm2.abab.oovo += tmp56.transpose((0, 2, 3, 1)) * -1 + del tmp56 + tmp91 = tmp57.copy() + del tmp57 + tmp91 += tmp58 + del tmp58 + rdm2.abab.oovv += einsum(t1.bb, (0, 1), tmp91, (2, 0, 3, 4), (2, 3, 4, 1), optimize=True) * -2 + del tmp91 + tmp30 = tmp25.copy() * 2 + tmp30 += tmp27 + tmp30 += tmp29 + del tmp29 + rdm2.abab.oovv += einsum(tmp30, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + rdm2.abab.oovo += einsum(delta.bb.oo, (0, 1), tmp30, (2, 3), (2, 1, 3, 0), optimize=True) * -1 + rdm2.aaaa.ooov += einsum(tmp30, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + rdm2.aaaa.ooov += einsum(delta.aa.oo, (0, 1), tmp30, (2, 3), (2, 1, 0, 3), optimize=True) + del tmp30 + tmp47 = einsum(tmp13, (0, 1, 2, 3), t2.abab, (4, 1, 3, 5), (0, 4, 2, 5), optimize=True) + del tmp13 + rdm2.abab.oovv += einsum(tmp47, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) + rdm2.abab.ooov += tmp47.transpose((1, 2, 0, 3)) + del tmp47 + tmp59 = einsum(tmp26, (0, 1, 2, 3), t2.abab, (0, 4, 5, 3), (1, 2, 4, 5), optimize=True) + del tmp26 + rdm2.abab.oovv += einsum(tmp59, (0, 1, 2, 3), t1.bb, (1, 4), (0, 2, 3, 4), optimize=True) + rdm2.abab.oovo += tmp59.transpose((0, 2, 3, 1)) + del tmp59 + tmp38 = einsum(t2.abab, (0, 1, 2, 3), l1.aa, (2, 4), (4, 0, 1, 3), optimize=True) + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp38, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) * -1 + rdm2.abab.ooov += tmp38.transpose((1, 2, 0, 3)) * -1 + del tmp38 + tmp46 = einsum(tmp45, (0, 1, 2, 3), t1.bb, (2, 4), (0, 1, 3, 4), optimize=True) + del tmp45 + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp46, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + rdm2.abab.ooov += tmp46.transpose((1, 2, 0, 3)) + del tmp46 + tmp72 = tmp20.copy() * 2 + tmp72 += tmp21 + rdm2.abab.oovv += einsum(tmp72, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.aaaa.oovv += einsum(tmp72, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.aaaa.oovv += einsum(tmp72, (0, 1), t1.aa, (2, 3), (0, 2, 1, 3), optimize=True) + del tmp72 + tmp42 = tmp39.copy() + tmp42 += tmp40 * 2 + tmp42 += tmp41 + del tmp41 + rdm2.abab.oovv += einsum(t1.aa, (0, 1), tmp42, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + rdm2.bbbb.ooov += einsum(tmp42, (0, 1), delta.bb.oo, (2, 3), (3, 0, 2, 1), optimize=True) * -1 + rdm2.bbbb.ooov += einsum(delta.bb.oo, (0, 1), tmp42, (2, 3), (2, 1, 0, 3), optimize=True) + rdm2.abab.ooov += einsum(delta.aa.oo, (0, 1), tmp42, (2, 3), (1, 2, 0, 3), optimize=True) * -1 + del tmp42 + tmp71 = t1.aa.copy() + tmp71 += tmp20 * 2 + tmp71 += tmp21 + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp71, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + del tmp71 + tmp70 = einsum(tmp69, (0, 1, 2, 3), t2.abab, (4, 1, 5, 3), (0, 4, 2, 5), optimize=True) + del tmp69 + rdm2.aaaa.oovv += tmp70.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.oovv += tmp70 * 2 + rdm2.aaaa.oovv += tmp70.transpose((1, 0, 2, 3)) * -2 + rdm2.aaaa.oovv += tmp70.transpose((0, 1, 3, 2)) * -2 + del tmp70 + tmp68 = einsum(t2.abab, (0, 1, 2, 3), tmp67, (4, 1, 5, 3), (4, 0, 5, 2), optimize=True) + del tmp67 + rdm2.aaaa.oovv += tmp68 * 2 + rdm2.aaaa.oovv += tmp68.transpose((0, 1, 3, 2)) * -2 + del tmp68 + tmp73 = einsum(t1.aa, (0, 1), tmp24, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp24 + rdm2.aaaa.oovv += tmp73.transpose((0, 1, 3, 2)) * -2 + rdm2.aaaa.oovv += tmp73 * 2 + del tmp73 + tmp66 = einsum(tmp65, (0, 1, 2, 3), t2.aaaa, (4, 0, 5, 2), (4, 1, 5, 3), optimize=True) + del tmp65 + rdm2.aaaa.oovv += tmp66 * 8 + rdm2.aaaa.oovv += tmp66.transpose((0, 1, 3, 2)) * -8 + del tmp66 + tmp82 = einsum(t1.aa, (0, 1), tmp81, (0, 2, 3, 4), (2, 3, 1, 4), optimize=True) + del tmp81 + rdm2.aaaa.oovv += tmp82.transpose((0, 1, 3, 2)) + rdm2.aaaa.oovv += tmp82.transpose((1, 0, 3, 2)) * -1 + rdm2.aaaa.oovv += tmp82 * -1 + rdm2.aaaa.oovv += tmp82.transpose((1, 0, 2, 3)) + del tmp82 + tmp78 = einsum(t1.aa, (0, 1), tmp0, (0, 2), (2, 1), optimize=True) + rdm2.aaaa.oovv += einsum(tmp78, (0, 1), t1.aa, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + rdm2.aaaa.oovv += einsum(tmp78, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) + rdm2.aaaa.oovv += einsum(tmp78, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp78, (2, 3), (0, 2, 1, 3), optimize=True) * -1 + del tmp78 + tmp80 = einsum(tmp33, (0, 1, 2, 3), t1.aa, (0, 4), (1, 3, 2, 4), optimize=True) + rdm2.aaaa.oovv += einsum(tmp80, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 4, 3), optimize=True) * 2 + del tmp80 + tmp79 = einsum(tmp4, (0, 1), t2.aaaa, (0, 2, 3, 4), (1, 2, 3, 4), optimize=True) * 2 + del tmp4 + rdm2.aaaa.oovv += tmp79.transpose((0, 1, 3, 2)) + rdm2.aaaa.oovv += tmp79.transpose((1, 0, 3, 2)) * -1 + del tmp79 + tmp77 = tmp25.copy() + tmp77 += tmp27 * 0.5 + tmp77 += tmp76 + del tmp76 + rdm2.aaaa.oovv += einsum(tmp77, (0, 1), t1.aa, (2, 3), (0, 2, 1, 3), optimize=True) * -2 + rdm2.aaaa.oovv += einsum(tmp77, (0, 1), t1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * 2 + rdm2.aaaa.oovv += einsum(tmp77, (0, 1), t1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * 2 + rdm2.aaaa.oovv += einsum(tmp77, (0, 1), t1.aa, (2, 3), (2, 0, 3, 1), optimize=True) * -2 + del tmp77 + tmp23 = t1.aa.copy() + tmp23 += tmp20 * 2 + tmp23 += tmp21 + rdm2.aaaa.oovv += einsum(t1.aa, (0, 1), tmp23, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.abab.oovo += einsum(delta.bb.oo, (0, 1), tmp23, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.aaaa.oovo += einsum(tmp23, (0, 1), delta.aa.oo, (2, 3), (3, 0, 1, 2), optimize=True) * -1 + rdm2.aaaa.oovo += einsum(tmp23, (0, 1), delta.aa.oo, (2, 3), (0, 3, 1, 2), optimize=True) + rdm2.aaaa.ooov += einsum(tmp23, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + del tmp23 + tmp16 = tmp8.copy() * 0.5 + tmp16 += tmp9 * 0.5 + tmp16 += tmp10 + rdm2.bbbb.oovo += einsum(tmp16, (0, 1), t1.bb, (2, 3), (2, 1, 3, 0), optimize=True) * -2 + rdm2.bbbb.oovo += einsum(t1.bb, (0, 1), tmp16, (2, 3), (3, 0, 1, 2), optimize=True) * 2 + rdm2.bbbb.oooo += einsum(tmp16, (0, 1), delta.bb.oo, (2, 3), (3, 1, 0, 2), optimize=True) * 2 + del tmp16 + tmp61 = tmp39.copy() * 0.5 + del tmp39 + tmp61 += tmp40 + del tmp40 + tmp61 += tmp60 + del tmp60 + rdm2.bbbb.oovo += einsum(delta.bb.oo, (0, 1), tmp61, (2, 3), (1, 2, 3, 0), optimize=True) * 2 + rdm2.bbbb.oovo += einsum(tmp61, (0, 1), delta.bb.oo, (2, 3), (0, 3, 1, 2), optimize=True) * -2 + del tmp61 + tmp53 = einsum(tmp52, (0, 1, 2, 3), t1.bb, (0, 4), (1, 2, 3, 4), optimize=True) * 2 + del tmp52 + rdm2.bbbb.oovo += tmp53.transpose((2, 1, 3, 0)) * -1 + rdm2.bbbb.ooov += tmp53.transpose((2, 1, 0, 3)) + del tmp53 + tmp34 = einsum(tmp33, (0, 1, 2, 3), t1.aa, (0, 4), (1, 2, 3, 4), optimize=True) * 2 + del tmp33 + rdm2.aaaa.oovo += tmp34.transpose((2, 1, 3, 0)) * -1 + rdm2.aaaa.ooov += tmp34.transpose((2, 1, 0, 3)) + del tmp34 + tmp55 = tmp25.copy() + del tmp25 + tmp55 += tmp27 * 0.5 + del tmp27 + tmp55 += tmp54 + del tmp54 + rdm2.aaaa.oovo += einsum(tmp55, (0, 1), delta.aa.oo, (2, 3), (3, 0, 1, 2), optimize=True) * 2 + rdm2.aaaa.oovo += einsum(delta.aa.oo, (0, 1), tmp55, (2, 3), (2, 1, 3, 0), optimize=True) * -2 + del tmp55 + tmp22 = t1.aa.copy() * 0.5 + tmp22 += tmp20 + del tmp20 + tmp22 += tmp21 * 0.5 + del tmp21 + rdm2.aaaa.ooov += einsum(delta.aa.oo, (0, 1), tmp22, (2, 3), (2, 1, 0, 3), optimize=True) * -2 + del tmp22 + tmp11 = delta.bb.oo.transpose((1, 0)).copy() * -1 + tmp11 += tmp8 + del tmp8 + tmp11 += tmp9 + del tmp9 + tmp11 += tmp10 * 2 + del tmp10 + rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp11, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.bbbb.oooo += einsum(delta.bb.oo, (0, 1), tmp11, (2, 3), (1, 3, 0, 2), optimize=True) * -1 + rdm2.abab.oooo += einsum(tmp11, (0, 1), delta.aa.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + del tmp11 + tmp3 = delta.aa.oo.transpose((1, 0)).copy() * -1 + tmp3 += tmp0 + del tmp0 + tmp3 += tmp1 * 2 + del tmp1 + tmp3 += tmp2 + del tmp2 + rdm2.aaaa.oooo += einsum(delta.aa.oo, (0, 1), tmp3, (2, 3), (3, 1, 0, 2), optimize=True) + rdm2.aaaa.oooo += einsum(tmp3, (0, 1), delta.aa.oo, (2, 3), (3, 1, 2, 0), optimize=True) * -1 + del tmp3 + rdm2.aaaa.ovoo += einsum(delta.aa.oo, (0, 1), l1.aa, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.aaaa.ovoo += einsum(l1.aa, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.abab.ovoo += einsum(l1.bb, (0, 1), delta.aa.oo, (2, 3), (3, 0, 2, 1), optimize=True) + rdm2.bbbb.ovoo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (1, 2, 3, 0), optimize=True) * -1 + rdm2.bbbb.ovoo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (1, 2, 0, 3), optimize=True) + rdm2.aaaa.vooo += einsum(delta.aa.oo, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.aaaa.vooo += einsum(l1.aa, (0, 1), delta.aa.oo, (2, 3), (0, 3, 2, 1), optimize=True) * -1 + rdm2.abab.vooo += einsum(delta.bb.oo, (0, 1), l1.aa, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.bbbb.vooo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (2, 1, 3, 0), optimize=True) + rdm2.bbbb.vooo += einsum(delta.bb.oo, (0, 1), l1.bb, (2, 3), (2, 1, 0, 3), optimize=True) * -1 + del delta + rdm2.aaaa.oovv += t2.aaaa.transpose((1, 0, 3, 2)) * 2 + rdm2.abab.oovv += t2.abab + rdm2.bbbb.oovv += t2.bbbb.transpose((1, 0, 3, 2)) * 2 + rdm2.aaaa.ovov += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.bbbb.ovov += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (0, 2, 3, 1), optimize=True) * -1 + rdm2.aaaa.ovvo += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.abab.ovvo += einsum(t1.aa, (0, 1), l1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.ovvo += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.aaaa.voov += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.abab.voov += einsum(l1.aa, (0, 1), t1.bb, (2, 3), (0, 2, 1, 3), optimize=True) + rdm2.bbbb.voov += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (2, 0, 3, 1), optimize=True) + rdm2.aaaa.vovo += einsum(t1.aa, (0, 1), l1.aa, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.bbbb.vovo += einsum(t1.bb, (0, 1), l1.bb, (2, 3), (2, 0, 1, 3), optimize=True) * -1 + rdm2.aaaa.vvoo = l2.aaaa.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.abab.vvoo = l2.abab.copy() + rdm2.bbbb.vvoo = l2.bbbb.transpose((1, 0, 3, 2)).copy() * 2 + rdm2.abab.ovvv += einsum(t2.abab, (0, 1, 2, 3), l1.bb, (4, 1), (0, 4, 2, 3), optimize=True) + rdm2.abab.vovv += einsum(l1.aa, (0, 1), t2.abab, (1, 2, 3, 4), (0, 2, 3, 4), optimize=True) + rdm2.abab.vvvo = einsum(l2.abab, (0, 1, 2, 3), t1.aa, (2, 4), (0, 1, 4, 3), optimize=True) + rdm2.aaaa.vvvv += einsum(l2.aaaa, (0, 1, 2, 3), t2.aaaa, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 + rdm2.abab.vvvv += einsum(t2.abab, (0, 1, 2, 3), l2.abab, (4, 5, 0, 1), (4, 5, 2, 3), optimize=True) + rdm2.bbbb.vvvv += einsum(l2.bbbb, (0, 1, 2, 3), t2.bbbb, (2, 3, 4, 5), (1, 0, 5, 4), optimize=True) * 2 + rdm2.aaaa = pack_2e(rdm2.aaaa.oooo, rdm2.aaaa.ooov, rdm2.aaaa.oovo, rdm2.aaaa.ovoo, rdm2.aaaa.vooo, rdm2.aaaa.oovv, rdm2.aaaa.ovov, rdm2.aaaa.ovvo, rdm2.aaaa.voov, rdm2.aaaa.vovo, rdm2.aaaa.vvoo, rdm2.aaaa.ovvv, rdm2.aaaa.vovv, rdm2.aaaa.vvov, rdm2.aaaa.vvvo, rdm2.aaaa.vvvv) + rdm2.abab = pack_2e(rdm2.abab.oooo, rdm2.abab.ooov, rdm2.abab.oovo, rdm2.abab.ovoo, rdm2.abab.vooo, rdm2.abab.oovv, rdm2.abab.ovov, rdm2.abab.ovvo, rdm2.abab.voov, rdm2.abab.vovo, rdm2.abab.vvoo, rdm2.abab.ovvv, rdm2.abab.vovv, rdm2.abab.vvov, rdm2.abab.vvvo, rdm2.abab.vvvv) + rdm2.bbbb = pack_2e(rdm2.bbbb.oooo, rdm2.bbbb.ooov, rdm2.bbbb.oovo, rdm2.bbbb.ovoo, rdm2.bbbb.vooo, rdm2.bbbb.oovv, rdm2.bbbb.ovov, rdm2.bbbb.ovvo, rdm2.bbbb.voov, rdm2.bbbb.vovo, rdm2.bbbb.vvoo, rdm2.bbbb.ovvv, rdm2.bbbb.vovv, rdm2.bbbb.vvov, rdm2.bbbb.vvvo, rdm2.bbbb.vvvv) + rdm2 = Namespace( + aaaa=rdm2.aaaa.swapaxes(1, 2), + aabb=rdm2.abab.swapaxes(1, 2), + bbbb=rdm2.bbbb.swapaxes(1, 2), + ) + + return rdm2 + diff --git a/ebcc/codegen/bootstrap_CCD.py b/ebcc/codegen/bootstrap_CCD.py index e6ac442e..f6a0f258 100644 --- a/ebcc/codegen/bootstrap_CCD.py +++ b/ebcc/codegen/bootstrap_CCD.py @@ -7,6 +7,7 @@ import pdaggerq from albert.qc._pdaggerq import import_from_pdaggerq from albert.tensor import Tensor +from albert.algebra import Mul from ebcc.codegen.bootstrap_common import * @@ -74,7 +75,7 @@ expr_n = import_from_pdaggerq(terms, index_spins=index_spins) expr_n = spin_integrate(expr_n, spin) output_n = get_t_amplitude_outputs(expr_n, f"t2new") - returns_n = (Tensor(*indices, name=f"t2new"),) + returns_n = (Tensor(*tuple(Index(i, index_spins[i]) for i in indices), name=f"t2new"),) expr.extend(expr_n) output.extend(output_n) returns.extend(returns_n) @@ -121,7 +122,7 @@ expr_n = import_from_pdaggerq(terms, index_spins=index_spins) expr_n = spin_integrate(expr_n, spin) output_n = get_l_amplitude_outputs(expr_n, f"l2new") - returns_n = (Tensor(*indices, name=f"l2new"),) + returns_n = (Tensor(*tuple(Index(i, index_spins[i]) for i in indices), name=f"l2new"),) expr.extend(expr_n) output.extend(output_n) returns.extend(returns_n) @@ -161,22 +162,36 @@ for sectors, indices in [("oo", "ij"), ("ov", "ia"), ("vo", "ai"), ("vv", "ab")]: for index_spins in get_density_spins(1, spin, indices): expr_n = import_from_pdaggerq(terms[sectors, indices], index_spins=index_spins) - expr_n = spin_integrate(expr_n, spin) - if spin == "rhf": - expr_n = tuple(e * 2 for e in expr_n) - output_n = get_density_outputs(expr_n, f"d", indices) - returns_n = (Tensor(*indices, name=f"d"),) - expr.extend(expr_n) - output.extend(output_n) - returns.extend(returns_n) + if not (isinstance(expr_n, int) and expr_n == 0): + expr_n = spin_integrate(expr_n, spin) + if spin == "rhf": + expr_n = tuple(e * 2 for e in expr_n) + output_n = get_density_outputs(expr_n, f"d", indices) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"d"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) output, expr = optimise(output, expr, spin, strategy="exhaust") # Generate the 1RDM code for name, codegen in code_generators.items(): if name == "einsum": + def get_postamble(n, spin, name="rdm{n}"): + nm = name.format(n=n) + postamble = "" + if spin != "uhf": + for occ in ("ov", "vo"): + shape = ", ".join(f"t2.shape[{'0' if o == 'o' else '-1'}]" for o in occ) + postamble += f"{nm}.{occ} = np.zeros(({shape}))\n" + else: + for s in "ab": + for occ in ("oo", "vv"): + shape = ", ".join(f"t2.{ss}{ss}.shape[{'0' if o == 'o' else '-1'}]" for ss, o in zip(s+s, occ)) + postamble += f"{nm}.{s}{s}.{occ} = np.zeros(({shape}))\n" + return postamble + get_density_einsum_postamble(n, spin) kwargs = { "preamble": get_density_einsum_preamble(1, spin), - "postamble": get_density_einsum_postamble(1, spin), + "postamble": get_postamble(1, spin), } else: kwargs = {} @@ -241,20 +256,35 @@ ]: for index_spins in get_density_spins(2, spin, indices): expr_n = import_from_pdaggerq(terms[sectors, indices], index_spins=index_spins) - expr_n = spin_integrate(expr_n, spin) - output_n = get_density_outputs(expr_n, f"Γ", indices) - returns_n = (Tensor(*indices, name=f"Γ"),) - expr.extend(expr_n) - output.extend(output_n) - returns.extend(returns_n) + if not (isinstance(expr_n, int) and expr_n == 0): + expr_n = spin_integrate(expr_n, spin) + output_n = get_density_outputs(expr_n, f"Γ", indices) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"Γ"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) output, expr = optimise(output, expr, spin, strategy="trav") # Generate the 2RDM code for name, codegen in code_generators.items(): if name == "einsum": + def get_postamble(n, spin, name="rdm{n}"): + nm = name.format(n=n) + postamble = "" + if spin != "uhf": + for occ in ("ooov", "oovo", "ovoo", "vooo", "ovvv", "vovv", "vvov", "vvvo"): + shape = ", ".join(f"t2.shape[{'0' if o == 'o' else '-1'}]" for o in occ) + postamble += f"{nm}.{occ} = np.zeros(({shape}))\n" + else: + for s1 in "ab": + for s2 in "ab": + for occ in ("ooov", "oovo", "ovoo", "vooo", "ovvv", "vovv", "vvov", "vvvo"): + shape = ", ".join(f"t2.{s}{s}{s}{s}.shape[{'0' if o == 'o' else '-1'}]" for o, s in zip(occ, s1+s1+s2+s2)) + postamble += f"{nm}.{s1}{s1}{s2}{s2}.{occ} = np.zeros(({shape}))\n" + return postamble + get_density_einsum_postamble(n, spin) kwargs = { "preamble": get_density_einsum_preamble(2, spin), - "postamble": get_density_einsum_postamble(2, spin), + "postamble": get_postamble(2, spin), } codegen( "make_rdm2_f", diff --git a/ebcc/codegen/bootstrap_CCSD.py b/ebcc/codegen/bootstrap_CCSD.py index 9ddc811f..0b930f29 100644 --- a/ebcc/codegen/bootstrap_CCSD.py +++ b/ebcc/codegen/bootstrap_CCSD.py @@ -7,6 +7,7 @@ import pdaggerq from albert.qc._pdaggerq import import_from_pdaggerq from albert.tensor import Tensor +from albert.qc.index import Index from ebcc.codegen.bootstrap_common import * @@ -84,7 +85,7 @@ expr_n = import_from_pdaggerq(terms[n], index_spins=index_spins) expr_n = spin_integrate(expr_n, spin) output_n = get_t_amplitude_outputs(expr_n, f"t{n+1}new") - returns_n = (Tensor(*indices, name=f"t{n+1}new"),) + returns_n = (Tensor(*tuple(Index(i, index_spins[i]) for i in indices), name=f"t{n+1}new"),) expr.extend(expr_n) output.extend(output_n) returns.extend(returns_n) @@ -147,7 +148,7 @@ expr_n = import_from_pdaggerq(terms[n], index_spins=index_spins) expr_n = spin_integrate(expr_n, spin) output_n = get_l_amplitude_outputs(expr_n, f"l{n+1}new") - returns_n = (Tensor(*indices, name=f"l{n+1}new"),) + returns_n = (Tensor(*tuple(Index(i, index_spins[i]) for i in indices), name=f"l{n+1}new"),) expr.extend(expr_n) output.extend(output_n) returns.extend(returns_n) @@ -191,7 +192,7 @@ if spin == "rhf": expr_n = tuple(e * 2 for e in expr_n) output_n = get_density_outputs(expr_n, f"d", indices) - returns_n = (Tensor(*indices, name=f"d"),) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"d"),) expr.extend(expr_n) output.extend(output_n) returns.extend(returns_n) @@ -269,7 +270,7 @@ expr_n = import_from_pdaggerq(terms[sectors, indices], index_spins=index_spins) expr_n = spin_integrate(expr_n, spin) output_n = get_density_outputs(expr_n, f"Γ", indices) - returns_n = (Tensor(*indices, name=f"Γ"),) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"Γ"),) expr.extend(expr_n) output.extend(output_n) returns.extend(returns_n) diff --git a/ebcc/codegen/bootstrap_DFCCD.py b/ebcc/codegen/bootstrap_DFCCD.py new file mode 100644 index 00000000..c578f425 --- /dev/null +++ b/ebcc/codegen/bootstrap_DFCCD.py @@ -0,0 +1,305 @@ +""" +Generate the DF-CCD code. +""" + +import sys + +import pdaggerq +from albert.qc._pdaggerq import import_from_pdaggerq +from albert.tensor import Tensor + +from ebcc.codegen.bootstrap_common import * + +# Get the spin case +spin = sys.argv[1] +if spin == "ghf": + raise NotImplementedError + +# Set up the code generators +code_generators = { + "einsum": EinsumCodeGen( + stdout=open(f"{spin[0].upper()}DFCCD.py", "w"), + name_generator=name_generators[spin], + spin=spin, + ), +} + +# Write the preamble +for codegen in code_generators.values(): + codegen.preamble() + +# Set up pdaggerq +pq = pdaggerq.pq_helper("fermi") +pq.set_print_level(0) + +with Stopwatch("Energy"): + # Get the energy contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["1"]]) + pq.add_st_operator(1.0, ["f"], ["t2"]) + pq.add_st_operator(1.0, ["v"], ["t2"]) + pq.simplify() + terms = pq.fully_contracted_strings() + terms = remove_hf_energy(terms) + + # Get the energy in albert format + expr = import_from_pdaggerq(terms) + expr = spin_integrate(expr, spin) + expr = tuple(e.apply(get_density_fit()) for e in expr) + output = tuple(Tensor(name="e_cc") for _ in range(len(expr))) + output, expr = optimise(output, expr, spin, strategy="exhaust") + returns = (Tensor(name="e_cc"),) + + # Generate the energy code + for codegen in code_generators.values(): + codegen( + "energy", + returns, + output, + expr, + ) + +with Stopwatch("T amplitudes"): + # Get the T2 contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["e2(i,j,b,a)"]]) + pq.add_st_operator(1.0, ["f"], ["t2"]) + pq.add_st_operator(1.0, ["v"], ["t2"]) + pq.simplify() + terms = pq.fully_contracted_strings() + + # Get the T amplitudes in albert format + expr = [] + output = [] + returns = [] + for index_spins in get_amplitude_spins(2, spin): + indices = default_indices["o"][: 2] + default_indices["v"][: 2] + expr_n = import_from_pdaggerq(terms, index_spins=index_spins) + expr_n = spin_integrate(expr_n, spin) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_t_amplitude_outputs(expr_n, f"t2new") + returns_n = (Tensor(*tuple(Index(i, index_spins[i]) for i in indices), name=f"t2new"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="exhaust") + + # Generate the T amplitude code + for name, codegen in code_generators.items(): + if name == "einsum": + kwargs = { + "preamble": "t1new = Namespace()\nt2new = Namespace()" if spin == "uhf" else None, + "as_dict": True, + } + else: + kwargs = {} + codegen( + "update_amps", + returns, + output, + expr, + **kwargs, + ) + +with Stopwatch("L amplitudes"): + # Get the L2 contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["1"]]) + pq.set_right_operators([["1"]]) + pq.add_st_operator(1.0, ["f", "e2(a,b,j,i)"], ["t2"]) + pq.add_st_operator(1.0, ["v", "e2(a,b,j,i)"], ["t2"]) + pq.set_left_operators([["l2"]]) + pq.add_st_operator(1.0, ["f", "e2(a,b,j,i)"], ["t2"]) + pq.add_st_operator(1.0, ["v", "e2(a,b,j,i)"], ["t2"]) + pq.add_st_operator(-1.0, ["e2(a,b,j,i)", "f"], ["t2"]) + pq.add_st_operator(-1.0, ["e2(a,b,j,i)", "v"], ["t2"]) + pq.simplify() + terms = pq.fully_contracted_strings() + + # Get the L amplitudes in albert format + expr = [] + output = [] + returns = [] + for index_spins in get_amplitude_spins(2, spin): + indices = default_indices["v"][: 2] + default_indices["o"][: 2] + expr_n = import_from_pdaggerq(terms, index_spins=index_spins) + expr_n = spin_integrate(expr_n, spin) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_l_amplitude_outputs(expr_n, f"l2new") + returns_n = (Tensor(*tuple(Index(i, index_spins[i]) for i in indices), name=f"l2new"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="opt") + + # Generate the L amplitude code + for name, codegen in code_generators.items(): + if name == "einsum": + kwargs = { + "preamble": "l1new = Namespace()\nl2new = Namespace()" if spin == "uhf" else None, + "as_dict": True, + } + else: + kwargs = {} + codegen( + "update_lams", + returns, + output, + expr, + **kwargs, + ) + +with Stopwatch("1RDM"): + # Get the 1RDM contractions in pdaggerq format + terms = {} + for sectors, indices in [("oo", "ij"), ("ov", "ia"), ("vo", "ai"), ("vv", "ab")]: + pq.clear() + pq.set_left_operators([["1"], ["l2"]]) + pq.add_st_operator(1.0, [f"e1({','.join(indices)})"], ["t2"]) + pq.simplify() + terms[sectors, indices] = pq.fully_contracted_strings() + + # Get the 1RDM in albert format + expr = [] + output = [] + returns = [] + for sectors, indices in [("oo", "ij"), ("ov", "ia"), ("vo", "ai"), ("vv", "ab")]: + for index_spins in get_density_spins(1, spin, indices): + expr_n = import_from_pdaggerq(terms[sectors, indices], index_spins=index_spins) + if not (isinstance(expr_n, int) and expr_n == 0): + expr_n = spin_integrate(expr_n, spin) + if spin == "rhf": + expr_n = tuple(e * 2 for e in expr_n) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_density_outputs(expr_n, f"d", indices) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"d"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="exhaust") + + # Generate the 1RDM code + for name, codegen in code_generators.items(): + if name == "einsum": + def get_postamble(n, spin, name="rdm{n}"): + nm = name.format(n=n) + postamble = "" + if spin != "uhf": + for occ in ("ov", "vo"): + shape = ", ".join(f"t2.shape[{'0' if o == 'o' else '-1'}]" for o in occ) + postamble += f"{nm}.{occ} = np.zeros(({shape}))\n" + else: + for s in "ab": + for occ in ("oo", "vv"): + shape = ", ".join(f"t2.{ss}{ss}.shape[{'0' if o == 'o' else '-1'}]" for ss, o in zip(s+s, occ)) + postamble += f"{nm}.{s}{s}.{occ} = np.zeros(({shape}))\n" + return postamble + get_density_einsum_postamble(n, spin) + kwargs = { + "preamble": get_density_einsum_preamble(1, spin), + "postamble": get_postamble(1, spin), + } + else: + kwargs = {} + codegen( + "make_rdm1_f", + returns, + output, + expr, + **kwargs, + ) + +with Stopwatch("2RDM"): + # Get the 2RDM contractions in pdaggerq format + terms = {} + for sectors, indices in [ + ("oooo", "ijkl"), + ("ooov", "ijka"), + ("oovo", "ijak"), + ("ovoo", "iajk"), + ("vooo", "aijk"), + ("oovv", "ijab"), + ("ovov", "iajb"), + ("ovvo", "iabj"), + ("voov", "aijb"), + ("vovo", "aibj"), + ("vvoo", "abij"), + ("ovvv", "iabc"), + ("vovv", "aibc"), + ("vvov", "abic"), + ("vvvo", "abci"), + ("vvvv", "abcd"), + ]: + pq.clear() + pq.set_left_operators([["1"], ["l2"]]) + pq.add_st_operator( + 1.0, [f"e2({indices[0]},{indices[1]},{indices[3]},{indices[2]})"], ["t2"] + ) + pq.simplify() + terms[sectors, indices] = pq.fully_contracted_strings() + + # Get the 2RDM in albert format + expr = [] + output = [] + returns = [] + for sectors, indices in [ + ("oooo", "ijkl"), + ("ooov", "ijka"), + ("oovo", "ijak"), + ("ovoo", "iajk"), + ("vooo", "aijk"), + ("oovv", "ijab"), + ("ovov", "iajb"), + ("ovvo", "iabj"), + ("voov", "aijb"), + ("vovo", "aibj"), + ("vvoo", "abij"), + ("ovvv", "iabc"), + ("vovv", "aibc"), + ("vvov", "abic"), + ("vvvo", "abci"), + ("vvvv", "abcd"), + ]: + for index_spins in get_density_spins(2, spin, indices): + expr_n = import_from_pdaggerq(terms[sectors, indices], index_spins=index_spins) + if not (isinstance(expr_n, int) and expr_n == 0): + expr_n = spin_integrate(expr_n, spin) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_density_outputs(expr_n, f"Γ", indices) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"Γ"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="trav") + + # Generate the 2RDM code + for name, codegen in code_generators.items(): + if name == "einsum": + def get_postamble(n, spin, name="rdm{n}"): + nm = name.format(n=n) + postamble = "" + if spin != "uhf": + for occ in ("ooov", "oovo", "ovoo", "vooo", "ovvv", "vovv", "vvov", "vvvo"): + shape = ", ".join(f"t2.shape[{'0' if o == 'o' else '-1'}]" for o in occ) + postamble += f"{nm}.{occ} = np.zeros(({shape}))\n" + else: + for s1 in "ab": + for s2 in "ab": + for occ in ("ooov", "oovo", "ovoo", "vooo", "ovvv", "vovv", "vvov", "vvvo"): + shape = ", ".join(f"t2.{s}{s}{s}{s}.shape[{'0' if o == 'o' else '-1'}]" for o, s in zip(occ, s1+s1+s2+s2)) + postamble += f"{nm}.{s1}{s1}{s2}{s2}.{occ} = np.zeros(({shape}))\n" + return postamble + get_density_einsum_postamble(n, spin) + kwargs = { + "preamble": get_density_einsum_preamble(2, spin), + "postamble": get_postamble(2, spin), + } + codegen( + "make_rdm2_f", + returns, + output, + expr, + **kwargs, + ) + +for codegen in code_generators.values(): + codegen.postamble() + codegen.stdout.close() diff --git a/ebcc/codegen/bootstrap_DFCCSD.py b/ebcc/codegen/bootstrap_DFCCSD.py new file mode 100644 index 00000000..112b73dd --- /dev/null +++ b/ebcc/codegen/bootstrap_DFCCSD.py @@ -0,0 +1,304 @@ +""" +Generate the DF-CCSD code. +""" + +import sys + +import pdaggerq +from albert.qc._pdaggerq import import_from_pdaggerq +from albert.tensor import Tensor + +from ebcc.codegen.bootstrap_common import * + +# Get the spin case +spin = sys.argv[1] +if spin == "ghf": + raise NotImplementedError + +# Set up the code generators +code_generators = { + "einsum": EinsumCodeGen( + stdout=open(f"{spin[0].upper()}DFCCSD.py", "w"), + name_generator=name_generators[spin], + spin=spin, + ), +} + +# Write the preamble +for codegen in code_generators.values(): + codegen.preamble() + +# Set up pdaggerq +pq = pdaggerq.pq_helper("fermi") +pq.set_print_level(0) + +with Stopwatch("Energy"): + # Get the energy contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["1"]]) + pq.add_st_operator(1.0, ["f"], ["t1", "t2"]) + pq.add_st_operator(1.0, ["v"], ["t1", "t2"]) + pq.simplify() + terms = pq.fully_contracted_strings() + terms = remove_hf_energy(terms) + + # Get the energy in albert format + expr = import_from_pdaggerq(terms) + expr = spin_integrate(expr, spin) + expr = tuple(e.apply(get_density_fit()) for e in expr) + output = tuple(Tensor(name="e_cc") for _ in range(len(expr))) + output, expr = optimise(output, expr, spin, strategy="exhaust") + returns = (Tensor(name="e_cc"),) + + # Generate the energy code + for codegen in code_generators.values(): + codegen( + "energy", + returns, + output, + expr, + ) + +with Stopwatch("T amplitudes"): + # Get the T1 contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["e1(i,a)"]]) + pq.add_st_operator(1.0, ["f"], ["t1", "t2"]) + pq.add_st_operator(1.0, ["v"], ["t1", "t2"]) + pq.simplify() + terms_t1 = pq.fully_contracted_strings() + + # Get the T2 contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["e2(i,j,b,a)"]]) + pq.add_st_operator(1.0, ["f"], ["t1", "t2"]) + pq.add_st_operator(1.0, ["v"], ["t1", "t2"]) + pq.simplify() + terms_t2 = pq.fully_contracted_strings() + + # Get the T amplitudes in albert format + terms = [terms_t1, terms_t2] + expr = [] + output = [] + returns = [] + for n in range(2): + for index_spins in get_amplitude_spins(n + 1, spin): + indices = default_indices["o"][: n + 1] + default_indices["v"][: n + 1] + indices = tuple(Index(i, index_spins[i]) for i in indices) + expr_n = import_from_pdaggerq(terms[n], index_spins=index_spins) + expr_n = spin_integrate(expr_n, spin) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_t_amplitude_outputs(expr_n, f"t{n+1}new") + returns_n = (Tensor(*indices, name=f"t{n+1}new"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="exhaust") + + # Generate the T amplitude code + for name, codegen in code_generators.items(): + if name == "einsum": + kwargs = { + "preamble": "t1new = Namespace()\nt2new = Namespace()" if spin == "uhf" else None, + "as_dict": True, + } + else: + kwargs = {} + codegen( + "update_amps", + returns, + output, + expr, + **kwargs, + ) + +with Stopwatch("L amplitudes"): + # Get the L1 contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["1"]]) + pq.set_right_operators([["1"]]) + pq.add_st_operator(1.0, ["f", "e1(a,i)"], ["t1", "t2"]) + pq.add_st_operator(1.0, ["v", "e1(a,i)"], ["t1", "t2"]) + pq.set_left_operators([["l1"], ["l2"]]) + pq.add_st_operator(1.0, ["f", "e1(a,i)"], ["t1", "t2"]) + pq.add_st_operator(1.0, ["v", "e1(a,i)"], ["t1", "t2"]) + pq.add_st_operator(-1.0, ["e1(a,i)", "f"], ["t1", "t2"]) + pq.add_st_operator(-1.0, ["e1(a,i)", "v"], ["t1", "t2"]) + pq.simplify() + terms_l1 = pq.fully_contracted_strings() + + # Get the L2 contractions in pdaggerq format + pq.clear() + pq.set_left_operators([["1"]]) + pq.set_right_operators([["1"]]) + pq.add_st_operator(1.0, ["f", "e2(a,b,j,i)"], ["t1", "t2"]) + pq.add_st_operator(1.0, ["v", "e2(a,b,j,i)"], ["t1", "t2"]) + pq.set_left_operators([["l1"], ["l2"]]) + pq.add_st_operator(1.0, ["f", "e2(a,b,j,i)"], ["t1", "t2"]) + pq.add_st_operator(1.0, ["v", "e2(a,b,j,i)"], ["t1", "t2"]) + pq.add_st_operator(-1.0, ["e2(a,b,j,i)", "f"], ["t1", "t2"]) + pq.add_st_operator(-1.0, ["e2(a,b,j,i)", "v"], ["t1", "t2"]) + pq.simplify() + terms_l2 = pq.fully_contracted_strings() + + # Get the L amplitudes in albert format + terms = [terms_l1, terms_l2] + expr = [] + output = [] + returns = [] + for n in range(2): + for index_spins in get_amplitude_spins(n + 1, spin): + indices = default_indices["v"][: n + 1] + default_indices["o"][: n + 1] + indices = tuple(Index(i, index_spins[i]) for i in indices) + expr_n = import_from_pdaggerq(terms[n], index_spins=index_spins) + expr_n = spin_integrate(expr_n, spin) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_l_amplitude_outputs(expr_n, f"l{n+1}new") + returns_n = (Tensor(*indices, name=f"l{n+1}new"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="opt") + + # Generate the L amplitude code + for name, codegen in code_generators.items(): + if name == "einsum": + kwargs = { + "preamble": "l1new = Namespace()\nl2new = Namespace()" if spin == "uhf" else None, + "as_dict": True, + } + else: + kwargs = {} + codegen( + "update_lams", + returns, + output, + expr, + **kwargs, + ) + +with Stopwatch("1RDM"): + # Get the 1RDM contractions in pdaggerq format + terms = {} + for sectors, indices in [("oo", "ij"), ("ov", "ia"), ("vo", "ai"), ("vv", "ab")]: + pq.clear() + pq.set_left_operators([["1"], ["l1"], ["l2"]]) + pq.add_st_operator(1.0, [f"e1({','.join(indices)})"], ["t1", "t2"]) + pq.simplify() + terms[sectors, indices] = pq.fully_contracted_strings() + + # Get the 1RDM in albert format + expr = [] + output = [] + returns = [] + for sectors, indices in [("oo", "ij"), ("ov", "ia"), ("vo", "ai"), ("vv", "ab")]: + for index_spins in get_density_spins(1, spin, indices): + expr_n = import_from_pdaggerq(terms[sectors, indices], index_spins=index_spins) + expr_n = spin_integrate(expr_n, spin) + if spin == "rhf": + expr_n = tuple(e * 2 for e in expr_n) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_density_outputs(expr_n, f"d", indices) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"d"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="exhaust") + + # Generate the 1RDM code + for name, codegen in code_generators.items(): + if name == "einsum": + kwargs = { + "preamble": get_density_einsum_preamble(1, spin), + "postamble": get_density_einsum_postamble(1, spin), + } + else: + kwargs = {} + codegen( + "make_rdm1_f", + returns, + output, + expr, + **kwargs, + ) + +with Stopwatch("2RDM"): + # Get the 2RDM contractions in pdaggerq format + terms = {} + for sectors, indices in [ + ("oooo", "ijkl"), + ("ooov", "ijka"), + ("oovo", "ijak"), + ("ovoo", "iajk"), + ("vooo", "aijk"), + ("oovv", "ijab"), + ("ovov", "iajb"), + ("ovvo", "iabj"), + ("voov", "aijb"), + ("vovo", "aibj"), + ("vvoo", "abij"), + ("ovvv", "iabc"), + ("vovv", "aibc"), + ("vvov", "abic"), + ("vvvo", "abci"), + ("vvvv", "abcd"), + ]: + pq.clear() + pq.set_left_operators([["1"], ["l1"], ["l2"]]) + pq.add_st_operator( + 1.0, [f"e2({indices[0]},{indices[1]},{indices[3]},{indices[2]})"], ["t1", "t2"] + ) + pq.simplify() + terms[sectors, indices] = pq.fully_contracted_strings() + + # Get the 2RDM in albert format + expr = [] + output = [] + returns = [] + for sectors, indices in [ + ("oooo", "ijkl"), + ("ooov", "ijka"), + ("oovo", "ijak"), + ("ovoo", "iajk"), + ("vooo", "aijk"), + ("oovv", "ijab"), + ("ovov", "iajb"), + ("ovvo", "iabj"), + ("voov", "aijb"), + ("vovo", "aibj"), + ("vvoo", "abij"), + ("ovvv", "iabc"), + ("vovv", "aibc"), + ("vvov", "abic"), + ("vvvo", "abci"), + ("vvvv", "abcd"), + ]: + for index_spins in get_density_spins(2, spin, indices): + expr_n = import_from_pdaggerq(terms[sectors, indices], index_spins=index_spins) + expr_n = spin_integrate(expr_n, spin) + expr_n = tuple(e.apply(get_density_fit()) for e in expr_n) + output_n = get_density_outputs(expr_n, f"Γ", indices) + returns_n = (Tensor(*tuple(Index(i, index_spins[i], space=s) for i, s in zip(indices, sectors)), name=f"Γ"),) + expr.extend(expr_n) + output.extend(output_n) + returns.extend(returns_n) + output, expr = optimise(output, expr, spin, strategy="trav") + + # Generate the 2RDM code + for name, codegen in code_generators.items(): + if name == "einsum": + kwargs = { + "preamble": get_density_einsum_preamble(2, spin), + "postamble": get_density_einsum_postamble(2, spin), + } + codegen( + "make_rdm2_f", + returns, + output, + expr, + **kwargs, + ) + +for codegen in code_generators.values(): + codegen.postamble() + codegen.stdout.close() diff --git a/ebcc/codegen/bootstrap_common.py b/ebcc/codegen/bootstrap_common.py index 3d7a352d..2d3e911a 100644 --- a/ebcc/codegen/bootstrap_common.py +++ b/ebcc/codegen/bootstrap_common.py @@ -10,6 +10,8 @@ from albert.optim._gristmill import optimise as _optimise from albert.qc.spin import generalised_to_restricted, generalised_to_unrestricted from albert.qc.index import Index +from albert.qc.rhf import ERI as RERI, CDERI as RCDERI +from albert.qc.uhf import ERI as UERI, CDERI as UCDERI from albert.tensor import Tensor from pdaggerq.config import OCC_INDICES, VIRT_INDICES @@ -38,6 +40,7 @@ "o": OCC_INDICES, "v": VIRT_INDICES, "b": ["x", "y", "z", "b0", "b1", "b2", "b3"], + "x": ["P", "Q", "R", "S", "x0", "x1", "x2", "x3", "x4", "x5", "x7"], } @@ -48,6 +51,7 @@ "o": 200, "v": 1000, "b": 10, + "x": 3000, } @@ -237,7 +241,8 @@ def optimise(outputs, exprs, spin, strategy="greedy", sizes=None): index_sizes = {} index_groups = [] for sector, indices in default_indices.items(): - for s in (("α", "β") if spin == "uhf" else (None,)): + spins = ("α", "β") if spin == "uhf" and sector not in ("b", "x") else (None,) + for s in spins: index_sizes.update({Index(index, space=sector, spin=s): sizes[sector] for index in indices}) index_groups.append([Index(index, space=sector, spin=s) for index in indices]) @@ -267,7 +272,7 @@ def get_density_outputs(exprs, name, indices): """Get the outputs for the density code.""" tensors = [] for expr in exprs: - external_indices = sorted(expr.external_indices) + external_indices = sorted(expr.external_indices, key=lambda i: indices.index(i.name)) tensors.append(Tensor(*external_indices, name=name)) return tensors @@ -290,7 +295,11 @@ def get_amplitude_spins(n, spin): case[default_indices["v"][i]] = s cases.append(case) elif spin == "ghf": - cases = [None] + case = {} + for i in range(n): + case[default_indices["o"][i]] = None + case[default_indices["v"][i]] = None + cases = [case] return cases @@ -318,7 +327,11 @@ def get_density_spins(n, spin, indices): cases = [("α", "α", "α", "α"), ("α", "β", "α", "β"), ("β", "β", "β", "β")] cases = [dict(zip(indices, case)) for case in cases] elif spin == "ghf": - cases = [None] + if n == 1: + cases = [(None, None)] + elif n == 2: + cases = [(None, None, None, None)] + cases = [dict(zip(indices, case)) for case in cases] return cases @@ -331,13 +344,13 @@ def get_density_einsum_preamble(n, spin, name="rdm{n}"): for spins in itertools.combinations_with_replacement(["a", "b"], n): preamble += f"\n{name}.{''.join(spins+spins)} = Namespace()" preamble += "\ndelta = Namespace(" - preamble += "\n aa=Namespace(oo=np.eye(t1.aa.shape[0]), vv=np.eye(t1.aa.shape[1]))," - preamble += "\n bb=Namespace(oo=np.eye(t1.bb.shape[0]), vv=np.eye(t1.bb.shape[1]))," + preamble += "\n aa=Namespace(oo=np.eye(t2.aaaa.shape[0]), vv=np.eye(t2.aaaa.shape[-1]))," + preamble += "\n bb=Namespace(oo=np.eye(t2.bbbb.shape[0]), vv=np.eye(t2.bbbb.shape[-1]))," preamble += "\n)" else: preamble += "\ndelta = Namespace(" - preamble += "\n oo=np.eye(t1.shape[0])," - preamble += "\n vv=np.eye(t1.shape[1])," + preamble += "\n oo=np.eye(t2.shape[0])," + preamble += "\n vv=np.eye(t2.shape[-1])," preamble += "\n)" return preamble @@ -402,3 +415,24 @@ def get_boson_einsum_preamble(spin): preamble += "\n bvv=g.bvv.transpose(0, 2, 1)," preamble += "\n)" return preamble + + +def get_density_fit(): + indices = {"": 0} + + def density_fit(obj): + """Get the function to apply over an expression to density fit the ERIs.""" + i = indices[""] % len(default_indices["x"]) # TODO this will break for huge ansatzes + aux_index = Index(f"{default_indices['x'][i]}", space="x") + indices[""] += 1 + if hasattr(obj, "_symbol") and obj._symbol == RERI: + left = RCDERI[(aux_index,) + obj.indices[:2]] + right = RCDERI[(aux_index,) + obj.indices[2:]] + elif hasattr(obj, "_symbol") and obj._symbol == UERI: + left = UCDERI[(aux_index,) + obj.indices[:2]] + right = UCDERI[(aux_index,) + obj.indices[2:]] + else: + return obj + return left * right + + return density_fit