@@ -78,6 +78,16 @@ function eig_pullback!(
7878 end
7979 return ΔA
8080end
81+ function eig_pullback! (
82+ ΔA:: Diagonal , A, DV, ΔDV, ind = Colon ();
83+ degeneracy_atol:: Real = default_pullback_rank_atol (DV[1 ]),
84+ gauge_atol:: Real = default_pullback_gauge_atol (ΔDV[2 ])
85+ )
86+ ΔA_full = zero! (similar (ΔA, size (ΔA)))
87+ ΔA_full = eig_pullback! (ΔA_full, A, DV, ΔDV, ind; degeneracy_atol, gauge_atol)
88+ diagview (ΔA) .+ = diagview (ΔA_full)
89+ return ΔA
90+ end
8191
8292"""
8393 eig_trunc_pullback!(
@@ -151,6 +161,16 @@ function eig_trunc_pullback!(
151161 end
152162 return ΔA
153163end
164+ function eig_trunc_pullback! (
165+ ΔA:: Diagonal , A, DV, ΔDV;
166+ degeneracy_atol:: Real = default_pullback_rank_atol (DV[1 ]),
167+ gauge_atol:: Real = default_pullback_gauge_atol (ΔDV[2 ])
168+ )
169+ ΔA_full = zero! (similar (ΔA, size (ΔA)))
170+ ΔA_full = eig_trunc_pullback! (ΔA_full, A, DV, ΔDV; degeneracy_atol, gauge_atol)
171+ diagview (ΔA) .+ = diagview (ΔA_full)
172+ return ΔA
173+ end
154174
155175"""
156176 eig_vals_pullback!(
@@ -175,25 +195,3 @@ function eig_vals_pullback!(
175195 ΔDV = (diagonal (ΔD), nothing )
176196 return eig_pullback! (ΔA, A, DV, ΔDV, ind; degeneracy_atol)
177197end
178-
179- function eig_pullback! (
180- ΔA:: Diagonal , A, DV, ΔDV, ind = Colon ();
181- degeneracy_atol:: Real = default_pullback_rank_atol (DV[1 ]),
182- gauge_atol:: Real = default_pullback_gauge_atol (ΔDV[2 ])
183- )
184- ΔA_full = zero! (similar (ΔA, size (ΔA)))
185- eig_pullback! (ΔA_full, A, DV, ΔDV, ind; degeneracy_atol, gauge_atol)
186- diagview (ΔA) .+ = diagview (ΔA_full)
187- return ΔA
188- end
189-
190- function eig_trunc_pullback! (
191- ΔA:: Diagonal , A, DV, ΔDV;
192- degeneracy_atol:: Real = default_pullback_rank_atol (DV[1 ]),
193- gauge_atol:: Real = default_pullback_gauge_atol (ΔDV[2 ])
194- )
195- ΔA_full = zero! (similar (ΔA, size (ΔA)))
196- eig_trunc_pullback! (ΔA_full, A, DV, ΔDV; degeneracy_atol, gauge_atol)
197- diagview (ΔA) .+ = diagview (ΔA_full)
198- return ΔA
199- end
0 commit comments