@@ -121,7 +121,7 @@ Fill{T,0}(x::T, ::Tuple{}) where T = Fill{T,0,Tuple{}}(x, ()) # ambiguity fix
121121@inline Fill {T,N,Axes} (F:: Fill{T,N,Axes} ) where {T,N,Axes} = F
122122
123123@inline axes (F:: Fill ) = F. axes
124- @inline size (F:: Fill ) = length .( F. axes)
124+ @inline size (F:: Fill ) = map (length, F. axes)
125125
126126@inline getindex_value (F:: Fill ) = F. value
127127
@@ -183,6 +183,12 @@ Base.@propagate_inbounds @inline Base._unsafe_getindex(::IndexStyle, F::Abstract
183183getindex (A:: AbstractFill , kr:: AbstractVector{Bool} ) = _fill_getindex (A, kr)
184184getindex (A:: AbstractFill , kr:: AbstractArray{Bool} ) = _fill_getindex (A, kr)
185185
186+ @inline Base. iterate (F:: AbstractFill ) = length (F) == 0 ? nothing : (v = getindex_value (F); (v, (v, 1 )))
187+ @inline function Base. iterate (F:: AbstractFill , (v, n))
188+ n >= length (F) && return nothing
189+ v, (v, n+ 1 )
190+ end
191+
186192sort (a:: AbstractFill ; kwds... ) = a
187193sort! (a:: AbstractFill ; kwds... ) = a
188194svdvals! (a:: AbstractFill{<:Any,2} ) = [getindex_value (a)* sqrt (prod (size (a))); Zeros (min (size (a)... )- 1 )]
509515# Cumsum
510516# ########
511517
512- sum (x:: AbstractFill ) = getindex_value (x)* length (x)
513518sum (x:: Zeros ) = getindex_value (x)
514519
515- sum (f, x:: AbstractFill ) = length (x) * f (getindex_value (x))
516-
517520cumsum (x:: AbstractFill{<:Any,1} ) = range (getindex_value (x); step= getindex_value (x),
518521 length= length (x))
519522
0 commit comments