package interval_crlibm
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=a2807d7860a9f965a3f91b40de17b98321e5c3f7da9e69dccf3dc20f1ac77e96
sha512=76196b171a41ce1374cae946b7c7a1dea6d614db61743ead14d628a12dce30a0dbd82db1960ad17b58f1f65a6f3fc61aaa5eac42face474baf840efb670feee8
CHANGES.md.html
1.6 2022-12-06
Use the standard
inf
andsup
for the bounds of the interval.Prefer
..._up
and..._dw
to mark the rounding of functions andRoundUp
andRoundDown
for the modules. Crlibm was updated accordingly.Rename
Interval
asInterval_base
as it conflicted with theInterval
module in compiler libs (provoking a collision when this library was used in the REPL).Add functions
mag
(magnitude) andmig
(mignitude),mid
(midpoint),singleton
(creation of intervals containing a single value),is_singleton
,diam
(diameter),belong
(x ∈ I),floor
,ceil
andhypot
.Renamed
Interval_*.t
asInterval_*.interval
as to not import the short typet
into the namespace (but still have access to the record fields).Add functions
RoundDown.dist
andRoundUp.dist
(downward/upward rounded distance).Use Dune 2.0.
1.5.1 2019-05-01
Fix the implementation of exponentiation (xⁿ, n ∈ ℤ).
Deprecate the
size…
functions in favor ofwidth…
.Add functions
mag
(magnitude) andmig
(mignitude).
1.5 2019-04-06
The library is now organized as 4 packages:
interval_base
defines the moduleInterval
that groups the functions that work on any IEEE-754 processor and offers basic module signatures;interval_intel
: defines a moduleInterval_intel
using assembly instructions on Intel Processors;interval_crlibm
: defines a moduleInterval_crlibm
using 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.T
is a module signature to form the base of what is expected of any interval package.New functions:
invx
(extended inverse),cancelminus
,cancelplus
,inter
inter_exn
,low
,high
.New binary relations
equal
,=
,subset
,<=
,>=
,precedes
,interior
,<
,>
,strict_precedes
,disjoint
.New predicates
is_bounded
,is_entire
.New constants
I.half_pi
∋ π/2 andI.entire
for [-∞, +∞].Interval_crlibm
: functionsexpm1
,log1p
,log2
,log10
,cospi
,sinpi
,tanpi
,acospi
,asinpi
,atanpi
, not present in the Intel version.The module
I.U
also restores inequality relations.Speed and documentation improvements.
1.4 2018-03-01
Improved interface for the
Interval
library by using sub-modules and standard mathematical names. In particular, all operations — including infix operators — are in a sub-moduleI
which can conveniently be used to introduce local scopes after issuingopen Interval
.Improved pretty-printing functions allowing to pass the format of the interval bounds.
The library functions now signal errors by exceptions
Division_by_zero
andDomain_error
that are local toInterval
.The
Fpu
module has been redesigned: the rounding up or down of functions is controlled by the sub-module (Low
orHigh
) to which they belong. This allows for natural expressions such asLow.(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.