Chain a named operation fetched from the executor's pool.
176 {
178 error<std::runtime_error>(
180 std::source_location::current(),
181 "Cannot continue chain after failed operation: {}", name);
182 }
183
184 try {
185 auto result =
m_executor->template execute_named<OpClass, DataType, OutputType>(name,
m_data);
186 if (!result) {
189 error<std::runtime_error>(
191 std::source_location::current(),
192 "Named operation failed in fluent chain: {}", name);
193 }
194
195 auto next = FluentExecutor<Executor, OutputType>(
m_executor, std::move(*result));
197 next.m_operation_history.push_back(name);
198 return next;
199 } catch (const std::exception& e) {
204 std::source_location::current(),
205 "Exception in named operation '{}': {}", name, e.what());
206 }
207 }
void record_error(const std::string &err)
std::shared_ptr< Executor > m_executor
std::vector< std::string > m_operation_history
@ ComputeMatrix
Compute operations (Yantra - algorithms, matrices, DSP)
void error_rethrow(Component component, Context context, std::source_location location=std::source_location::current(), std::string_view additional_context="")
Catch and log an exception, then rethrow it.
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.