@@ -579,20 +579,14 @@ function generic_norm2(x)
579579 T = typeof (maxabs)
580580 if isfinite (length (x)* maxabs* maxabs) && ! iszero (maxabs* maxabs) # Scaling not necessary
581581 sum:: promote_type (Float64, T) = norm_sqr (v)
582- while true
583- y = iterate (x, s)
584- y === nothing && break
585- (v, s) = y
582+ for v in Iterators. rest (x, s)
586583 sum += norm_sqr (v)
587584 end
588585 ismissing (sum) && return missing
589586 return convert (T, sqrt (sum))
590587 else
591588 sum = abs2 (norm (v)/ maxabs)
592- while true
593- y = iterate (x, s)
594- y === nothing && break
595- (v, s) = y
589+ for v in Iterators. rest (x, s)
596590 sum += (norm (v)/ maxabs)^ 2
597591 end
598592 ismissing (sum) && return missing
@@ -614,21 +608,15 @@ function generic_normp(x, p)
614608 spp:: promote_type (Float64, T) = p
615609 if - 1 <= p <= 1 || (isfinite (length (x)* maxabs^ spp) && ! iszero (maxabs^ spp)) # scaling not necessary
616610 sum:: promote_type (Float64, T) = norm (v)^ spp
617- while true
618- y = iterate (x, s)
619- y === nothing && break
620- (v, s) = y
611+ for v in Iterators. rest (x, s)
621612 ismissing (v) && return missing
622613 sum += norm (v)^ spp
623614 end
624615 return convert (T, sum^ inv (spp))
625616 else # rescaling
626617 sum = (norm (v)/ maxabs)^ spp
627618 ismissing (sum) && return missing
628- while true
629- y = iterate (x, s)
630- y === nothing && break
631- (v, s) = y
619+ for v in Iterators. rest (x, s)
632620 ismissing (v) && return missing
633621 sum += (norm (v)/ maxabs)^ spp
634622 end
0 commit comments