From 54ad22d56317dcb4a304c16ae11cbea0103c9da1 Mon Sep 17 00:00:00 2001 From: Jutho Haegeman Date: Wed, 6 May 2026 23:44:16 +0200 Subject: [PATCH] some suggestion --- src/pullbacks/eig.jl | 8 ++++++-- src/pullbacks/eigh.jl | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/pullbacks/eig.jl b/src/pullbacks/eig.jl index 427aaf55..6ed02354 100755 --- a/src/pullbacks/eig.jl +++ b/src/pullbacks/eig.jl @@ -10,8 +10,12 @@ function check_and_prepare_eig_cotangents( if !iszerotangent(ΔV) n == size(ΔV, 1) || throw(DimensionMismatch()) length(indV) == size(ΔV, 2) || throw(DimensionMismatch()) - ΔV₁ = zero(V) - ΔV₁[:, indV] = ΔV + if indV == 1:p + ΔV₁ = copy(ΔV) + else + ΔV₁ = zero(V) + ΔV₁[:, indV] = ΔV + end VᴴΔV₁ = V' * ΔV₁ if p == n ΔV₊ = zero!(ΔV₁) diff --git a/src/pullbacks/eigh.jl b/src/pullbacks/eigh.jl index cc986907..e9ac87ae 100755 --- a/src/pullbacks/eigh.jl +++ b/src/pullbacks/eigh.jl @@ -10,8 +10,12 @@ function check_and_prepare_eigh_cotangents( if !iszerotangent(ΔV) n == size(ΔV, 1) || throw(DimensionMismatch()) length(indV) == size(ΔV, 2) || throw(DimensionMismatch()) - ΔV₁ = zero(V) - ΔV₁[:, indV] = ΔV + if indV == 1:p + ΔV₁ = copy(ΔV) + else + ΔV₁ = zero(V) + ΔV₁[:, indV] = ΔV + end VᴴΔV₁ = V' * ΔV₁ if p == n ΔV₊ = zero!(ΔV₁)