MayaFlux 0.4.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 496 of file StatisticalAnalyzer.hpp.

497 {
498 const size_t num_windows = calculate_num_windows(data.size());
499
500 namespace D = MayaFlux::Kinesis::Discrete;
501
502 switch (method) {
504 return D::mean(data, num_windows, m_hop_size, m_window_size);
506 return D::variance(data, num_windows, m_hop_size, m_window_size, m_sample_variance);
508 return D::std_dev(data, num_windows, m_hop_size, m_window_size, m_sample_variance);
510 return D::skewness(data, num_windows, m_hop_size, m_window_size);
512 return D::kurtosis(data, num_windows, m_hop_size, m_window_size);
514 return D::median(data, num_windows, m_hop_size, m_window_size);
516 return D::percentile(data, num_windows, m_hop_size, m_window_size, m_percentile_value);
518 return D::entropy(data, num_windows, m_hop_size, m_window_size);
520 return D::min(data, num_windows, m_hop_size, m_window_size);
522 return D::max(data, num_windows, m_hop_size, m_window_size);
524 return D::range(data, num_windows, m_hop_size, m_window_size);
526 return D::sum(data, num_windows, m_hop_size, m_window_size);
528 return D::count(data, num_windows, m_hop_size, m_window_size);
530 return D::rms(data, num_windows, m_hop_size, m_window_size);
532 return D::mad(data, num_windows, m_hop_size, m_window_size);
536 return D::mode(data, num_windows, m_hop_size, m_window_size);
538 return D::mean_zscore(data, num_windows, m_hop_size, m_window_size, m_sample_variance);
539 default:
540 return D::mean(data, num_windows, m_hop_size, m_window_size);
541 }
542 }
size_t calculate_num_windows(size_t data_size) const
Calculate number of windows for given data size.
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
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 > 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 > 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 > 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 > 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 > 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
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 > 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 > 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 > 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 > 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
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 > 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 > 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 > 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 > 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 > 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
@ 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.

References MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::calculate_num_windows(), MayaFlux::Kinesis::Discrete::coefficient_of_variation(), MayaFlux::Kinesis::Discrete::count(), MayaFlux::Yantra::COUNT, MayaFlux::Yantra::CV, MayaFlux::Kinesis::Discrete::entropy(), MayaFlux::Yantra::ENTROPY, MayaFlux::Kinesis::Discrete::kurtosis(), MayaFlux::Yantra::KURTOSIS, MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::m_hop_size, MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::m_percentile_value, MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::m_sample_variance, MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::m_window_size, MayaFlux::Kinesis::Discrete::mad(), MayaFlux::Yantra::MAD, MayaFlux::Kinesis::Discrete::max(), MayaFlux::Yantra::MAX, MayaFlux::Kinesis::Discrete::mean(), MayaFlux::Yantra::MEAN, MayaFlux::Kinesis::Discrete::mean_zscore(), MayaFlux::Kinesis::Discrete::median(), MayaFlux::Yantra::MEDIAN, MayaFlux::Kinesis::Discrete::min(), MayaFlux::Yantra::MIN, MayaFlux::Kinesis::Discrete::mode(), MayaFlux::Yantra::MODE, MayaFlux::Kinesis::Discrete::percentile(), MayaFlux::Yantra::PERCENTILE, MayaFlux::Kinesis::Discrete::range(), MayaFlux::Yantra::RANGE, MayaFlux::Kinesis::Discrete::rms(), MayaFlux::Yantra::RMS, MayaFlux::Kinesis::Discrete::skewness(), MayaFlux::Yantra::SKEWNESS, MayaFlux::Kinesis::Discrete::std_dev(), MayaFlux::Yantra::STD_DEV, MayaFlux::Kinesis::Discrete::sum(), MayaFlux::Yantra::SUM, MayaFlux::Kinesis::Discrete::variance(), MayaFlux::Yantra::VARIANCE, and MayaFlux::Yantra::ZSCORE.

Referenced by MayaFlux::Yantra::StatisticalAnalyzer< InputType, OutputType >::analyze_implementation().

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