From 1ca78171deb7ea8fb1d956ad479614539c5d3013 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Tue, 11 Aug 2026 14:41:51 +0200 Subject: [PATCH 1/3] Instantiate broadcast for SVD pullback This prevents an `axes` check from exploding further up the stack when PEPSKit tries to call this --- src/pullbacks/svd.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pullbacks/svd.jl b/src/pullbacks/svd.jl index 5d5020535..4291bf9e6 100755 --- a/src/pullbacks/svd.jl +++ b/src/pullbacks/svd.jl @@ -85,7 +85,7 @@ function check_and_prepare_svd_cotangents( bc = Base.broadcasted(S₁', S₁, aUᴴΔU₁, aVᴴΔV₁) do s₁, s₂, u, v return abs(s₁ - s₂) < degeneracy_atol ? u + v : zero(u) + zero(v) end - Δgauge = max(Δgauge, maximum(abs, bc)) + Δgauge = max(Δgauge, maximum(abs, Base.Broadcast.instantiate(bc))) if !iszerotangent(ΔSmat) ΔS = diagview(ΔSmat) From 79e1528f65f6b3568e99f82763c3221a541dd7e2 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Tue, 11 Aug 2026 14:43:06 +0200 Subject: [PATCH 2/3] Fix broadcast handling in eig pullback too --- src/pullbacks/eig.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pullbacks/eig.jl b/src/pullbacks/eig.jl index 29744c93d..5ec817bf6 100755 --- a/src/pullbacks/eig.jl +++ b/src/pullbacks/eig.jl @@ -30,7 +30,7 @@ function check_and_prepare_eig_cotangents( bc = Base.broadcasted(transpose(D), D, VᴴΔV₁) do d₁, d₂, v return abs(d₁ - d₂) < degeneracy_atol ? v : zero(v) end - Δgauge = maximum(abs, bc; init = abs(zero(eltype(D)))) + Δgauge = maximum(abs, Base.Broadcast.instantiate(bc); init = abs(zero(eltype(D)))) Δgauge ≤ gauge_atol || @warn "`eig` cotangents sensitive to gauge choice: (|Δgauge| = $Δgauge)" From faf4b7c454d255fcb2b6ddef3999b5933cac7fd9 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Tue, 11 Aug 2026 14:43:29 +0200 Subject: [PATCH 3/3] And eigh --- src/pullbacks/eigh.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pullbacks/eigh.jl b/src/pullbacks/eigh.jl index e2687a427..20ac7fe5d 100755 --- a/src/pullbacks/eigh.jl +++ b/src/pullbacks/eigh.jl @@ -31,7 +31,7 @@ function check_and_prepare_eigh_cotangents( bc = Base.broadcasted(transpose(D), D, aVᴴΔV₁) do d₁, d₂, v return abs(d₁ - d₂) < degeneracy_atol ? v : zero(v) end - Δgauge = maximum(abs, bc; init = abs(zero(eltype(D)))) + Δgauge = maximum(abs, Base.Broadcast.instantiate(bc); init = abs(zero(eltype(D)))) Δgauge ≤ gauge_atol || @warn "`eigh` cotangents sensitive to gauge choice: (|Δgauge| = $Δgauge)"