diff --git a/src/pullbacks/svd.jl b/src/pullbacks/svd.jl index 4291bf9e6..365ca9feb 100755 --- a/src/pullbacks/svd.jl +++ b/src/pullbacks/svd.jl @@ -241,8 +241,9 @@ function svd_trunc_pullback!( Y₀ᴴ = iszerotangent(ΔV₊ᴴ) ? zero(Vᴴ) : ldiv!(Diagonal(S), ΔV₊ᴴ) US = mul!(ΔAV, U, Smat) # recycle ΔAV AP = mul!(copy(A), US, Vᴴ, -1, 1) - AP ./= S[end] - S⁻¹ = S[end] ./ S + minS = minimum(S) + AP ./= minS + S⁻¹ = minS ./ S X₁ = rmul!(AP * Y₀ᴴ', Diagonal(S⁻¹)) X₁ .+= X₀ Y₁ᴴ = lmul!(Diagonal(S⁻¹), X₀' * AP)