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

◆ transform_trigonometric() [2/2]

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

Trigonometric transformation using specified function (IN-PLACE)

Template Parameters
DataTypeOperationReadyData type
TrigFuncTrigonometric function type
Parameters
inputInput data - WILL BE MODIFIED
trig_funcTrigonometric function (sin, cos, tan, etc.)
frequencyFrequency scaling factor
amplitudeAmplitude scaling factor
phasePhase offset
Returns
Transformed data

Definition at line 314 of file MathematicalHelper.hpp.

319{
320 auto [target_data, structure_info] = OperationHelper::extract_structured_double(input);
321
322 for (auto& span : target_data) {
323 std::ranges::transform(span, span.begin(),
324 [trig_func, frequency, amplitude, phase](double x) {
325 return amplitude * trig_func(frequency * x + phase);
326 });
327 }
328
329 auto reconstructed_data = target_data
330 | std::views::transform([](const auto& span) {
331 return std::vector<double>(span.begin(), span.end());
332 })
333 | std::ranges::to<std::vector>();
334
335 return OperationHelper::reconstruct_from_double<DataType>(reconstructed_data, structure_info);
336}

References transform_trigonometric().

Referenced by MayaFlux::Yantra::MathematicalTransformer< InputType, OutputType >::transform_implementation(), transform_trigonometric(), and transform_trigonometric().

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