@@ -15,10 +15,15 @@ BlockStyle(::Val{N}) where {N} = BlockStyle{N}()
1515BlockedStyle (:: Val{N} ) where {N} = BlockedStyle {N} ()
1616BlockStyle {M} (:: Val{N} ) where {N,M} = BlockStyle {N} ()
1717BlockedStyle {M} (:: Val{N} ) where {N,M} = BlockedStyle {N} ()
18- BroadcastStyle (:: Type{<:BlockArray{<:Any,N}} ) where {N} = BlockStyle {N} ()
19- BroadcastStyle (:: Type{<:BlockedArray{<:Any,N}} ) where {N} = BlockedStyle {N} ()
20- BroadcastStyle (:: Type{<:AdjOrTrans{<:Any,<:BlockArray{<:Any,N}}} ) where {N} = BlockStyle {2} ()
21- BroadcastStyle (:: Type{<:AdjOrTrans{<:Any,<:BlockedArray{<:Any,N}}} ) where {N} = BlockedStyle {2} ()
18+ blockbroadcaststyle (:: AbstractArrayStyle{N} ) where {N} = BlockStyle {N} ()
19+ blockedbroadcaststyle (:: AbstractArrayStyle{N} ) where {N} = BlockedStyle {N} ()
20+
21+ BroadcastStyle (:: Type{<:BlockArray{<:Any,N,Blocks}} ) where {N,Blocks} = blockbroadcaststyle (BroadcastStyle (Blocks))
22+ BroadcastStyle (:: Type{<:BlockedArray{<:Any,N,Blocks}} ) where {N,Blocks} = blockedbroadcaststyle (BroadcastStyle (Blocks))
23+ BroadcastStyle (:: Type{<:Adjoint{T,<:BlockArray{<:Any,N,Blocks}}} ) where {T,N,Blocks} = blockbroadcaststyle (BroadcastStyle (Adjoint{T,Blocks}))
24+ BroadcastStyle (:: Type{<:Transpose{T,<:BlockArray{<:Any,N,Blocks}}} ) where {T,N,Blocks} = blockbroadcaststyle (BroadcastStyle (Transpose{T,Blocks}))
25+ BroadcastStyle (:: Type{<:Adjoint{T,<:BlockedArray{<:Any,N,Blocks}}} ) where {T,N,Blocks} = blockedbroadcaststyle (BroadcastStyle (Adjoint{T,Blocks}))
26+ BroadcastStyle (:: Type{<:Transpose{T,<:BlockedArray{<:Any,N,Blocks}}} ) where {T,N,Blocks} = blockedbroadcaststyle (BroadcastStyle (Transpose{T,Blocks}))
2227
2328BroadcastStyle (:: DefaultArrayStyle{N} , b:: AbstractBlockStyle{M} ) where {M,N} = typeof (b)(Val (max (M,N)))
2429BroadcastStyle (a:: AbstractBlockStyle{N} , :: DefaultArrayStyle{M} ) where {M,N} = typeof (a)(Val (max (M,N)))
@@ -271,3 +276,13 @@ for op in (:*, :\)
271276 broadcasted (:: AbstractBlockStyle , :: typeof ($ op), a:: AbstractArray{T} , b:: Ones{V} ) where {T,V} = LinearAlgebra. copy_oftype (a, Base. promote_op (* , T, V))
272277 end
273278end
279+
280+
281+
282+ # ##
283+ # Ranges
284+ # ##
285+
286+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (+ ), r:: AbstractBlockedUnitRange , x:: Integer ) = _BlockedUnitRange (first (r) + x, blocklasts (r) .+ x)
287+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (+ ), x:: Integer , r:: AbstractBlockedUnitRange ) = _BlockedUnitRange (x + first (r), x .+ blocklasts (r))
288+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (- ), r:: AbstractBlockedUnitRange , x:: Integer ) = _BlockedUnitRange (first (r) - x, blocklasts (r) .- x)
0 commit comments