Ho un codice che utilizza un accumulatore Boost per tracciare una media attraverso una finestra a rotazione - "media mobile". Oltre alla media mobile, vorrei monitorare il minimo e il massimo su questa stessa finestra a rotazione.rolling min e rolling max per C++ boost?
Esiste un modo per calcolare un minimo di rotazione e un massimo di rotazione con un accumulatore Boost? Non vedo un modo ...
Ho provato ad aggiungere tag min e max all'accumulatore usato per rolling_mean, ma questo non mi dà quello che voglio.
typedef accumulator_set<uint32_t, stats<tag::rolling_mean> > rollingMeanAcc_t;
diventa
typedef accumulator_set<uint32_t, stats<tag::rolling_mean,tag::min,tag::max> > rollingMeanAcc_t;
Tuttavia, il minimo e massimo disponibile qui sono calcolati sull'intero accumulatore, anziché limitata alla stessa finestra di laminazione come media.
Il Boost documentation dice che min e max sono calcolati attraverso tutti campioni, non limitato a una finestra a rotazione. Non sembrano fornire un modo per limitare o ponderare i campioni.
Vorrei essere in grado di segnalare media/min/max su una finestra a rotazione.
Attualmente sto utilizzando Boost versione 1.48.0. Ho esaminato la documentazione per l'ultima versione (1.54.0) e non vedo un rolling min/max implementato lì.
Ho trovato un modo non Boost per tracciare un sliding window minimum, ma questo non sembra essere quello che voglio. Non voglio rimuovere i valori solo perché sono più grandi/meno del precedente min/max, in quanto ciò renderebbe imprecisa la rolling_mean.
Grazie. Questo ha senso. Potrebbe esserci un modo per aggirare questo?Potrei in qualche modo "resettare" o sovrascrivere il massimo e il minimo attuali memorizzati nell'accumulatore? –