Skip to content

Commit 54a3b3d

Browse files
authored
Enhance decompress! for bicoloring
1 parent 0702578 commit 54a3b3d

1 file changed

Lines changed: 13 additions & 2 deletions

File tree

src/decompression.jl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -770,10 +770,21 @@ end
770770
function decompress!(
771771
A::AbstractMatrix, Br::AbstractMatrix, Bc::AbstractMatrix, result::BicoloringResult
772772
)
773+
(; large_colptr, large_rowval, symmetric_result) = result
773774
m, n = size(A)
774775
Br_and_Bc = _join_compressed!(result, Br, Bc)
775-
A_and_Aᵀ = decompress(Br_and_Bc, result.symmetric_result)
776-
copyto!(A, A_and_Aᵀ[(n + 1):(n + m), 1:n]) # original matrix in bottom left corner
776+
R = eltype(A)
777+
nzval = Vector{R}(undef, length(large_rowval))
778+
A_and_noAᵀ = SparseMatrixCSC(m + n, m + n, large_colptr, large_rowval, nzval)
779+
decompress!(A_and_noAᵀ, Br_and_Bc, symmetric_result)
780+
rvA = rowvals(A_and_noAᵀ)
781+
nzA = nonzeros(A_and_noAᵀ)
782+
for j in 1:n
783+
for k in nzrange(A_and_noAᵀ, j)
784+
i = rvA[k]
785+
A[i-n, j] = nzA[k]
786+
end
787+
end
777788
return A
778789
end
779790

0 commit comments

Comments
 (0)