3个不稳定版本

使用旧Rust 2015

0.2.0 2017年5月4日
0.1.1 2017年5月2日
0.1.0 2017年5月2日

算法中排名#1607

Apache-2.0

140KB
4K SLoC

诚实的区间

Crate Documentation License Downloads

诚实的区间是一个具有正确舍入的任意精度区间算术库。

它实现了基本的算术运算(加法、减法、乘法和除法),以及如对数和幂等复杂的数学函数在区间和区间集中的操作。返回值的边界总是正确舍入,以确保包含所有可能的结果。

除了IntervalIntervalSet结构外,该库还提供了封装GNU MPFR库的Mpfr结构。该Mpfr结构是区间的一个理想(目前唯一)的边界类型。

诚实的区间试图成为一个实用主义实现的区间算术,而不是所有可能实现的抽象基础。用户不需要实现任何特性;他们可以通过调用IntervalSet::<Mpfr>::new()立即创建一个正确舍入的区间。

快速入门

以下是一个创建两个区间集并将它们相加的代码示例。

use honestintervals::IntervalSet;
use honestintervals::mpfr::Mpfr;
use std::str::FromStr;

let x = IntervalSet::<Mpfr>::from_str("{0; <1, 2>}").unwrap();
let y = IntervalSet::<Mpfr>::singleton(Mpfr::from(3.0));
assert_eq!("{3; <4, 5>}", format!("{}", x + y));

这是一个由诚实的区间正确处理的区间除法的复杂情况。

let x = IntervalSet::<Mpfr>::from_str("<1, 2>").unwrap();
let y = IntervalSet::<Mpfr>::from_str("<-1, 1>").unwrap();
assert_eq!("{<-inf, -1>; <1, inf>}", format!("{}", x / y));

有关更多详细信息,请参阅文档

许可证

诚实的区间在Apache许可证(版本2.0)的条款下分发。

有关详细信息,请参阅LICENSE

依赖关系