From 5eb3674d958547fd4c61637bc78632a160530aeb Mon Sep 17 00:00:00 2001 From: Marcell Vazquez-Chanlatte Date: Thu, 20 Apr 2017 21:40:31 -0700 Subject: [PATCH] keep in lining fast boolean eval bitarray calls --- stl/fastboolean_eval.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/stl/fastboolean_eval.py b/stl/fastboolean_eval.py index 211eae7..9cbb7be 100644 --- a/stl/fastboolean_eval.py +++ b/stl/fastboolean_eval.py @@ -38,7 +38,7 @@ def temporal_op(stl, lo, hi, conjunction=False): fold = bitarray.all if conjunction else bitarray.any f = pointwise_satf(stl.arg) def sat_comp(x,t): - return bitarray([fold(f(x, get_times(x, lo, hi, tau))) for tau in t]) + return bitarray(fold(f(x, get_times(x, lo, hi, tau))) for tau in t) return sat_comp @@ -61,18 +61,10 @@ def _(stl): @pointwise_satf.register(stl.AtomicPred) def _(stl): - def sat_comp(x, t): - sat = bitarray() - [sat.append(x[str(stl.id)][tau]) for tau in t] - return sat - return sat_comp + return lambda x, t: bitarray(x[str(stl.id)][tau] for tau in t) @pointwise_satf.register(stl.LinEq) def _(stl): - op = op_lookup[stl.op] - def sat_comp(x, t): - sat = bitarray() - [sat.append(op(eval_terms(stl, x, tau), stl.const)) for tau in t] - return sat - return sat_comp + op = lambda a: op_lookup[stl.op](a, stl.const) + return lambda x, t: bitarray(op(eval_terms(stl, x, tau)) for tau in t)