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
I could also do 4-tensors, 5-tensors, etc. Though it's not currently
possible to do arbitrary tensors.
There might be an angle via `to_shape`. But I think that has a similar
problem.
Copy file name to clipboardExpand all lines: src/blockarray.jl
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -443,13 +443,19 @@ end
443
443
BlockArray{T}(undef, map(to_axes,axes))
444
444
@inline Base.similar(block_array::AbstractArray, ::Type{T}, axes::Tuple{Union{AbstractUnitRange{<:Integer},Integer},AbstractBlockedUnitRange,Vararg{Union{AbstractUnitRange{<:Integer},Integer}}}) where T =
445
445
BlockArray{T}(undef, map(to_axes,axes))
446
+
@inline Base.similar(block_array::AbstractArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{Union{AbstractUnitRange{<:Integer},Integer}}}) where T =
447
+
BlockArray{T}(undef, map(to_axes,axes))
448
+
@inline Base.similar(block_array::AbstractArray, ::Type{T}, axes::Tuple{Union{AbstractUnitRange{<:Integer},Integer},Union{AbstractUnitRange{<:Integer},Integer},AbstractBlockedUnitRange,Vararg{Union{AbstractUnitRange{<:Integer},Integer}}}) where T =
449
+
BlockArray{T}(undef, map(to_axes,axes))
446
450
447
451
@inline Base.similar(block_array::Type{<:AbstractArray{T}}, axes::Tuple{AbstractBlockedUnitRange,Vararg{Union{AbstractUnitRange{<:Integer},Integer}}}) where T =
448
452
BlockArray{T}(undef, map(to_axes,axes))
449
453
@inline Base.similar(block_array::Type{<:AbstractArray{T}}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{Union{AbstractUnitRange{<:Integer},Integer}}}) where T =
450
454
BlockArray{T}(undef, map(to_axes,axes))
451
455
@inline Base.similar(block_array::Type{<:AbstractArray{T}}, axes::Tuple{Union{AbstractUnitRange{<:Integer},Integer},AbstractBlockedUnitRange,Vararg{Union{AbstractUnitRange{<:Integer},Integer}}}) where T =
452
456
BlockArray{T}(undef, map(to_axes,axes))
457
+
@inline Base.similar(block_array::Type{<:AbstractArray{T}}, axes::Tuple{Union{AbstractUnitRange{<:Integer},Integer},Union{AbstractUnitRange{<:Integer},Integer},AbstractBlockedUnitRange,Vararg{Union{AbstractUnitRange{<:Integer},Integer}}}) where T =
458
+
BlockArray{T}(undef, map(to_axes,axes))
453
459
454
460
@inline Base.similar(B::BlockArray, ::Type{T}) where {T} =_BlockArray(similar.(blocks(B), T), axes(B))
@inline Base.similar(block_array::Type{<:StridedArray{T}}, axes::Tuple{AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
@inline Base.similar(block_array::Type{<:StridedArray{T}}, axes::Tuple{AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
217
219
BlockedArray{T}(undef, map(to_axes,axes))
218
-
@inline Base.similar(block_array::Type{<:StridedArray{T}}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
220
+
@inline Base.similar(block_array::Type{<:StridedArray{T}}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
219
221
BlockedArray{T}(undef, map(to_axes,axes))
220
-
@inline Base.similar(block_array::Type{<:StridedArray{T}}, axes::Tuple{Union{Integer,AbstractUnitRange{<:Integer}},AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
222
+
@inline Base.similar(block_array::Type{<:StridedArray{T}}, axes::Tuple{IntegerOrUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
221
223
BlockedArray{T}(undef, map(to_axes,axes))
222
224
223
-
@inline Base.similar(block_array::StridedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
225
+
@inline Base.similar(block_array::StridedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
226
+
BlockedArray{T}(undef, map(to_axes,axes))
227
+
@inline Base.similar(block_array::StridedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
224
228
BlockedArray{T}(undef, map(to_axes,axes))
225
-
@inline Base.similar(block_array::StridedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
229
+
@inline Base.similar(block_array::StridedArray, ::Type{T}, axes::Tuple{IntegerOrUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
226
230
BlockedArray{T}(undef, map(to_axes,axes))
227
-
@inline Base.similar(block_array::StridedArray, ::Type{T}, axes::Tuple{Union{Integer,AbstractUnitRange{<:Integer}},AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
231
+
@inline Base.similar(block_array::StridedArray, ::Type{T}, axes::Tuple{IntegerOrUnitRange,IntegerOrUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
228
232
BlockedArray{T}(undef, map(to_axes,axes))
229
233
230
-
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
234
+
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
235
+
BlockedArray{T}(undef, map(to_axes,axes))
236
+
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
231
237
BlockedArray{T}(undef, map(to_axes,axes))
232
-
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
238
+
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{IntegerOrUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
233
239
BlockedArray{T}(undef, map(to_axes,axes))
234
-
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{Union{Integer,AbstractUnitRange{<:Integer}},AbstractBlockedUnitRange,Vararg{Union{Integer,AbstractUnitRange{<:Integer}}}}) where T =
240
+
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{AbstractBlockedUnitRange,AbstractBlockedUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
241
+
BlockedArray{T}(undef, map(to_axes,axes))
242
+
@inline Base.similar(block_array::BlockedArray, ::Type{T}, axes::Tuple{IntegerOrUnitRange,IntegerOrUnitRange,AbstractBlockedUnitRange,Vararg{IntegerOrUnitRange}}) where T =
235
243
BlockedArray{T}(undef, map(to_axes,axes))
236
244
237
245
@propagate_inboundsgetindex(block_arr::BlockedArray{T, N}, i::Vararg{Integer, N}) where {T,N} = block_arr.blocks[i...]
0 commit comments