1111@inline mulsizeof (:: Type{T} , x:: Tuple{X1,X2,Vararg} ) where {T,X1,X2} =
1212 (mulsizeof (T, getfield (x, 1 , false )), mulsizeof (T, Base. tail (x))... )
1313
14- @inline bytestrides (A:: AbstractArray{T} ) where {T} = mulsizeof (T, ArrayInterface. strides (A))
14+ @inline bytestrides (A:: AbstractArray{T} ) where {T} =
15+ mulsizeof (T, StaticArrayInterface. static_strides (A))
1516
16- @inline memory_reference (A:: NTuple ) = memory_reference (ArrayInterface. device (A), A)
17- @inline memory_reference (A:: AbstractArray ) = memory_reference (ArrayInterface. device (A), A)
17+ @inline memory_reference (A:: NTuple ) = memory_reference (StaticArrayInterface. device (A), A)
18+ @inline memory_reference (A:: AbstractArray ) =
19+ memory_reference (StaticArrayInterface. device (A), A)
1820@inline memory_reference (A:: BitArray ) = Base. unsafe_convert (Ptr{Bit}, A. chunks), A. chunks
1921@inline memory_reference (:: CPUPointer , A) = pointer (A), preserve_buffer (A)
2022@inline memory_reference (
3941@inline function memory_reference_subarray (:: PT , A:: SubArray ) where {PT}
4042 p, m = memory_reference (PT (), parent (A))
4143 pA = parent (A)
42- offset = ArrayInterface . reduce_tup (
44+ offset = StaticArrayInterface . reduce_tup (
4345 + ,
44- _map (* , _map (ind_diff, A. indices, offsets (pA)), strides (pA)),
46+ _map (* , _map (ind_diff, A. indices, offsets (pA)), static_strides (pA)),
4547 )
4648 p + sizeof (eltype (A)) * offset, m
4749end
4850@inline function memory_reference (:: CPUTuple , A)
4951 r = Ref (A)
5052 Base. unsafe_convert (Ptr{eltype (A)}, Base. pointer_from_objref (r)), r
5153end
52- @inline function memory_reference (:: ArrayInterface .CheckParent , A)
54+ @inline function memory_reference (:: StaticArrayInterface .CheckParent , A)
5355 P = parent (A)
5456 if P === A
55- memory_reference (ArrayInterface . CPUIndex (), A)
57+ memory_reference (StaticArrayInterface . CPUIndex (), A)
5658 else
57- memory_reference (ArrayInterface . device (P), P)
59+ memory_reference (StaticArrayInterface . device (P), P)
5860 end
5961end
60- @inline memory_reference (:: ArrayInterface .CPUIndex , A) =
62+ @inline memory_reference (:: StaticArrayInterface .CPUIndex , A) =
6163 throw (" Memory access for $(typeof (A)) not implemented yet." )
6264
63- @inline ArrayInterface . contiguous_axis (
65+ @inline StaticArrayInterface . contiguous_axis (
6466 :: Type{A} ,
6567) where {T,N,C,A<: AbstractStridedPointer{T,N,C} } = StaticInt {C} ()
66- @inline ArrayInterface . contiguous_batch_size (
68+ @inline StaticArrayInterface . contiguous_batch_size (
6769 :: Type{A} ,
6870) where {T,N,C,B,A<: AbstractStridedPointer{T,N,C,B} } = StaticInt {B} ()
69- @inline ArrayInterface . stride_rank (
71+ @inline StaticArrayInterface . stride_rank (
7072 :: Type{A} ,
7173) where {T,N,C,B,R,A<: AbstractStridedPointer{T,N,C,B,R} } = _map (StaticInt, R)
7274@inline memory_reference (A:: AbstractStridedPointer ) = pointer (A), nothing
9294end
9395@inline function stridedpointer (A:: AbstractArray )
9496 p, r = memory_reference (A)
95- stridedpointer (p, bytestrideindex (A), ArrayInterface . contiguous_batch_size (A))
97+ stridedpointer (p, bytestrideindex (A), StaticArrayInterface . contiguous_batch_size (A))
9698end
9799@inline function stridedpointer_preserve (A:: AbstractArray )
98100 p, r = memory_reference (A)
99- stridedpointer (p, bytestrideindex (A), ArrayInterface . contiguous_batch_size (A)), r
101+ stridedpointer (p, bytestrideindex (A), StaticArrayInterface . contiguous_batch_size (A)), r
100102end
101103@inline function stridedpointer_preserve (t:: NTuple )
102104 p, r = memory_reference (t)
103- stridedpointer (p, ArrayInterface. StrideIndex {1,(1,),1} ((static (sizeof (eltype (t))),), (static (1 ),)), static (0 )), r
105+ stridedpointer (
106+ p,
107+ StaticArrayInterface. StrideIndex {1,(1,),1} ((static (sizeof (eltype (t))),), (static (1 ),)),
108+ static (0 ),
109+ ),
110+ r
104111end
105112@inline val_stride_rank (:: AbstractStridedPointer{T,N,C,B,R} ) where {T,N,C,B,R} = Val {R} ()
106113@generated val_dense_dims (:: AbstractStridedPointer{T,N} ) where {T,N} =
107114 Val {ntuple(==(0), Val(N))} ()
108115@inline val_stride_rank (A) = Val (known (stride_rank (A)))
109- @inline val_dense_dims (A) = Val (known (ArrayInterface . dense_dims (A)))
116+ @inline val_dense_dims (A) = Val (known (StaticArrayInterface . dense_dims (A)))
110117
111118function zerotupleexpr (N:: Int )
112119 t = Expr (:tuple )
126133)
127134@inline zstridedpointer (A) = zero_offsets (stridedpointer (A))
128135@inline function zstridedpointer_preserve (A:: AbstractArray{T,N} ) where {T,N}
129- strd = mulsizeof (T, ArrayInterface . strides (A))
136+ strd = mulsizeof (T, StaticArrayInterface . static_strides (A))
130137 si = StrideIndex {N,known(stride_rank(A)),Int(contiguous_axis(A))} (
131138 strd,
132139 zerotuple (Val (N)),
@@ -148,7 +155,7 @@ Base.unsafe_convert(::Type{Ptr{T}}, ptr::AbstractStridedPointer{T}) where {T} =
148155end
149156
150157@inline dynamic_offsets (si:: StrideIndex{N,R,C} ) where {N,R,C} =
151- StrideIndex {N,R,C} (strides (si), _map (Int, offsets (si)))
158+ StrideIndex {N,R,C} (static_strides (si), _map (Int, offsets (si)))
152159struct StridedBitPointer{N,C,B,R,X,O} <: AbstractStridedPointer{Bit,N,C,B,R,X,O}
153160 p:: Ptr{Bit}
154161 si:: StrideIndex{N,R,C,X,O}
@@ -162,18 +169,19 @@ end
162169 StridedBitPointer {N,C,0,R,X,NTuple{N,Int}} (p, dynamic_offsets (si))
163170
164171@inline Base. pointer (p:: Union{StridedPointer,StridedBitPointer} ) = getfield (p, :p )
165- @inline ArrayInterface . StrideIndex (sptr:: Union{StridedPointer,StridedBitPointer} ) =
172+ @inline StaticArrayInterface . StrideIndex (sptr:: Union{StridedPointer,StridedBitPointer} ) =
166173 getfield (sptr, :si )
167174@inline bytestrideindex (sptr:: AbstractStridedPointer ) = StrideIndex (sptr)
168175
169176@inline bytestrides (si:: StrideIndex ) =
170177 _map (Base. Fix2 (* , StaticInt {8} ()), getfield (si, :strides ))
171178@inline bytestrides (ptr:: AbstractStridedPointer ) = getfield (StrideIndex (ptr), :strides )
172179@inline Base. strides (ptr:: AbstractStridedPointer ) = getfield (StrideIndex (ptr), :strides )
173- @inline ArrayInterface . strides (ptr:: AbstractStridedPointer ) =
180+ @inline StaticArrayInterface . static_strides (ptr:: AbstractStridedPointer ) =
174181 getfield (StrideIndex (ptr), :strides )
175- @inline ArrayInterface. offsets (ptr:: AbstractStridedPointer ) = offsets (StrideIndex (ptr))
176- @inline ArrayInterface. contiguous_axis_indicator (
182+ @inline StaticArrayInterface. offsets (ptr:: AbstractStridedPointer ) =
183+ offsets (StrideIndex (ptr))
184+ @inline StaticArrayInterface. contiguous_axis_indicator (
177185 ptr:: AbstractStridedPointer{T,N,C} ,
178186) where {T,N,C} = contiguous_axis_indicator (StaticInt {C} (), Val {N} ())
179187
@@ -183,14 +191,14 @@ end
183191 ptr:: Ptr ,
184192 offset:: Tuple ,
185193) where {T,N,C,B,R}
186- si = StrideIndex {N,R,C} (strides (sptr), offset)
194+ si = StrideIndex {N,R,C} (static_strides (sptr), offset)
187195 stridedpointer (ptr, si, contiguous_batch_size (sptr))
188196end
189197@inline function similar_no_offset (
190198 sptr:: AbstractStridedPointer{T,N,C,B,R} ,
191199 ptr:: Ptr ,
192200) where {T,N,C,B,R}
193- si = StrideIndex {N,R,C} (strides (sptr), zerotuple (Val (N)))
201+ si = StrideIndex {N,R,C} (static_strides (sptr), zerotuple (Val (N)))
194202 stridedpointer (ptr, si, contiguous_batch_size (sptr))
195203end
196204
203211# s += A[i,i]
204212# end
205213# first access is at zero-based index
206- # (first(6:16) - ArrayInterface .offsets(a)[1]) * ArrayInterface.strides (A)[1] + (first(6:16) - ArrayInterface .offsets(a)[2]) * ArrayInterface.strides (A)[2]
214+ # (first(6:16) - StaticArrayInterface .offsets(a)[1]) * StaticArrayInterface.static_strides (A)[1] + (first(6:16) - StaticArrayInterface .offsets(a)[2]) * StaticArrayInterface.static_strides (A)[2]
207215# equal to
208216# (6 - 6)*1 + (6 - 5)*10 = 10
209217# i.e., the 1-based index 11.
@@ -238,21 +246,21 @@ FastRange{T}(f::F, s::S) where {T<:FloatingTypes,F,S} = FastRange{T,F,S,Int}(f,
238246# FastRange{T}(f::F,s::S,::False) where {T<:FloatingTypes,F,S} = FastRange{T,F,S,Int32}(f,s,zero(Int32))
239247
240248@inline function memory_reference (r:: AbstractRange{T} ) where {T}
241- s = ArrayInterface . static_step (r)
242- FastRange {T} (ArrayInterface . static_first (r) - s, s), nothing
249+ s = StaticArrayInterface . static_step (r)
250+ FastRange {T} (StaticArrayInterface . static_first (r) - s, s), nothing
243251end
244252@inline memory_reference (r:: FastRange ) = (r, nothing )
245253@inline bytestrides (:: FastRange{T} ) where {T} = (StaticInt (sizeof (T)),)
246- @inline ArrayInterface . offsets (:: FastRange ) = (One (),)
254+ @inline StaticArrayInterface . offsets (:: FastRange ) = (One (),)
247255@inline val_stride_rank (:: FastRange ) = Val {(1,)} ()
248256@inline val_dense_dims (:: FastRange ) = Val {(true,)} ()
249- @inline ArrayInterface . contiguous_axis (:: FastRange ) = One ()
250- @inline ArrayInterface . contiguous_batch_size (:: FastRange ) = Zero ()
257+ @inline StaticArrayInterface . contiguous_axis (:: FastRange ) = One ()
258+ @inline StaticArrayInterface . contiguous_batch_size (:: FastRange ) = Zero ()
251259
252260@inline stridedpointer (fr:: FastRange , :: StrideIndex , :: StaticInt{0} ) = fr
253261struct NoStrides end
254262@inline bytestrideindex (:: FastRange ) = NoStrides ()
255- @inline ArrayInterface . offsets (:: NoStrides ) = NoStrides ()
263+ @inline StaticArrayInterface . offsets (:: NoStrides ) = NoStrides ()
256264@inline reconstruct_ptr (r:: FastRange{T} , o) where {T} =
257265 FastRange {T} (getfield (r, :f ), getfield (r, :s ), o)
258266
0 commit comments