28.7 Mathematical functions for floating-point types [c.math]
constexpr floating-point-type lerp(floating-point-type a, floating-point-type b,
                                   floating-point-type t) noexcept;
Remarks: Let 
r be the value returned
.  If 
isfinite(a) && isfinite(b), then:
- If  t >= 0 && t <= 1- , then  isfinite(r).
- If  isfinite(t) && a == b- , then  r == a.
- If  isfinite(t) || !isnan(t) && b-a != 0- , then  !isnan(r).
Let 
CMP(x,y) be 
1 if 
x > y,
-1 if 
x < y, and 
0 otherwise
.For any 
t1 and 
t2, the product of
CMP(lerp(a, b, t2), lerp(a, b, t1)),
CMP(t2, t1), and
CMP(b, a)
is non-negative
.