I am not sure if I can use std::lower_bound or std::upper_bound. What is the return value if the pnt_to_interpolate is not in any interval, i.e. the extrapolation case?