339339# # ColumnColoringResult
340340
341341function decompress! (A:: AbstractMatrix , B:: AbstractMatrix , result:: ColumnColoringResult )
342- (; color) = result
343- S = result . bg. S2
344- check_same_pattern (A, S )
342+ (; bg, color) = result
343+ S = bg. S2
344+ check_compatible_pattern (A, bg )
345345 fill! (A, zero (eltype (A)))
346346 rvS = rowvals (S)
347347 for j in axes (S, 2 )
357357function decompress_single_color! (
358358 A:: AbstractMatrix , b:: AbstractVector , c:: Integer , result:: ColumnColoringResult
359359)
360- (; group) = result
361- S = result . bg. S2
362- check_same_pattern (A, S )
360+ (; bg, group) = result
361+ S = bg. S2
362+ check_compatible_pattern (A, bg )
363363 rvS = rowvals (S)
364364 for j in group[c]
365365 for k in nzrange (S, j)
@@ -371,9 +371,9 @@ function decompress_single_color!(
371371end
372372
373373function decompress! (A:: SparseMatrixCSC , B:: AbstractMatrix , result:: ColumnColoringResult )
374- (; compressed_indices) = result
375- S = result . bg. S2
376- check_same_pattern (A, S )
374+ (; bg, compressed_indices) = result
375+ S = bg. S2
376+ check_compatible_pattern (A, bg )
377377 nzA = nonzeros (A)
378378 for k in eachindex (nzA, compressed_indices)
379379 nzA[k] = B[compressed_indices[k]]
384384function decompress_single_color! (
385385 A:: SparseMatrixCSC , b:: AbstractVector , c:: Integer , result:: ColumnColoringResult
386386)
387- (; group) = result
388- S = result . bg. S2
389- check_same_pattern (A, S )
387+ (; bg, group) = result
388+ S = bg. S2
389+ check_compatible_pattern (A, bg )
390390 rvS = rowvals (S)
391391 nzA = nonzeros (A)
392392 for j in group[c]
401401# # RowColoringResult
402402
403403function decompress! (A:: AbstractMatrix , B:: AbstractMatrix , result:: RowColoringResult )
404- (; color) = result
405- S = result . bg. S2
406- check_same_pattern (A, S )
404+ (; bg, color) = result
405+ S = bg. S2
406+ check_compatible_pattern (A, bg )
407407 fill! (A, zero (eltype (A)))
408408 rvS = rowvals (S)
409409 for j in axes (S, 2 )
419419function decompress_single_color! (
420420 A:: AbstractMatrix , b:: AbstractVector , c:: Integer , result:: RowColoringResult
421421)
422- (; group) = result
423- S, Sᵀ = result . bg. S2, result . bg. S1
424- check_same_pattern (A, S )
422+ (; bg, group) = result
423+ S, Sᵀ = bg. S2, bg. S1
424+ check_compatible_pattern (A, bg )
425425 rvSᵀ = rowvals (Sᵀ)
426426 for i in group[c]
427427 for k in nzrange (Sᵀ, i)
@@ -433,9 +433,9 @@ function decompress_single_color!(
433433end
434434
435435function decompress! (A:: SparseMatrixCSC , B:: AbstractMatrix , result:: RowColoringResult )
436- (; compressed_indices) = result
437- S = result . bg. S2
438- check_same_pattern (A, S )
436+ (; bg, compressed_indices) = result
437+ S = bg. S2
438+ check_compatible_pattern (A, bg )
439439 nzA = nonzeros (A)
440440 for k in eachindex (nzA, compressed_indices)
441441 nzA[k] = B[compressed_indices[k]]
@@ -450,7 +450,7 @@ function decompress!(
450450)
451451 (; ag, compressed_indices) = result
452452 (; S) = ag
453- uplo == :F && check_same_pattern (A, S )
453+ check_compatible_pattern (A, ag, uplo )
454454 fill! (A, zero (eltype (A)))
455455
456456 rvS = rowvals (S)
@@ -474,7 +474,7 @@ function decompress_single_color!(
474474)
475475 (; ag, compressed_indices, group) = result
476476 (; S) = ag
477- uplo == :F && check_same_pattern (A, S )
477+ check_compatible_pattern (A, ag, uplo )
478478
479479 lower_index = (c - 1 ) * S. n + 1
480480 upper_index = c * S. n
@@ -508,8 +508,8 @@ function decompress!(
508508 (; ag, compressed_indices) = result
509509 (; S) = ag
510510 nzA = nonzeros (A)
511+ check_compatible_pattern (A, ag, uplo)
511512 if uplo == :F
512- check_same_pattern (A, S)
513513 for k in eachindex (nzA, compressed_indices)
514514 nzA[k] = B[compressed_indices[k]]
515515 end
@@ -537,7 +537,7 @@ function decompress!(
537537 (; ag, color, reverse_bfs_orders, tree_edge_indices, nt, diagonal_indices, buffer) =
538538 result
539539 (; S) = ag
540- uplo == :F && check_same_pattern (A, S )
540+ check_compatible_pattern (A, ag, uplo )
541541 R = eltype (A)
542542 fill! (A, zero (R))
543543
@@ -606,7 +606,7 @@ function decompress!(
606606 (; S) = ag
607607 A_colptr = A. colptr
608608 nzA = nonzeros (A)
609- uplo == :F && check_same_pattern (A, S )
609+ check_compatible_pattern (A, ag, uplo )
610610
611611 if eltype (buffer) == R
612612 buffer_right_type = buffer
@@ -707,9 +707,10 @@ function decompress!(
707707 result:: LinearSystemColoringResult ,
708708 uplo:: Symbol = :F ,
709709)
710- (; color, strict_upper_nonzero_inds, M_factorization, strict_upper_nonzeros_A) = result
711- S = result. ag. S
712- uplo == :F && check_same_pattern (A, S)
710+ (; ag, color, strict_upper_nonzero_inds, M_factorization, strict_upper_nonzeros_A) =
711+ result
712+ S = ag. S
713+ check_compatible_pattern (A, ag, uplo)
713714
714715 # TODO : for some reason I cannot use ldiv! with a sparse QR
715716 strict_upper_nonzeros_A = M_factorization \ vec (B)
0 commit comments