aboutsummaryrefslogtreecommitdiff
path: root/chaos/src/logistic_map.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'chaos/src/logistic_map.hpp')
-rw-r--r--chaos/src/logistic_map.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/chaos/src/logistic_map.hpp b/chaos/src/logistic_map.hpp
index 1808baa..ef2f603 100644
--- a/chaos/src/logistic_map.hpp
+++ b/chaos/src/logistic_map.hpp
@@ -21,7 +21,7 @@
#include "map_base.hpp"
// logistic map: x[n+1] = alpha * x[n] * (1 - x[n])
-// 0 <= x[n] < 1
+// 0 < x[n] < 1
// 0 <= alpha <= 4
class logistic:
@@ -43,9 +43,9 @@ public:
virtual void m_step()
{
- data_t data = m_data[0];
+ data_t x = m_data[0];
data_t alpha = CHAOS_PARAMETER(alpha);
- m_data[0] = alpha * data * (1.f - data);
+ m_data[0] = alpha * x * (1.f - x);
}
CHAOS_SYSPAR_FUNCS_PRED(alpha, m_pred_alpha);
@@ -60,6 +60,14 @@ public:
{
return (f > 0) && (f < 1);
}
+
+ virtual void m_verify()
+ {
+ data_t x = m_data[0];
+ if (m_pred_x(x))
+ return;
+ m_data[0] = 0.5;
+ }
};
#define LOGISTIC_CALLBACKS \