JuliaIntervals / TaylorModels.jl

Rigorous function approximation using Taylor models in Julia
Other
63 stars 14 forks source link

CompatHelper: bump compat for IntervalArithmetic to 0.20, (keep existing compat) #125

Closed github-actions[bot] closed 2 years ago

github-actions[bot] commented 2 years ago

This pull request changes the compat entry for the IntervalArithmetic package from 0.16, 0.17, 0.18, 0.19 to 0.16, 0.17, 0.18, 0.19, 0.20. This keeps the compat entries for earlier versions.

Note: I have not tested your package with this new compat entry. It is your responsibility to make sure that your package tests pass before you merge this pull request.

schillic commented 2 years ago

Just as a heads up:

No CI build ran here. I ran the tests locally (Ubuntu x64) with IntervalArithmetic v0.20 and at least one test failed for me. With v0.19.2 all tests passed.

Forward integration 2: Error During Test at ~/.julia/dev/TaylorModels/test/validated_integ.jl:104
  Got exception outside of a @test
  MethodError: no method matching atomic(::Type{Interval{Interval{Float64}}}, ::Int64)
  Closest candidates are:
    atomic(::Type{Interval{T}}, ::T) where T<:Integer at ~/.julia/packages/IntervalArithmetic/AAfrU/src/intervals/conversion.jl:72
    atomic(::Type{Interval{T}}, ::S) where {T<:AbstractFloat, S<:Real} at ~/.julia/packages/IntervalArithmetic/AAfrU/src/intervals/conversion.jl:95
    atomic(::Type{Interval{Rational{T}}}, ::S) where {T<:Integer, S<:Integer} at ~/.julia/packages/IntervalArithmetic/AAfrU/src/intervals/conversion.jl:142
  Stacktrace:
    [1] convert(#unused#::Type{Interval{Interval{Float64}}}, x::Int64)
      @ IntervalArithmetic ~/.julia/packages/IntervalArithmetic/AAfrU/src/intervals/conversion.jl:17
    [2] _promote
      @ ./promotion.jl:269 [inlined]
    [3] promote
      @ ./promotion.jl:292 [inlined]
    [4] *(x::Int64, y::Interval{Interval{Float64}})
      @ Base ./promotion.jl:322
    [5] _validate_step!(xTM1K::Vector{TaylorModel1{TaylorN{Float64}, Float64}}, f!::Function, dx::Vector{TaylorModel1{TaylorN{Float64}, Float64}}, x0::Vector{TaylorModelN{2, Float64, Float64}}, params::Nothing, x::Vector{Taylor1{TaylorN{Float64}}}, t::Taylor1{Float64}, box::IntervalBox{2, Float64}, dof::Int64, rem::Vector{Interval{Float64}}, abstol::Float64, δt::Float64, sign_tstep::Int64, E::Vector{Interval{Float64}}, E′::Vector{Interval{Float64}}, polv::Vector{Taylor1{TaylorN{Float64}}}, low_ratiov::Vector{Float64}, hi_ratiov::Vector{Float64}, adaptive::Bool, minabstol::Float64; ε::Float64, δ::Float64, validatesteps::Int64, extrasteps::Int64)
      @ TaylorModels ~/.julia/dev/TaylorModels/src/validatedODEs.jl:690
    [6] validated_integ2(f!::var"#falling_ball!#163", X0::IntervalBox{2, Float64}, t0::Float64, tf::Float64, orderQ::Int64, orderT::Int64, abstol::Float64, params::Nothing; parse_eqs::Bool, maxsteps::Int64, absorb::Bool, adaptive::Bool, minabstol::Float64, validatesteps::Int64, ε::Float64, δ::Float64, absorb_steps::Int64)
      @ TaylorModels ~/.julia/dev/TaylorModels/src/validatedODEs.jl:843
    [7] validated_integ2(f!::Function, X0::IntervalBox{2, Float64}, t0::Float64, tf::Float64, orderQ::Int64, orderT::Int64, abstol::Float64, params::Nothing) (repeats 2 times)
      @ TaylorModels ~/.julia/dev/TaylorModels/src/validatedODEs.jl:794
    [8] macro expansion
      @ ~/.julia/dev/TaylorModels/test/validated_integ.jl:105 [inlined]
    [9] macro expansion
      @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Test/src/Test.jl:1151 [inlined]
   [10] macro expansion
      @ ~/.julia/dev/TaylorModels/test/validated_integ.jl:105 [inlined]
   [11] macro expansion
      @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Test/src/Test.jl:1151 [inlined]
   [12] macro expansion
      @ ~/.julia/dev/TaylorModels/test/validated_integ.jl:42 [inlined]
   [13] macro expansion
      @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Test/src/Test.jl:1151 [inlined]
   [14] top-level scope
      @ ~/.julia/dev/TaylorModels/test/validated_integ.jl:41
   [15] include(fname::String)
      @ Base.MainInclude ./client.jl:444
   [16] top-level scope
      @ ~/.julia/dev/TaylorModels/test/runtests.jl:6
   [17] include(fname::String)
      @ Base.MainInclude ./client.jl:444
   [18] top-level scope
      @ none:6
   [19] eval
      @ ./boot.jl:360 [inlined]
   [20] exec_options(opts::Base.JLOptions)
      @ Base ./client.jl:261
   [21] _start()
      @ Base ./client.jl:485
lbenet commented 2 years ago

Thanks @schillic for reporting this. I'll take a look on this...

lbenet commented 2 years ago

The problem is due to this line and the change in the meaning of eltype in IntervalArithmetics.jl (see https://github.com/JuliaIntervals/IntervalArithmetic.jl/pull/496). This is solved in #126

lbenet commented 2 years ago

See #126