Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
digamma_square.h
Go to the documentation of this file.
1
7#ifndef OAKFIELD_STIMULUS_DIGAMMA_SQUARE_H
8#define OAKFIELD_STIMULUS_DIGAMMA_SQUARE_H
9
10#include "coords.h"
14
15#include <stdbool.h>
16#include <stddef.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22struct SimContext;
23
32
63
67typedef struct SimDigammaSquareState {
70 double locked_time;
73 double *buffer;
77#if defined(SIM_HAVE_VDSP)
78 double *vdsp_block;
79 double *vdsp_phase;
80 double *vdsp_sin;
81 double *vdsp_cos;
82 size_t vdsp_capacity;
83#endif
84 char symbolic[192];
86
101 const SimStimulusDigammaSquareConfig *config,
102 size_t *out_index);
103
117SimResult sim_add_digamma_square_operator(struct SimContext *context, size_t field_index,
118 const SimStimulusDigammaSquareConfig *config,
119 size_t *out_index);
120
131SimResult sim_stimulus_digamma_square_config(struct SimContext *context, size_t operator_index,
133
147SimResult sim_stimulus_digamma_square_update(struct SimContext *context, size_t operator_index,
148 const SimStimulusDigammaSquareConfig *config);
149
150#ifdef __cplusplus
151}
152#endif
153
154#endif /* OAKFIELD_STIMULUS_DIGAMMA_SQUARE_H */
Shared spatial coordinate helpers for stimulus operators.
SimResult sim_add_digamma_square_operator(struct SimContext *context, size_t field_index, const SimStimulusDigammaSquareConfig *config, size_t *out_index)
Register a digamma-square operator while overriding the target field.
SimDigammaSquareWaveformShape
Waveform shape for digamma square stimulus.
Definition digamma_square.h:27
@ SIM_DIGAMMA_SQUARE_WAVEFORM_DEFAULT
Definition digamma_square.h:28
@ SIM_DIGAMMA_SQUARE_WAVEFORM_TRIANGLE
Definition digamma_square.h:29
@ SIM_DIGAMMA_SQUARE_WAVEFORM_SAWTOOTH
Definition digamma_square.h:30
SimResult sim_stimulus_digamma_square_config(struct SimContext *context, size_t operator_index, SimStimulusDigammaSquareConfig *out_config)
Copy the current digamma-square configuration from a registered operator.
SimResult sim_stimulus_digamma_square_update(struct SimContext *context, size_t operator_index, const SimStimulusDigammaSquareConfig *config)
Replace or renormalize a registered digamma-square stimulus configuration.
SimResult sim_add_stimulus_digamma_square_operator(struct SimContext *context, const SimStimulusDigammaSquareConfig *config, size_t *out_index)
Register a digamma square stimulus operator.
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
Field mixing/coupling operators (linear, multiply, crossfade, AM/FM/PM, etc.).
SimMixerMode
Mixing strategies supported by the mixer operator family.
Definition mixer.h:25
SimClockMode
Clock selection for time-sensitive operators.
Definition operator.h:244
Declarative complex-first operator splitting (substep expansion at plan time).
Analytic special functions, finite ladder helpers, and q-analogs.
SimDigammaBackend
Backend choice for digamma/trigamma evaluation.
Definition special_functions.h:64
Explicit in-memory representation for a complex double scalar (re, im)
Definition field.h:175
Simulation runtime state.
Definition sim_context.h:70
State for digamma square stimulus.
Definition digamma_square.h:67
SimStimulusDigammaSquareConfig config
Definition digamma_square.h:68
SimComplexDouble * buffer_complex
Definition digamma_square.h:75
SimClockMode clock_mode
Definition digamma_square.h:69
double * buffer
Definition digamma_square.h:73
size_t buffer_complex_capacity
Definition digamma_square.h:76
double locked_time
Definition digamma_square.h:70
char symbolic[192]
Definition digamma_square.h:84
size_t last_step_index
Definition digamma_square.h:71
size_t buffer_capacity
Definition digamma_square.h:74
bool clock_initialized
Definition digamma_square.h:72
Shared coordinate mapping configuration used by stimulus operators.
Definition coords.h:53
Shared configuration for digamma square stimulus variants.
Definition digamma_square.h:36
double a
Definition digamma_square.h:50
bool scale_by_dt
Definition digamma_square.h:54
double time_offset
Definition digamma_square.h:46
bool use_warp
Definition digamma_square.h:56
SimDigammaBackend backend
Definition digamma_square.h:60
double tolerance
Definition digamma_square.h:52
double omega
Definition digamma_square.h:43
double warp_bias
Definition digamma_square.h:58
bool use_wavevector
Definition digamma_square.h:55
SimDigammaSquareWaveformShape shape
Definition digamma_square.h:61
size_t field_index
Definition digamma_square.h:37
SimMixerMode warp_mode
Definition digamma_square.h:59
double amplitude
Definition digamma_square.h:39
double phase
Definition digamma_square.h:44
double velocity
Definition digamma_square.h:48
size_t warp_field_index
Definition digamma_square.h:38
double rotation
Definition digamma_square.h:51
double ky
Definition digamma_square.h:42
double kx
Definition digamma_square.h:41
double wavenumber
Definition digamma_square.h:40
double nominal_dt
Definition digamma_square.h:47
bool fixed_clock
Definition digamma_square.h:53
double warp_mix
Definition digamma_square.h:57
SimStimulusCoordConfig coord
Definition digamma_square.h:45
double harmonics
Definition digamma_square.h:49