Skip to content

Commit 37fca8d

Browse files
committed
Enable some more tests
1 parent 87124c6 commit 37fca8d

1 file changed

Lines changed: 15 additions & 11 deletions

File tree

test/mooncake/svd_wrapper.jl

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ symm_R = randn(dtype, space(symm_r))
145145
@test g_full_tr[2] g_iter_fb[2] rtol = rtol
146146
@test g_trunc_tr[2] g_iter_fb[2] rtol = rtol
147147
end
148-
#=
148+
149149
@testset "Truncated symmetric SVD broadening for $(alg.rrule_alg)" for alg in [full_alg, trunc_alg]
150150
u, s, v, = svd_compact(symm_r)
151151
# make every singular value in the 0-sector three-fold degenerate
@@ -159,24 +159,28 @@ end
159159

160160
no_broadening_no_cutoff_alg = @set alg.rrule_alg.degeneracy_atol = 1.0e-30
161161
small_broadening_alg = @set alg.rrule_alg.degeneracy_atol = 1.0e-13
162+
163+
only_lossfun = A -> lossfun(A, alg, symm_R, symm_trspace)
164+
no_broadening_lossfun = A -> lossfun(A, no_broadening_no_cutoff_alg, symm_R, symm_trspace)
165+
small_broadening_lossfun = A -> lossfun(A, small_broadening_alg, symm_R, symm_trspace)
166+
167+
only_rrule = Mooncake.build_rrule(only_lossfun, symm_r_degen)
168+
no_broadening_rrule = Mooncake.build_rrule(no_broadening_lossfun, symm_r_degen)
169+
small_broadening_rrule = Mooncake.build_rrule(small_broadening_lossfun, symm_r_degen)
162170

163-
l_only_cutoff, g_only_cutoff = Mooncake.value_and_gradient!!(
164-
A -> lossfun(A, alg, symm_R, symm_trspace), symm_r_degen
165-
) # cutoff sets degenerate difference to zero
171+
l_only_cutoff, g_only_cutoff = Mooncake.value_and_gradient!!(only_rrule, only_lossfun, symm_r_degen) # cutoff sets degenerate difference to zero
166172
l_no_broadening_no_cutoff, g_no_broadening_no_cutoff = Mooncake.value_and_gradient!!( # degenerate singular value differences lead to divergent contributions
167-
A -> lossfun(A, no_broadening_no_cutoff_alg, symm_R, symm_trspace),
168-
symm_r_degen,
173+
no_broadening_rrule, no_broadening_lossfun, symm_r_degen,
169174
)
170175
l_small_broadening, g_small_broadening = Mooncake.value_and_gradient!!( # broadening smoothens divergent contributions
171-
A -> lossfun(A, small_broadening_alg, symm_R, symm_trspace),
172-
symm_r_degen,
176+
small_broadening_rrule, small_broadening_lossfun, symm_r_degen,
173177
)
174178

175179
@test l_only_cutoff l_no_broadening_no_cutoff l_small_broadening
176-
@test norm(g_no_broadening_no_cutoff[1] - g_small_broadening[1]) > 1.0e-2 # divergences mess up the gradient
177-
@test g_only_cutoff[1] ≈ g_small_broadening[1] rtol = rtol # cutoff and broadening have similar effect
180+
#@test norm(g_no_broadening_no_cutoff[2] - g_small_broadening[2]) > 1.0e-2 # divergences mess up the gradient
181+
@test g_only_cutoff[2] g_small_broadening[2] rtol = rtol # cutoff and broadening have similar effect
178182
end
179-
=#
183+
180184
# TODO: Add when IterSVD is implemented for HalfInfiniteEnv
181185
# χbond = 2
182186
# χenv = 6

0 commit comments

Comments
 (0)