@@ -29,17 +29,12 @@ _range(a::Real, ::Nothing, ::Nothing, len::InfiniteCardinal{0})
2929_range (a:: AbstractFloat , :: Nothing , :: Nothing , len:: InfiniteCardinal{0} ) = _range (a, oftype (a, 1 ), nothing , len)
3030_range (a:: T , st:: T , :: Nothing , :: InfiniteCardinal{0} ) where T<: IEEEFloat = InfStepRange {T,T} (a, st)
3131_range (a:: T , st:: T , :: Nothing , :: InfiniteCardinal{0} ) where T<: AbstractFloat = InfStepRange {T,T} (a, st)
32- if VERSION < v " 1.8-"
33- _rangestyle (:: Ordered , :: ArithmeticWraps , a:: T , step:: S , len:: InfiniteCardinal{0} ) where {T,S} = InfStepRange {T,S} (a, step)
34- _rangestyle (:: Ordered , :: ArithmeticUnknown , a:: T , step:: S , len:: InfiniteCardinal{0} ) where {T,S} = InfStepRange {T,S} (a, step)
35- _rangestyle (:: Any , :: Any , a:: T , step:: S , len:: InfiniteCardinal{0} ) where {T,S} = InfStepRange {T,S} (a, step)
36- else
37- range_start_step_length (a, st, :: InfiniteCardinal{0} ) = InfStepRange (a, st)
38- range_start_step_length (a:: Real , st:: IEEEFloat , len:: InfiniteCardinal{0} ) = range_start_step_length (promote (a, st)... , len)
39- range_start_step_length (a:: IEEEFloat , st:: Real , len:: InfiniteCardinal{0} ) = range_start_step_length (promote (a, st)... , len)
40- range_start_step_length (a:: IEEEFloat , st:: IEEEFloat , len:: InfiniteCardinal{0} ) = range_start_step_length (promote (a, st)... , len)
41- range_start_step_length (a:: T , st:: T , :: InfiniteCardinal{0} ) where T<: IEEEFloat = InfStepRange {T,T} (a, st)
42- end
32+ range_start_step_length (a, st, :: InfiniteCardinal{0} ) = InfStepRange (a, st)
33+ range_start_step_length (a:: Real , st:: IEEEFloat , len:: InfiniteCardinal{0} ) = range_start_step_length (promote (a, st)... , len)
34+ range_start_step_length (a:: IEEEFloat , st:: Real , len:: InfiniteCardinal{0} ) = range_start_step_length (promote (a, st)... , len)
35+ range_start_step_length (a:: IEEEFloat , st:: IEEEFloat , len:: InfiniteCardinal{0} ) = range_start_step_length (promote (a, st)... , len)
36+ range_start_step_length (a:: T , st:: T , :: InfiniteCardinal{0} ) where T<: IEEEFloat = InfStepRange {T,T} (a, st)
37+
4338
4439
4540# Construct range for rational start=start_n/den, step=step_n/den
@@ -101,16 +96,14 @@ AbstractMatrix{T}(ac::Transpose{<:Any,<:InfRanges}) where T<:Real = transpose(Ab
10196copy (ac:: AdjOrTrans{<:Any,<:InfRanges} ) = ac
10297reverse (a:: InfRanges ) = throw (ArgumentError (" Cannot reverse infinite range" ))
10398
104- if VERSION ≥ v " 1.7-"
105- Base. range_start_step_length (a:: T , st:: T , len:: PosInfinity ) where T<: Union{Float16,Float32,Float64} = InfStepRange (a, st)
106- for op in (:+ , :- )
107- @eval $ op (a:: InfRanges , b:: InfRanges ) = InfStepRange ($ op (first (a),first (b)), $ op (step (a),step (b)))
108- end
109- broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), x:: Number , r:: InfRanges ) = InfStepRange (x* first (r), x* step (r))
110- broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), r:: InfRanges , x:: Number ) = InfStepRange (first (r)* x, step (r)* x)
111- broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), x:: AbstractFloat , r:: InfRanges ) = InfStepRange (x* first (r), x* step (r))
112- broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), r:: InfRanges , x:: AbstractFloat ) = InfStepRange (first (r)* x, step (r)* x)
99+ Base. range_start_step_length (a:: T , st:: T , len:: PosInfinity ) where T<: Union{Float16,Float32,Float64} = InfStepRange (a, st)
100+ for op in (:+ , :- )
101+ @eval $ op (a:: InfRanges , b:: InfRanges ) = InfStepRange ($ op (first (a),first (b)), $ op (step (a),step (b)))
113102end
103+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), x:: Number , r:: InfRanges ) = InfStepRange (x* first (r), x* step (r))
104+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), r:: InfRanges , x:: Number ) = InfStepRange (first (r)* x, step (r)* x)
105+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), x:: AbstractFloat , r:: InfRanges ) = InfStepRange (x* first (r), x* step (r))
106+ broadcasted (:: DefaultArrayStyle{1} , :: typeof (* ), r:: InfRanges , x:: AbstractFloat ) = InfStepRange (first (r)* x, step (r)* x)
114107
115108
116109"""
@@ -154,9 +147,7 @@ isempty(r::InfRanges) = false
154147step (r:: InfStepRange ) = r. step
155148
156149length (r:: InfRanges ) = ℵ₀
157- if VERSION >= v " 1.7"
158- Base. checked_length (r:: InfRanges ) = ℵ₀
159- end
150+ Base. checked_length (r:: InfRanges ) = ℵ₀
160151unsafe_length (r:: InfRanges ) = ℵ₀
161152
162153first (r:: OneToInf{T} ) where {T} = oneunit (T)
@@ -604,9 +595,7 @@ findfirst(::typeof(iszero), r::InfRanges{T}) where {T} = findfirst(==(zero(T)),
604595
605596FillArrays. _range_convert (:: Type{AbstractVector{T}} , r:: InfRanges ) where T = convert (AbstractVector{T}, r)
606597
607- if VERSION <= v " 1.9"
608- permutedims (D:: Diagonal{<:Any,<:InfRanges} ) = D
609- end
598+ permutedims (D:: Diagonal{<:Any,<:InfRanges} ) = D
610599copy (D:: Diagonal{<:Any,<:InfRanges} ) = D
611600broadcasted (:: LazyArrayStyle{2} , :: typeof (* ), a:: Number , D:: Diagonal{<:Any,<:InfRanges} ) = a* D
612601broadcasted (:: LazyArrayStyle{2} , :: typeof (* ), D:: Diagonal{<:Any,<:InfRanges} , a:: Number ) = D* a
630619function Base. checkindex (:: Type{Bool} , inds:: NTuple{N, AbstractInfUnitRange} , i:: AbstractRange{CartesianIndex{N}} ) where {N}
631620 isempty (i) | checkindex (Bool, inds, first (i))
632621end
622+
623+
624+ LinearAlgebra. _cut_B (x:: AbstractVector , :: InfUnitRange ) = x
625+ LinearAlgebra. _cut_B (X:: AbstractMatrix , :: InfUnitRange ) = X
0 commit comments