maryada 0.1.1

No-std binary64 real interval arithmetic conforming to IEEE 1788.1
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use maryada::Interval;

pub fn main() {
    fn backward_sum(n: usize) -> Interval {
        let mut s_n: Interval = 0.0.into();
        for i in (1..=n).rev() {
            s_n = s_n + (1.0 / Interval::from(i as f64).powi(2));
        }
        let t_n = 1.0 / Interval::new(n as f64, (n + 1) as f64);
        let s = s_n + t_n;
        (6.0 * s).sqrt()
    }

    let pi_interval = backward_sum(1_000_000);
    println!("{:?}", pi_interval.mid_rad());
}