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

◆ interpolate_linear() [1/2]

template<OperationReadyData DataType>
DataType MayaFlux::Yantra::interpolate_linear ( DataType &  input,
size_t  target_size 
)

Linear interpolation between data points using C++20 ranges (IN-PLACE)

Template Parameters
DataTypeOperationReadyData type
Parameters
inputInput data - WILL BE MODIFIED/RESIZED
target_sizeTarget size after interpolation
Returns
Interpolated data

Definition at line 629 of file MathematicalHelper.hpp.

630{
631 auto [data_span, structure_info] = OperationHelper::extract_structured_double(input);
632
633 std::vector<std::vector<double>> interpolated;
634 for (auto& span : data_span) {
635 if (target_size != span.size()) {
636 std::vector<double> sub_data(target_size);
637 interpolate(span, std::ref(sub_data), target_size);
638 interpolated.push_back(std::move(sub_data));
639 } else {
640 interpolated.emplace_back(span.begin(), span.end());
641 }
642 }
643
644 input = OperationHelper::reconstruct_from_double<DataType>(interpolated, structure_info);
645 return input;
646}
void interpolate(std::span< double > input, std::vector< double > &output, uint32_t target_size)

References interpolate(), and interpolate_linear().

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

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