Crates.io | quad_gk |
lib.rs | quad_gk |
version | 1.0.0 |
source | src |
created_at | 2024-04-06 03:52:40.732815 |
updated_at | 2024-04-28 08:44:50.419365 |
description | Pure rust numerical integration library based on Gauss Kronrod quadrature rule. |
homepage | https://crates.io/crates/quad_gk |
repository | https://github.com/qdot3/quad_gk.git |
max_upload_size | |
id | 1198035 |
size | 59,382 |
Fast and precise numerical integration library based on Gauss Kronrod quadrature rule.
use std::sync::Arc;
use quad_gk::*;
let integral: Integral = quad_gk!(
Arc::new(|x: f64| x.sin() * (-x).exp()),
0.0..100.0,
);
// estimated relative error in numerical integration is smaller than 1e-6 by default.
assert!(integral.is_ok(1e-6))
use std::sync::Arc;
use quad_gk::*;
let integral: Integral = quad_gk!(
Arc::new(|x: f64| x.sin() * (-x).exp()),
0.0..100.0,
rel_tol=1e-14,
max_interval_count=1_000_000,
coef=GK91,
);
// estimated relative error in numerical integration is smaller than 1e-14!
assert!(integral.is_ok(1e-14))