У меня есть код, в котором используется аккумулятор Boost для отслеживания среднего значения по катящемуся окну - «скользящее среднее». В дополнение к среднему скользящему средству я хотел бы отслеживать минимальное и максимальное значение в этом же прокатном окне.минимальный каток и максимальная скорость прокатки для повышения C++?
Есть ли способ вычислить скорость прокатки и прокатки макс с аккумулятором Boost? Я не вижу способ ...
Я попытался добавить метки min и max к аккумулятору, используемому для roll_mean, но это не дает мне то, что я хочу.
typedef accumulator_set<uint32_t, stats<tag::rolling_mean> > rollingMeanAcc_t;
становится
typedef accumulator_set<uint32_t, stats<tag::rolling_mean,tag::min,tag::max> > rollingMeanAcc_t;
Тем не менее, минимальное и максимальное при условии, здесь рассчитываются по всей аккумулятора, а не ограничивается одной и той же прокатной окне как среднее.
Boost documentation говорит, что min и max вычисляются по всем образцам, не ограничиваясь прокатным окном. Похоже, что они не обеспечивают способ ограничения или веса образцов.
Хотелось бы иметь возможность сообщать среднее/минимальное/максимальное значение в поперечном окне.
В настоящее время я использую Boost версии 1.48.0. Я просмотрел документацию для последней версии (1.54.0) и не вижу, чтобы ее выполняли min/max.
Я нашел способ не-Boost для отслеживания sliding window minimum, но это, похоже, не то, что я хочу. Я не хочу удалять значения только потому, что они больше/меньше, чем предыдущий мин/макс, так как это сделало бы roll_mean неточным.
Спасибо. Это имеет смысл. Может ли быть способ обойти это?Мог ли я как-то «перезагрузить» или перезаписать текущий макс и мин, хранящиеся в аккумуляторе? –