@@ -2326,10 +2326,10 @@ getindex(A::SparseMatrixCSC, I::AbstractVector{<:Integer}, J::AbstractVector{Boo
2326
2326
getindex (A:: SparseMatrixCSC , I:: AbstractVector{Bool} , J:: AbstractVector{<:Integer} ) = A[findall (I),J]
2327
2327
2328
2328
# # setindex!
2329
- function setindex! (A:: SparseMatrixCSC{Tv,Ti} , v, i :: Integer , j :: Integer ) where Tv where Ti
2330
- setindex! (A, convert (Tv, v), convert (Ti, i), convert (Ti, j) )
2331
- end
2332
- function setindex! (A :: SparseMatrixCSC{Tv,Ti} , v :: Tv , i :: Ti , j :: Ti ) where Tv where Ti <: Integer
2329
+ function setindex! (A:: SparseMatrixCSC{Tv,Ti} , _v, _i :: Integer , _j :: Integer ) where Tv where Ti
2330
+ v = convert (Tv, _v )
2331
+ i = convert (Ti, _i)
2332
+ j = convert (Ti, _j)
2333
2333
if ! ((1 <= i <= A. m) & (1 <= j <= A. n))
2334
2334
throw (BoundsError (A, (i,j)))
2335
2335
end
@@ -2521,13 +2521,17 @@ function _spsetnz_setindex!(A::SparseMatrixCSC{Tv}, x::Tv,
2521
2521
return A
2522
2522
end
2523
2523
2524
+ setindex! (A:: SparseMatrixCSC{Tv,Ti} , S:: Matrix , I:: Integer , J:: Integer ) where {Tv,Ti} = setindex! (A, convert (Tv, S), I, J)
2524
2525
setindex! (A:: SparseMatrixCSC{Tv,Ti} , S:: Matrix , I:: Union{Integer, AbstractVector{T}} , J:: Union{Integer, AbstractVector{T}} ) where {Tv,Ti,T<: Integer } =
2525
- setindex! (A, convert (SparseMatrixCSC{Tv,Ti}, S), I, J)
2526
+ setindex! (A, convert (SparseMatrixCSC{Tv,Ti}, S), I, J)
2526
2527
2528
+ setindex! (A:: SparseMatrixCSC , v:: AbstractVector , I:: Integer , J:: Integer ) = setindex! (A, convert (Tv, v), I, J)
2527
2529
setindex! (A:: SparseMatrixCSC , v:: AbstractVector , I:: Union{Integer, AbstractVector{T}} , J:: Union{Integer, AbstractVector{T}} ) where {T<: Integer } =
2528
- setindex! (A, reshape (v, length (I), length (J)), I, J)
2530
+ setindex! (A, reshape (v, length (I), length (J)), I, J)
2529
2531
2530
2532
# A[I,J] = B
2533
+ setindex! (A:: SparseMatrixCSC{Tv,Ti} , B:: SparseMatrixCSC{Tv,Ti} , I:: Integer , J:: Integer ) where {Tv,Ti} =
2534
+ setindex! (A, convert (Tv, I, J), I, J)
2531
2535
function setindex! (A:: SparseMatrixCSC{Tv,Ti} , B:: SparseMatrixCSC{Tv,Ti} , I:: Union{Integer, AbstractVector{T}} , J:: Union{Integer, AbstractVector{T}} ) where {Tv,Ti,T<: Integer }
2532
2536
if size (B,1 ) != length (I) || size (B,2 ) != length (J)
2533
2537
throw (DimensionMismatch (" " ))
0 commit comments