4

9

6

4

# IntervalContractors

## Documentation

• STABLEmost recently tagged version of the documentation.
• LATESTin-development version of the documentation.

## About `IntervalContractors.jl`

`IntervalContractors.jl` provides contractors and reverse functions (also called backward functions or relational functions) for interval arithmetic.

### Reverse functions

The reverse function of a function `f` calculates the (interval hull of) its inverse function, `f⁻¹`.

For example, `sin_rev(Y::Interval, X::Interval)` calculates the (interval hull of) those `x ∈ X` such that `sin(x) ∈ Y`. This can also be thought of as an inverse function, calculating `X_new := sin⁻¹(Y) ∩ X`. The return value is `(Y, X_new)`.

Functions such as `mul_rev(C::Interval, A::Interval, B::Interval)` take three arguments, and correspond to `C = A * B`; they return `(C, A_new, B_new)`, with `A_new` and `B_new` similarly defined to be the corresponding inverse images of the multiplication operator in each component.

### Contractors

Functions like `sin!` (currently non-exported) are contractors for the set `{(x, y): y = sin(x)}`.

The list of available functions may be found in the documentation.

These functions are designed to be used inside the `IntervalConstraintProgramming.jl` library, and (eventually) to satisfy the section on reverse functions in the IEEE-1788 2015 standard on interval arithmetic.

## Author

• David P. Sanders, Departamento de Física, Facultad de Ciencias, Universidad Nacional Autónoma de México (UNAM)

## Acknowledements

Financial support is acknowledged from DGAPA-UNAM PAPIIT grant IN-117117. The author thanks Luc Jaulin and Jordan Ninin for the IAMOOC online course, which introduced him to this subject, and Zenna Tavares for a helpful conversation.

04/30/2017

#### Last Touched

about 1 month ago

31 commits