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

◆ execute_with_grammar() [1/2]

template<ComputeData InputType>
Datum< InputType > MayaFlux::Yantra::GrammarAwareComputeMatrix::execute_with_grammar ( const Datum< InputType > &  input,
const ExecutionContext context = {} 
)
inline

Execute operations with grammar rule pre-processing.

Template Parameters
InputTypeThe input data type
Parameters
inputInput data to process
contextExecution context containing parameters and metadata
Returns
Processed input data after grammar rule application

Applies grammar rules to the input data before any matrix operations. This allows for intelligent preprocessing, operation selection, and parameter configuration based on the input characteristics and context.

The process:

  1. Wraps input data in Datum structure
  2. Searches for matching grammar rules
  3. Applies the best matching rule if found
  4. Returns processed data or original data if no rules match
Note
This method focuses on grammar rule application. Use the base ComputeMatrix methods for actual operation execution.

Definition at line 484 of file ComputePipeline.hpp.

484 {})
485 {
486 static_assert(sizeof(Datum<InputType>) > 0, "Datum incomplete");
487 Datum<InputType> current = input;
488
489 if (auto best_rule = m_grammar->find_best_match(current, context)) {
490 if (auto rule_result = m_grammar->execute_rule(best_rule->name, current, context)) {
491 auto cast_result = safe_any_cast<Datum<InputType>>(*rule_result);
492 if (cast_result) {
493 current = *cast_result.value;
494 } else {
495 MF_WARN(
498 "Grammar rule '{}' returned incompatible type: {}",
499 best_rule->name,
500 cast_result.error);
501 }
502 }
503 }
504
505 return current;
506 }
#define MF_WARN(comp, ctx,...)
std::shared_ptr< ComputationGrammar > m_grammar
Grammar instance for rule-based operation selection.
@ Runtime
General runtime operations (default fallback)
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.