diff --git a/src/pdmat.jl b/src/pdmat.jl index 903f143..d47153e 100644 --- a/src/pdmat.jl +++ b/src/pdmat.jl @@ -51,6 +51,10 @@ Base.broadcastable(a::PDMat) = Base.broadcastable(a.mat) ### Inheriting from AbstractMatrix +Base.IndexStyle(::Type{PDMat{T,S}}) where {T,S} = Base.IndexStyle(S) +# Linear Indexing +Base.@propagate_inbounds Base.getindex(a::PDMat, i::Int) = getindex(a.mat, i) +# Cartesian Indexing Base.@propagate_inbounds Base.getindex(a::PDMat, I::Vararg{Int, 2}) = getindex(a.mat, I...) ### Arithmetics diff --git a/src/pdsparsemat.jl b/src/pdsparsemat.jl index 3f4cf15..eb5f640 100644 --- a/src/pdsparsemat.jl +++ b/src/pdsparsemat.jl @@ -51,7 +51,11 @@ LinearAlgebra.cholesky(a::PDSparseMat) = a.chol ### Inheriting from AbstractMatrix -Base.getindex(a::PDSparseMat, I::Vararg{Int, 2}) = getindex(a.mat, I...) +Base.IndexStyle(::Type{PDSparseMat{T,S}}) where {T,S} = IndexStyle(S) +# Linear Indexing +Base.@propagate_inbounds Base.getindex(a::PDSparseMat, i::Int) = getindex(a.mat, i) +# Cartesian Indexing +Base.@propagate_inbounds Base.getindex(a::PDSparseMat, I::Vararg{Int, 2}) = getindex(a.mat, I...) ### Arithmetics