int.hh climits cfloat iostream vector gecode/kernel.hh gecode/iter.hh gecode/support/auto-link.hpp gecode/int/exception.hpp gecode/int/limits.hpp gecode/int/int-set-1.hpp gecode/int/var-imp.hpp gecode/int/view.hpp gecode/int/propagator.hpp gecode/int/array-traits.hpp gecode/int/int-set-2.hpp gecode/int/array.hpp gecode/int/reify.hpp gecode/int/extensional/dfa.hpp gecode/int/extensional/tuple-set.hpp gecode/int/branch/traits.hpp gecode/int/branch/afc.hpp gecode/int/branch/activity.hpp gecode/int/branch/var.hpp gecode/int/branch/val.hpp gecode/int/branch/assign.hpp /usr/include/gecode/flatzinc.hh /usr/include/gecode/float/arithmetic.hh /usr/include/gecode/float/linear.hh /usr/include/gecode/float/rel.hh /usr/include/gecode/float.hh /usr/include/gecode/gist.hh /usr/include/gecode/int/arithmetic.hh /usr/include/gecode/int/bin-packing.hh /usr/include/gecode/int/bool.hh /usr/include/gecode/int/branch.hh /usr/include/gecode/int/channel.hh /usr/include/gecode/int/circuit.hh /usr/include/gecode/int/count.hh /usr/include/gecode/int/cumulatives.hh /usr/include/gecode/int/distinct.hh /usr/include/gecode/int/div.hh /usr/include/gecode/int/dom.hh /usr/include/gecode/int/element.hh /usr/include/gecode/int/exec.hh /usr/include/gecode/int/extensional.hh /usr/include/gecode/int/gcc.hh /usr/include/gecode/int/ldsb.hh /usr/include/gecode/int/linear.hh /usr/include/gecode/int/member.hh /usr/include/gecode/int/no-overlap.hh /usr/include/gecode/int/nvalues.hh /usr/include/gecode/int/precede.hh /usr/include/gecode/int/rel.hh /usr/include/gecode/int/sequence.hh /usr/include/gecode/int/sorted.hh /usr/include/gecode/int/support-values.hh /usr/include/gecode/int/task.hh /usr/include/gecode/int/val-set.hh /usr/include/gecode/int/view-val-graph.hh /usr/include/gecode/minimodel.hh /usr/include/gecode/set/channel/bool.hpp /usr/include/gecode/set/channel/int.hpp /usr/include/gecode/set/channel/sorted.hpp /usr/include/gecode/set/int/card.hpp /usr/include/gecode/set/int/minmax.hpp /usr/include/gecode/set/int/weights.hpp /usr/include/gecode/set.hh Gecode::IntSetInit Gecode::IntSet Gecode::IntSet::Range Gecode::IntSet::IntSetObject Gecode::IntSetRanges Gecode::IntSetValues Gecode::IntVar Gecode::IntVarRanges Gecode::IntVarValues Gecode::BoolVar Gecode::IntArgs Gecode::IntVarArgs Gecode::BoolVarArgs Gecode::IntVarArray Gecode::BoolVarArray Gecode::Reify Gecode::ArrayTraits< PrimArgArray< TaskType > > Gecode::DFA Gecode::DFA::Transition Gecode::DFA::Transitions Gecode::DFA::Symbols Gecode::TupleSet Gecode::TupleSet::TupleSetI Gecode::IntAFC Gecode::IntActivity Gecode::IntVarBranch Gecode::IntValBranch Gecode::IntAssign Gecode::SymmetryHandle Gecode::ArrayTraits< ArgArray< SymmetryHandle > > Gecode::Symmetries Gecode::Int Gecode Gecode::Int::Limits Gecode::Int::LDSB GECODE_INT_EXPORT GECODE_LIBRARY_NAME "Int" /*-*-mode:C++;c-basic-offset:2;indent-tabs-mode:nil-*-*/ /* *Mainauthors: *ChristianSchulte<schulte@gecode.org> *GuidoTack<tack@gecode.org> * *Contributingauthors: *MikaelLagerkvist<lagerkvist@gecode.org> *DavidRijsman<David.Rijsman@quintiq.com> * *Copyright: *DavidRijsman,2009 *MikaelLagerkvist,2006 *ChristianSchulte,2002 *GuidoTack,2004 * *Lastmodified: *$Date:2013-07-2314:31:03+0200(Tue,23Jul2013)$by$Author:schulte$ *$Revision:13939$ * *ThisfileispartofGecode,thegenericconstraint *developmentenvironment: *http://www.gecode.org * *Permissionisherebygranted,freeofcharge,toanypersonobtaining *acopyofthissoftwareandassociateddocumentationfiles(the *"Software"),todealintheSoftwarewithoutrestriction,including *withoutlimitationtherightstouse,copy,modify,merge,publish, *distribute,sublicense,and/orsellcopiesoftheSoftware,andto *permitpersonstowhomtheSoftwareisfurnishedtodoso,subjectto *thefollowingconditions: * *Theabovecopyrightnoticeandthispermissionnoticeshallbe *includedinallcopiesorsubstantialportionsoftheSoftware. * *THESOFTWAREISPROVIDED"ASIS",WITHOUTWARRANTYOFANYKIND, *EXPRESSORIMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEWARRANTIESOF *MERCHANTABILITY,FITNESSFORAPARTICULARPURPOSEAND *NONINFRINGEMENT.INNOEVENTSHALLTHEAUTHORSORCOPYRIGHTHOLDERSBE *LIABLEFORANYCLAIM,DAMAGESOROTHERLIABILITY,WHETHERINANACTION *OFCONTRACT,TORTOROTHERWISE,ARISINGFROM,OUTOFORINCONNECTION *WITHTHESOFTWAREORTHEUSEOROTHERDEALINGSINTHESOFTWARE. * */ #ifndef__GECODE_INT_HH__ #define__GECODE_INT_HH__ #include<climits> #include<cfloat> #include<iostream> #include<vector> #include<gecode/kernel.hh> #include<gecode/iter.hh> /* *Configurelinking * */ #if!defined(GECODE_STATIC_LIBS)&&\ (defined(__CYGWIN__)||defined(__MINGW32__)||defined(_MSC_VER)) #ifdefGECODE_BUILD_INT #defineGECODE_INT_EXPORT__declspec(dllexport) #else #defineGECODE_INT_EXPORT__declspec(dllimport) #endif #else #ifdefGECODE_GCC_HAS_CLASS_VISIBILITY #defineGECODE_INT_EXPORT__attribute__((visibility("default"))) #else #defineGECODE_INT_EXPORT #endif #endif //Configureauto-linking #ifndefGECODE_BUILD_INT #defineGECODE_LIBRARY_NAME"Int" #include<gecode/support/auto-link.hpp> #endif #include<gecode/int/exception.hpp> namespaceGecode{namespaceInt{ namespaceLimits{ constintmax=INT_MAX-1; constintmin=-max; constintinfinity=max+1; constlonglongintllmax=LLONG_MAX-1; constlonglongintllmin=-llmax; constlonglongintllinfinity=llmax+1; boolvalid(intn); boolvalid(longlongintn); voidcheck(intn,constchar*l); voidcheck(longlongintn,constchar*l); voidpositive(intn,constchar*l); voidpositive(longlongintn,constchar*l); voidnonnegative(intn,constchar*l); voidnonnegative(longlongintn,constchar*l); booloverflow_add(intn,intm); booloverflow_add(longlongintn,longlongintm); booloverflow_sub(intn,intm); booloverflow_sub(longlongintn,longlongintm); booloverflow_mul(intn,intm); booloverflow_mul(longlongintn,longlongintm); } }} #include<gecode/int/limits.hpp> namespaceGecode{ classIntSetRanges; template<classI>classIntSetInit; classIntSet:publicSharedHandle{ friendclassIntSetRanges; template<classI>friendclassIntSetInit; private: classRange{ public: intmin,max; }; classIntSetObject:publicSharedHandle::Object{ public: unsignedintsize; intn; Range*r; GECODE_INT_EXPORTstaticIntSetObject*allocate(intm); GECODE_INT_EXPORTSharedHandle::Object*copy(void)const; GECODE_INT_EXPORTboolin(intn)const; GECODE_INT_EXPORTvirtual~IntSetObject(void); }; classMinInc; GECODE_INT_EXPORTvoidnormalize(Range*r,intn); GECODE_INT_EXPORTvoidinit(intn,intm); GECODE_INT_EXPORTvoidinit(constintr[],intn); GECODE_INT_EXPORTvoidinit(constintr[][2],intn); public: IntSet(void); IntSet(intn,intm); IntSet(constintr[],intn); IntSet(constintr[][2],intn); template<classI> explicitIntSet(I&i); template<classI> explicitIntSet(constI&i); intranges(void)const; intmin(inti)const; intmax(inti)const; unsignedintwidth(inti)const; boolin(intn)const; unsignedintsize(void)const; unsignedintwidth(void)const; intmin(void)const; intmax(void)const; GECODE_INT_EXPORTstaticconstIntSetempty; }; classIntSetRanges{ private: constIntSet::Range*i; constIntSet::Range*e; public: IntSetRanges(void); IntSetRanges(constIntSet&s); voidinit(constIntSet&s); booloperator ()(void)const; voidoperator ++(void); intmin(void)const; intmax(void)const; unsignedintwidth(void)const; }; classIntSetValues:publicIter::Ranges::ToValues<IntSetRanges>{ public: IntSetValues(void); IntSetValues(constIntSet&s); voidinit(constIntSet&s); }; template<classChar,classTraits> std::basic_ostream<Char,Traits>& operator<<(std::basic_ostream<Char,Traits>&os,constIntSet&s); } #include<gecode/int/int-set-1.hpp> #include<gecode/int/var-imp.hpp> namespaceGecode{ namespaceInt{ classIntView; } classIntVar:publicVarImpVar<Int::IntVarImp>{ friendclassIntVarArray; friendclassIntVarArgs; private: usingVarImpVar<Int::IntVarImp>::x; void_init(Space&home,intmin,intmax); void_init(Space&home,constIntSet&d); public: IntVar(void); IntVar(constIntVar&y); IntVar(constInt::IntView&y); GECODE_INT_EXPORTIntVar(Space&home,intmin,intmax); GECODE_INT_EXPORTIntVar(Space&home,constIntSet&d); intmin(void)const; intmax(void)const; intmed(void)const; intval(void)const; unsignedintsize(void)const; unsignedintwidth(void)const; unsignedintregret_min(void)const; unsignedintregret_max(void)const; boolrange(void)const; boolin(intn)const; }; template<classChar,classTraits> std::basic_ostream<Char,Traits>& operator<<(std::basic_ostream<Char,Traits>&os,constIntVar&x); classIntVarRanges:publicInt::IntVarImpFwd{ public: IntVarRanges(void); IntVarRanges(constIntVar&x); voidinit(constIntVar&x); }; classIntVarValues:publicIter::Ranges::ToValues<IntVarRanges>{ public: IntVarValues(void); IntVarValues(constIntVar&x); voidinit(constIntVar&x); }; namespaceInt{ classBoolView; } classBoolVar:publicVarImpVar<Int::BoolVarImp>{ friendclassBoolVarArray; friendclassBoolVarArgs; private: usingVarImpVar<Int::BoolVarImp>::x; void_init(Space&home,intmin,intmax); public: BoolVar(void); BoolVar(constBoolVar&y); BoolVar(constInt::BoolView&y); GECODE_INT_EXPORTBoolVar(Space&home,intmin,intmax); intmin(void)const; intmax(void)const; intmed(void)const; intval(void)const; unsignedintsize(void)const; unsignedintwidth(void)const; unsignedintregret_min(void)const; unsignedintregret_max(void)const; boolrange(void)const; boolin(intn)const; boolzero(void)const; boolone(void)const; boolnone(void)const; }; template<classChar,classTraits> std::basic_ostream<Char,Traits>& operator<<(std::basic_ostream<Char,Traits>&os,constBoolVar&x); } #include<gecode/int/view.hpp> #include<gecode/int/propagator.hpp> namespaceGecode{ typedefArgArray<IntSet>IntSetArgs; } #include<gecode/int/array-traits.hpp> namespaceGecode{ classIntArgs:publicPrimArgArray<int>{ public: IntArgs(void); explicitIntArgs(intn); IntArgs(constSharedArray<int>&x); IntArgs(conststd::vector<int>&x); template<classInputIterator> IntArgs(InputIteratorfirst,InputIteratorlast); GECODE_INT_EXPORT IntArgs(intn,inte0,...); IntArgs(intn,constint*e); IntArgs(constPrimArgArray<int>&a); staticIntArgscreate(intn,intstart,intinc=1); }; classIntVarArgs:publicVarArgArray<IntVar>{ public: IntVarArgs(void){} explicitIntVarArgs(intn):VarArgArray<IntVar>(n){} IntVarArgs(constIntVarArgs&a):VarArgArray<IntVar>(a){} IntVarArgs(constVarArray<IntVar>&a):VarArgArray<IntVar>(a){} IntVarArgs(conststd::vector<IntVar>&a):VarArgArray<IntVar>(a){} template<classInputIterator> IntVarArgs(InputIteratorfirst,InputIteratorlast) :VarArgArray<IntVar>(first,last){} GECODE_INT_EXPORT IntVarArgs(Space&home,intn,intmin,intmax); GECODE_INT_EXPORT IntVarArgs(Space&home,intn,constIntSet&s); }; classBoolVarArgs:publicVarArgArray<BoolVar>{ public: BoolVarArgs(void){} explicitBoolVarArgs(intn):VarArgArray<BoolVar>(n){} BoolVarArgs(constBoolVarArgs&a):VarArgArray<BoolVar>(a){} BoolVarArgs(constVarArray<BoolVar>&a) :VarArgArray<BoolVar>(a){} BoolVarArgs(conststd::vector<BoolVar>&a):VarArgArray<BoolVar>(a){} template<classInputIterator> BoolVarArgs(InputIteratorfirst,InputIteratorlast) :VarArgArray<BoolVar>(first,last){} GECODE_INT_EXPORT BoolVarArgs(Space&home,intn,intmin,intmax); }; classIntVarArray:publicVarArray<IntVar>{ public: IntVarArray(void); IntVarArray(Space&home,intn); IntVarArray(constIntVarArray&a); IntVarArray(Space&home,constIntVarArgs&a); GECODE_INT_EXPORT IntVarArray(Space&home,intn,intmin,intmax); GECODE_INT_EXPORT IntVarArray(Space&home,intn,constIntSet&s); }; classBoolVarArray:publicVarArray<BoolVar>{ public: BoolVarArray(void); BoolVarArray(Space&home,intn); BoolVarArray(constBoolVarArray&a); BoolVarArray(Space&home,constBoolVarArgs&a); GECODE_INT_EXPORT BoolVarArray(Space&home,intn,intmin,intmax); }; } #include<gecode/int/int-set-2.hpp> #include<gecode/int/array.hpp> namespaceGecode{ enumReifyMode{ RM_EQV, RM_IMP, RM_PMI }; classReify{ protected: BoolVarx; ReifyModerm; public: Reify(void); Reify(BoolVarx,ReifyModerm=RM_EQV); BoolVarvar(void)const; ReifyModemode(void)const; voidvar(BoolVarx); voidmode(ReifyModerm); }; Reifyeqv(BoolVarx); Reifyimp(BoolVarx); Reifypmi(BoolVarx); } #include<gecode/int/reify.hpp> namespaceGecode{ enumIntRelType{ IRT_EQ, IRT_NQ, IRT_LQ, IRT_LE, IRT_GQ, IRT_GR }; enumBoolOpType{ BOT_AND, BOT_OR, BOT_IMP, BOT_EQV, BOT_XOR }; enumIntConLevel{ ICL_VAL, ICL_BND, ICL_DOM, ICL_DEF }; enumTaskType{ TT_FIXP,//<Taskwithfixedprocessingtime TT_FIXS,//<Taskwithfixedstarttime TT_FIXE//<Taskwithfixedendtime }; typedefPrimArgArray<TaskType>TaskTypeArgs; template<> classArrayTraits<PrimArgArray<TaskType>>{ public: typedefTaskTypeArgsStorageType; typedefTaskTypeValueType; typedefTaskTypeArgsArgsType; }; GECODE_INT_EXPORTvoid dom(Homehome,IntVarx,intn, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,constIntVarArgs&x,intn, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,IntVarx,intl,intm, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,constIntVarArgs&x,intl,intm, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,IntVarx,constIntSet&s, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,constIntVarArgs&x,constIntSet&s, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,IntVarx,intn,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,IntVarx,intl,intm,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,IntVarx,constIntSet&s,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,IntVarx,IntVard, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,BoolVarx,BoolVard, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,constIntVarArgs&x,constIntVarArgs&d, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid dom(Homehome,constBoolVarArgs&x,constBoolVarArgs&d, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,IntVarx0,IntRelTypeirt,IntVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constIntVarArgs&x,IntRelTypeirt,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,IntVarx,IntRelTypeirt,intc, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constIntVarArgs&x,IntRelTypeirt,intc, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,IntVarx0,IntRelTypeirt,IntVarx1,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,IntVarx,IntRelTypeirt,intc,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constIntVarArgs&x,IntRelTypeirt, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constIntVarArgs&x,IntRelTypeirt,constIntVarArgs&y, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolVarx0,IntRelTypeirt,BoolVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolVarx0,IntRelTypeirt,BoolVarx1,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constBoolVarArgs&x,IntRelTypeirt,BoolVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolVarx,IntRelTypeirt,intn, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolVarx,IntRelTypeirt,intn,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constBoolVarArgs&x,IntRelTypeirt,intn, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constBoolVarArgs&x,IntRelTypeirt,constBoolVarArgs&y, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,constBoolVarArgs&x,IntRelTypeirt, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolVarx0,BoolOpTypeo,BoolVarx1,BoolVarx2, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolVarx0,BoolOpTypeo,BoolVarx1,intn, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolOpTypeo,constBoolVarArgs&x,BoolVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid rel(Homehome,BoolOpTypeo,constBoolVarArgs&x,intn, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid clause(Homehome,BoolOpTypeo,constBoolVarArgs&x,constBoolVarArgs&y, BoolVarz,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid clause(Homehome,BoolOpTypeo,constBoolVarArgs&x,constBoolVarArgs&y, intn,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid ite(Homehome,BoolVarb,IntVarx,IntVary,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid precede(Homehome,constIntVarArgs&x,ints,intt, IntConLevel=ICL_DEF); GECODE_INT_EXPORTvoid precede(Homehome,constIntVarArgs&x,constIntArgs&c, IntConLevel=ICL_DEF); GECODE_INT_EXPORTvoid member(Homehome,constIntVarArgs&x,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid member(Homehome,constBoolVarArgs&x,BoolVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid member(Homehome,constIntVarArgs&x,IntVary,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid member(Homehome,constBoolVarArgs&x,BoolVary,Reifyr, IntConLevelicl=ICL_DEF); typedefSharedArray<int>IntSharedArray; GECODE_INT_EXPORTvoid element(Homehome,IntSharedArrayn,IntVarx0,IntVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,IntSharedArrayn,IntVarx0,BoolVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,IntSharedArrayn,IntVarx0,intx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,constIntVarArgs&x,IntVary0,IntVary1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,constIntVarArgs&x,IntVary0,inty1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,constBoolVarArgs&x,IntVary0,BoolVary1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,constBoolVarArgs&x,IntVary0,inty1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,IntSharedArraya, IntVarx,intw,IntVary,inth,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,IntSharedArraya, IntVarx,intw,IntVary,inth,BoolVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,constIntVarArgs&a, IntVarx,intw,IntVary,inth,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid element(Homehome,constBoolVarArgs&a, IntVarx,intw,IntVary,inth,BoolVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid distinct(Homehome,constIntVarArgs&x, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid distinct(Homehome,constIntArgs&n,constIntVarArgs&x, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid channel(Homehome,constIntVarArgs&x,constIntVarArgs&y, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid channel(Homehome,constIntVarArgs&x,intxoff, constIntVarArgs&y,intyoff, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid channel(Homehome,BoolVarx0,IntVarx1, IntConLevelicl=ICL_DEF); forceinlinevoid channel(Homehome,IntVarx0,BoolVarx1, IntConLevelicl=ICL_DEF){ channel(home,x1,x0,icl); } GECODE_INT_EXPORTvoid channel(Homehome,constBoolVarArgs&x,IntVary,into=0, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid sorted(Homehome,constIntVarArgs&x,constIntVarArgs&y, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid sorted(Homehome,constIntVarArgs&x,constIntVarArgs&y, constIntVarArgs&z, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,intn,IntRelTypeirt,intm, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,constIntSet&y,IntRelTypeirt,intm, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,IntVary,IntRelTypeirt,intm, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,constIntArgs&y,IntRelTypeirt,intm, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,intn,IntRelTypeirt,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,constIntSet&y,IntRelTypeirt,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,IntVary,IntRelTypeirt,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,constIntArgs&y,IntRelTypeirt,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,constIntVarArgs&c, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x,constIntSetArgs&c, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x, constIntVarArgs&c,constIntArgs&v, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x, constIntSetArgs&c,constIntArgs&v, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid count(Homehome,constIntVarArgs&x, constIntSet&c,constIntArgs&v, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nvalues(Homehome,constIntVarArgs&x,IntRelTypeirt,inty, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nvalues(Homehome,constIntVarArgs&x,IntRelTypeirt,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nvalues(Homehome,constBoolVarArgs&x,IntRelTypeirt,inty, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nvalues(Homehome,constBoolVarArgs&x,IntRelTypeirt,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid sequence(Homehome,constIntVarArgs&x,constIntSet&s, intq,intl,intu,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid sequence(Homehome,constBoolVarArgs&x,constIntSet&s, intq,intl,intu,IntConLevelicl=ICL_DEF); classDFA:publicSharedHandle{ private: classDFAI; public: classTransition{ public: inti_state; intsymbol; into_state; Transition(); Transition(inti_state0,intsymbol0,into_state0); }; classTransitions{ private: constTransition*c_trans; constTransition*e_trans; public: Transitions(constDFA&d); Transitions(constDFA&d,intn); booloperator ()(void)const; voidoperator ++(void); inti_state(void)const; intsymbol(void)const; into_state(void)const; }; classSymbols{ private: constTransition*c_trans; constTransition*e_trans; public: Symbols(constDFA&d); booloperator ()(void)const; voidoperator ++(void); intval(void)const; }; public: friendclassTransitions; DFA(void); GECODE_INT_EXPORT DFA(ints,Transitiont[],intf[],boolminimize=true); DFA(constDFA&d); intn_states(void)const; intn_transitions(void)const; unsignedintn_symbols(void)const; unsignedintmax_degree(void)const; intfinal_fst(void)const; intfinal_lst(void)const; intsymbol_min(void)const; intsymbol_max(void)const; }; enumExtensionalPropKind{ EPK_DEF, EPK_SPEED, EPK_MEMORY }; GECODE_INT_EXPORTvoid extensional(Homehome,constIntVarArgs&x,DFAd, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid extensional(Homehome,constBoolVarArgs&x,DFAd, IntConLevelicl=ICL_DEF); classTupleSet:publicSharedHandle{ public: typedefint*Tuple; classGECODE_VTABLE_EXPORTTupleSetI :publicSharedHandle::Object{ public: intarity; intsize; Tuple**tuples; Tuple*tuple_data; int*data; intexcess; intmin,max; unsignedintdomsize; Tuple**last; Tuple*nullpointer; template<classT> voidadd(Tt); GECODE_INT_EXPORTvoidfinalize(void); GECODE_INT_EXPORTvoidresize(void); boolfinalized(void)const; TupleSetI(void); GECODE_INT_EXPORTvirtual~TupleSetI(void); GECODE_INT_EXPORTvirtualSharedHandle::Object*copy(void)const; }; TupleSetI*implementation(void); TupleSet(void); TupleSet(constTupleSet&d); voidadd(constIntArgs&tuple); voidfinalize(void); boolfinalized(void)const; intarity(void)const; inttuples(void)const; Tupleoperator [](inti)const; intmin(void)const; intmax(void)const; }; GECODE_INT_EXPORTvoid extensional(Homehome,constIntVarArgs&x,constTupleSet&t, ExtensionalPropKindepk=EPK_DEF,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid extensional(Homehome,constBoolVarArgs&x,constTupleSet&t, ExtensionalPropKindepk=EPK_DEF,IntConLevelicl=ICL_DEF); } #include<gecode/int/extensional/dfa.hpp> #include<gecode/int/extensional/tuple-set.hpp> namespaceGecode{ GECODE_INT_EXPORTvoid min(Homehome,IntVarx0,IntVarx1,IntVarx2, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid min(Homehome,constIntVarArgs&x,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid max(Homehome,IntVarx0,IntVarx1,IntVarx2, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid max(Homehome,constIntVarArgs&x,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid abs(Homehome,IntVarx0,IntVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid mult(Homehome,IntVarx0,IntVarx1,IntVarx2, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid divmod(Homehome,IntVarx0,IntVarx1,IntVarx2,IntVarx3, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid div(Homehome,IntVarx0,IntVarx1,IntVarx2, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid mod(Homehome,IntVarx0,IntVarx1,IntVarx2, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid sqr(Homehome,IntVarx0,IntVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid sqrt(Homehome,IntVarx0,IntVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid pow(Homehome,IntVarx0,intn,IntVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nroot(Homehome,IntVarx0,intn,IntVarx1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntVarArgs&x, IntRelTypeirt,intc, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntVarArgs&x, IntRelTypeirt,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntVarArgs&x, IntRelTypeirt,intc,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntVarArgs&x, IntRelTypeirt,IntVary,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constIntVarArgs&x, IntRelTypeirt,intc, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constIntVarArgs&x, IntRelTypeirt,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constIntVarArgs&x, IntRelTypeirt,intc,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constIntVarArgs&x, IntRelTypeirt,IntVary,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constBoolVarArgs&x, IntRelTypeirt,intc, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constBoolVarArgs&x, IntRelTypeirt,intc,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constBoolVarArgs&x, IntRelTypeirt,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constBoolVarArgs&x, IntRelTypeirt,IntVary,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constBoolVarArgs&x, IntRelTypeirt,intc, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constBoolVarArgs&x, IntRelTypeirt,intc,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constBoolVarArgs&x, IntRelTypeirt,IntVary, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid linear(Homehome,constIntArgs&a,constBoolVarArgs&x, IntRelTypeirt,IntVary,Reifyr, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid binpacking(Homehome, constIntVarArgs&l, constIntVarArgs&b,constIntArgs&s, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nooverlap(Homehome, constIntVarArgs&x,constIntArgs&w, constIntVarArgs&y,constIntArgs&h, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nooverlap(Homehome, constIntVarArgs&x,constIntArgs&w, constIntVarArgs&y,constIntArgs&h, constBoolVarArgs&o, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nooverlap(Homehome, constIntVarArgs&x0,constIntVarArgs&w,constIntVarArgs&x1, constIntVarArgs&y0,constIntVarArgs&h,constIntVarArgs&y1, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid nooverlap(Homehome, constIntVarArgs&x0,constIntVarArgs&w,constIntVarArgs&x1, constIntVarArgs&y0,constIntVarArgs&h,constIntVarArgs&y1, constBoolVarArgs&o, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntVarArgs&m, constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntVarArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntArgs&m, constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntVarArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntVarArgs&m, constIntVarArgs&s,constIntArgs&p, constIntVarArgs&e,constIntVarArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntArgs&m, constIntVarArgs&s,constIntArgs&p, constIntVarArgs&e,constIntVarArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntVarArgs&m, constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntArgs&m, constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntVarArgs&m, constIntVarArgs&s,constIntArgs&p, constIntVarArgs&e,constIntArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulatives(Homehome,constIntArgs&m, constIntVarArgs&s,constIntArgs&p, constIntVarArgs&e,constIntArgs&u, constIntArgs&c,boolat_most, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unary(Homehome,constIntVarArgs&s,constIntArgs&p, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unary(Homehome,constIntVarArgs&s,constIntArgs&p, constBoolVarArgs&m,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unary(Homehome,constTaskTypeArgs&t, constIntVarArgs&flex,constIntArgs&fix,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unary(Homehome,constTaskTypeArgs&t, constIntVarArgs&flex,constIntArgs&fix, constBoolVarArgs&m,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unary(Homehome,constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unary(Homehome,constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constBoolVarArgs&m,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,intc,constTaskTypeArgs&t, constIntVarArgs&flex,constIntArgs&fix,constIntArgs&u, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,IntVarc,constTaskTypeArgs&t, constIntVarArgs&flex,constIntArgs&fix,constIntArgs&u, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,intc,constTaskTypeArgs&t, constIntVarArgs&flex,constIntArgs&fix,constIntArgs&u, constBoolVarArgs&m,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,IntVarc,constTaskTypeArgs&t, constIntVarArgs&flex,constIntArgs&fix,constIntArgs&u, constBoolVarArgs&m,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,intc,constIntVarArgs&s,constIntArgs&p, constIntArgs&u,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,IntVarc,constIntVarArgs&s,constIntArgs&p, constIntArgs&u,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,intc,constIntVarArgs&s,constIntArgs&p, constIntArgs&u,constBoolVarArgs&m,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,IntVarc,constIntVarArgs&s,constIntArgs&p, constIntArgs&u,constBoolVarArgs&m,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,intc,constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntArgs&u,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,IntVarc,constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntArgs&u,IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,intc,constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntArgs&u,constBoolVarArgs&m, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid cumulative(Homehome,IntVarc,constIntVarArgs&s,constIntVarArgs&p, constIntVarArgs&e,constIntArgs&u,constBoolVarArgs&m, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid circuit(Homehome,constIntVarArgs&x, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid circuit(Homehome,intoffset,constIntVarArgs&x, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid circuit(Homehome, constIntArgs&c, constIntVarArgs&x,constIntVarArgs&y,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid circuit(Homehome, constIntArgs&c,intoffset, constIntVarArgs&x,constIntVarArgs&y,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid circuit(Homehome, constIntArgs&c, constIntVarArgs&x,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid circuit(Homehome, constIntArgs&c,intoffset, constIntVarArgs&x,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid path(Homehome,constIntVarArgs&x,IntVars,IntVare, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid path(Homehome,intoffset,constIntVarArgs&x,IntVars,IntVare, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid path(Homehome, constIntArgs&c, constIntVarArgs&x,IntVars,IntVare,constIntVarArgs&y,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid path(Homehome, constIntArgs&c,intoffset, constIntVarArgs&x,IntVars,IntVare,constIntVarArgs&y,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid path(Homehome, constIntArgs&c, constIntVarArgs&x,IntVars,IntVare,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid path(Homehome, constIntArgs&c,intoffset, constIntVarArgs&x,IntVars,IntVare,IntVarz, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid wait(Homehome,IntVarx,void(*c)(Space&home), IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid wait(Homehome,BoolVarx,void(*c)(Space&home), IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid wait(Homehome,constIntVarArgs&x,void(*c)(Space&home), IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid wait(Homehome,constBoolVarArgs&x,void(*c)(Space&home), IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid when(Homehome,BoolVarx, void(*t)(Space&home),void(*e)(Space&home)=NULL, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unshare(Homehome,IntVarArgs&x, IntConLevelicl=ICL_DEF); GECODE_INT_EXPORTvoid unshare(Homehome,BoolVarArgs&x, IntConLevelicl=ICL_DEF); } namespaceGecode{ typedefbool(*IntBranchFilter)(constSpace&home,IntVarx,inti); typedefbool(*BoolBranchFilter)(constSpace&home,BoolVarx,inti); typedefdouble(*IntBranchMerit)(constSpace&home,IntVarx,inti); typedefdouble(*BoolBranchMerit)(constSpace&home,BoolVarx,inti); typedefint(*IntBranchVal)(constSpace&home,IntVarx,inti); typedefint(*BoolBranchVal)(constSpace&home,BoolVarx,inti); typedefvoid(*IntBranchCommit)(Space&home,unsignedinta, IntVarx,inti,intn); typedefvoid(*BoolBranchCommit)(Space&home,unsignedinta, BoolVarx,inti,intn); } #include<gecode/int/branch/traits.hpp> namespaceGecode{ classIntAFC:publicAFC{ public: IntAFC(void); IntAFC(constIntAFC&a); IntAFC&operator =(constIntAFC&a); IntAFC(Homehome,constIntVarArgs&x,doubled=1.0); IntAFC(Homehome,constBoolVarArgs&x,doubled=1.0); voidinit(Home,constIntVarArgs&x,doubled=1.0); voidinit(Home,constBoolVarArgs&x,doubled=1.0); }; } #include<gecode/int/branch/afc.hpp> namespaceGecode{ classIntActivity:publicActivity{ public: IntActivity(void); IntActivity(constIntActivity&a); IntActivity&operator =(constIntActivity&a); GECODE_INT_EXPORT IntActivity(Homehome,constIntVarArgs&x,doubled=1.0, IntBranchMeritbm=NULL); GECODE_INT_EXPORT IntActivity(Homehome,constBoolVarArgs&x,doubled=1.0, BoolBranchMeritbm=NULL); GECODE_INT_EXPORTvoid init(Homehome,constIntVarArgs&x,doubled=1.0, IntBranchMeritbm=NULL); GECODE_INT_EXPORTvoid init(Homehome,constBoolVarArgs&x,doubled=1.0, BoolBranchMeritbm=NULL); }; } #include<gecode/int/branch/activity.hpp> namespaceGecode{ typedefvoid(*IntVarValPrint)(constSpace&home,constBrancherHandle&bh, unsignedinta, IntVarx,inti,constint&n, std::ostream&o); typedefvoid(*BoolVarValPrint)(constSpace&home,constBrancherHandle&bh, unsignedinta, BoolVarx,inti,constint&n, std::ostream&o); } namespaceGecode{ classIntVarBranch:publicVarBranch{ public: enumSelect{ SEL_NONE=0, SEL_RND, SEL_MERIT_MIN, SEL_MERIT_MAX, SEL_DEGREE_MIN, SEL_DEGREE_MAX, SEL_AFC_MIN, SEL_AFC_MAX, SEL_ACTIVITY_MIN, SEL_ACTIVITY_MAX, SEL_MIN_MIN, SEL_MIN_MAX, SEL_MAX_MIN, SEL_MAX_MAX, SEL_SIZE_MIN, SEL_SIZE_MAX, SEL_DEGREE_SIZE_MIN, SEL_DEGREE_SIZE_MAX, SEL_AFC_SIZE_MIN, SEL_AFC_SIZE_MAX, SEL_ACTIVITY_SIZE_MIN, SEL_ACTIVITY_SIZE_MAX, SEL_REGRET_MIN_MIN, SEL_REGRET_MIN_MAX, SEL_REGRET_MAX_MIN, SEL_REGRET_MAX_MAX }; protected: Selects; public: IntVarBranch(void); IntVarBranch(Rndr); IntVarBranch(Selects,BranchTblt); IntVarBranch(Selects,doubled,BranchTblt); IntVarBranch(Selects,AFCa,BranchTblt); IntVarBranch(Selects,Activitya,BranchTblt); IntVarBranch(Selects,VoidFunctionmf,BranchTblt); Selectselect(void)const; voidexpand(Homehome,constIntVarArgs&x); voidexpand(Homehome,constBoolVarArgs&x); }; IntVarBranchINT_VAR_NONE(void); IntVarBranchINT_VAR_RND(Rndr); IntVarBranchINT_VAR_MERIT_MIN(IntBranchMeritbm,BranchTbltbl=NULL); IntVarBranchINT_VAR_MERIT_MIN(BoolBranchMeritbm,BranchTbltbl=NULL); IntVarBranchINT_VAR_MERIT_MAX(IntBranchMeritbm,BranchTbltbl=NULL); IntVarBranchINT_VAR_MERIT_MAX(BoolBranchMeritbm,BranchTbltbl=NULL); IntVarBranchINT_VAR_DEGREE_MIN(BranchTbltbl=NULL); IntVarBranchINT_VAR_DEGREE_MAX(BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_MIN(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_MIN(IntAFCa,BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_MAX(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_MAX(IntAFCa,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_MIN(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_MIN(IntActivitya,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_MAX(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_MAX(IntActivitya,BranchTbltbl=NULL); IntVarBranchINT_VAR_MIN_MIN(BranchTbltbl=NULL); IntVarBranchINT_VAR_MIN_MAX(BranchTbltbl=NULL); IntVarBranchINT_VAR_MAX_MIN(BranchTbltbl=NULL); IntVarBranchINT_VAR_MAX_MAX(BranchTbltbl=NULL); IntVarBranchINT_VAR_SIZE_MIN(BranchTbltbl=NULL); IntVarBranchINT_VAR_SIZE_MAX(BranchTbltbl=NULL); IntVarBranchINT_VAR_DEGREE_SIZE_MIN(BranchTbltbl=NULL); IntVarBranchINT_VAR_DEGREE_SIZE_MAX(BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_SIZE_MIN(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_SIZE_MIN(IntAFCa,BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_SIZE_MAX(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_AFC_SIZE_MAX(IntAFCa,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_SIZE_MIN(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_SIZE_MIN(IntActivitya,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_SIZE_MAX(doubled=1.0,BranchTbltbl=NULL); IntVarBranchINT_VAR_ACTIVITY_SIZE_MAX(IntActivitya,BranchTbltbl=NULL); IntVarBranchINT_VAR_REGRET_MIN_MIN(BranchTbltbl=NULL); IntVarBranchINT_VAR_REGRET_MIN_MAX(BranchTbltbl=NULL); IntVarBranchINT_VAR_REGRET_MAX_MIN(BranchTbltbl=NULL); IntVarBranchINT_VAR_REGRET_MAX_MAX(BranchTbltbl=NULL); } #include<gecode/int/branch/var.hpp> namespaceGecode{ classIntValBranch:publicValBranch{ public: enumSelect{ SEL_MIN, SEL_MED, SEL_MAX, SEL_RND, SEL_SPLIT_MIN, SEL_SPLIT_MAX, SEL_RANGE_MIN, SEL_RANGE_MAX, SEL_VAL_COMMIT, SEL_VALUES_MIN, SEL_VALUES_MAX, SEL_NEAR_MIN, SEL_NEAR_MAX, SEL_NEAR_INC, SEL_NEAR_DEC }; protected: IntSharedArrayn; Selects; public: IntValBranch(Selects=SEL_MIN); IntValBranch(Rndr); IntValBranch(VoidFunctionv,VoidFunctionc); IntValBranch(Selects,IntSharedArrayn); Selectselect(void)const; IntSharedArrayvalues(void)const; }; IntValBranchINT_VAL_MIN(void); IntValBranchINT_VAL_MED(void); IntValBranchINT_VAL_MAX(void); IntValBranchINT_VAL_RND(Rndr); IntValBranchINT_VAL_SPLIT_MIN(void); IntValBranchINT_VAL_SPLIT_MAX(void); IntValBranchINT_VAL_RANGE_MIN(void); IntValBranchINT_VAL_RANGE_MAX(void); IntValBranchINT_VAL(IntBranchValv,IntBranchCommitc=NULL); IntValBranchINT_VAL(BoolBranchValv,BoolBranchCommitc=NULL); IntValBranchINT_VALUES_MIN(void); IntValBranchINT_VALUES_MAX(void); IntValBranchINT_VAL_NEAR_MIN(IntSharedArrayn); IntValBranchINT_VAL_NEAR_MAX(IntSharedArrayn); IntValBranchINT_VAL_NEAR_INC(IntSharedArrayn); IntValBranchINT_VAL_NEAR_DEC(IntSharedArrayn); } #include<gecode/int/branch/val.hpp> namespaceGecode{ classIntAssign:publicValBranch{ public: enumSelect{ SEL_MIN, SEL_MED, SEL_MAX, SEL_RND, SEL_VAL_COMMIT }; protected: Selects; public: IntAssign(Selects=SEL_MIN); IntAssign(Rndr); IntAssign(VoidFunctionv,VoidFunctionc); Selectselect(void)const; }; IntAssignINT_ASSIGN_MIN(void); IntAssignINT_ASSIGN_MED(void); IntAssignINT_ASSIGN_MAX(void); IntAssignINT_ASSIGN_RND(Rndr); IntAssignINT_ASSIGN(IntBranchValv,IntBranchCommitc=NULL); IntAssignINT_ASSIGN(BoolBranchValv,BoolBranchCommitc=NULL); } #include<gecode/int/branch/assign.hpp> namespaceGecode{ GECODE_INT_EXPORTBrancherHandle branch(Homehome,constIntVarArgs&x, IntVarBranchvars,IntValBranchvals, IntBranchFilterbf=NULL, IntVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,constIntVarArgs&x, TieBreak<IntVarBranch>vars,IntValBranchvals, IntBranchFilterbf=NULL, IntVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,IntVarx,IntValBranchvals, IntVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,constBoolVarArgs&x, IntVarBranchvars,IntValBranchvals, BoolBranchFilterbf=NULL, BoolVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,constBoolVarArgs&x, TieBreak<IntVarBranch>vars,IntValBranchvals, BoolBranchFilterbf=NULL, BoolVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,BoolVarx,IntValBranchvals, BoolVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle assign(Homehome,constIntVarArgs&x,IntAssignvals, IntBranchFilteribf=NULL, IntVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle assign(Homehome,IntVarx,IntAssignvals, IntVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle assign(Homehome,constBoolVarArgs&x,IntAssignvals, BoolBranchFilterbbf=NULL, BoolVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle assign(Homehome,BoolVarx,IntAssignvals, BoolVarValPrintvvp=NULL); } namespaceGecode{ template<classChar,classTraits> std::basic_ostream<Char,Traits>& operator<<(std::basic_ostream<Char,Traits>&os,constDFA&d); template<classChar,classTraits> std::basic_ostream<Char,Traits>& operator<<(std::basic_ostream<Char,Traits>&os,constTupleSet&ts); } //LDSB-relateddeclarations. namespaceGecode{ namespaceInt{namespaceLDSB{ classSymmetryObject; }} classGECODE_INT_EXPORTSymmetryHandle{ public: Int::LDSB::SymmetryObject*ref; voidincrement(void); voiddecrement(void); public: SymmetryHandle(void); SymmetryHandle(Int::LDSB::SymmetryObject*o); SymmetryHandle(constSymmetryHandle&h); constSymmetryHandle&operator=(constSymmetryHandle&h); ~SymmetryHandle(void); }; classSymmetries; template<> classArrayTraits<ArgArray<SymmetryHandle>>{ public: typedefSymmetriesStorageType; typedefSymmetryHandleValueType; typedefSymmetriesArgsType; }; classSymmetries:publicArgArray<SymmetryHandle>{}; //Ifthisisinsteadatypedef,strangethingshappenwiththe //overloadingofthe"branch"function. GECODE_INT_EXPORTSymmetryHandleVariableSymmetry(constIntVarArgs&x); GECODE_INT_EXPORTSymmetryHandleVariableSymmetry(constBoolVarArgs&x); GECODE_INT_EXPORTSymmetryHandleVariableSymmetry(constIntVarArgs&x, constIntArgs&indices); GECODE_INT_EXPORTSymmetryHandleValueSymmetry(constIntArgs&v); GECODE_INT_EXPORTSymmetryHandleValueSymmetry(constIntSet&v); GECODE_INT_EXPORTSymmetryHandleValueSymmetry(IntVarvars); GECODE_INT_EXPORT SymmetryHandleVariableSequenceSymmetry(constIntVarArgs&x,intss); GECODE_INT_EXPORT SymmetryHandleVariableSequenceSymmetry(constBoolVarArgs&x,intss); GECODE_INT_EXPORT SymmetryHandleValueSequenceSymmetry(constIntArgs&v,intss); GECODE_INT_EXPORTSymmetryHandlevalues_reflect(intlower,intupper); GECODE_INT_EXPORTSymmetryHandlevalues_reflect(IntVarx); GECODE_INT_EXPORTBrancherHandle branch(Homehome,constIntVarArgs&x, IntVarBranchvars,IntValBranchvals, constSymmetries&syms, IntBranchFilterbf=NULL,IntVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,constIntVarArgs&x, TieBreak<IntVarBranch>vars,IntValBranchvals, constSymmetries&syms, IntBranchFilterbf=NULL,IntVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,constBoolVarArgs&x, IntVarBranchvars,IntValBranchvals, constSymmetries&syms, BoolBranchFilterbf=NULL,BoolVarValPrintvvp=NULL); GECODE_INT_EXPORTBrancherHandle branch(Homehome,constBoolVarArgs&x, TieBreak<IntVarBranch>vars,IntValBranchvals, constSymmetries&syms, BoolBranchFilterbf=NULL,BoolVarValPrintvvp=NULL); } #endif //IFDEF:GECODE_HAS_INT_VARS //STATISTICS:int-post