#ifndef globals_h #define globals_h #include #include //----- // Directives void output_var(Branching* v); void output_vars(vec& v); void output_vars(vec& v); // Well Foundedness Directives void add_inductive_rule(BoolView hl, vec& posb, vec& negb, int wf_id); void wf_init(); //----- // Propagators // alldiff.c void all_different(vec& x, ConLevel cl = CL_DEF); void all_different_offset(vec& a, vec& x, ConLevel cl = CL_DEF); void all_different_imp(BoolView b, vec& x, ConLevel cl = CL_DEF); void inverse(vec& x, vec& y, int o1 = 0, int o2 = 0, ConLevel cl = CL_DEF); // circuit.c void circuit(vec& x, int offset = 0); void path(vec& x); // subcircuit.c void subcircuit(vec& x, int offset = 0); void subpath(vec& _x); // linear-bool.c void bool_linear(vec& x, IntRelType t, IntVar* y); // linear-bool-decomp.c void bool_linear_decomp(vec& x, IntRelType t, int k); void bool_linear_decomp(vec& x, IntRelType t, IntVar* y); // minimum.c void minimum(vec& x, IntVar* y); void maximum(vec& x, IntVar* y); void bool_arg_max(vec& x, int offset, IntVar* y); // table.c void table(vec& x, vec >& t); // regular.c void regular(vec& x, int q, int s, vec >& d, int q0, vec& f); // disjunctive.c void disjunctive(vec& s, vec& d); // cumulative.c void cumulative(vec& s, vec& d, vec& r, int b); void cumulative(vec& s, vec& d, vec& r, int b, std::list opt); void cumulative2(vec& s, vec& d, vec& r, IntVar* b); void cumulative2(vec& s, vec& d, vec& r, IntVar* b, std::list opt); void cumulative_cal(vec& s, vec& d, vec& r, IntVar* limit, vec >& cal, vec& taskCal, int rho, int resCal); void cumulative_cal(vec& s, vec& d, vec& r, IntVar* limit, vec >& cal, vec& taskCal, int rho, int resCal, std::list opt); // lex.c void lex(vec& x, vec& y, bool strict); // sym-break.c void var_sym_break(vec& x); void val_sym_break(vec& x, int l, int u); #endif