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

◆ compute_mean_statistic()

std::vector< double > MayaFlux::Yantra::compute_mean_statistic ( std::span< const double >  data,
const size_t  num_windows,
const uint32_t  hop_size,
const uint32_t  window_size 
)

Compute mean statistic using zero-copy processing.

This function computes the arithmetic mean for a given data span. It calculates the average value in each window.

Parameters
dataInput data span
num_windowsNumber of windows to process
hop_sizeHop size for windowing
window_sizeSize of each window
Returns
Vector of mean values

Definition at line 338 of file AnalysisHelper.cpp.

339{
340 std::vector<double> mean_values(num_windows);
341
342 std::vector<size_t> indices(num_windows);
343 std::iota(indices.begin(), indices.end(), 0);
344
345 std::for_each(std::execution::par_unseq, indices.begin(), indices.end(),
346 [&](size_t i) {
347 const size_t start_idx = i * hop_size;
348 const size_t end_idx = std::min(start_idx + window_size, data.size());
349 auto window = data.subspan(start_idx, end_idx - start_idx);
350
351 double sum = 0.0;
352 for (double sample : window) {
353 sum += sample;
354 }
355 mean_values[i] = sum / static_cast<double>(window.size());
356 });
357
358 return mean_values;
359}

References compute_mean_statistic().

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

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