mod coordinate;
mod ray;
pub use coordinate::Coordinate;
pub use ray::Ray;
const EPS: f64 = 1e-9;
pub(crate) fn feq(x: f64, y: f64) -> bool{
    f64::abs(x-y) < EPS
}
pub(crate) fn fneq(x: f64, y: f64) -> bool{
    !feq(x, y)
}
pub(crate) fn fgt(x: f64, y: f64) -> bool{
    if feq(x, y) {return false;}
    x > y
}
#[allow(dead_code)]
pub(crate) fn flt(x: f64, y: f64) -> bool{
    if feq(x, y) {return false;}
    x < y
}
pub(crate) fn fgeq(x: f64, y: f64) -> bool{
    if feq(x, y) {return true;}
    x > y
}
pub(crate) fn fleq(x: f64, y: f64) -> bool{
    if feq(x, y) {return true;}
    x < y
}