@@ -27,7 +27,7 @@ OffsetArray(A::AbstractArray{T,N}, offsets::Vararg{Int,N}) where {T,N} =
27
27
OffsetArray (A, offsets)
28
28
29
29
OffsetArray {T,N} (inds:: Indices{N} ) where {T,N} =
30
- OffsetArray {T,N,Array{T,N}} (Array {T,N} (map (length, inds)), map (indexoffset, inds))
30
+ OffsetArray {T,N,Array{T,N}} (Array {T,N} (uninitialized, map (length, inds)), map (indexoffset, inds))
31
31
OffsetArray {T} (inds:: Indices{N} ) where {T,N} = OffsetArray {T,N} (inds)
32
32
OffsetArray {T,N} (inds:: Vararg{AbstractUnitRange,N} ) where {T,N} = OffsetArray {T,N} (inds)
33
33
OffsetArray {T} (inds:: Vararg{AbstractUnitRange,N} ) where {T,N} = OffsetArray {T,N} (inds)
@@ -84,8 +84,14 @@ function Base.similar(A::AbstractArray, ::Type{T}, inds::Tuple{UnitRange,Vararg{
84
84
OffsetArray (B, map (indexoffset, inds))
85
85
end
86
86
87
- Base. similar (f:: Union{ Function,Type} , shape:: Tuple{UnitRange,Vararg{UnitRange}} ) =
87
+ Base. similar (f:: Function , shape:: Tuple{UnitRange,Vararg{UnitRange}} ) =
88
88
OffsetArray (f (map (length, shape)), map (indexoffset, shape))
89
+ Base. similar (:: Type{T} , shape:: Tuple{UnitRange,Vararg{UnitRange}} ) where {T<: OffsetArray } =
90
+ OffsetArray (T (map (length, shape)), map (indexoffset, shape))
91
+ Base. similar (:: Type{T} , shape:: Tuple{UnitRange,Vararg{UnitRange}} ) where {T<: Array } =
92
+ OffsetArray (T (uninitialized, map (length, shape)), map (indexoffset, shape))
93
+ Base. similar (:: Type{T} , shape:: Tuple{UnitRange,Vararg{UnitRange}} ) where {T<: BitArray } =
94
+ OffsetArray (T (uninitialized, map (length, shape)), map (indexoffset, shape))
89
95
90
96
Base. reshape (A:: AbstractArray , inds:: Tuple{UnitRange,Vararg{UnitRange}} ) =
91
97
OffsetArray (reshape (A, map (length, inds)), map (indexoffset, inds))
0 commit comments