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

◆ fork()

template<typename Executor , ComputeData DataType>
template<typename... OpClasses>
auto MayaFlux::Yantra::FluentExecutor< Executor, DataType >::fork ( )
inline

Fork execution into multiple independent parallel paths.

Executes each operation in OpClasses against the current Datum concurrently and returns a tuple of results. Each result is an std::optional<Datum<DataType>>.

Template Parameters
OpClassesOperation classes to execute in parallel
Returns
std::tuple of optional Datum results, one per OpClass

Definition at line 457 of file OperationChain.hpp.

458 {
459 if (!m_successful) {
460 error<std::runtime_error>(
462 std::source_location::current(),
463 "Cannot fork after failed operation");
464 }
465
466 return std::make_tuple(
467 m_executor->template execute<OpClasses, DataType>(m_data)...);
468 }
std::shared_ptr< Executor > m_executor
@ ComputeMatrix
Compute operations (Yantra - algorithms, matrices, DSP)
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.