Open chriselrod opened 11 months ago
Related, StridedMatrix
implies columns are contiguous.
julia> A isa StridedMatrix
true
julia> A' isa StridedMatrix
false
julia> transpose(A') isa StridedMatrix
true
julia> PtrArray(A) isa StridedMatrix
true
julia> PtrArray(A') isa StridedMatrix
true
julia> PtrArray(A)' isa StridedMatrix
true
Unfortunately, Julia Base has only limited use of traits.
DenseArray
for opting into/out of BLAS/LAPACK is instead part of a type tree.The fix (other than switching Base to a trait-based approach) is to define two separate type trees within
StrideArraysCore
, one for dense instances, and the other for non.Currently, all subtype dense. There is already a precendent for libraries doing this even when not valid for BLAS https://github.com/JuliaGPU/GPUArrays.jl/blob/6becb4fdfe213d327acab47225595ad9df785dfd/src/device/abstractarray.jl#L15 so probably not the end of the world to lie for now.
On the other hand, not lying has serious consequences https://github.com/JuliaSIMD/Polyester.jl/issues/127