|
CUDA | BAB (AType atype, sub_ptr sub, best_ptr best) |
|
template<class A2 , class B2 , class... Allocators> |
CUDA NI | BAB (const BAB< A2, B2 > &other, AbstractDeps< Allocators... > &deps) |
|
CUDA AType | aty () const |
|
CUDA allocator_type | get_allocator () const |
|
CUDA local::B | is_bot () const |
|
CUDA local::B | is_top () const |
|
template<bool diagnose = false, class F , class Env , class Alloc2 > |
CUDA NI bool | interpret_tell (const F &f, Env &env, tell_type< Alloc2 > &tell, IDiagnostics &diagnostics) const |
|
template<bool diagnose = false, class F , class Env , class Alloc2 > |
CUDA NI bool | interpret_ask (const F &f, const Env &env, ask_type< Alloc2 > &ask, IDiagnostics &diagnostics) const |
|
template<IKind kind, bool diagnose = false, class F , class Env , class I > |
CUDA NI bool | interpret (const F &f, Env &env, I &intermediate, IDiagnostics &diagnostics) const |
|
template<class Alloc > |
CUDA bool | deduce (const tell_type< Alloc > &t) |
|
template<class Alloc2 > |
CUDA NI TFormula< Alloc2 > | deinterpret_best_bound (const typename best_type::universe_type &best_bound, const Alloc2 &alloc=Alloc2{}) const |
|
template<class Alloc2 > |
CUDA TFormula< Alloc2 > | deinterpret_best_bound (const Alloc2 &alloc=Alloc2{}) const |
|
CUDA local::B | deduce (const typename best_type::universe_type &best_bound) |
|
template<class Store1 , class Store2 > |
CUDA bool | compare_bound (const Store1 &store1, const Store2 &store2) const |
|
CUDA local::B | deduce () |
|
CUDA int | solutions_count () const |
|
template<class ExtractionStrategy = NonAtomicExtraction> |
CUDA bool | is_extractable (const ExtractionStrategy &strategy=ExtractionStrategy()) const |
|
template<class AbstractBest > |
CUDA void | extract (AbstractBest &ua) const |
|
CUDA const best_type & | optimum () const |
|
CUDA best_ptr | optimum_ptr () const |
|
CUDA bool | is_satisfaction () const |
|
CUDA bool | is_optimization () const |
|
CUDA bool | is_minimization () const |
|
CUDA bool | is_maximization () const |
|
CUDA AVar | objective_var () const |
|
template<class A , class B = A>
template<class A2 , class B2 , class... Allocators>
CUDA NI lala::BAB< A, B >::BAB |
( |
const BAB< A2, B2 > & | other, |
|
|
AbstractDeps< Allocators... > & | deps ) |
|
inline |
Construct BAB by copying other
. The best solution is copied using a fresh AbstractDeps, and thus is not intended to be shared with other abstract domains. For instance, if best
is a VStore, it shares the same AType than the VStore underlying sub
. Hence, if we copy it using deps
, both VStore will be shared which is not the intended behavior.
template<class A , class B = A>
template<class ExtractionStrategy = NonAtomicExtraction>
CUDA bool lala::BAB< A, B >::is_extractable |
( |
const ExtractionStrategy & | strategy = ExtractionStrategy() | ) |
const |
|
inline |
Given an optimization problem, it is extractable only when we have explored the whole state space (indicated by the subdomain being equal to top), we have found one solution, and that solution is extractable.