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

◆ compute_statistical_values()

template<ComputeData InputType = std::vector<Kakshya::DataVariant>, ComputeData OutputType = Eigen::VectorXd>
std::vector< double > MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::compute_statistical_values ( std::span< const double >  data,
StatisticalMethod  method 
) const
inlineprivate

Compute statistical values using span (zero-copy processing)

Definition at line 486 of file StatisticalAnalyzer.hpp.

487 {
488 const size_t num_windows = calculate_num_windows(data.size());
489
490 namespace D = MayaFlux::Kinesis::Discrete;
491
492 switch (method) {
494 return D::mean(data, num_windows, m_hop_size, m_window_size);
496 return D::variance(data, num_windows, m_hop_size, m_window_size, m_sample_variance);
498 return D::std_dev(data, num_windows, m_hop_size, m_window_size, m_sample_variance);
500 return D::skewness(data, num_windows, m_hop_size, m_window_size);
502 return D::kurtosis(data, num_windows, m_hop_size, m_window_size);
504 return D::median(data, num_windows, m_hop_size, m_window_size);
506 return D::percentile(data, num_windows, m_hop_size, m_window_size, m_percentile_value);
508 return D::entropy(data, num_windows, m_hop_size, m_window_size);
510 return D::min(data, num_windows, m_hop_size, m_window_size);
512 return D::max(data, num_windows, m_hop_size, m_window_size);
514 return D::range(data, num_windows, m_hop_size, m_window_size);
516 return D::sum(data, num_windows, m_hop_size, m_window_size);
518 return D::count(data, num_windows, m_hop_size, m_window_size);
520 return D::rms(data, num_windows, m_hop_size, m_window_size);
522 return D::mad(data, num_windows, m_hop_size, m_window_size);
526 return D::mode(data, num_windows, m_hop_size, m_window_size);
528 return D::mean_zscore(data, num_windows, m_hop_size, m_window_size, m_sample_variance);
529 default:
530 return D::mean(data, num_windows, m_hop_size, m_window_size);
531 }
532 }
size_t calculate_num_windows(size_t data_size) const
Calculate number of windows for given data size.
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
std::vector< double > range(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Value range (max - min) per window.
Definition Analysis.cpp:452
std::vector< double > entropy(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, size_t num_bins)
Shannon entropy per window using Sturges-rule histogram.
Definition Analysis.cpp:375
std::vector< double > median(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Median per window via nth_element partial sort.
Definition Analysis.cpp:325
std::vector< double > variance(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance)
Variance per window.
Definition Analysis.cpp:219
std::vector< double > min(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Minimum value per window.
Definition Analysis.cpp:420
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 > max(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Maximum value per window.
Definition Analysis.cpp:436
std::vector< double > count(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Sample count per window (as double for pipeline uniformity)
Definition Analysis.cpp:485
std::vector< double > skewness(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Skewness (standardised third central moment) per window.
Definition Analysis.cpp:259
std::vector< double > mad(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Median absolute deviation per window.
Definition Analysis.cpp:501
std::vector< double > mean_zscore(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance)
Mean z-score per window.
Definition Analysis.cpp:590
std::vector< double > sum(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Sum per window.
Definition Analysis.cpp:469
size_t num_windows(size_t data_size, uint32_t window_size, uint32_t hop_size) noexcept
Compute the number of analysis windows for a given data size.
Definition Analysis.hpp:39
std::vector< double > coefficient_of_variation(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, bool sample_variance)
Coefficient of variation (std_dev / mean) per window.
Definition Analysis.cpp:545
std::vector< double > mode(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Mode per window via tolerance-bucketed frequency count.
Definition Analysis.cpp:559
std::vector< double > kurtosis(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
Excess kurtosis (fourth central moment - 3) per window.
Definition Analysis.cpp:292
std::vector< double > rms(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size)
RMS energy per window.
Definition Analysis.cpp:32
std::vector< double > percentile(std::span< const double > data, size_t n_windows, uint32_t hop_size, uint32_t window_size, double percentile_value)
Arbitrary percentile per window via linear interpolation.
Definition Analysis.cpp:350
@ PERCENTILE
Arbitrary percentile (requires parameter)
@ KURTOSIS
Fourth moment - tail heaviness.
@ ZSCORE
Z-score normalization.
@ ENTROPY
Shannon entropy for discrete data.
@ MAD
Median Absolute Deviation.
@ CV
Coefficient of Variation (std_dev/mean)
@ VARIANCE
Population or sample variance.
@ SKEWNESS
Third moment - asymmetry measure.