pub fn interpolate_clamped<X, Y>(x: X, x0: X, x1: X, y0: Y, y1: Y) -> Y
where X: Sub<X, Output = X> + Div<X, Output = X> + Mul<Y, Output = Y> + Saturate + Clone + Copy, Y: Sub<Y, Output = Y> + Add<Y, Output = Y> + Clone + Copy,