In the WorldtubeBufferUpdater, the BarycentricRationalSpanInterpolator, which is used as the time interpolator for the H5 worldtube data in all our default input files, expects monotonically increasing times. However, we don't check for this at all and the error that is printed is an obscure boost internal error:
Spacing between x[0] and x[0] is 0, which is smaller than the epsilon of double
Type: std::logic_error
Proposed solution: In the detail::set_time_buffer_and_lmax function in WorldtubeBufferUpdater.cpp, while we are copying the times over into the time buffer, also ensure they are monotonically increasing and print a sensible error message. Care should be taken so that when this is called from the PreprocessCceWorldtube, there aren't adverse effects.
In the
WorldtubeBufferUpdater, theBarycentricRationalSpanInterpolator, which is used as the time interpolator for the H5 worldtube data in all our default input files, expects monotonically increasing times. However, we don't check for this at all and the error that is printed is an obscureboostinternal error:Proposed solution: In the
detail::set_time_buffer_and_lmaxfunction inWorldtubeBufferUpdater.cpp, while we are copying the times over into the time buffer, also ensure they are monotonically increasing and print a sensible error message. Care should be taken so that when this is called from thePreprocessCceWorldtube, there aren't adverse effects.