gist.hh gecode/kernel.hh gecode/search.hh gecode/int.hh gecode/support/auto-link.hpp string sstream gecode/gist/gist.hpp /usr/include/gecode/gist/mainwindow.hh /usr/include/gecode/gist/nodewidget.hh /usr/include/gecode/gist/preferences.hh /usr/include/gecode/gist/stopbrancher.hh /usr/include/gecode/gist/treecanvas.hh Gecode::Gist::Inspector Gecode::Gist::Comparator Gecode::Gist::TextOutput Gecode::Gist::Print Gecode::Gist::VarComparator Gecode::Gist::Options Gecode::Gist::Options::_I Gecode Gecode::Gist GECODE_GIST_EXPORT GECODE_LIBRARY_NAME "Gist" /* *Mainauthors: *GuidoTack<tack@gecode.org> * *Copyright: *GuidoTack,2006 * *Lastmodified: *$Date:2012-03-3005:58:02+0200(Fri,30Mar2012)$by$Author:tack$ *$Revision:12665$ * *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_GIST_HH__ #define__GECODE_GIST_HH__ #include<gecode/kernel.hh> #include<gecode/search.hh> #include<gecode/int.hh> #ifdefGECODE_HAS_SET_VARS #include<gecode/set.hh> #endif #ifdefGECODE_HAS_FLOAT_VARS #include<gecode/float.hh> #endif /* *Configurelinking * */ #if!defined(GIST_STATIC_LIBS)&&\ (defined(__CYGWIN__)||defined(__MINGW32__)||defined(_MSC_VER)) #ifdefGECODE_BUILD_GIST #defineGECODE_GIST_EXPORT__declspec(dllexport) #else #defineGECODE_GIST_EXPORT__declspec(dllimport) #endif #else #ifdefGECODE_GCC_HAS_CLASS_VISIBILITY #defineGECODE_GIST_EXPORT__attribute__((visibility("default"))) #else #defineGECODE_GIST_EXPORT #endif #endif //Configureauto-linking #ifndefGECODE_BUILD_GIST #defineGECODE_LIBRARY_NAME"Gist" #include<gecode/support/auto-link.hpp> #endif #include<string> #include<sstream> namespaceGecode{ namespaceGist{ classGECODE_GIST_EXPORTInspector{ public: virtualvoidinspect(constSpace&s)=0; virtualstd::stringname(void); virtualvoidfinalize(void); virtual~Inspector(void); }; classGECODE_GIST_EXPORTComparator{ public: virtualvoidcompare(constSpace&s0,constSpace&s1)=0; virtualstd::stringname(void); virtualvoidfinalize(void); virtual~Comparator(void); template<classVar> staticstd::stringcompare(std::stringx_n,constVarArgArray<Var>&x, constVarArgArray<Var>&y); staticstd::stringcompare(std::stringx_n,IntVarx,IntVary); staticstd::stringcompare(std::stringx_n,BoolVarx,BoolVary); #ifdefGECODE_HAS_SET_VARS staticstd::stringcompare(std::stringx_n,SetVarx,SetVary); #endif #ifdefGECODE_HAS_FLOAT_VARS staticstd::stringcompare(std::stringx_n,FloatVarx,FloatVary); #endif }; classTextOutputI; classGECODE_GIST_EXPORTTextOutput{ private: TextOutputI*t; std::stringn; protected: voidinit(void); std::ostream&getStream(void); voidflush(void); voidaddHtml(constchar*s); public: TextOutput(conststd::string&name); voidfinalize(void); virtual~TextOutput(void); virtualstd::stringname(void); }; template<classS> classPrint:publicTextOutput,publicInspector{ public: Print(conststd::string&name); virtualvoidinspect(constSpace&node); virtualstd::stringname(void); virtualvoidfinalize(void); }; template<classS> classVarComparator:publicTextOutput,publicComparator{ public: VarComparator(std::stringname); virtualvoidcompare(constSpace&s0,constSpace&s1); virtualstd::stringname(void); virtualvoidfinalize(void); }; GECODE_GIST_EXPORT voidstopBranch(Space&home); classOptions:publicSearch::Options{ public: class_I{ private: Support::DynamicArray<Inspector*,Heap>_click; unsignedintn_click; Support::DynamicArray<Inspector*,Heap>_solution; unsignedintn_solution; Support::DynamicArray<Inspector*,Heap>_move; unsignedintn_move; Support::DynamicArray<Comparator*,Heap>_compare; unsignedintn_compare; public: _I(void); voidclick(Inspector*i); voidsolution(Inspector*i); voidmove(Inspector*i); voidcompare(Comparator*c); Inspector*click(unsignedinti)const; Inspector*solution(unsignedinti)const; Inspector*move(unsignedinti)const; Comparator*compare(unsignedinti)const; }inspect; GECODE_GIST_EXPORTstaticconstOptionsdef; Options(void); }; GECODE_GIST_EXPORTint explore(Space*root,boolbab,constOptions&opt); int dfs(Space*root,constGist::Options&opt=Gist::Options::def); int bab(Space*root,constGist::Options&opt=Gist::Options::def); } } #include<gecode/gist/gist.hpp> #endif //STATISTICS:gist-any