107 template<
typename eT>
128 template<
typename eT>
136 template<
typename eT>
151 template<
typename eT>
160 arma_warn(
true,
"running_stat: sample ignored as it is non-finite" );
170 template<
typename eT>
181 arma_warn(
true,
"running_stat: sample ignored as it is non-finite" );
191 template<
typename eT>
215 template<
typename eT>
228 template<
typename eT>
246 return (N_minus_1/N) *
r_var;
258 template<
typename eT>
265 return std::sqrt( (*this).var(norm_type) );
271 template<
typename eT>
284 template<
typename eT>
297 template<
typename eT>
310 template<
typename eT>
338 const eT tmp = sample - x.
r_mean;
340 x.
r_var = N_minus_1/N * x.
r_var + (tmp*tmp)/N_plus_1;
382 typedef typename std::complex<T> eT;
385 const T N = x.counter.value();
389 if(sample_norm < x.min_val_norm)
391 x.min_val_norm = sample_norm;
395 if(sample_norm > x.max_val_norm)
397 x.max_val_norm = sample_norm;
401 const T N_plus_1 = x.counter.value_plus_1();
402 const T N_minus_1 = x.counter.value_minus_1();
404 x.r_var = N_minus_1/N * x.r_var +
std::norm(sample - x.r_mean)/N_plus_1;
406 x.r_mean = x.r_mean + (sample - x.r_mean)/N_plus_1;
415 x.min_val_norm = sample_norm;
416 x.max_val_norm = sample_norm;
void reset()
set all statistics to zero
T stddev(const uword norm_type=0) const
standard deviation
arma_inline const eOp< T1, eop_sqrt > sqrt(const Base< typename T1::elem_type, T1 > &A)
const arma_counter & operator++()
eT mean() const
mean or average value
arma_warn_unused T1::pod_type norm(const Base< typename T1::elem_type, T1 > &X, const uword k, const typename arma_float_or_cx_only< typename T1::elem_type >::result *junk=0)
T var(const uword norm_type=0) const
variance
#define arma_type_check(condition)
arma_aligned T max_val_norm
eT max() const
maximum value
#define arma_extra_debug_sigprint_this
T count() const
number of samples so far
get_pod_type< eT >::result T
#define arma_extra_debug_sigprint
void arma_cold arma_warn(const bool state, const T1 &x)
print a message to the warn stream
arma_aligned arma_counter< T > counter
arma_aligned T min_val_norm
static void update_stats(running_stat< eT > &x, const eT sample)
update statistics to reflect new sample
void operator()(const T sample)
arma_inline bool arma_isfinite(eT val)
eT min() const
minimum value
arma_aligned uword i_count