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

◆ slice_intervals()

std::vector< double > MayaFlux::Kinesis::Discrete::slice_intervals ( std::span< const double >  data,
const std::vector< std::pair< size_t, size_t > > &  intervals 
)

Copy data from a set of half-open intervals into a flat vector.

Parameters
dataSource span
intervalsSorted, non-overlapping [start, end) pairs
Returns
Concatenated data from all intervals

Definition at line 39 of file Extract.cpp.

42{
43 std::vector<double> out;
44 for (const auto& [s, e] : intervals) {
45 if (s < data.size() && e <= data.size() && s < e) {
46 out.insert(out.end(), data.begin() + s, data.begin() + e);
47 }
48 }
49 return out;
50}

Referenced by MayaFlux::Yantra::extract_above_mean(), MayaFlux::Yantra::extract_high_energy(), MayaFlux::Yantra::extract_high_spectral(), MayaFlux::Yantra::extract_onsets(), MayaFlux::Yantra::extract_outliers(), MayaFlux::Yantra::extract_peaks(), MayaFlux::Yantra::extract_silence(), and MayaFlux::Yantra::extract_zero_crossings().

+ Here is the caller graph for this function: