From 8b3834d43cf26602269b7afbd0e4e4e0529f36f5 Mon Sep 17 00:00:00 2001 From: Alexis Montoison <35051714+amontoison@users.noreply.github.com> Date: Wed, 31 Dec 2025 10:50:34 +0100 Subject: [PATCH 1/2] Use diagonal_indices in the general decompress! for acyclic coloring --- src/decompression.jl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/decompression.jl b/src/decompression.jl index 42bf51eb..4a400ab7 100644 --- a/src/decompression.jl +++ b/src/decompression.jl @@ -534,7 +534,7 @@ end function decompress!( A::AbstractMatrix, B::AbstractMatrix, result::TreeSetColoringResult, uplo::Symbol=:F ) - (; ag, color, reverse_bfs_orders, tree_edge_indices, nt, buffer) = result + (; ag, color, reverse_bfs_orders, tree_edge_indices, nt, diagonal_indices, buffer) = result (; S) = ag uplo == :F && check_same_pattern(A, S) R = eltype(A) @@ -548,10 +548,8 @@ function decompress!( # Recover the diagonal coefficients of A if !augmented_graph(ag) - for i in axes(S, 1) - if !iszero(S[i, i]) - A[i, i] = B[i, color[i]] - end + for i in diagonal_indices + A[i, i] = B[i, color[i]] end end From 9a253ca1c966d4ab3d1a599dda467b64f2212972 Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Wed, 31 Dec 2025 11:00:15 +0100 Subject: [PATCH 2/2] Fix formatting --- src/decompression.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/decompression.jl b/src/decompression.jl index 4a400ab7..f8fd610a 100644 --- a/src/decompression.jl +++ b/src/decompression.jl @@ -534,7 +534,8 @@ end function decompress!( A::AbstractMatrix, B::AbstractMatrix, result::TreeSetColoringResult, uplo::Symbol=:F ) - (; ag, color, reverse_bfs_orders, tree_edge_indices, nt, diagonal_indices, buffer) = result + (; ag, color, reverse_bfs_orders, tree_edge_indices, nt, diagonal_indices, buffer) = + result (; S) = ag uplo == :F && check_same_pattern(A, S) R = eltype(A)