Skip to content

Commit 647433d

Browse files
authored
A trivial simplification of TRG (#77)
* A simplification of TRG * Some format
1 parent 6a49e7d commit 647433d

1 file changed

Lines changed: 4 additions & 15 deletions

File tree

src/schemes/trg.jl

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,10 @@ mutable struct TRG <: TNRScheme
3535
end
3636

3737
function step!(scheme::TRG, trunc::TensorKit.TruncationScheme)
38-
U, S, V, _ = tsvd(scheme.T, ((1, 2), (3, 4)); trunc = trunc)
39-
40-
@tensor begin
41-
A[-1 -2; -3] := U[-1 -2; 1] * sqrt(S)[1; -3]
42-
B[-1; -2 -3] := sqrt(S)[-1; 1] * V[1; -2 -3]
43-
end
44-
45-
U, S, V, _ = tsvd(scheme.T, ((3, 1), (4, 2)); trunc = trunc)
46-
47-
@tensor begin
48-
C[-1 -2; -3] := U[-1 -2; 1] * sqrt(S)[1; -3]
49-
D[-1; -2 -3] := sqrt(S)[-1; 1] * V[1; -2 -3]
50-
end
51-
52-
@tensor scheme.T[-1 -2; -3 -4] := D[-1; 3 1] * B[-2; 1 4] * C[2 4; -4] * A[3 2; -3]
38+
A, B = SVD12(scheme.T, trunc)
39+
Tp = transpose(scheme.T, ((2, 4), (1, 3)))
40+
C, D = SVD12(Tp, trunc)
41+
@planar scheme.T[-1 -2; -3 -4] := D[-2; 1 2] * B[-1; 4 1] * C[4 3; -3] * A[3 2; -4]
5342
return scheme
5443
end
5544

0 commit comments

Comments
 (0)