Skip to content

Commit 0d6beeb

Browse files
committed
Added gep for (::Pointer, ::Tuple{<:Integer}) and stridedpointer method for adjoints/transposes.
1 parent 50aabc3 commit 0d6beeb

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/vectorizable.jl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ struct Pointer{T} <: AbstractPointer{T}
126126
@inline Pointer(ptr::Ptr{T}) where {T} = new{T}(ptr)
127127
end
128128
@inline Base.eltype(::AbstractPointer{T}) where {T} = T
129+
@inline gep(ptr::Pointer, i::Tuple{<:Integer}) = gep(ptr, first(i))
129130

130131

131132
abstract type AbstractStridedPointer{T} <: AbstractPointer{T} end
@@ -376,9 +377,10 @@ end
376377
end
377378
end
378379
end
379-
@inline stridedpointer(A::Union{Adjoint{T,A},Transpose{T,A}}) where {T,A <: AbstractVector{T}} = Pointer(parent(A))
380-
@inline function stridedpointer(A::Union{Adjoint{T,A},Transpose{T,A}}) where {T,N,A <: AbstractArray{T,N}}
381-
SparseStridedPointer(pointer(parent(A)), reverse(strides(A)))
380+
@inline stridedpointer(B::Union{Adjoint{T,A},Transpose{T,A}}) where {T,A <: AbstractVector{T}} = Pointer(parent(B))
381+
@inline function stridedpointer(B::Union{Adjoint{T,A},Transpose{T,A}}) where {T,N,A <: AbstractArray{T,N}}
382+
pB = parent(B)
383+
SparseStridedPointer(pointer(pB), reverse(strides(pB)))
382384
end
383385

384386

0 commit comments

Comments
 (0)