diff options
author | Tim Blechmann <timblech@users.sourceforge.net> | 2005-01-01 11:06:58 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@iem.at> | 2015-10-14 15:11:58 +0200 |
commit | 2a0d532e5965402f19f74f70dfdcc7efd1055b15 (patch) | |
tree | 65cf38a9d098e9867287b7a274220da401cb6b57 /chaos/src/logistic_map.hpp | |
parent | 2f98df88850ab893c7acf8ea2b9000c03c2e17da (diff) |
speedup using function pointers
svn path=/trunk/externals/tb/; revision=2439
Diffstat (limited to 'chaos/src/logistic_map.hpp')
-rw-r--r-- | chaos/src/logistic_map.hpp | 14 |
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 \ |