8#ifndef OAKFIELD_MIXER_H
9#define OAKFIELD_MIXER_H
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
const char * mixer_mode_name(SimMixerMode mode)
Return the schema name for a mixer mode.
const char * mixer_feedback_epsilon_mode_name(SimMixerFeedbackEpsilonMode mode)
Return the schema name for a feedback epsilon interpretation mode.
SimResult sim_add_mixer_operator(struct SimContext *context, const SimMixerOperatorConfig *config, size_t *out_index)
Register a mixer operator combining two fields.
bool mixer_feedback_split_from_name(const char *name, SimMixerFeedbackSplitMode *out_mode)
Parse a feedback split mode name.
SimMixerFeedbackSplitMode
Operator splitting strategy for feedback mixer integration.
Definition mixer.h:54
@ SIM_MIXER_FEEDBACK_SPLIT_NONE
Definition mixer.h:55
@ SIM_MIXER_FEEDBACK_SPLIT_LIE
Definition mixer.h:56
@ SIM_MIXER_FEEDBACK_SPLIT_STRANG
Definition mixer.h:57
const char * mixer_feedback_split_name(SimMixerFeedbackSplitMode mode)
Return the schema name for a feedback split mode.
bool mixer_mode_from_name(const char *name, SimMixerMode *out_mode)
Convert a schema/descriptor string value into a mixer mode enum.
SimResult sim_mixer_update(struct SimContext *context, size_t operator_index, const SimMixerOperatorConfig *config)
Update an existing mixer operator's configuration.
bool mixer_feedback_epsilon_mode_from_name(const char *name, SimMixerFeedbackEpsilonMode *out_mode)
Parse a feedback epsilon mode name.
SimMixerFeedbackEpsilonMode
Interpretation of feedback_epsilon in feedback mixer mode.
Definition mixer.h:46
@ SIM_MIXER_FEEDBACK_EPS_INPUT
Definition mixer.h:47
@ SIM_MIXER_FEEDBACK_EPS_FEEDBACK
Definition mixer.h:48
SimMixerMode
Mixing strategies supported by the mixer operator family.
Definition mixer.h:25
@ SIM_MIXER_MODE_FEEDBACK
Definition mixer.h:40
@ SIM_MIXER_MODE_LINEAR
Definition mixer.h:26
@ SIM_MIXER_MODE_DIFFERENCE
Definition mixer.h:38
@ SIM_MIXER_MODE_PM
Definition mixer.h:33
@ SIM_MIXER_MODE_MAX
Definition mixer.h:35
@ SIM_MIXER_MODE_MIN
Definition mixer.h:36
@ SIM_MIXER_MODE_POWER
Definition mixer.h:30
@ SIM_MIXER_MODE_AM
Definition mixer.h:31
@ SIM_MIXER_MODE_SUM
Definition mixer.h:29
@ SIM_MIXER_MODE_RING_MOD
Definition mixer.h:34
@ SIM_MIXER_MODE_AVERAGE
Definition mixer.h:37
@ SIM_MIXER_MODE_MULTIPLY
Definition mixer.h:27
@ SIM_MIXER_MODE_ABSOLUTE_DIFFERENCE
Definition mixer.h:39
@ SIM_MIXER_MODE_CROSSFADE
Definition mixer.h:28
@ SIM_MIXER_MODE_FM
Definition mixer.h:32
SimResult sim_mixer_config(struct SimContext *context, size_t operator_index, SimMixerOperatorConfig *out_config)
Retrieve the configuration stored in a mixer operator.
Declarative complex-first operator splitting (substep expansion at plan time).
Simulation runtime state.
Definition sim_context.h:70
Configuration parameters for the mixer operator.
Definition mixer.h:63
SimMixerMode mode
Definition mixer.h:72
size_t output_field
Definition mixer.h:66
bool accumulate
Definition mixer.h:75
SimMixerFeedbackEpsilonMode feedback_epsilon_mode
Definition mixer.h:73
SimMixerFeedbackSplitMode feedback_split
Definition mixer.h:74
size_t lhs_field
Definition mixer.h:64
double rhs_gain
Definition mixer.h:68
double bias
Definition mixer.h:70
bool scale_by_dt
Definition mixer.h:76
double mix
Definition mixer.h:69
double lhs_gain
Definition mixer.h:67
size_t rhs_field
Definition mixer.h:65
double feedback_epsilon
Definition mixer.h:71