@@ -64,7 +64,7 @@ sublayout(BL::BlockLayout{MLAY,BLAY}, ::Type{<:Tuple{Sl,<:BlockSlice{BlockRange{
64
64
sublayout (BL:: BlockLayout{MLAY,BLAY} , :: Type {<: Tuple {<: BlockSlice{BlockRange{1,Tuple{II}}} ,Sl}}) where {MLAY,BLAY,Sl<: Slice ,II} =
65
65
BlockLayout {typeof(sublayout(MLAY(),Tuple{II,Sl})), BLAY} ()
66
66
sublayout (BL:: BlockLayout{MLAY,BLAY} , :: Type{<:Tuple{Sl1,Sl2}} ) where {MLAY,BLAY,Sl1<: Slice ,Sl2<: Slice ,II} =
67
- BlockLayout {typeof(sublayout(MLAY(),Tuple{Sl1,Sl2})), BLAY} ()
67
+ BlockLayout {typeof(sublayout(MLAY(),Tuple{Sl1,Sl2})), BLAY} ()
68
68
69
69
# materialize views, used for `getindex`
70
70
sub_materialize (:: AbstractBlockLayout , V, _) = BlockArray (V)
@@ -101,6 +101,13 @@ sub_materialize(::ArrayLayouts.OnesLayout, V, ax::Tuple{<:AbstractUnitRange,<:Bl
101
101
sub_materialize (:: ArrayLayouts.ZerosLayout , V, ax:: Tuple{<:AbstractUnitRange,<:BlockedUnitRange} ) =
102
102
Zeros {eltype(V)} (ax)
103
103
104
+ @propagate_inbounds Base. view (A:: FillArrays.AbstractFill{<:Any,N} , I:: Vararg{Union{Real, AbstractArray, Block}, N} ) where N =
105
+ FillArrays. _fill_getindex (A, Base. to_indices (A, I)... )
106
+ @propagate_inbounds Base. view (A:: FillArrays.AbstractFill{<:Any,N} , I:: Block{N} ) where N =
107
+ FillArrays. _fill_getindex (A, Base. to_indices (A, (I,))... )
108
+ @propagate_inbounds Base. view (A:: FillArrays.AbstractFill{<:Any,1} , I:: Block{1} ) =
109
+ FillArrays. _fill_getindex (A, Base. to_indices (A, (I,))... )
110
+
104
111
conjlayout (:: Type{T} , :: BlockLayout{MLAY,BLAY} ) where {T<: Complex ,MLAY,BLAY} = BlockLayout {MLAY,typeof(conjlayout(T,BLAY()))} ()
105
112
conjlayout (:: Type{T} , :: BlockLayout{MLAY,BLAY} ) where {T<: Real ,MLAY,BLAY} = BlockLayout {MLAY,BLAY} ()
106
113
0 commit comments