I restuctured detail::eval_flatex and split the actual evaluation in two function calls.
eval_flatex_bool is basically the old behaviour but I used iterators for scanning the ignore slice which leads to about 10% performance gain.
eval_flatex_u64 can be used to evaluate expression whith up to 64 nodes as it uses a single u64 to track the used numbers. Including it leads to another 10% performance gain in the benchmarks.
I restuctured
detail::eval_flatex
and split the actual evaluation in two function calls.eval_flatex_bool
is basically the old behaviour but I used iterators for scanning the ignore slice which leads to about 10% performance gain.eval_flatex_u64
can be used to evaluate expression whith up to 64 nodes as it uses a singleu64
to track the used numbers. Including it leads to another 10% performance gain in the benchmarks.