Skip to content

Commit 4dfffb6

Browse files
dkarraschKristofferC
authored andcommitted
recognize Adjoint/Transpose of sparse arrays as sparse (#34266)
1 parent 4665021 commit 4dfffb6

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

stdlib/SparseArrays/src/abstractsparse.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ false
5252
"""
5353
issparse(A::AbstractArray) = false
5454
issparse(S::AbstractSparseArray) = true
55+
issparse(S::LinearAlgebra.Adjoint{<:Any,<:AbstractSparseArray}) = true
56+
issparse(S::LinearAlgebra.Transpose{<:Any,<:AbstractSparseArray}) = true
5557

5658
issparse(S::LinearAlgebra.Symmetric{<:Any,<:AbstractSparseMatrix}) = true
5759
issparse(S::LinearAlgebra.Hermitian{<:Any,<:AbstractSparseMatrix}) = true

stdlib/SparseArrays/test/sparse.jl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2046,6 +2046,8 @@ end
20462046
@test issparse(LinearAlgebra.UnitLowerTriangular(m))
20472047
@test issparse(UpperTriangular(m))
20482048
@test issparse(LinearAlgebra.UnitUpperTriangular(m))
2049+
@test issparse(adjoint(m))
2050+
@test issparse(transpose(m))
20492051
@test issparse(Symmetric(Array(m))) == false
20502052
@test issparse(Hermitian(Array(m))) == false
20512053
@test issparse(LowerTriangular(Array(m))) == false
@@ -2054,6 +2056,13 @@ end
20542056
@test issparse(LinearAlgebra.UnitUpperTriangular(Array(m))) == false
20552057
end
20562058

2059+
@testset "issparse for sparse vectors #34253" begin
2060+
v = sprand(10, 0.5)
2061+
@test issparse(v)
2062+
@test issparse(v')
2063+
@test issparse(transpose(v))
2064+
end
2065+
20572066
@testset "test created type of sprand{T}(::Type{T}, m::Integer, n::Integer, density::AbstractFloat)" begin
20582067
m = sprand(Float32, 10, 10, 0.1)
20592068
@test eltype(m) == Float32

0 commit comments

Comments
 (0)