From fef41ad9add3cee3513ccd3efd86c1a1248e43b8 Mon Sep 17 00:00:00 2001 From: Lukas Devos Date: Wed, 26 Feb 2025 10:03:36 -0500 Subject: [PATCH] performance improvement --- src/operators/abstractmpo.jl | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/operators/abstractmpo.jl b/src/operators/abstractmpo.jl index b0de56ce..938b26a5 100644 --- a/src/operators/abstractmpo.jl +++ b/src/operators/abstractmpo.jl @@ -196,10 +196,23 @@ end # TODO: diagram function _fuse_mpo_mpo(O1::MPOTensor, O2::MPOTensor, Fₗ, Fᵣ) - return @plansor O′[-1 -2; -3 -4] := Fₗ[-1; 1 2] * - O2[1 3; -3 5] * - O1[2 -2; 3 4] * - conj(Fᵣ[-4; 5 4]) + return if O1 isa BraidingTensor && O2 isa BraidingTensor + elseif O1 isa BraidingTensor + @plansor O′[-1 -2; -3 -4] := Fₗ[-1; 1 2] * + O2[1 3; -3 5] * + τ[2 -2; 3 4] * + conj(Fᵣ[-4; 5 4]) + elseif O2 isa BraidingTensor + @plansor O′[-1 -2; -3 -4] := Fₗ[-1; 1 2] * + τ[1 3; -3 5] * + O1[2 -2; 3 4] * + conj(Fᵣ[-4; 5 4]) + else + @plansor O′[-1 -2; -3 -4] := Fₗ[-1; 1 2] * + O2[1 3; -3 5] * + O1[2 -2; 3 4] * + conj(Fᵣ[-4; 5 4]) + end end """