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

◆ count()

std::vector< double > MayaFlux::Kinesis::Discrete::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)

Returns the actual number of samples in each window, which may differ from window_size at the final window if data does not divide evenly.

Definition at line 485 of file Analysis.cpp.

486{
487 std::vector<double> out(n_windows);
488 std::vector<size_t> idx(n_windows);
489 std::iota(idx.begin(), idx.end(), 0);
490
491 Parallel::for_each(Parallel::par_unseq, idx.begin(), idx.end(),
492 [&](size_t i) {
493 const size_t start = i * hop_size;
494 const size_t end = std::min(start + window_size, data.size());
495 out[i] = static_cast<double>(end - start);
496 });
497
498 return out;
499}