pub trait FixedPoint: Sized {
fn fixed_mul_floor(self, y: Self, denominator: Self) -> Option<Self>;
fn fixed_mul_ceil(self, y: Self, denominator: Self) -> Option<Self>;
fn fixed_div_floor(self, y: Self, denominator: Self) -> Option<Self>;
fn fixed_div_ceil(self, y: Self, denominator: Self) -> Option<Self>;
}