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

◆ coefficient_of_variation()

std::vector< double > MayaFlux::Kinesis::Discrete::coefficient_of_variation ( std::span< const double >  data,
size_t  n_windows,
uint32_t  hop_size,
uint32_t  window_size,
bool  sample_variance = true 
)

Coefficient of variation (std_dev / mean) per window.

Returns 0 when |mean| < 1e-15.

Parameters
sample_varianceIf true, uses sample variance (N-1)

Definition at line 545 of file Analysis.cpp.

546{
547 auto m = mean(data, n_windows, hop_size, window_size);
548 auto s = std_dev(data, n_windows, hop_size, window_size, sample_variance);
549
550 std::vector<double> out(n_windows);
551 Parallel::transform(Parallel::par_unseq, m.begin(), m.end(), s.begin(), out.begin(),
552 [](double mv, double sv) {
553 return (std::abs(mv) > 1e-15) ? sv / mv : 0.0;
554 });
555
556 return out;
557}
double std_dev(const std::vector< double > &data)
Calculate standard deviation of single-channel data.
Definition Yantra.cpp:128
double mean(const std::vector< double > &data)
Calculate mean of single-channel data.
Definition Yantra.cpp:41

References coefficient_of_variation(), MayaFlux::mean(), and MayaFlux::std_dev().

Referenced by coefficient_of_variation().

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