@@ -230,19 +230,13 @@ Base.convert{T,N}(::Type{Array{T,N}}, A::AxisArray{T,N}) = convert(Array{T,N}, A
230
230
# AxisArray. But if we're changing dimensions, there's no way it can know how
231
231
# to keep track of the axes, so just punt and return a regular old Array.
232
232
# TODO : would it feel more consistent to return an AxisArray without any axes?
233
- Base. similar {T} (A:: AxisArray{T} ) = (d = similar (A. data, T); AxisArray (d, A. axes))
234
- Base. similar {T} (A:: AxisArray{T} , S:: Type ) = (d = similar (A. data, S); AxisArray (d, A. axes))
235
- Base. similar {T} (A:: AxisArray{T} , S:: Type , :: Tuple{} ) = (d = similar (A. data, S); AxisArray (d, A. axes))
236
- Base. similar {T} (A:: AxisArray{T} , dims:: Int ) = similar (A, T, (dims,))
237
- Base. similar {T} (A:: AxisArray{T} , dims:: Int... ) = similar (A, T, dims)
238
- Base. similar {T} (A:: AxisArray{T} , dims:: Tuple{Vararg{Int}} ) = similar (A, T, dims)
239
- Base. similar {T} (A:: AxisArray{T} , S:: Type , dims:: Int... ) = similar (A. data, S, dims)
240
- Base. similar {T} (A:: AxisArray{T} , S:: Type , dims:: Tuple{Vararg{Int}} ) = similar (A. data, S, dims)
233
+ Base. similar {S} (A:: AxisArray , :: Type{S} ) = (d = similar (A. data, S); AxisArray (d, A. axes))
234
+ Base. similar {S,N} (A:: AxisArray , :: Type{S} , dims:: Dims{N} ) = similar (A. data, S, dims)
241
235
# If, however, we pass Axis objects containing the new axis for that dimension,
242
236
# we can return a similar AxisArray with an appropriately modified size
243
- Base. similar {T} (A:: AxisArray{T} , axs:: Axis... ) = similar (A, T, axs)
244
- Base. similar {T } (A:: AxisArray{T } , S :: Type , axs:: Axis... ) = similar (A, S, axs)
245
- @generated function Base. similar {T,N} (A:: AxisArray{T,N} , S :: Type , axs:: Tuple{Vararg{Axis}} )
237
+ Base. similar {T} (A:: AxisArray{T} , ax1 :: Axis , axs:: Axis... ) = similar (A, T, (ax1, axs... ) )
238
+ Base. similar {S } (A:: AxisArray , :: Type{S } , ax1 :: Axis , axs:: Axis... ) = similar (A, S, (ax1, axs... ) )
239
+ @generated function Base. similar {T,S, N} (A:: AxisArray{T,N} , :: Type{S} , axs:: Tuple{Axis, Vararg{Axis}} )
246
240
inds = Expr (:tuple )
247
241
ax = Expr (:tuple )
248
242
for d= 1 : N
0 commit comments