37#ifndef GECODE_FLATZINC_BLACKBOX_HH
38#define GECODE_FLATZINC_BLACKBOX_HH
46#ifdef GECODE_HAS_FLOAT_VARS
70 const std::string& target,
71 const std::vector<std::string>& args)
const;
73 void fail(std::exception_ptr e)
const;
88#ifdef GECODE_HAS_FLOAT_VARS
91 const std::string& mode,
const std::string& target,
92 const std::vector<std::string>& args);
96#ifdef GECODE_HAS_FLOAT_VARS
99 const std::string& mode,
const std::string& target,
100 const std::vector<std::string>& args,
101 const std::vector<int>& reason);
Access to the model-local blackbox context while posting and searching.
static BlackBoxContextHandle & context(FlatZincSpace &s)
Model-local context shared by blackbox propagators and search support.
void rethrow(void) const
Rethrow the first recorded propagation exception.
SharedHandle backendForConstraint(const std::string &mode, const std::string &target, const std::vector< std::string > &args) const
Return the backend selected for one constraint as an opaque handle.
BlackBoxContextHandle(const BlackBoxContextHandle &handle)
void fail(std::exception_ptr e) const
Record the first exception raised during blackbox propagation.
BlackBoxContextHandle & operator=(const BlackBoxContextHandle &handle)
BlackBoxContextHandle(void)
bool failed(void) const
Whether blackbox propagation raised an exception.
void init(void)
Initialize this context if it is empty.
A space that can be initialized with a FlatZinc model.
Home class for posting propagators
Passing integer variables.
SharedHandle & operator=(const SharedHandle &sh)
Assignment operator maintaining reference count.
SharedHandle(void)
Create shared handle with no object pointing to.
Interpreter for the FlatZinc language.
void blackbox_bounds(Home home, BlackBoxContextHandle &context, const IntVarArgs &ivar, const FloatVarArgs &fvar, const std::string &mode, const std::string &target, const std::vector< std::string > &args, const std::vector< int > &reason)
void blackbox(Home home, BlackBoxContextHandle &context, const IntVarArgs &int_in, const IntVarArgs &int_out, const FloatVarArgs &float_in, const FloatVarArgs &float_out, const std::string &mode, const std::string &target, const std::vector< std::string > &args)
Gecode toplevel namespace