3#ifndef LALA_CORE_PRE_FLB_HPP
4#define LALA_CORE_PRE_FLB_HPP
36 constexpr static const char*
name =
"FLB";
41 template <
bool diagnose,
class F>
46 template <
bool diagnose,
class F>
51 template<
bool diagnose,
class F>
73 if(fun ==
ABS) {
return x >= 0 ? x : 0; }
81 case ADD:
return battery::add_down(x, y);
82 case SUB:
return battery::sub_down(x, y);
83 case MUL:
return battery::mul_down(x, y);
84 case DIV:
return battery::div_down(x, y);
Definition diagnostics.hpp:19
Definition abstract_deps.hpp:14
@ GEQ
Unary arithmetic function symbols.
Definition ast.hpp:113
@ ADD
Unary arithmetic function symbols.
Definition ast.hpp:97
@ DIV
Unary arithmetic function symbols.
Definition ast.hpp:101
@ GT
Arithmetic comparison predicates. When applied to set, it corresponds to the lexicographic ordering o...
Definition ast.hpp:113
@ ABS
Unary arithmetic function symbols.
Definition ast.hpp:96
@ SUB
Unary arithmetic function symbols.
Definition ast.hpp:97
@ MUL
Unary arithmetic function symbols.
Definition ast.hpp:97
Definition pre_fub.hpp:11
CUDA static constexpr value_type zero()
Definition pre_flb.hpp:38
static CUDA constexpr value_type meet(value_type x, value_type y)
Definition pre_flb.hpp:66
static constexpr const bool preserve_join
Definition pre_flb.hpp:29
static CUDA constexpr value_type bot()
Definition pre_flb.hpp:63
static CUDA constexpr value_type project(Sig fun, value_type x)
Definition pre_flb.hpp:72
static constexpr const bool is_totally_ordered
Definition pre_flb.hpp:26
static CUDA constexpr value_type next(value_type x)
Definition pre_flb.hpp:69
static constexpr const bool is_lower_bound
Definition pre_flb.hpp:34
static constexpr const bool injective_concretization
Definition pre_flb.hpp:32
static constexpr const bool preserve_bot
Definition pre_flb.hpp:27
PreFLB< VT > this_type
Definition pre_flb.hpp:20
static CUDA constexpr bool strict_order(value_type x, value_type y)
Definition pre_flb.hpp:68
static CUDA constexpr value_type top()
Definition pre_flb.hpp:64
static constexpr const bool is_upper_bound
Definition pre_flb.hpp:35
static CUDA constexpr value_type project(Sig fun, value_type x, value_type y)
Definition pre_flb.hpp:79
static CUDA bool interpret_ask(const F &f, value_type &ask, IDiagnostics &diagnostics)
Definition pre_flb.hpp:47
static constexpr const bool preserve_top
Definition pre_flb.hpp:28
static CUDA F deinterpret(const value_type &v)
Definition pre_flb.hpp:57
static constexpr const bool preserve_meet
Definition pre_flb.hpp:30
static constexpr const char * name
Definition pre_flb.hpp:36
static CUDA constexpr Sig sig_strict_order()
Definition pre_flb.hpp:62
static CUDA constexpr bool order(value_type x, value_type y)
Definition pre_flb.hpp:67
static CUDA constexpr Sig sig_order()
Definition pre_flb.hpp:61
CUDA static constexpr value_type one()
Definition pre_flb.hpp:39
static CUDA constexpr value_type join(value_type x, value_type y)
Definition pre_flb.hpp:65
VT value_type
Definition pre_flb.hpp:22
PreFUB< VT > dual_type
Definition pre_flb.hpp:21
static CUDA bool interpret_type(const F &f, value_type &k, IDiagnostics &diagnostics)
Definition pre_flb.hpp:52
static constexpr const bool preserve_concrete_covers
Definition pre_flb.hpp:33
static constexpr const bool is_arithmetic
Definition pre_flb.hpp:37
static CUDA bool interpret_tell(const F &f, value_type &tell, IDiagnostics &diagnostics)
Definition pre_flb.hpp:42
static CUDA constexpr value_type prev(value_type x)
Definition pre_flb.hpp:70
Definition pre_fub.hpp:18
static CUDA constexpr value_type project(Sig fun, value_type x)
Definition pre_fub.hpp:175
static CUDA constexpr value_type next(value_type x)
Definition pre_fub.hpp:151
static CUDA constexpr value_type join(value_type x, value_type y)
Definition pre_fub.hpp:136
static CUDA constexpr value_type prev(value_type x)
Definition pre_fub.hpp:165
static CUDA constexpr bool order(value_type x, value_type y)
Definition pre_fub.hpp:142
static CUDA constexpr value_type top()
Definition pre_fub.hpp:131
static CUDA constexpr value_type bot()
Definition pre_fub.hpp:126
static CUDA constexpr bool strict_order(value_type x, value_type y)
Definition pre_fub.hpp:145
static CUDA constexpr value_type meet(value_type x, value_type y)
Definition pre_fub.hpp:139