Fix the implementation of exponentiation (xⁿ, n ∈ ℤ).
size…functions in favor of
The library is now organized as 4 packages:
interval_basedefines the module
Intervalthat groups the functions that work on any IEEE-754 processor and offers basic module signatures;
interval_intel: defines a module
Interval_intelusing assembly instructions on Intel Processors;
interval_crlibm: defines a module
Interval_crlibmusing the library CRlibm to evaluate standard functions (sometimes a bit slower but proved enclosures in contrast to the Intel package for which enclosures are not always 100% correct).
interval: a meta-package that install all above three.
Interval.Tis a module signature to form the base of what is expected of any interval package.
New binary relations
I.half_pi∋ π/2 and
I.entirefor [-∞, +∞].
atanpi, not present in the Intel version.
I.Ualso restores inequality relations.
Speed and documentation improvements.
Improved interface for the
Intervallibrary by using sub-modules and standard mathematical names. In particular, all operations — including infix operators — are in a sub-module
Iwhich can conveniently be used to introduce local scopes after issuing
Improved pretty-printing functions allowing to pass the format of the interval bounds.
The library functions now signal errors by exceptions
Domain_errorthat are local to
Fpumodule has been redesigned: the rounding up or down of functions is controlled by the sub-module (
High) to which they belong. This allows for natural expressions such as
Low.(x**2. +. 2. *. x +. 1.).
Jbuilder/dune is used to compile and install the library.
TravisCI and AppVeyor continuous integration ensure the library works on a variety of OCaml versions and platforms.