You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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 JuliaSIMD/Polyester.jl#127
The text was updated successfully, but these errors were encountered: