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

◆ coefficient_of_variation()

MAYAFLUX_API 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 std::transform(std::execution::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}
std::vector< float > * out
std::vector< double > std_dev(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance)
Standard deviation per window.
Definition Analysis.cpp:251
std::vector< double > mean(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Arithmetic mean per window.
Definition Analysis.cpp:200

References coefficient_of_variation(), mean(), out, and std_dev().

Referenced by coefficient_of_variation(), and MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::compute_statistical_values().

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