|
@@ -135,7 +135,12 @@ namespace artis {
|
|
|
|
|
|
_dynamics.initial_state(t);
|
|
|
type::_tl = t;
|
|
|
- type::_tn = type::_tl + _dynamics.tau(t);
|
|
|
+
|
|
|
+ typename Time::type duration = _dynamics.tau(t);
|
|
|
+
|
|
|
+ assert(ta >= 0);
|
|
|
+
|
|
|
+ type::_tn = type::_tl + duration;
|
|
|
|
|
|
#ifdef WITH_TRACE
|
|
|
common::Trace<Time>::trace()
|
|
@@ -259,14 +264,24 @@ namespace artis {
|
|
|
if (t == type::_tn) {
|
|
|
if (type::event_number() == 0) {
|
|
|
_dynamics.delta_tau(t);
|
|
|
- type::_tn = t + _dynamics.tau(t);
|
|
|
+
|
|
|
+ typename Time::type duration = _dynamics.tau(t);
|
|
|
+
|
|
|
+ assert(ta >= 0);
|
|
|
+
|
|
|
type::_tl = t;
|
|
|
+ type::_tn = type::_tl + duration;
|
|
|
}
|
|
|
} else {
|
|
|
_dynamics.delta_x(t, t - type::_tl, type::get_bag());
|
|
|
if (not _dynamics.rho(t, type::get_bag())) {
|
|
|
- type::_tn = t + _dynamics.tau(t);
|
|
|
+
|
|
|
+ typename Time::type duration = _dynamics.tau(t);
|
|
|
+
|
|
|
+ assert(ta >= 0);
|
|
|
+
|
|
|
type::_tl = t;
|
|
|
+ type::_tn = type::_tl + duration;
|
|
|
}
|
|
|
}
|
|
|
type::clear_bag();
|