pub fn lerp<T>(x: T, a: T, b: T) -> T where
    T: MyFloat