Skip to content

Nonvalidated High Speed versions of IntervalArithmetic.jl and IntervalContractors.jl

License

Notifications You must be signed in to change notification settings

MatthewStuber/EAGOIntervalArithmetic.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EAGOIntervalArithmetic.jl

Build Status

Coverage Status

codecov.io

EAGOIntervalArithmetic.jl is essentially a copy of the IntervalArithmetic.jl and IntervalContractors.jl package in which all routines used for validated rounding are removed. It's meant to provide a much higher speed back-end for EAGOSmoothMcCormickGrad.jl and EAGOParametricInterval.jl routines used in the EAGO global solver. For many McCormick operators, the use of the nonvalidated operators will increase computation speed by between 3x-200x. Additionally, the nonvalidated library avoids any memory allocation.

The EAGOIntervalArithmetic.jl library introduces the type MCInterval{T<:AbstractFloat}(lo::T,hi::T). Neglecting the rounding behavior it behaves identically to the Interval(lo,hi) type.

BenchmarkChart

Since the McCormick relaxations used in this solver aren't themselves correctly rounded, it's often acceptable to omit corrections for rounding in the interval field. For problems there are very poorly scaled or have very poorly scaled intermediate terms, the use of a corrected rounding procedures may be recommended.

Related Packages

ValidatedNumerics.jl, a collection of the interval libraries for validated interval calculations that this package is based on.

About

Nonvalidated High Speed versions of IntervalArithmetic.jl and IntervalContractors.jl

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages