pub const INV_SQRT_2PI: f64 = 0.3989422804014327;
pub const SQRT_2PI: f64 = 2.5066282746310002;
pub use std::f64::consts::SQRT_2;
pub use std::f64::consts::PI;
pub use std::f64::consts::E;
pub const LN_2PI: f64 = 1.8378770664093456;
#[cfg(test)]
mod tests {
use super::*;
use std::f64::consts::{E as STD_E, PI as STD_PI, SQRT_2 as STD_SQRT_2};
#[test]
fn test_inv_sqrt_2pi() {
let expected = 1.0 / (2.0 * STD_PI).sqrt();
assert!(
(INV_SQRT_2PI - expected).abs() < 1e-15,
"INV_SQRT_2PI should equal 1/sqrt(2π)"
);
}
#[test]
fn test_sqrt_2pi() {
let expected = (2.0 * STD_PI).sqrt();
assert!(
(SQRT_2PI - expected).abs() < 1e-15,
"SQRT_2PI should equal sqrt(2π)"
);
}
#[test]
fn test_constants_relationship() {
assert!(
(INV_SQRT_2PI * SQRT_2PI - 1.0).abs() < 1e-15,
"INV_SQRT_2PI * SQRT_2PI should equal 1.0"
);
}
#[test]
fn test_reexported_constants() {
assert_eq!(SQRT_2, STD_SQRT_2);
assert_eq!(PI, STD_PI);
assert_eq!(E, STD_E);
}
}