33 typename T::buffer_t::event_t e;
34 typename T::buffer_t::event_t e_next;
36 typename T::error_t
status = trace.read(e);
38 if (
status == trace.AVAILABLE && trace.read_next(e_next) == trace.AVAILABLE &&
39 e.getTime() <= t && t < e_next.getTime()) {
40 DEBUGV_RMTLD3(
"eval: t=%lu prop=%d - (%d %d) next-> (%d %d)\n", t, p,
41 e.getData(), e.getTime(), e_next.getData(), e_next.getTime());
44 DEBUGV_RMTLD3(
"eval: t=%lu prop=%d - (%d %d) nobound\n", t, p, e.getData(),
53 template <
typename T,
typename E, timespan b>
55 auto eval_fold = [](T &trace,
56 timespan &t) -> std::pair<four_valued_type, timespan> {
58 auto eval_b = [](T &trace, timespan &t,
97 typename T::buffer_t::event_t event;
99 symbol = eval_b(trace, c_time, symbol);
103 while (trace.pull(event) == trace.AVAILABLE) {
105 DEBUGV_RMTLD3(
"t=%d c_time=%d len=%d\n", t, c_time, trace.length());
108 c_time =
event.getTime();
113 symbol = eval_b(trace, c_time, symbol);
118 return std::make_pair(symbol, c_time);
123 std::pair<four_valued_type, timespan> eval_c = eval_fold(trace, t);
126 eval_c.second, eval_c.second < t + b);
141 template <
typename T,
typename E, timespan b>
153 template <
typename T,
typename E, timespan b>
168 template <
typename T,
typename E, timespan b>
#define out_p(res)
Definition: rmtld3.h:100
#define out_fv(fv)
Definition: rmtld3.h:103
four_valued_type
Definition: rmtld3.h:11
three_valued_type eventually_less(T &trace, timespan &t)
Definition: macros.h:154
#define b4_to_b3(b4)
Definition: rmtld3.h:28
#define b3_to_b4(b3)
Definition: rmtld3.h:24
status
Definition: task_compat.h:59
three_valued_type
Definition: rmtld3.h:10
#define DEBUGV_RMTLD3(...)
Definition: rmtld3.h:50
three_valued_type until_less(T &trace, timespan &t)
Definition: macros.h:54
three_valued_type prop(T &trace, proposition &p, timespan &t)
Definition: macros.h:31
three_valued_type eventually_equal(T &trace, timespan &t)
Definition: macros.h:142
three_valued_type always_less(T &trace, timespan &t)
Definition: macros.h:169
unsigned int proposition
Definition: rmtld3.h:6