Skip to content

Commit 8affe9e

Browse files
authored
Bring back typed aliases (#361)
1 parent 4aab8df commit 8affe9e

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/linalg.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ const SparseOrTri{Tv,Ti} = Union{SparseMatrixCSCUnion{Tv,Ti},SparseTriangular{Tv
169169
# done by a quicksort of the row indices or by a full scan of the dense result vector.
170170
# The last is faster, if more than ≈ 1/32 of the result column is nonzero.
171171
# TODO: extend to SparseMatrixCSCUnion to allow for SubArrays (view(X, :, r)).
172-
function spmatmul(A::SparseOrTri, B::Union{SparseOrTri,SparseVectorUnion,SubArray{<:Any,<:Any,<:AbstractSparseArray}})
172+
function spmatmul(A::SparseOrTri, B::Union{SparseOrTri,AbstractCompressedVector,SubArray{<:Any,<:Any,<:AbstractSparseArray}})
173173
Tv = promote_op(matprod, eltype(A), eltype(B))
174174
Ti = promote_type(indtype(A), indtype(B))
175175
mA, nA = size(A)
@@ -1385,7 +1385,7 @@ kron!(C::SparseMatrixCSC, A::_DenseConcatGroup, B::_SparseKronGroup) =
13851385
kron!(C, convert(SparseMatrixCSC, A), convert(SparseMatrixCSC, B))
13861386
kron!(C::SparseMatrixCSC, A::_SparseKronGroup, B::_SparseKronGroup) =
13871387
kron!(C, convert(SparseMatrixCSC, A), convert(SparseMatrixCSC, B))
1388-
kron!(C::SparseMatrixCSC, A::SparseVectorUnion, B::AdjOrTransSparseVectorUnion) =
1388+
kron!(C::SparseMatrixCSC, A::_SparseVectorUnion, B::_AdjOrTransSparseVectorUnion) =
13891389
broadcast!(*, C, A, B)
13901390
# disambiguation
13911391
kron!(C::SparseMatrixCSC, A::_SparseKronGroup, B::Diagonal) =
@@ -1420,7 +1420,7 @@ kron(A::_SparseKronGroup, B::_SparseKronGroup) =
14201420
kron(convert(SparseMatrixCSC, A), convert(SparseMatrixCSC, B))
14211421
kron(A::_SparseKronGroup, B::_DenseConcatGroup) = kron(A, sparse(B))
14221422
kron(A::_DenseConcatGroup, B::_SparseKronGroup) = kron(sparse(A), B)
1423-
kron(A::SparseVectorUnion, B::AdjOrTransSparseVectorUnion) = A .* B
1423+
kron(A::_SparseVectorUnion, B::_AdjOrTransSparseVectorUnion) = A .* B
14241424
# disambiguation
14251425
kron(A::AbstractCompressedVector, B::AdjOrTrans{<:Any,<:AbstractCompressedVector}) = A .* B
14261426
kron(a::Number, b::_SparseKronGroup) = a * b

src/sparsevector.jl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,15 @@ _unsafe_unfix(s::FixedSparseVector) = SparseVector(length(s), parent(nonzeroinds
8585

8686
# Define an alias for a view of a whole column of a SparseMatrixCSC. Many methods can be written for the
8787
# union of such a view and a SparseVector so we define an alias for such a union as well
88-
const SparseColumnView = SubArray{<:Any,1,<:AbstractSparseMatrixCSC,Tuple{Base.Slice{Base.OneTo{Int}},Int},false}
89-
const SparseVectorView = SubArray{<:Any,1,<:AbstractSparseVector,Tuple{Base.Slice{Base.OneTo{Int}}},false}
90-
const SparseVectorUnion = Union{AbstractCompressedVector, SparseColumnView, SparseVectorView}
91-
const AdjOrTransSparseVectorUnion = AdjOrTrans{<:Any,<:SparseVectorUnion}
88+
const _SparseColumnView = SubArray{<:Any,1,<:AbstractSparseMatrixCSC,Tuple{Base.Slice{Base.OneTo{Int}},Int},false}
89+
const _SparseVectorView = SubArray{<:Any,1,<:AbstractSparseVector,Tuple{Base.Slice{Base.OneTo{Int}}},false}
90+
const _SparseVectorUnion = Union{AbstractCompressedVector, _SparseColumnView, _SparseVectorView}
91+
const _AdjOrTransSparseVectorUnion = AdjOrTrans{<:Any,<:_SparseVectorUnion}
92+
# the following aliases are unused internally, but widespread in packages
93+
const SparseColumnView{Tv,Ti} = SubArray{Tv,1,<:AbstractSparseMatrixCSC{Tv,Ti},Tuple{Base.Slice{Base.OneTo{Int}},Int},false}
94+
const SparseVectorView{Tv,Ti} = SubArray{Tv,1,<:AbstractSparseVector{Tv,Ti},Tuple{Base.Slice{Base.OneTo{Int}}},false}
95+
const SparseVectorUnion{Tv,Ti} = Union{AbstractCompressedVector{Tv,Ti}, SparseColumnView{Tv,Ti}, SparseVectorView{Tv,Ti}}
96+
const AdjOrTransSparseVectorUnion{Tv,Ti} = LinearAlgebra.AdjOrTrans{Tv, <:SparseVectorUnion{Tv,Ti}}
9297

9398
### Basic properties
9499

0 commit comments

Comments
 (0)