options.hpp cstring /usr/include/gecode/driver.hh Gecode Gecode::Driver /*-*-mode:C++;c-basic-offset:2;indent-tabs-mode:nil-*-*/ /* *Mainauthors: *ChristianSchulte<schulte@gecode.org> * *Copyright: *ChristianSchulte,2004 * *Lastmodified: *$Date:2013-07-0814:22:40+0200(Mon,08Jul2013)$by$Author:schulte$ *$Revision:13820$ * *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. * */ #include<cstring> namespaceGecode{ namespaceDriver{ /* *Stringoption * */ inlineconstchar* StringValueOption::value(void)const{ returncur; } /* *Stringoption * */ inline StringOption::StringOption(constchar*o,constchar*e,intv) :BaseOption(o,e),cur(v),fst(NULL),lst(NULL){} inlinevoid StringOption::value(intv){ cur=v; } inlineint StringOption::value(void)const{ returncur; } /* *Integeroption * */ inline IntOption::IntOption(constchar*o,constchar*e,intv) :BaseOption(o,e),cur(v){} inlinevoid IntOption::value(intv){ cur=v; } inlineint IntOption::value(void)const{ returncur; } /* *Unsignedintegeroption * */ inline UnsignedIntOption::UnsignedIntOption(constchar*o,constchar*e, unsignedintv) :BaseOption(o,e),cur(v){} inlinevoid UnsignedIntOption::value(unsignedintv){ cur=v; } inlineunsignedint UnsignedIntOption::value(void)const{ returncur; } /* *Doubleoption * */ inline DoubleOption::DoubleOption(constchar*o,constchar*e, doublev) :BaseOption(o,e),cur(v){} inlinevoid DoubleOption::value(doublev){ cur=v; } inlinedouble DoubleOption::value(void)const{ returncur; } /* *Booloption * */ inline BoolOption::BoolOption(constchar*o,constchar*e,boolv) :BaseOption(o,e),cur(v){} inlinevoid BoolOption::value(boolv){ cur=v; } inlinebool BoolOption::value(void)const{ returncur; } } /* *Options * */ inlineconstchar* BaseOptions::name(void)const{ return_name; } /* *Modeloptions * */ inlinevoid Options::model(intv){ _model.value(v); } inlinevoid Options::model(intv,constchar*o,constchar*h){ _model.add(v,o,h); } inlineint Options::model(void)const{ return_model.value(); } inlinevoid Options::symmetry(intv){ _symmetry.value(v); } inlinevoid Options::symmetry(intv,constchar*o,constchar*h){ _symmetry.add(v,o,h); } inlineint Options::symmetry(void)const{ return_symmetry.value(); } inlinevoid Options::propagation(intv){ _propagation.value(v); } inlinevoid Options::propagation(intv,constchar*o,constchar*h){ _propagation.add(v,o,h); } inlineint Options::propagation(void)const{ return_propagation.value(); } inlinevoid Options::icl(IntConLeveli){ _icl.value(i); } inlineIntConLevel Options::icl(void)const{ returnstatic_cast<IntConLevel>(_icl.value()); } inlinevoid Options::branching(intv){ _branching.value(v); } inlinevoid Options::branching(intv,constchar*o,constchar*h){ _branching.add(v,o,h); } inlineint Options::branching(void)const{ return_branching.value(); } inlinevoid Options::decay(doubled){ _decay.value(d); } inlinedouble Options::decay(void)const{ return_decay.value(); } /* *Searchoptions * */ inlinevoid Options::search(intv){ _search.value(v); } inlinevoid Options::search(intv,constchar*o,constchar*h){ _search.add(v,o,h); } inlineint Options::search(void)const{ return_search.value(); } inlinevoid Options::solutions(unsignedintn){ _solutions.value(n); } inlineunsignedint Options::solutions(void)const{ return_solutions.value(); } inlinevoid Options::threads(doublen){ _threads.value(n); } inlinedouble Options::threads(void)const{ return_threads.value(); } inlinevoid Options::c_d(unsignedintd){ _c_d.value(d); } inlineunsignedint Options::c_d(void)const{ return_c_d.value(); } inlinevoid Options::a_d(unsignedintd){ _a_d.value(d); } inlineunsignedint Options::a_d(void)const{ return_a_d.value(); } inlinevoid Options::node(unsignedintn){ _node.value(n); } inlineunsignedint Options::node(void)const{ return_node.value(); } inlinevoid Options::fail(unsignedintn){ _fail.value(n); } inlineunsignedint Options::fail(void)const{ return_fail.value(); } inlinevoid Options::time(unsignedintt){ _time.value(t); } inlineunsignedint Options::time(void)const{ return_time.value(); } inlinevoid Options::restart(RestartModerm){ _restart.value(rm); } inlineRestartMode Options::restart(void)const{ returnstatic_cast<RestartMode>(_restart.value()); } inlinevoid Options::restart_base(doublen){ _r_base.value(n); } inlinedouble Options::restart_base(void)const{ return_r_base.value(); } inlinevoid Options::restart_scale(unsignedintn){ _r_scale.value(n); } inlineunsignedint Options::restart_scale(void)const{ return_r_scale.value(); } inlinevoid Options::nogoods(boolb){ _nogoods.value(b); } inlinebool Options::nogoods(void)const{ return_nogoods.value(); } inlinevoid Options::nogoods_limit(unsignedintl){ _nogoods_limit.value(l); } inlineunsignedint Options::nogoods_limit(void)const{ return_nogoods_limit.value(); } inlinevoid Options::interrupt(boolb){ _interrupt.value(b); } inlinebool Options::interrupt(void)const{ return_interrupt.value(); } /* *Executionoptions * */ inlinevoid Options::mode(ScriptModesm){ _mode.value(sm); } inlineScriptMode Options::mode(void)const{ returnstatic_cast<ScriptMode>(_mode.value()); } inlinevoid Options::samples(unsignedints){ _samples.value(s); } inlineunsignedint Options::samples(void)const{ return_samples.value(); } inlinevoid Options::iterations(unsignedinti){ _iterations.value(i); } inlineunsignedint Options::iterations(void)const{ return_iterations.value(); } inlinevoid Options::print_last(boolp){ _print_last.value(p); } inlinebool Options::print_last(void)const{ return_print_last.value(); } inlinevoid Options::out_file(constchar*f){ _out_file.value(f); } inlineconstchar* Options::out_file(void)const{ return_out_file.value(); } inlinevoid Options::log_file(constchar*f){ _log_file.value(f); } inlineconstchar* Options::log_file(void)const{ return_log_file.value(); } #ifdefGECODE_HAS_GIST forceinline Options::_I::_I(void):_click(heap,1),n_click(0), _solution(heap,1),n_solution(0),_move(heap,1),n_move(0), _compare(heap,1),n_compare(0){} forceinlinevoid Options::_I::click(Gist::Inspector*i){ _click[static_cast<int>(n_click++)]=i; } forceinlinevoid Options::_I::solution(Gist::Inspector*i){ _solution[static_cast<int>(n_solution++)]=i; } forceinlinevoid Options::_I::move(Gist::Inspector*i){ _move[static_cast<int>(n_move++)]=i; } forceinlinevoid Options::_I::compare(Gist::Comparator*i){ _compare[static_cast<int>(n_compare++)]=i; } forceinlineGist::Inspector* Options::_I::click(unsignedinti)const{ return(i<n_click)?_click[i]:NULL; } forceinlineGist::Inspector* Options::_I::solution(unsignedinti)const{ return(i<n_solution)?_solution[i]:NULL; } forceinlineGist::Inspector* Options::_I::move(unsignedinti)const{ return(i<n_move)?_move[i]:NULL; } forceinlineGist::Comparator* Options::_I::compare(unsignedinti)const{ return(i<n_compare)?_compare[i]:NULL; } #endif /* *Optionswithadditionalsizeargument * */ inlinevoid SizeOptions::size(unsignedints){ _size=s; } inlineunsignedint SizeOptions::size(void)const{ return_size; } /* *Optionswithadditionalstringargument * */ inlineconstchar* InstanceOptions::instance(void)const{ return_inst; } } //STATISTICS:driver-any