🦊 inari
inari is a Rust implementation of interval arithmetic.
Supported Rust Versions
A nightly toolchain >= nightly-2021-10-05
is required.
The requirement of a nightly toolchain is due to a few unstable features used in the crate: asm
, stdsimd
, etc. To use the crate as a dependency, you need to override the toolchain in your project. Here is an example that does this with the rust-toolchain
file.
Supported Platforms
The following CPUs are supported:
-
x86-64
Haswell-based and newer processors are supported.
You need to specify the target CPU when building a crate that depends on inari. One way to do that is using a configuration file in your project (see example; you may want to change
native
tohaswell
to achieve maximum compatibility if you are going to distribute executables). -
AArch64 (ARM64)
Experimental, it is not tested continuously.
When using the Cargo feature gmp
(see below), target platforms are limited to the ones that are supported by the gmp-mpfr-sys
crate.
Cargo Features
gmp
(enabled by default) - Enables operations that depend on GMP and MPFR. You can opt out the feature to reduce dependencies. Even in that case, you still have access to all operations required by certain kind of tasks, such as making fast robust predicates for computational geometry.
Changelog
Related Projects
- Graphest - a faithful graphing calculator
References
- IEEE Std 1788-2015 - IEEE Standard for Interval Arithmetic. https://doi.org/10.1109/IEEESTD.2015.7140721
- IEEE Std 1788.1-2017 - IEEE Standard for Interval Arithmetic (Simplified). https://doi.org/10.1109/IEEESTD.2018.8277144