pub const PI: f64 = core::f64::consts::PI;
pub const HALF_PI: f64 = core::f64::consts::FRAC_PI_2;
pub const ASTRONOMICAL_UNIT: f64 = 149_597_870_700.0;
pub const CAVENDISH_CONSTANT: f64 = 6.67430e-11;
pub const MU_SUN: f64 = 1.327_124_400_412_794_2e20;
pub const MU_EARTH: f64 = 398_600_435_507_000.0;
pub const MU_MOON: f64 = 4_902_800_118_000.0;
pub const EARTH_ORBITAL_VELOCITY: f64 = 29_784.691_834_309_11;
pub const EARTH_J2: f64 = 1.082_626_68e-3;
pub const EARTH_RADIUS: f64 = 6_378_137.0;
pub const DEGREES_TO_RADIANS: f64 = PI / 180.0;
pub const RADIANS_TO_DEGREES: f64 = 180.0 / PI;
pub const DAY_TO_SECONDS: f64 = 86_400.0;
pub const SECONDS_TO_DAY: f64 = 1.0 / DAY_TO_SECONDS;
pub const JULIAN_YEAR_DAYS: f64 = 365.25;
pub const DAYS_TO_JULIAN_YEAR: f64 = 1.0 / JULIAN_YEAR_DAYS;
pub const STANDARD_GRAVITY: f64 = 9.806_65;
pub const CR3BP_MU_EARTH_MOON: f64 = MU_MOON / (MU_MOON + MU_EARTH);
pub const BCP_MU_EARTH_MOON: f64 = MU_MOON / (MU_MOON + MU_EARTH);
pub const BCP_MU_SUN: f64 = MU_SUN / (MU_MOON + MU_EARTH);
pub const BCP_SUN_DISTANCE: f64 = 3.888_111_43e2;
pub const BCP_SUN_ANGULAR_VELOCITY: f64 = -9.251_959_85e-1;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn pinned_constants_match_the_cpp_binary64_values() {
assert_eq!(PI.to_bits(), 0x4009_21fb_5444_2d18);
assert_eq!(ASTRONOMICAL_UNIT, 149_597_870_700.0);
assert_eq!(MU_EARTH, 398_600_435_507_000.0);
assert_eq!(DAY_TO_SECONDS, 86_400.0);
assert_eq!(SECONDS_TO_DAY * DAY_TO_SECONDS, 1.0);
assert_eq!(DEGREES_TO_RADIANS * RADIANS_TO_DEGREES, 1.0);
}
}