diff --git a/packages/ufo/src/plot.cpp b/packages/ufo/src/plot.cpp index b85f0bc3..0eafbce3 100644 --- a/packages/ufo/src/plot.cpp +++ b/packages/ufo/src/plot.cpp @@ -346,8 +346,9 @@ void ufo::plot_point(std::string config_file) std::vector result(resolution); for (auto& mode : qpoint.ModeData) { - std::ptrdiff_t index = (mode.Frequency - frequency_range[0]) / (frequency_range[1] - frequency_range[0]) - * resolution; + double index_double = (mode.Frequency - frequency_range[0]) / (frequency_range[1] - frequency_range[0]) + * (resolution - 1); + std::ptrdiff_t index = std::round(index_double); if (index >= 0 && index < static_cast(resolution)) result[index] += mode.Weight; } return log.rtn(result);