MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ update_rolling_variance()

double MayaFlux::Kinesis::Stochastic::Estimate::update_rolling_variance ( double  sample)
private

Definition at line 65 of file Estimate.cpp.

66{
67 m_history.push(sample);
68 const auto view = m_history.linearized_view();
69
70 const double v = variance(view);
71 const double mean = std::accumulate(view.begin(), view.end(), 0.0) / static_cast<double>(view.size());
72
75 m_state.floor = std::sqrt(v);
77
78 return m_state.floor;
79}
static double variance(std::span< const double > samples) noexcept
Sample variance of a span.
Definition Estimate.cpp:210
Memory::HistoryBuffer< double > m_history
Definition Estimate.hpp:400
std::span< T > linearized_view()
Get mutable linearized view of entire history.
void push(const T &value)
Push new value to front of history.
double mean(const std::vector< double > &data)
Calculate mean of single-channel data.
Definition Yantra.cpp:55

References MayaFlux::Kinesis::Stochastic::EstimateState::filtered_value, MayaFlux::Kinesis::Stochastic::EstimateState::floor, MayaFlux::Memory::HistoryBuffer< T >::linearized_view(), m_history, m_state, MayaFlux::mean(), MayaFlux::Memory::HistoryBuffer< T >::push(), MayaFlux::Kinesis::Stochastic::EstimateState::running_mean, MayaFlux::Kinesis::Stochastic::EstimateState::running_variance, and variance().

Referenced by update().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: