aboutsummaryrefslogtreecommitdiff
path: root/chaos/src/chaos_base.hpp
diff options
context:
space:
mode:
authorTim Blechmann <timblech@users.sourceforge.net>2005-01-01 11:06:58 +0000
committerIOhannes m zmölnig <zmoelnig@iem.at>2015-10-14 15:11:58 +0200
commit2a0d532e5965402f19f74f70dfdcc7efd1055b15 (patch)
tree65cf38a9d098e9867287b7a274220da401cb6b57 /chaos/src/chaos_base.hpp
parent2f98df88850ab893c7acf8ea2b9000c03c2e17da (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.hpp17
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) \