aboutsummaryrefslogtreecommitdiff
path: root/chaos/src/circle_map.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'chaos/src/circle_map.hpp')
-rw-r--r--chaos/src/circle_map.hpp73
1 files changed, 19 insertions, 54 deletions
diff --git a/chaos/src/circle_map.hpp b/chaos/src/circle_map.hpp
index f1ef406..02817de 100644
--- a/chaos/src/circle_map.hpp
+++ b/chaos/src/circle_map.hpp
@@ -29,11 +29,12 @@ class circle_map:
{
public:
circle_map()
- : m_omega(0.4), m_r(1)
{
m_num_eq = 1;
m_data = new data_t[1];
- set_x(0.5);
+ CHAOS_SYS_INIT(omega, 0.4);
+ CHAOS_SYS_INIT(r, 1);
+ CHAOS_SYS_INIT(x, 0.5);
}
~circle_map()
@@ -44,63 +45,27 @@ public:
virtual void m_step()
{
data_t x = m_data[0];
- data_t omega = m_omega;
- data_t r = m_r;
+ data_t omega = CHAOS_PARAMETER(omega);
+ data_t r = CHAOS_PARAMETER(r);
m_data[0] = x + omega - r / (2.f * M_PI) * sin (2.f * M_PI * x);
}
- void set_x(t_float f)
- {
- m_data[0] = (data_t) f;
- }
-
- t_float get_x()
- {
- return (t_float)m_data[0];
- }
-
- void set_r(t_float f)
- {
- m_r = (data_t) f;
- }
-
-
- t_float get_r()
- {
- return (t_float)m_r;
- }
-
-
- void set_omega (t_float f)
- {
- m_omega = (data_t) f;
- }
-
- t_float get_omega()
- {
- return (t_float)m_omega;
- }
-
-
-private:
- data_t m_omega;
- data_t m_r;
+ CHAOS_SYSVAR_FUNCS(x,0);
+ CHAOS_SYSPAR_FUNCS(r);
+ CHAOS_SYSPAR_FUNCS(omega);
};
-#define CIRCLE_MAP_CALLBACKS \
-MAP_CALLBACKS; \
-FLEXT_ATTRVAR_F(m_system->m_omega); \
-FLEXT_ATTRVAR_F(m_system->m_r); \
-FLEXT_CALLVAR_F(m_system->get_omega, m_system->set_omega); \
-FLEXT_CALLVAR_F(m_system->get_r, m_system->set_r); \
-FLEXT_CALLVAR_F(m_system->get_x, m_system->set_x);
+#define CIRCLE_MAP_CALLBACKS \
+MAP_CALLBACKS; \
+CHAOS_SYS_CALLBACKS(omega); \
+CHAOS_SYS_CALLBACKS(r); \
+CHAOS_SYS_CALLBACKS(x);
+
-#define CIRCLE_MAP_ATTRIBUTES \
-MAP_ATTRIBUTES; \
-FLEXT_ADDATTR_VAR1("omega",m_system->m_omega); \
-FLEXT_ADDATTR_VAR1("r",m_system->m_r); \
-FLEXT_ADDATTR_VAR("omega",m_system->get_omega, m_system->set_omega); \
-FLEXT_ADDATTR_VAR("r",m_system->get_r, m_system->set_r); \
-FLEXT_ADDATTR_VAR("x",m_system->get_x, m_system->set_x);
+#define CIRCLE_MAP_ATTRIBUTES \
+MAP_ATTRIBUTES; \
+CHAOS_SYS_ATTRIBUTE(omega); \
+CHAOS_SYS_ATTRIBUTE(r); \
+CHAOS_SYS_ATTRIBUTE(x);