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/chaos_base.hpp | |
parent | 2f98df88850ab893c7acf8ea2b9000c03c2e17da (diff) |
speedup using function pointers
svn path=/trunk/externals/tb/; revision=2439
Diffstat (limited to 'chaos/src/chaos_base.hpp')
-rw-r--r-- | chaos/src/chaos_base.hpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/chaos/src/chaos_base.hpp b/chaos/src/chaos_base.hpp index ce6fc11..a2072d0 100644 --- a/chaos/src/chaos_base.hpp +++ b/chaos/src/chaos_base.hpp @@ -36,16 +36,31 @@ public: return m_num_eq; } - virtual void m_step() + void m_perform() { + m_step(); + m_verify(); } + virtual void m_verify() + { + for (int i = 0; i != get_num_eq(); ++i) + { +#ifndef DOUBLE_PRECISION + if (PD_BIGORSMALL(m_data[i])) + m_data[i] = 0; +#endif + } + }; + data_t * m_data; // state of the system protected: + virtual void m_step(); int m_num_eq; // number of equations of the system }; + #define CHAOS_CALLBACKS \ public: \ void get_dimension(int &i) \ |