26template <ComputeData InputType = std::vector<Kakshya::DataVariant>,
27 ComputeData OutputType = InputType>
46 error<
std::runtime_error>(
47 Journal::Component::Yantra,
48 Journal::Context::BufferProcessing,
50 "FunctionalOperation: GPU unavailable and no CPU fallback provided");
53 assert(gpu_backend &&
"FunctionalOperation: gpu_backend must not be null");
54 this->set_gpu_backend(std::move(gpu_backend));
64 auto it = m_parameters.find(
name);
65 return it != m_parameters.end() ? it->second : std::any {};
70 return { m_parameters.begin(), m_parameters.end() };
Core::GlobalInputConfig input
Base interface for all computational operations in the processing pipeline.
FunctionalOperation(std::shared_ptr< GpuExecutionContext< InputType, OutputType > > gpu_backend)
Construct GPU-only: dispatches entirely via gpu_backend, no callable, no CPU fallback.
Datum< OutputType > output_type
std::unordered_map< std::string, std::any > m_parameters
FunctionalOperation(Fn fn)
std::map< std::string, std::any > get_all_parameters() const override
Retrieves all parameters and their values.
output_type operation_function(const input_type &input) override
Executes the computational transformation on the input data.
OperationType get_operation_type() const override
Returns the category of this operation for grammar and registry discovery.
std::function< output_type(const input_type &)> Fn
std::any get_parameter(const std::string &name) const override
Retrieves a parameter's current value.
void set_parameter(const std::string &name, std::any value) override
Sets a named parameter that configures the operation's behavior.
Wraps a single callable as a ComputeOperation, for a wild or one-off idea that does not warrant a han...
Type-parameterised shell over GpuDispatchCore.
OperationType
Operation categories for organization and discovery.
Input/Output container for computation pipeline data flow with structure preservation.