Oakfield API Documentation 1.0.0
Numerical core APIs
Loading...
Searching...
No Matches
chaos_map.h
Go to the documentation of this file.
1
5#ifndef OAKFIELD_CHAOS_MAP_H
6#define OAKFIELD_CHAOS_MAP_H
7
9
10#include <stdbool.h>
11#include <stddef.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17struct SimContext;
18
31
40
50
60
67 size_t input_field;
68 size_t output_field;
71 unsigned int iterations_per_step;
72 double blend;
74 /* Standard map parameters */
75 double k;
76 double angle_scale;
78 /* Ikeda map parameters */
79 double ikeda_u;
80 double ikeda_a;
81 double ikeda_b;
85 /* Exponential map parameters */
86 double exp_scale_re;
87 double exp_scale_im;
88 double exp_c_re;
89 double exp_c_im;
91 /* Quadratic map parameters */
92 double quad_a_re;
93 double quad_a_im;
94 double quad_b_re;
95 double quad_b_im;
96 double quad_c_re;
97 double quad_c_im;
99 /* Henon map parameters */
100 double henon_a;
101 double henon_b;
107 /* Lozi map parameters */
108 double lozi_a;
109 double lozi_b;
110 double lozi_x_gain;
111 double lozi_y_gain;
116 /* Tinkerbell map parameters */
127 /* Optional per-element parameter fields (SIZE_MAX disables). */
128 size_t k_field;
129 size_t u_field;
130 size_t a_field;
131 size_t b_field;
132 size_t c_field;
133 size_t d_field;
135 /* Wrapping configuration */
138 double wrap_min_re;
139 double wrap_max_re;
140 double wrap_min_im;
141 double wrap_max_im;
143 /* Escape handling */
149
160 const SimChaosMapOperatorConfig *config, size_t *out_index);
161
172SimResult sim_chaos_map_config(struct SimContext *context, size_t operator_index,
173 SimChaosMapOperatorConfig *out_config);
174
188SimResult sim_chaos_map_update(struct SimContext *context, size_t operator_index,
189 const SimChaosMapOperatorConfig *config);
190
191#ifdef __cplusplus
192}
193#endif
194
195#endif /* OAKFIELD_CHAOS_MAP_H */
SimChaosMapType
Supported chaotic map families.
Definition chaos_map.h:22
@ SIM_CHAOS_MAP_IKEDA
Definition chaos_map.h:24
@ SIM_CHAOS_MAP_TINKERBELL
Definition chaos_map.h:29
@ SIM_CHAOS_MAP_LOZI
Definition chaos_map.h:28
@ SIM_CHAOS_MAP_STANDARD
Definition chaos_map.h:23
@ SIM_CHAOS_MAP_QUADRATIC
Definition chaos_map.h:26
@ SIM_CHAOS_MAP_EXPONENTIAL
Definition chaos_map.h:25
@ SIM_CHAOS_MAP_HENON
Definition chaos_map.h:27
SimChaosEscapeMode
Escape handling when state diverges.
Definition chaos_map.h:54
@ SIM_CHAOS_ESCAPE_RESET
Definition chaos_map.h:57
@ SIM_CHAOS_ESCAPE_NONE
Definition chaos_map.h:55
@ SIM_CHAOS_ESCAPE_CLAMP
Definition chaos_map.h:56
@ SIM_CHAOS_ESCAPE_NAN
Definition chaos_map.h:58
SimResult sim_add_chaos_map_operator(struct SimContext *context, const SimChaosMapOperatorConfig *config, size_t *out_index)
Register a chaos map operator with the provided configuration.
SimChaosWrapMode
Wrap mode for state components.
Definition chaos_map.h:44
@ SIM_CHAOS_WRAP_NONE
Definition chaos_map.h:45
@ SIM_CHAOS_WRAP_PERIODIC
Definition chaos_map.h:46
@ SIM_CHAOS_WRAP_MIRROR
Definition chaos_map.h:48
@ SIM_CHAOS_WRAP_CLAMP
Definition chaos_map.h:47
SimChaosKickMode
Standard map kick/drift ordering.
Definition chaos_map.h:35
@ SIM_CHAOS_KICK_DRIFT
Definition chaos_map.h:36
@ SIM_CHAOS_DRIFT_KICK
Definition chaos_map.h:37
@ SIM_CHAOS_KICK_DRIFT_KICK
Definition chaos_map.h:38
SimResult sim_chaos_map_config(struct SimContext *context, size_t operator_index, SimChaosMapOperatorConfig *out_config)
Retrieve the configuration currently bound to a chaos map operator.
SimResult sim_chaos_map_update(struct SimContext *context, size_t operator_index, const SimChaosMapOperatorConfig *config)
Update an existing chaos map operator in-place.
SimResult
Return codes shared by libsimcore modules.
Definition field.h:29
Declarative complex-first operator splitting (substep expansion at plan time).
Configuration for discrete chaotic map operators.
Definition chaos_map.h:66
SimChaosWrapMode wrap_mode_re
Definition chaos_map.h:136
double wrap_max_re
Definition chaos_map.h:139
double ikeda_offset_im
Definition chaos_map.h:83
double lozi_offset_re
Definition chaos_map.h:112
size_t input_field
Definition chaos_map.h:67
double tinkerbell_xy_gain
Definition chaos_map.h:123
double tinkerbell_c
Definition chaos_map.h:119
double ikeda_u
Definition chaos_map.h:79
size_t u_field
Definition chaos_map.h:129
double henon_a
Definition chaos_map.h:100
unsigned int iterations_per_step
Definition chaos_map.h:71
double lozi_x_gain
Definition chaos_map.h:110
double escape_reset_re
Definition chaos_map.h:146
double quad_c_im
Definition chaos_map.h:97
SimChaosMapType map_type
Definition chaos_map.h:69
double tinkerbell_offset_im
Definition chaos_map.h:125
double lozi_b
Definition chaos_map.h:109
double henon_offset_im
Definition chaos_map.h:105
double henon_b
Definition chaos_map.h:101
size_t c_field
Definition chaos_map.h:132
double ikeda_b
Definition chaos_map.h:81
double lozi_abs_epsilon
Definition chaos_map.h:114
double tinkerbell_offset_re
Definition chaos_map.h:124
double henon_x_gain
Definition chaos_map.h:102
SimChaosEscapeMode escape_mode
Definition chaos_map.h:144
double escape_radius
Definition chaos_map.h:145
double exp_scale_re
Definition chaos_map.h:86
double tinkerbell_y2_gain
Definition chaos_map.h:122
double quad_b_im
Definition chaos_map.h:95
SimChaosWrapMode wrap_mode_im
Definition chaos_map.h:137
double exp_scale_im
Definition chaos_map.h:87
double exp_c_re
Definition chaos_map.h:88
double henon_y_gain
Definition chaos_map.h:103
double ikeda_offset_re
Definition chaos_map.h:82
double blend
Definition chaos_map.h:72
double quad_a_re
Definition chaos_map.h:92
double lozi_y_gain
Definition chaos_map.h:111
double k
Definition chaos_map.h:75
double wrap_max_im
Definition chaos_map.h:141
double quad_c_re
Definition chaos_map.h:96
double wrap_min_re
Definition chaos_map.h:138
double quad_a_im
Definition chaos_map.h:93
double wrap_min_im
Definition chaos_map.h:140
double ikeda_a
Definition chaos_map.h:80
size_t k_field
Definition chaos_map.h:128
size_t b_field
Definition chaos_map.h:131
double tinkerbell_x2_gain
Definition chaos_map.h:121
double lozi_offset_im
Definition chaos_map.h:113
SimChaosKickMode kick_mode
Definition chaos_map.h:70
size_t a_field
Definition chaos_map.h:130
double tinkerbell_a
Definition chaos_map.h:117
double exp_c_im
Definition chaos_map.h:89
size_t d_field
Definition chaos_map.h:133
double lozi_a
Definition chaos_map.h:108
double tinkerbell_d
Definition chaos_map.h:120
double escape_reset_im
Definition chaos_map.h:147
size_t output_field
Definition chaos_map.h:68
double tinkerbell_b
Definition chaos_map.h:118
double quad_b_re
Definition chaos_map.h:94
double henon_offset_re
Definition chaos_map.h:104
double angle_scale
Definition chaos_map.h:76
Simulation runtime state.
Definition sim_context.h:70