#![cfg_attr(not(test), no_std)]
pub mod fraction;
pub mod float;
pub use fraction::FractionWheel;
pub use fraction::FractionWheel8;
pub use fraction::FractionWheel16;
pub use fraction::FractionWheel32;
pub use fraction::FractionWheel64;
pub use fraction::FractionWheel128;
pub use fraction::qw8;
pub use fraction::qw16;
pub use fraction::qw32;
pub use fraction::qw64;
pub use fraction::qw128;
pub use float::Wheel32;
pub use float::Wheel64;
pub use float::w32;
pub use float::w64;
pub trait Wheel: PartialEq + Eq + Sized {
const ZERO: Self;
const ONE: Self;
const INFINITY: Self;
const BOTTOM: Self;
fn add(&self, other: &Self) -> Self;
fn neg(&self) -> Self;
fn sub(&self, other: &Self) -> Self {
self.add(&other.neg())
}
fn mul(&self, other: &Self) -> Self;
fn inv(&self) -> Self;
fn div(&self, other: &Self) -> Self {
self.mul(&other.inv())
}
}