@@ -1659,7 +1659,7 @@ function finalize_values(A,rows_fa,cols_fa,cache_snd,cache_rcv,triplets,aux)
16591659 values, cache
16601660end
16611661
1662- function PartitionedArrays . psparse_assemble_impl (
1662+ function psparse_assemble_impl (
16631663 A,
16641664 :: Type{<:AbstractSplitMatrix} ,
16651665 rows;
@@ -2033,11 +2033,12 @@ function consistent_finalize(A,cache_snd,cache_rcv,rows_co,cols_fa,cols_co)
20332033 V_rcv_data = cache_rcv. V_rcv. data
20342034 global_to_own_col = global_to_own (cols_co)
20352035 global_to_ghost_col = global_to_ghost (cols_co)
2036- is_own = findall (j -> global_to_own_col[j ]!= 0 ,J_rcv_data)
2037- is_ghost = findall (j -> global_to_ghost_col[j] != 0 , J_rcv_data)
2036+ is_own_condition = k -> global_to_own_col[k ]!= 0
2037+ is_own = is_own_condition .( J_rcv_data)
20382038 I_rcv_own = I_rcv_data[is_own]
20392039 J_rcv_own = J_rcv_data[is_own]
20402040 V_rcv_own = V_rcv_data[is_own]
2041+ is_ghost = map! (! ,is_own, is_own) # inverse is_own bitvector to effectively represent is_ghost mask
20412042 I_rcv_ghost = I_rcv_data[is_ghost]
20422043 J_rcv_ghost = J_rcv_data[is_ghost]
20432044 V_rcv_ghost = V_rcv_data[is_ghost]
@@ -2066,7 +2067,7 @@ function consistent_finalize(A,cache_snd,cache_rcv,rows_co,cols_fa,cols_co)
20662067 V_rcv = cache_rcv. V_rcv
20672068 parts_snd = cache_snd. parts_snd
20682069 parts_rcv = cache_rcv. parts_rcv
2069- cache = (;parts_snd,parts_rcv,k_snd,V_snd,V_rcv,is_ghost,is_own, V_rcv_own,V_rcv_ghost,K_own,K_ghost)
2070+ cache = (;parts_snd,parts_rcv,k_snd,V_snd,V_rcv,V_rcv_own,V_rcv_ghost,K_own,K_ghost)
20702071 values,cache
20712072end
20722073
@@ -2127,13 +2128,10 @@ function psparse_consistent_impl!(B,A,::Type{<:AbstractSplitMatrix},cache)
21272128 end
21282129 end
21292130 function setup_rcv (B,cache)
2130- is_ghost = cache. is_ghost
2131- is_own = cache. is_own
2132- V_rcv_data = cache. V_rcv. data
21332131 K_own = cache. K_own
21342132 K_ghost = cache. K_ghost
2135- V_rcv_own = V_rcv_data[is_own]
2136- V_rcv_ghost = V_rcv_data[is_ghost]
2133+ V_rcv_own = cache . V_rcv_own
2134+ V_rcv_ghost = cache . V_rcv_ghost
21372135 setcoofast! (B. blocks. ghost_own,V_rcv_own,K_own)
21382136 setcoofast! (B. blocks. ghost_ghost,V_rcv_ghost,K_ghost)
21392137 B
0 commit comments