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

◆ transform_slice() [1/2]

template<OperationReadyData DataType>
DataType MayaFlux::Yantra::transform_slice ( DataType &  input,
double  start_ratio,
double  end_ratio 
)

Slice transformation to extract a portion of the data based on ratios (IN-PLACE)

Template Parameters
DataTypeOperationReadyData type
Parameters
inputInput data - WILL BE MODIFIED
start_ratioStart ratio (0.0 to 1.0)
end_ratioEnd ratio (0.0 to 1.0)
Returns
Sliced data

Definition at line 282 of file TemporalHelper.hpp.

283{
284 auto [target_data, structure_info] = OperationHelper::extract_structured_double(input);
285
286 std::vector<std::vector<double>> result(target_data.size());
287 for (size_t i = 0; i < target_data.size(); ++i) {
288 size_t start_idx = static_cast<size_t>(target_data[i].size() * std::clamp(start_ratio, 0.0, 1.0));
289 size_t end_idx = static_cast<size_t>(target_data[i].size() * std::clamp(end_ratio, 0.0, 1.0));
290
291 if (start_idx >= end_idx || end_idx > target_data[i].size()) {
292 result[i] = { 0.0 };
293 } else {
294 result[i].assign(target_data[i].begin() + start_idx, target_data[i].begin() + end_idx);
295 }
296 }
297
298 return OperationHelper::reconstruct_from_double<DataType>(result, structure_info);
299}

References MayaFlux::Yantra::OperationHelper::extract_structured_double().

Referenced by MayaFlux::Yantra::TemporalTransformer< InputType, OutputType >::transform_implementation().

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