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

◆ transform_trigonometric() [1/2]

template<OperationReadyData DataType, typename TrigFunc >
requires std::invocable<TrigFunc, double>
DataType MayaFlux::Yantra::transform_trigonometric ( DataType &  input,
TrigFunc  trig_func,
double  frequency,
double  amplitude,
double  phase,
std::vector< std::vector< double > > &  working_buffer 
)

Trigonometric transformation using specified function (OUT-OF-PLACE)

Template Parameters
DataTypeOperationReadyData type
TrigFuncTrigonometric function type
Parameters
inputInput data - will NOT be modified
trig_funcTrigonometric function (sin, cos, tan, etc.)
frequencyFrequency scaling factor
amplitudeAmplitude scaling factor
phasePhase offset
working_bufferBuffer for operations (will be resized if needed)
Returns
Transformed data

Definition at line 352 of file MathematicalHelper.hpp.

358{
359 auto [target_data, structure_info] = OperationHelper::setup_operation_buffer(input, working_buffer);
360
361 for (auto& span : target_data) {
362 std::ranges::transform(span, span.begin(),
363 [trig_func, frequency, amplitude, phase](double x) {
364 return amplitude * trig_func(frequency * x + phase);
365 });
366 }
367
368 return OperationHelper::reconstruct_from_double<DataType>(working_buffer, structure_info);
369}

References transform_trigonometric().

+ Here is the call graph for this function: