#arithmetic #interval #math #numerics

nightly inari

A Rust implementation of interval arithmetic

1 unstable release

0.10.9 Oct 10, 2021
0.10.7 Aug 2, 2021
0.10.6 Jul 25, 2021
0.9.3 Mar 12, 2021
0.2.1 Jul 17, 2020

#78 in Math

Download history 40/week @ 2021-07-01 156/week @ 2021-07-08 193/week @ 2021-07-15 61/week @ 2021-07-22 122/week @ 2021-07-29 142/week @ 2021-08-05 107/week @ 2021-08-12 76/week @ 2021-08-19 67/week @ 2021-08-26 71/week @ 2021-09-02 22/week @ 2021-09-09 48/week @ 2021-09-16 9/week @ 2021-09-23 47/week @ 2021-09-30 66/week @ 2021-10-07 32/week @ 2021-10-14

326 downloads per month

MIT and maybe LGPL-3.0+

190KB
4K SLoC

🦊 inari

crates.io docs build coverage

inari is a Rust implementation of interval arithmetic.

Supported Rust Versions

A nightly toolchain >= nightly-2021-05-20 is required.

This is because there are a few unstable features that the crate depends on: 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 to haswell 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), the 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, namely, the transcendental functions and conversion between texts and intervals. You can opt-out the feature to reduce dependencies. Even in that case, you still have access to all arithmetic operations that are required for making robust geometric predicates, for example.

Changelog

Related Projects

  • Graphest - a faithful graphing calculator

TODO

References

Dependencies

~0–4MB
~108K SLoC