1870 lines
208 KiB
XML
1870 lines
208 KiB
XML
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.6">
|
|
<compounddef id="bool-int_8hpp" kind="file">
|
|
<compoundname>bool-int.hpp</compoundname>
|
|
<includes local="no">algorithm</includes>
|
|
<includes refid="bool_8hh" local="no">gecode/int/bool.hh</includes>
|
|
<includedby refid="int_2linear_8hh" local="no">/usr/include/gecode/int/linear.hh</includedby>
|
|
<incdepgraph>
|
|
<node id="16680">
|
|
<label>gecode/support/cast.hpp</label>
|
|
<link refid="cast_8hpp_source"/>
|
|
</node>
|
|
<node id="16771">
|
|
<label>gecode/iter/values-ranges.hpp</label>
|
|
<link refid="values-ranges_8hpp_source"/>
|
|
</node>
|
|
<node id="16793">
|
|
<label>gecode/int/div.hh</label>
|
|
<link refid="div_8hh_source"/>
|
|
<childnode refid="16664" relation="include">
|
|
</childnode>
|
|
<childnode refid="16794" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16792">
|
|
<label>gecode/int/view/scale.hpp</label>
|
|
<link refid="int_2view_2scale_8hpp_source"/>
|
|
<childnode refid="16793" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16760">
|
|
<label>gecode/iter/ranges-rangelist.hpp</label>
|
|
<link refid="ranges-rangelist_8hpp_source"/>
|
|
</node>
|
|
<node id="16733">
|
|
<label>gecode/kernel/brancher-val-sel-commit.hpp</label>
|
|
<link refid="brancher-val-sel-commit_8hpp_source"/>
|
|
</node>
|
|
<node id="16766">
|
|
<label>gecode/iter/values-map.hpp</label>
|
|
<link refid="values-map_8hpp_source"/>
|
|
</node>
|
|
<node id="16751">
|
|
<label>gecode/iter/ranges-negative.hpp</label>
|
|
<link refid="ranges-negative_8hpp_source"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16695">
|
|
<label>gecode/support/static-stack.hpp</label>
|
|
<link refid="static-stack_8hpp_source"/>
|
|
</node>
|
|
<node id="16735">
|
|
<label>gecode/kernel/var-imp.hpp</label>
|
|
<link refid="kernel_2var-imp_8hpp_source"/>
|
|
</node>
|
|
<node id="16693">
|
|
<label>gecode/support/random.hpp</label>
|
|
<link refid="random_8hpp_source"/>
|
|
</node>
|
|
<node id="16824">
|
|
<label>gecode/int/rel/nq.hpp</label>
|
|
<link refid="int_2rel_2nq_8hpp_source"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16737">
|
|
<label>limits</label>
|
|
</node>
|
|
<node id="16711">
|
|
<label>gecode/kernel/var.hpp</label>
|
|
<link refid="kernel_2var_8hpp_source"/>
|
|
</node>
|
|
<node id="16796">
|
|
<label>gecode/int/view/bool.hpp</label>
|
|
<link refid="int_2view_2bool_8hpp_source"/>
|
|
</node>
|
|
<node id="16775">
|
|
<label>gecode/iter/ranges-size.hpp</label>
|
|
<link refid="ranges-size_8hpp_source"/>
|
|
</node>
|
|
<node id="16696">
|
|
<label>gecode/support/thread/none.hpp</label>
|
|
<link refid="none_8hpp_source"/>
|
|
</node>
|
|
<node id="16715">
|
|
<label>iterator</label>
|
|
</node>
|
|
<node id="16743">
|
|
<label>gecode/iter/ranges-array.hpp</label>
|
|
<link refid="ranges-array_8hpp_source"/>
|
|
</node>
|
|
<node id="16698">
|
|
<label>gecode/support/timer.hpp</label>
|
|
<link refid="timer_8hpp_source"/>
|
|
</node>
|
|
<node id="16697">
|
|
<label>gecode/support/thread/thread.hpp</label>
|
|
<link refid="thread_2thread_8hpp_source"/>
|
|
</node>
|
|
<node id="16759">
|
|
<label>gecode/iter/ranges-singleton-append.hpp</label>
|
|
<link refid="ranges-singleton-append_8hpp_source"/>
|
|
</node>
|
|
<node id="16753">
|
|
<label>gecode/iter/ranges-positive.hpp</label>
|
|
<link refid="ranges-positive_8hpp_source"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16732">
|
|
<label>gecode/kernel/brancher-val-commit.hpp</label>
|
|
<link refid="brancher-val-commit_8hpp_source"/>
|
|
</node>
|
|
<node id="16784">
|
|
<label>gecode/int/view/iter.hpp</label>
|
|
<link refid="int_2view_2iter_8hpp_source"/>
|
|
</node>
|
|
<node id="16822">
|
|
<label>gecode/int/rel.hh</label>
|
|
<link refid="int_2rel_8hh_source"/>
|
|
<childnode refid="16664" relation="include">
|
|
</childnode>
|
|
<childnode refid="16823" relation="include">
|
|
</childnode>
|
|
<childnode refid="16824" relation="include">
|
|
</childnode>
|
|
<childnode refid="16825" relation="include">
|
|
</childnode>
|
|
<childnode refid="16826" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16722">
|
|
<label>gecode/kernel/afc.hpp</label>
|
|
<link refid="kernel_2afc_8hpp_source"/>
|
|
</node>
|
|
<node id="16707">
|
|
<label>gecode/kernel/var-type.hpp</label>
|
|
<link refid="var-type_8hpp_source"/>
|
|
</node>
|
|
<node id="16699">
|
|
<label>gecode/support/hw-rnd.hpp</label>
|
|
<link refid="hw-rnd_8hpp_source"/>
|
|
</node>
|
|
<node id="16763">
|
|
<label>gecode/iter/values-bitsetoffset.hpp</label>
|
|
<link refid="values-bitsetoffset_8hpp_source"/>
|
|
</node>
|
|
<node id="16687">
|
|
<label>cmath</label>
|
|
</node>
|
|
<node id="16673">
|
|
<label>cassert</label>
|
|
</node>
|
|
<node id="16729">
|
|
<label>gecode/kernel/brancher-view-sel.hpp</label>
|
|
<link refid="brancher-view-sel_8hpp_source"/>
|
|
</node>
|
|
<node id="16736">
|
|
<label>gecode/kernel/allocators.hpp</label>
|
|
<link refid="allocators_8hpp_source"/>
|
|
<childnode refid="16737" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16804">
|
|
<label>gecode/int/int-set-2.hpp</label>
|
|
<link refid="int-set-2_8hpp_source"/>
|
|
</node>
|
|
<node id="16714">
|
|
<label>cstdarg</label>
|
|
</node>
|
|
<node id="16685">
|
|
<label>gecode/support/bitset-base.hpp</label>
|
|
<link refid="bitset-base_8hpp_source"/>
|
|
<childnode refid="16665" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16717">
|
|
<label>gecode/kernel/shared-array.hpp</label>
|
|
<link refid="shared-array_8hpp_source"/>
|
|
<childnode refid="16714" relation="include">
|
|
</childnode>
|
|
<childnode refid="16667" relation="include">
|
|
</childnode>
|
|
<childnode refid="16716" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16795">
|
|
<label>gecode/int/view/cached.hpp</label>
|
|
<link refid="int_2view_2cached_8hpp_source"/>
|
|
</node>
|
|
<node id="16708">
|
|
<label>gecode/kernel/modevent.hpp</label>
|
|
<link refid="modevent_8hpp_source"/>
|
|
</node>
|
|
<node id="16701">
|
|
<label>gecode/kernel/memory-config.hpp</label>
|
|
<link refid="memory-config_8hpp_source"/>
|
|
</node>
|
|
<node id="16813">
|
|
<label>gecode/int/branch/val.hpp</label>
|
|
<link refid="int_2branch_2val_8hpp_source"/>
|
|
</node>
|
|
<node id="16684">
|
|
<label>gecode/support/int-type.hpp</label>
|
|
<link refid="int-type_8hpp_source"/>
|
|
<childnode refid="16665" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16770">
|
|
<label>gecode/iter/values-positive.hpp</label>
|
|
<link refid="values-positive_8hpp_source"/>
|
|
</node>
|
|
<node id="16666">
|
|
<label>cfloat</label>
|
|
</node>
|
|
<node id="16776">
|
|
<label>gecode/int/exception.hpp</label>
|
|
<link refid="int_2exception_8hpp_source"/>
|
|
</node>
|
|
<node id="16678">
|
|
<label>gecode/support/exception.hpp</label>
|
|
<link refid="support_2exception_8hpp_source"/>
|
|
<childnode refid="16679" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16679">
|
|
<label>exception</label>
|
|
</node>
|
|
<node id="16818">
|
|
<label>gecode/int/bool/or.hpp</label>
|
|
<link refid="or_8hpp_source"/>
|
|
</node>
|
|
<node id="16816">
|
|
<label>gecode/int/bool/eq.hpp</label>
|
|
<link refid="int_2bool_2eq_8hpp_source"/>
|
|
</node>
|
|
<node id="16749">
|
|
<label>gecode/iter/ranges-map.hpp</label>
|
|
<link refid="ranges-map_8hpp_source"/>
|
|
</node>
|
|
<node id="16710">
|
|
<label>gecode/kernel/region.hpp</label>
|
|
<link refid="region_8hpp_source"/>
|
|
</node>
|
|
<node id="16683">
|
|
<label>gecode/support/marked-pointer.hpp</label>
|
|
<link refid="marked-pointer_8hpp_source"/>
|
|
<childnode refid="16670" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16681">
|
|
<label>gecode/support/thread.hpp</label>
|
|
<link refid="thread_8hpp_source"/>
|
|
<childnode refid="16670" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16669">
|
|
<label>gecode/kernel.hh</label>
|
|
<link refid="kernel_8hh_source"/>
|
|
<childnode refid="16670" relation="include">
|
|
</childnode>
|
|
<childnode refid="16671" relation="include">
|
|
</childnode>
|
|
<childnode refid="16672" relation="include">
|
|
</childnode>
|
|
<childnode refid="16673" relation="include">
|
|
</childnode>
|
|
<childnode refid="16674" relation="include">
|
|
</childnode>
|
|
<childnode refid="16676" relation="include">
|
|
</childnode>
|
|
<childnode refid="16700" relation="include">
|
|
</childnode>
|
|
<childnode refid="16701" relation="include">
|
|
</childnode>
|
|
<childnode refid="16702" relation="include">
|
|
</childnode>
|
|
<childnode refid="16703" relation="include">
|
|
</childnode>
|
|
<childnode refid="16704" relation="include">
|
|
</childnode>
|
|
<childnode refid="16705" relation="include">
|
|
</childnode>
|
|
<childnode refid="16706" relation="include">
|
|
</childnode>
|
|
<childnode refid="16708" relation="include">
|
|
</childnode>
|
|
<childnode refid="16709" relation="include">
|
|
</childnode>
|
|
<childnode refid="16710" relation="include">
|
|
</childnode>
|
|
<childnode refid="16711" relation="include">
|
|
</childnode>
|
|
<childnode refid="16712" relation="include">
|
|
</childnode>
|
|
<childnode refid="16713" relation="include">
|
|
</childnode>
|
|
<childnode refid="16717" relation="include">
|
|
</childnode>
|
|
<childnode refid="16718" relation="include">
|
|
</childnode>
|
|
<childnode refid="16720" relation="include">
|
|
</childnode>
|
|
<childnode refid="16721" relation="include">
|
|
</childnode>
|
|
<childnode refid="16722" relation="include">
|
|
</childnode>
|
|
<childnode refid="16723" relation="include">
|
|
</childnode>
|
|
<childnode refid="16724" relation="include">
|
|
</childnode>
|
|
<childnode refid="16725" relation="include">
|
|
</childnode>
|
|
<childnode refid="16726" relation="include">
|
|
</childnode>
|
|
<childnode refid="16727" relation="include">
|
|
</childnode>
|
|
<childnode refid="16728" relation="include">
|
|
</childnode>
|
|
<childnode refid="16729" relation="include">
|
|
</childnode>
|
|
<childnode refid="16730" relation="include">
|
|
</childnode>
|
|
<childnode refid="16731" relation="include">
|
|
</childnode>
|
|
<childnode refid="16732" relation="include">
|
|
</childnode>
|
|
<childnode refid="16733" relation="include">
|
|
</childnode>
|
|
<childnode refid="16734" relation="include">
|
|
</childnode>
|
|
<childnode refid="16735" relation="include">
|
|
</childnode>
|
|
<childnode refid="16736" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16778">
|
|
<label>gecode/int/int-set-1.hpp</label>
|
|
<link refid="int-set-1_8hpp_source"/>
|
|
<childnode refid="16716" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16723">
|
|
<label>gecode/kernel/branch-traits.hpp</label>
|
|
<link refid="branch-traits_8hpp_source"/>
|
|
</node>
|
|
<node id="16789">
|
|
<label>gecode/int/view/zero.hpp</label>
|
|
<link refid="zero_8hpp_source"/>
|
|
</node>
|
|
<node id="16745">
|
|
<label>gecode/iter/ranges-compl.hpp</label>
|
|
<link refid="ranges-compl_8hpp_source"/>
|
|
</node>
|
|
<node id="16807">
|
|
<label>gecode/int/extensional/dfa.hpp</label>
|
|
<link refid="dfa_8hpp_source"/>
|
|
<childnode refid="16716" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16713">
|
|
<label>gecode/kernel/array.hpp</label>
|
|
<link refid="kernel_2array_8hpp_source"/>
|
|
<childnode refid="16714" relation="include">
|
|
</childnode>
|
|
<childnode refid="16667" relation="include">
|
|
</childnode>
|
|
<childnode refid="16715" relation="include">
|
|
</childnode>
|
|
<childnode refid="16668" relation="include">
|
|
</childnode>
|
|
<childnode refid="16716" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16810">
|
|
<label>gecode/int/branch/afc.hpp</label>
|
|
<link refid="int_2branch_2afc_8hpp_source"/>
|
|
</node>
|
|
<node id="16727">
|
|
<label>gecode/kernel/branch-val.hpp</label>
|
|
<link refid="branch-val_8hpp_source"/>
|
|
</node>
|
|
<node id="16692">
|
|
<label>gecode/support/dynamic-stack.hpp</label>
|
|
<link refid="dynamic-stack_8hpp_source"/>
|
|
</node>
|
|
<node id="16754">
|
|
<label>gecode/iter/ranges-scale.hpp</label>
|
|
<link refid="ranges-scale_8hpp_source"/>
|
|
<childnode refid="16687" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16704">
|
|
<label>gecode/kernel/archive.hpp</label>
|
|
<link refid="archive_8hpp_source"/>
|
|
</node>
|
|
<node id="16709">
|
|
<label>gecode/kernel/range-list.hpp</label>
|
|
<link refid="range-list_8hpp_source"/>
|
|
</node>
|
|
<node id="16765">
|
|
<label>gecode/iter/values-inter.hpp</label>
|
|
<link refid="values-inter_8hpp_source"/>
|
|
</node>
|
|
<node id="16728">
|
|
<label>gecode/kernel/brancher-merit.hpp</label>
|
|
<link refid="brancher-merit_8hpp_source"/>
|
|
</node>
|
|
<node id="16675">
|
|
<label>gecode/support/config.hpp</label>
|
|
<link refid="support_2config_8hpp_source"/>
|
|
</node>
|
|
<node id="16801">
|
|
<label>gecode/int/view/bool-test.hpp</label>
|
|
<link refid="bool-test_8hpp_source"/>
|
|
</node>
|
|
<node id="16758">
|
|
<label>gecode/iter/ranges-add.hpp</label>
|
|
<link refid="ranges-add_8hpp_source"/>
|
|
</node>
|
|
<node id="16783">
|
|
<label>gecode/int/view.hpp</label>
|
|
<link refid="int_2view_8hpp_source"/>
|
|
<childnode refid="16667" relation="include">
|
|
</childnode>
|
|
<childnode refid="16784" relation="include">
|
|
</childnode>
|
|
<childnode refid="16785" relation="include">
|
|
</childnode>
|
|
<childnode refid="16786" relation="include">
|
|
</childnode>
|
|
<childnode refid="16787" relation="include">
|
|
</childnode>
|
|
<childnode refid="16788" relation="include">
|
|
</childnode>
|
|
<childnode refid="16789" relation="include">
|
|
</childnode>
|
|
<childnode refid="16790" relation="include">
|
|
</childnode>
|
|
<childnode refid="16791" relation="include">
|
|
</childnode>
|
|
<childnode refid="16792" relation="include">
|
|
</childnode>
|
|
<childnode refid="16795" relation="include">
|
|
</childnode>
|
|
<childnode refid="16796" relation="include">
|
|
</childnode>
|
|
<childnode refid="16797" relation="include">
|
|
</childnode>
|
|
<childnode refid="16798" relation="include">
|
|
</childnode>
|
|
<childnode refid="16799" relation="include">
|
|
</childnode>
|
|
<childnode refid="16800" relation="include">
|
|
</childnode>
|
|
<childnode refid="16801" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16764">
|
|
<label>gecode/iter/values-list.hpp</label>
|
|
<link refid="values-list_8hpp_source"/>
|
|
</node>
|
|
<node id="16767">
|
|
<label>gecode/iter/values-minus.hpp</label>
|
|
<link refid="values-minus_8hpp_source"/>
|
|
</node>
|
|
<node id="16663">
|
|
<label>gecode/int/bool.hh</label>
|
|
<link refid="bool_8hh_source"/>
|
|
<childnode refid="16664" relation="include">
|
|
</childnode>
|
|
<childnode refid="16815" relation="include">
|
|
</childnode>
|
|
<childnode refid="16816" relation="include">
|
|
</childnode>
|
|
<childnode refid="16817" relation="include">
|
|
</childnode>
|
|
<childnode refid="16818" relation="include">
|
|
</childnode>
|
|
<childnode refid="16819" relation="include">
|
|
</childnode>
|
|
<childnode refid="16820" relation="include">
|
|
</childnode>
|
|
<childnode refid="16821" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16820">
|
|
<label>gecode/int/bool/clause.hpp</label>
|
|
<link refid="clause_8hpp_source"/>
|
|
</node>
|
|
<node id="16725">
|
|
<label>gecode/kernel/branch-var.hpp</label>
|
|
<link refid="branch-var_8hpp_source"/>
|
|
</node>
|
|
<node id="16825">
|
|
<label>gecode/int/rel/lq-le.hpp</label>
|
|
<link refid="int_2rel_2lq-le_8hpp_source"/>
|
|
</node>
|
|
<node id="16702">
|
|
<label>gecode/kernel/memory-manager.hpp</label>
|
|
<link refid="memory-manager_8hpp_source"/>
|
|
</node>
|
|
<node id="16777">
|
|
<label>gecode/int/limits.hpp</label>
|
|
<link refid="int_2limits_8hpp_source"/>
|
|
</node>
|
|
<node id="16691">
|
|
<label>gecode/support/dynamic-queue.hpp</label>
|
|
<link refid="dynamic-queue_8hpp_source"/>
|
|
</node>
|
|
<node id="16802">
|
|
<label>gecode/int/propagator.hpp</label>
|
|
<link refid="int_2propagator_8hpp_source"/>
|
|
</node>
|
|
<node id="16809">
|
|
<label>gecode/int/branch/traits.hpp</label>
|
|
<link refid="int_2branch_2traits_8hpp_source"/>
|
|
</node>
|
|
<node id="16773">
|
|
<label>gecode/iter/values-union.hpp</label>
|
|
<link refid="values-union_8hpp_source"/>
|
|
</node>
|
|
<node id="16703">
|
|
<label>gecode/kernel/macros.hpp</label>
|
|
<link refid="kernel_2macros_8hpp_source"/>
|
|
</node>
|
|
<node id="16752">
|
|
<label>gecode/iter/ranges-offset.hpp</label>
|
|
<link refid="ranges-offset_8hpp_source"/>
|
|
</node>
|
|
<node id="16719">
|
|
<label>ctime</label>
|
|
</node>
|
|
<node id="16791">
|
|
<label>gecode/int/view/offset.hpp</label>
|
|
<link refid="int_2view_2offset_8hpp_source"/>
|
|
</node>
|
|
<node id="16815">
|
|
<label>gecode/int/bool/base.hpp</label>
|
|
<link refid="bool_2base_8hpp_source"/>
|
|
</node>
|
|
<node id="16761">
|
|
<label>gecode/iter/values-array.hpp</label>
|
|
<link refid="values-array_8hpp_source"/>
|
|
</node>
|
|
<node id="16812">
|
|
<label>gecode/int/branch/var.hpp</label>
|
|
<link refid="int_2branch_2var_8hpp_source"/>
|
|
</node>
|
|
<node id="16755">
|
|
<label>gecode/iter/ranges-singleton.hpp</label>
|
|
<link refid="ranges-singleton_8hpp_source"/>
|
|
</node>
|
|
<node id="16821">
|
|
<label>gecode/int/bool/ite.hpp</label>
|
|
<link refid="ite_8hpp_source"/>
|
|
<childnode refid="16822" relation="include">
|
|
</childnode>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16668">
|
|
<label>vector</label>
|
|
</node>
|
|
<node id="16826">
|
|
<label>gecode/int/rel/lex.hpp</label>
|
|
<link refid="lex_8hpp_source"/>
|
|
</node>
|
|
<node id="16798">
|
|
<label>gecode/int/view/print.hpp</label>
|
|
<link refid="int_2view_2print_8hpp_source"/>
|
|
<childnode refid="16716" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16721">
|
|
<label>gecode/kernel/advisor.hpp</label>
|
|
<link refid="advisor_8hpp_source"/>
|
|
</node>
|
|
<node id="16661">
|
|
<label>/usr/include/gecode/int/linear/bool-int.hpp</label>
|
|
<link refid="bool-int.hpp"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
<childnode refid="16663" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16808">
|
|
<label>gecode/int/extensional/tuple-set.hpp</label>
|
|
<link refid="tuple-set_8hpp_source"/>
|
|
<childnode refid="16716" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16734">
|
|
<label>gecode/kernel/brancher-view-val.hpp</label>
|
|
<link refid="brancher-view-val_8hpp_source"/>
|
|
</node>
|
|
<node id="16787">
|
|
<label>gecode/int/view/int.hpp</label>
|
|
<link refid="int_2view_2int_8hpp_source"/>
|
|
</node>
|
|
<node id="16800">
|
|
<label>gecode/int/view/rel-test.hpp</label>
|
|
<link refid="int_2view_2rel-test_8hpp_source"/>
|
|
</node>
|
|
<node id="16716">
|
|
<label>sstream</label>
|
|
</node>
|
|
<node id="16803">
|
|
<label>gecode/int/array-traits.hpp</label>
|
|
<link refid="int_2array-traits_8hpp_source"/>
|
|
</node>
|
|
<node id="16819">
|
|
<label>gecode/int/bool/eqv.hpp</label>
|
|
<link refid="eqv_8hpp_source"/>
|
|
</node>
|
|
<node id="16731">
|
|
<label>gecode/kernel/brancher-val-sel.hpp</label>
|
|
<link refid="brancher-val-sel_8hpp_source"/>
|
|
</node>
|
|
<node id="16720">
|
|
<label>gecode/kernel/propagator.hpp</label>
|
|
<link refid="kernel_2propagator_8hpp_source"/>
|
|
</node>
|
|
<node id="16689">
|
|
<label>gecode/support/block-allocator.hpp</label>
|
|
<link refid="block-allocator_8hpp_source"/>
|
|
</node>
|
|
<node id="16794">
|
|
<label>gecode/int/div.hpp</label>
|
|
<link refid="int_2div_8hpp_source"/>
|
|
</node>
|
|
<node id="16769">
|
|
<label>gecode/iter/values-offset.hpp</label>
|
|
<link refid="values-offset_8hpp_source"/>
|
|
</node>
|
|
<node id="16805">
|
|
<label>gecode/int/array.hpp</label>
|
|
<link refid="int_2array_8hpp_source"/>
|
|
</node>
|
|
<node id="16817">
|
|
<label>gecode/int/bool/lq.hpp</label>
|
|
<link refid="int_2bool_2lq_8hpp_source"/>
|
|
</node>
|
|
<node id="16724">
|
|
<label>gecode/kernel/activity.hpp</label>
|
|
<link refid="kernel_2activity_8hpp_source"/>
|
|
</node>
|
|
<node id="16664">
|
|
<label>gecode/int.hh</label>
|
|
<link refid="int_8hh_source"/>
|
|
<childnode refid="16665" relation="include">
|
|
</childnode>
|
|
<childnode refid="16666" relation="include">
|
|
</childnode>
|
|
<childnode refid="16667" relation="include">
|
|
</childnode>
|
|
<childnode refid="16668" relation="include">
|
|
</childnode>
|
|
<childnode refid="16669" relation="include">
|
|
</childnode>
|
|
<childnode refid="16738" relation="include">
|
|
</childnode>
|
|
<childnode refid="16676" relation="include">
|
|
</childnode>
|
|
<childnode refid="16776" relation="include">
|
|
</childnode>
|
|
<childnode refid="16777" relation="include">
|
|
</childnode>
|
|
<childnode refid="16778" relation="include">
|
|
</childnode>
|
|
<childnode refid="16779" relation="include">
|
|
</childnode>
|
|
<childnode refid="16783" relation="include">
|
|
</childnode>
|
|
<childnode refid="16802" relation="include">
|
|
</childnode>
|
|
<childnode refid="16803" relation="include">
|
|
</childnode>
|
|
<childnode refid="16804" relation="include">
|
|
</childnode>
|
|
<childnode refid="16805" relation="include">
|
|
</childnode>
|
|
<childnode refid="16806" relation="include">
|
|
</childnode>
|
|
<childnode refid="16807" relation="include">
|
|
</childnode>
|
|
<childnode refid="16808" relation="include">
|
|
</childnode>
|
|
<childnode refid="16809" relation="include">
|
|
</childnode>
|
|
<childnode refid="16810" relation="include">
|
|
</childnode>
|
|
<childnode refid="16811" relation="include">
|
|
</childnode>
|
|
<childnode refid="16812" relation="include">
|
|
</childnode>
|
|
<childnode refid="16813" relation="include">
|
|
</childnode>
|
|
<childnode refid="16814" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16671">
|
|
<label>cstdlib</label>
|
|
</node>
|
|
<node id="16686">
|
|
<label>gecode/support/bitset.hpp</label>
|
|
<link refid="bitset_8hpp_source"/>
|
|
<childnode refid="16665" relation="include">
|
|
</childnode>
|
|
<childnode refid="16687" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16786">
|
|
<label>gecode/int/var/bool.hpp</label>
|
|
<link refid="int_2var_2bool_8hpp_source"/>
|
|
</node>
|
|
<node id="16676">
|
|
<label>gecode/support/auto-link.hpp</label>
|
|
<link refid="auto-link_8hpp_source"/>
|
|
</node>
|
|
<node id="16814">
|
|
<label>gecode/int/branch/assign.hpp</label>
|
|
<link refid="int_2branch_2assign_8hpp_source"/>
|
|
</node>
|
|
<node id="16667">
|
|
<label>iostream</label>
|
|
</node>
|
|
<node id="16700">
|
|
<label>gecode/kernel/exception.hpp</label>
|
|
<link refid="kernel_2exception_8hpp_source"/>
|
|
</node>
|
|
<node id="16797">
|
|
<label>gecode/int/view/neg-bool.hpp</label>
|
|
<link refid="neg-bool_8hpp_source"/>
|
|
</node>
|
|
<node id="16750">
|
|
<label>gecode/iter/ranges-minus.hpp</label>
|
|
<link refid="ranges-minus_8hpp_source"/>
|
|
</node>
|
|
<node id="16768">
|
|
<label>gecode/iter/values-negative.hpp</label>
|
|
<link refid="values-negative_8hpp_source"/>
|
|
</node>
|
|
<node id="16677">
|
|
<label>gecode/support/macros.hpp</label>
|
|
<link refid="support_2macros_8hpp_source"/>
|
|
</node>
|
|
<node id="16712">
|
|
<label>gecode/kernel/view.hpp</label>
|
|
<link refid="kernel_2view_8hpp_source"/>
|
|
</node>
|
|
<node id="16726">
|
|
<label>gecode/kernel/branch-tiebreak.hpp</label>
|
|
<link refid="branch-tiebreak_8hpp_source"/>
|
|
</node>
|
|
<node id="16670">
|
|
<label>cstddef</label>
|
|
</node>
|
|
<node id="16665">
|
|
<label>climits</label>
|
|
</node>
|
|
<node id="16772">
|
|
<label>gecode/iter/values-singleton.hpp</label>
|
|
<link refid="values-singleton_8hpp_source"/>
|
|
</node>
|
|
<node id="16706">
|
|
<label>gecode/kernel/core.hpp</label>
|
|
<link refid="core_8hpp_source"/>
|
|
<childnode refid="16667" relation="include">
|
|
</childnode>
|
|
<childnode refid="16707" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16748">
|
|
<label>gecode/iter/ranges-inter.hpp</label>
|
|
<link refid="ranges-inter_8hpp_source"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16742">
|
|
<label>gecode/iter/ranges-append.hpp</label>
|
|
<link refid="ranges-append_8hpp_source"/>
|
|
</node>
|
|
<node id="16739">
|
|
<label>gecode/iter/ranges-operations.hpp</label>
|
|
<link refid="ranges-operations_8hpp_source"/>
|
|
</node>
|
|
<node id="16674">
|
|
<label>gecode/support.hh</label>
|
|
<link refid="support_8hh_source"/>
|
|
<childnode refid="16673" relation="include">
|
|
</childnode>
|
|
<childnode refid="16675" relation="include">
|
|
</childnode>
|
|
<childnode refid="16676" relation="include">
|
|
</childnode>
|
|
<childnode refid="16677" relation="include">
|
|
</childnode>
|
|
<childnode refid="16678" relation="include">
|
|
</childnode>
|
|
<childnode refid="16680" relation="include">
|
|
</childnode>
|
|
<childnode refid="16681" relation="include">
|
|
</childnode>
|
|
<childnode refid="16682" relation="include">
|
|
</childnode>
|
|
<childnode refid="16683" relation="include">
|
|
</childnode>
|
|
<childnode refid="16684" relation="include">
|
|
</childnode>
|
|
<childnode refid="16685" relation="include">
|
|
</childnode>
|
|
<childnode refid="16686" relation="include">
|
|
</childnode>
|
|
<childnode refid="16688" relation="include">
|
|
</childnode>
|
|
<childnode refid="16689" relation="include">
|
|
</childnode>
|
|
<childnode refid="16690" relation="include">
|
|
</childnode>
|
|
<childnode refid="16691" relation="include">
|
|
</childnode>
|
|
<childnode refid="16692" relation="include">
|
|
</childnode>
|
|
<childnode refid="16693" relation="include">
|
|
</childnode>
|
|
<childnode refid="16694" relation="include">
|
|
</childnode>
|
|
<childnode refid="16695" relation="include">
|
|
</childnode>
|
|
<childnode refid="16696" relation="include">
|
|
</childnode>
|
|
<childnode refid="16697" relation="include">
|
|
</childnode>
|
|
<childnode refid="16698" relation="include">
|
|
</childnode>
|
|
<childnode refid="16699" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16811">
|
|
<label>gecode/int/branch/activity.hpp</label>
|
|
<link refid="int_2branch_2activity_8hpp_source"/>
|
|
</node>
|
|
<node id="16781">
|
|
<label>gecode/int/var-imp/int.hpp</label>
|
|
<link refid="int_2var-imp_2int_8hpp_source"/>
|
|
</node>
|
|
<node id="16779">
|
|
<label>gecode/int/var-imp.hpp</label>
|
|
<link refid="int_2var-imp_8hpp_source"/>
|
|
<childnode refid="16687" relation="include">
|
|
</childnode>
|
|
<childnode refid="16780" relation="include">
|
|
</childnode>
|
|
<childnode refid="16781" relation="include">
|
|
</childnode>
|
|
<childnode refid="16782" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16744">
|
|
<label>gecode/iter/ranges-cache.hpp</label>
|
|
<link refid="ranges-cache_8hpp_source"/>
|
|
</node>
|
|
<node id="16690">
|
|
<label>gecode/support/dynamic-array.hpp</label>
|
|
<link refid="dynamic-array_8hpp_source"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16788">
|
|
<label>gecode/int/view/constint.hpp</label>
|
|
<link refid="constint_8hpp_source"/>
|
|
</node>
|
|
<node id="16774">
|
|
<label>gecode/iter/values-unique.hpp</label>
|
|
<link refid="values-unique_8hpp_source"/>
|
|
</node>
|
|
<node id="16746">
|
|
<label>gecode/iter/ranges-diff.hpp</label>
|
|
<link refid="ranges-diff_8hpp_source"/>
|
|
</node>
|
|
<node id="16694">
|
|
<label>gecode/support/sort.hpp</label>
|
|
<link refid="support_2sort_8hpp_source"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
<childnode refid="16665" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16780">
|
|
<label>gecode/int/var-imp/delta.hpp</label>
|
|
<link refid="int_2var-imp_2delta_8hpp_source"/>
|
|
</node>
|
|
<node id="16718">
|
|
<label>gecode/kernel/rnd.hpp</label>
|
|
<link refid="rnd_8hpp_source"/>
|
|
<childnode refid="16719" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16662">
|
|
<label>algorithm</label>
|
|
</node>
|
|
<node id="16730">
|
|
<label>gecode/kernel/brancher-view.hpp</label>
|
|
<link refid="brancher-view_8hpp_source"/>
|
|
</node>
|
|
<node id="16823">
|
|
<label>gecode/int/rel/eq.hpp</label>
|
|
<link refid="int_2rel_2eq_8hpp_source"/>
|
|
</node>
|
|
<node id="16762">
|
|
<label>gecode/iter/values-bitset.hpp</label>
|
|
<link refid="values-bitset_8hpp_source"/>
|
|
</node>
|
|
<node id="16705">
|
|
<label>gecode/kernel/global-afc.hpp</label>
|
|
<link refid="global-afc_8hpp_source"/>
|
|
<childnode refid="16687" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16747">
|
|
<label>gecode/iter/ranges-empty.hpp</label>
|
|
<link refid="ranges-empty_8hpp_source"/>
|
|
</node>
|
|
<node id="16785">
|
|
<label>gecode/int/var/int.hpp</label>
|
|
<link refid="int_2var_2int_8hpp_source"/>
|
|
</node>
|
|
<node id="16738">
|
|
<label>gecode/iter.hh</label>
|
|
<link refid="iter_8hh_source"/>
|
|
<childnode refid="16669" relation="include">
|
|
</childnode>
|
|
<childnode refid="16739" relation="include">
|
|
</childnode>
|
|
<childnode refid="16740" relation="include">
|
|
</childnode>
|
|
<childnode refid="16741" relation="include">
|
|
</childnode>
|
|
<childnode refid="16742" relation="include">
|
|
</childnode>
|
|
<childnode refid="16743" relation="include">
|
|
</childnode>
|
|
<childnode refid="16744" relation="include">
|
|
</childnode>
|
|
<childnode refid="16745" relation="include">
|
|
</childnode>
|
|
<childnode refid="16746" relation="include">
|
|
</childnode>
|
|
<childnode refid="16747" relation="include">
|
|
</childnode>
|
|
<childnode refid="16748" relation="include">
|
|
</childnode>
|
|
<childnode refid="16749" relation="include">
|
|
</childnode>
|
|
<childnode refid="16750" relation="include">
|
|
</childnode>
|
|
<childnode refid="16751" relation="include">
|
|
</childnode>
|
|
<childnode refid="16752" relation="include">
|
|
</childnode>
|
|
<childnode refid="16753" relation="include">
|
|
</childnode>
|
|
<childnode refid="16754" relation="include">
|
|
</childnode>
|
|
<childnode refid="16755" relation="include">
|
|
</childnode>
|
|
<childnode refid="16756" relation="include">
|
|
</childnode>
|
|
<childnode refid="16757" relation="include">
|
|
</childnode>
|
|
<childnode refid="16758" relation="include">
|
|
</childnode>
|
|
<childnode refid="16759" relation="include">
|
|
</childnode>
|
|
<childnode refid="16760" relation="include">
|
|
</childnode>
|
|
<childnode refid="16761" relation="include">
|
|
</childnode>
|
|
<childnode refid="16762" relation="include">
|
|
</childnode>
|
|
<childnode refid="16763" relation="include">
|
|
</childnode>
|
|
<childnode refid="16764" relation="include">
|
|
</childnode>
|
|
<childnode refid="16765" relation="include">
|
|
</childnode>
|
|
<childnode refid="16766" relation="include">
|
|
</childnode>
|
|
<childnode refid="16767" relation="include">
|
|
</childnode>
|
|
<childnode refid="16768" relation="include">
|
|
</childnode>
|
|
<childnode refid="16769" relation="include">
|
|
</childnode>
|
|
<childnode refid="16770" relation="include">
|
|
</childnode>
|
|
<childnode refid="16771" relation="include">
|
|
</childnode>
|
|
<childnode refid="16772" relation="include">
|
|
</childnode>
|
|
<childnode refid="16773" relation="include">
|
|
</childnode>
|
|
<childnode refid="16774" relation="include">
|
|
</childnode>
|
|
<childnode refid="16775" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16757">
|
|
<label>gecode/iter/ranges-values.hpp</label>
|
|
<link refid="ranges-values_8hpp_source"/>
|
|
</node>
|
|
<node id="16782">
|
|
<label>gecode/int/var-imp/bool.hpp</label>
|
|
<link refid="int_2var-imp_2bool_8hpp_source"/>
|
|
</node>
|
|
<node id="16672">
|
|
<label>cstring</label>
|
|
</node>
|
|
<node id="16806">
|
|
<label>gecode/int/reify.hpp</label>
|
|
<link refid="reify_8hpp_source"/>
|
|
</node>
|
|
<node id="16756">
|
|
<label>gecode/iter/ranges-union.hpp</label>
|
|
<link refid="ranges-union_8hpp_source"/>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16790">
|
|
<label>gecode/int/view/minus.hpp</label>
|
|
<link refid="int_2view_2minus_8hpp_source"/>
|
|
</node>
|
|
<node id="16740">
|
|
<label>gecode/iter/ranges-minmax.hpp</label>
|
|
<link refid="ranges-minmax_8hpp_source"/>
|
|
</node>
|
|
<node id="16688">
|
|
<label>gecode/support/bitset-offset.hpp</label>
|
|
<link refid="bitset-offset_8hpp_source"/>
|
|
<childnode refid="16665" relation="include">
|
|
</childnode>
|
|
<childnode refid="16687" relation="include">
|
|
</childnode>
|
|
<childnode refid="16667" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16682">
|
|
<label>gecode/support/heap.hpp</label>
|
|
<link refid="heap_8hpp_source"/>
|
|
<childnode refid="16672" relation="include">
|
|
</childnode>
|
|
<childnode refid="16671" relation="include">
|
|
</childnode>
|
|
<childnode refid="16662" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16799">
|
|
<label>gecode/int/var/print.hpp</label>
|
|
<link refid="int_2var_2print_8hpp_source"/>
|
|
</node>
|
|
<node id="16741">
|
|
<label>gecode/iter/ranges-list.hpp</label>
|
|
<link refid="ranges-list_8hpp_source"/>
|
|
</node>
|
|
</incdepgraph>
|
|
<invincdepgraph>
|
|
<node id="16830">
|
|
<label>/usr/include/gecode/int/arithmetic.hh</label>
|
|
<link refid="int_2arithmetic_8hh_source"/>
|
|
</node>
|
|
<node id="16831">
|
|
<label>/usr/include/gecode/int/gcc/post.hpp</label>
|
|
<link refid="int_2gcc_2post_8hpp_source"/>
|
|
<childnode refid="16832" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16827">
|
|
<label>/usr/include/gecode/int/linear/bool-int.hpp</label>
|
|
<link refid="bool-int.hpp"/>
|
|
<childnode refid="16828" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16832">
|
|
<label>/usr/include/gecode/int/gcc.hh</label>
|
|
<link refid="gcc_8hh_source"/>
|
|
</node>
|
|
<node id="16829">
|
|
<label>/usr/include/gecode/int/arithmetic/divmod.hpp</label>
|
|
<link refid="divmod_8hpp_source"/>
|
|
<childnode refid="16830" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16828">
|
|
<label>/usr/include/gecode/int/linear.hh</label>
|
|
<link refid="int_2linear_8hh_source"/>
|
|
<childnode refid="16829" relation="include">
|
|
</childnode>
|
|
<childnode refid="16830" relation="include">
|
|
</childnode>
|
|
<childnode refid="16831" relation="include">
|
|
</childnode>
|
|
</node>
|
|
</invincdepgraph>
|
|
<innerclass refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01BoolView_01_4" prot="public">Gecode::Int::Linear::BoolNegTraits< BoolView ></innerclass>
|
|
<innerclass refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01NegBoolView_01_4" prot="public">Gecode::Int::Linear::BoolNegTraits< NegBoolView ></innerclass>
|
|
<innernamespace refid="namespaceGecode">Gecode</innernamespace>
|
|
<innernamespace refid="namespaceGecode_1_1Int">Gecode::Int</innernamespace>
|
|
<innernamespace refid="namespaceGecode_1_1Int_1_1Linear">Gecode::Int::Linear</innernamespace>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
</detaileddescription>
|
|
<programlisting>
|
|
<codeline lineno="1"><highlight class="comment">/*<sp/>-*-<sp/>mode:<sp/>C++;<sp/>c-basic-offset:<sp/>2;<sp/>indent-tabs-mode:<sp/>nil<sp/>-*-<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="2"><highlight class="normal"></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="3"><highlight class="comment"><sp/>*<sp/><sp/>Main<sp/>authors:</highlight></codeline>
|
|
<codeline lineno="4"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Christian<sp/>Schulte<sp/><schulte@gecode.org></highlight></codeline>
|
|
<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Tias<sp/>Guns<sp/><tias.guns@cs.kuleuven.be></highlight></codeline>
|
|
<codeline lineno="6"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="7"><highlight class="comment"><sp/>*<sp/><sp/>Copyright:</highlight></codeline>
|
|
<codeline lineno="8"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Christian<sp/>Schulte,<sp/>2006</highlight></codeline>
|
|
<codeline lineno="9"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Tias<sp/>Guns,<sp/>2009</highlight></codeline>
|
|
<codeline lineno="10"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="11"><highlight class="comment"><sp/>*<sp/><sp/>Last<sp/>modified:</highlight></codeline>
|
|
<codeline lineno="12"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>$Date:<sp/>2012-10-18<sp/>16:02:42<sp/>+0200<sp/>(Thu,<sp/>18<sp/>Oct<sp/>2012)<sp/>$<sp/>by<sp/>$Author:<sp/>schulte<sp/>$</highlight></codeline>
|
|
<codeline lineno="13"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>$Revision:<sp/>13154<sp/>$</highlight></codeline>
|
|
<codeline lineno="14"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="15"><highlight class="comment"><sp/>*<sp/><sp/>This<sp/>file<sp/>is<sp/>part<sp/>of<sp/>Gecode,<sp/>the<sp/>generic<sp/>constraint</highlight></codeline>
|
|
<codeline lineno="16"><highlight class="comment"><sp/>*<sp/><sp/>development<sp/>environment:</highlight></codeline>
|
|
<codeline lineno="17"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>http://www.gecode.org</highlight></codeline>
|
|
<codeline lineno="18"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="19"><highlight class="comment"><sp/>*<sp/><sp/>Permission<sp/>is<sp/>hereby<sp/>granted,<sp/>free<sp/>of<sp/>charge,<sp/>to<sp/>any<sp/>person<sp/>obtaining</highlight></codeline>
|
|
<codeline lineno="20"><highlight class="comment"><sp/>*<sp/><sp/>a<sp/>copy<sp/>of<sp/>this<sp/>software<sp/>and<sp/>associated<sp/>documentation<sp/>files<sp/>(the</highlight></codeline>
|
|
<codeline lineno="21"><highlight class="comment"><sp/>*<sp/><sp/>"Software"),<sp/>to<sp/>deal<sp/>in<sp/>the<sp/>Software<sp/>without<sp/>restriction,<sp/>including</highlight></codeline>
|
|
<codeline lineno="22"><highlight class="comment"><sp/>*<sp/><sp/>without<sp/>limitation<sp/>the<sp/>rights<sp/>to<sp/>use,<sp/>copy,<sp/>modify,<sp/>merge,<sp/>publish,</highlight></codeline>
|
|
<codeline lineno="23"><highlight class="comment"><sp/>*<sp/><sp/>distribute,<sp/>sublicense,<sp/>and/or<sp/>sell<sp/>copies<sp/>of<sp/>the<sp/>Software,<sp/>and<sp/>to</highlight></codeline>
|
|
<codeline lineno="24"><highlight class="comment"><sp/>*<sp/><sp/>permit<sp/>persons<sp/>to<sp/>whom<sp/>the<sp/>Software<sp/>is<sp/>furnished<sp/>to<sp/>do<sp/>so,<sp/>subject<sp/>to</highlight></codeline>
|
|
<codeline lineno="25"><highlight class="comment"><sp/>*<sp/><sp/>the<sp/>following<sp/>conditions:</highlight></codeline>
|
|
<codeline lineno="26"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="27"><highlight class="comment"><sp/>*<sp/><sp/>The<sp/>above<sp/>copyright<sp/>notice<sp/>and<sp/>this<sp/>permission<sp/>notice<sp/>shall<sp/>be</highlight></codeline>
|
|
<codeline lineno="28"><highlight class="comment"><sp/>*<sp/><sp/>included<sp/>in<sp/>all<sp/>copies<sp/>or<sp/>substantial<sp/>portions<sp/>of<sp/>the<sp/>Software.</highlight></codeline>
|
|
<codeline lineno="29"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="30"><highlight class="comment"><sp/>*<sp/><sp/>THE<sp/>SOFTWARE<sp/>IS<sp/>PROVIDED<sp/>"AS<sp/>IS",<sp/>WITHOUT<sp/>WARRANTY<sp/>OF<sp/>ANY<sp/>KIND,</highlight></codeline>
|
|
<codeline lineno="31"><highlight class="comment"><sp/>*<sp/><sp/>EXPRESS<sp/>OR<sp/>IMPLIED,<sp/>INCLUDING<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO<sp/>THE<sp/>WARRANTIES<sp/>OF</highlight></codeline>
|
|
<codeline lineno="32"><highlight class="comment"><sp/>*<sp/><sp/>MERCHANTABILITY,<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE<sp/>AND</highlight></codeline>
|
|
<codeline lineno="33"><highlight class="comment"><sp/>*<sp/><sp/>NONINFRINGEMENT.<sp/>IN<sp/>NO<sp/>EVENT<sp/>SHALL<sp/>THE<sp/>AUTHORS<sp/>OR<sp/>COPYRIGHT<sp/>HOLDERS<sp/>BE</highlight></codeline>
|
|
<codeline lineno="34"><highlight class="comment"><sp/>*<sp/><sp/>LIABLE<sp/>FOR<sp/>ANY<sp/>CLAIM,<sp/>DAMAGES<sp/>OR<sp/>OTHER<sp/>LIABILITY,<sp/>WHETHER<sp/>IN<sp/>AN<sp/>ACTION</highlight></codeline>
|
|
<codeline lineno="35"><highlight class="comment"><sp/>*<sp/><sp/>OF<sp/>CONTRACT,<sp/>TORT<sp/>OR<sp/>OTHERWISE,<sp/>ARISING<sp/>FROM,<sp/>OUT<sp/>OF<sp/>OR<sp/>IN<sp/>CONNECTION</highlight></codeline>
|
|
<codeline lineno="36"><highlight class="comment"><sp/>*<sp/><sp/>WITH<sp/>THE<sp/>SOFTWARE<sp/>OR<sp/>THE<sp/>USE<sp/>OR<sp/>OTHER<sp/>DEALINGS<sp/>IN<sp/>THE<sp/>SOFTWARE.</highlight></codeline>
|
|
<codeline lineno="37"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="38"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="39"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="40"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><algorithm></highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="41"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="42"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><gecode/int/bool.hh></highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="43"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="44" refid="namespaceGecode_1_1Int_1_1Linear" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">Gecode<sp/>{<sp/></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">Int<sp/>{<sp/></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">Linear<sp/>{</highlight></codeline>
|
|
<codeline lineno="45"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="46"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="47"><highlight class="comment"><sp/><sp/><sp/>*<sp/>Baseclass<sp/>for<sp/>integer<sp/>Boolean<sp/>sum<sp/>using<sp/>dependencies</highlight></codeline>
|
|
<codeline lineno="48"><highlight class="comment"><sp/><sp/><sp/>*</highlight></codeline>
|
|
<codeline lineno="49"><highlight class="comment"><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="50"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="51"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="52" refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a0762145324195c29cdf9e573e4923b6c" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a14afb994235544bcce0967659d3251c4" kindref="member">LinBoolInt<VX>::LinBoolInt</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x0,</highlight></codeline>
|
|
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_s,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c0)</highlight></codeline>
|
|
<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Propagator" kindref="compound">Propagator</ref>(home),<sp/>co(home),<sp/>x(x0),<sp/>n_as(n_s),<sp/>n_hs(n_s),<sp/>c(c0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Advisor" kindref="compound">Advisor</ref>*<sp/>a<sp/>=<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Advisor" kindref="compound">Advisor</ref>(home,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,<ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1ab33a71a959c8b299dee6d7f727d5202d" kindref="member">co</ref>);</highlight></codeline>
|
|
<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=<ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a2d94b2f2333e0ba73aa0c89c1bc56068" kindref="member">n_as</ref>;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="57"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1af9e8e7b2291d38f37004e307b45fef2b" kindref="member">x</ref>[i].subscribe(home,*a);</highlight></codeline>
|
|
<codeline lineno="58"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="59"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="60"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="61"><highlight class="normal"><sp/><sp/>forceinline<sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="62" refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a8517973b26e64c472a2d41f0932425c8" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a8517973b26e64c472a2d41f0932425c8" kindref="member">LinBoolInt<VX>::normalize</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
|
|
<codeline lineno="63"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n_as<sp/>!=<sp/>n_hs)<sp/>{</highlight></codeline>
|
|
<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Remove<sp/>views<sp/>for<sp/>which<sp/>no<sp/>more<sp/>subscriptions<sp/>exist</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_x<sp/>=<sp/>x.size();</highlight></codeline>
|
|
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_hs;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!x[i].none())<sp/>{</highlight></codeline>
|
|
<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]=x[--n_hs];<sp/>x[n_hs]=x[--n_x];</highlight></codeline>
|
|
<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>x.size(n_x);</highlight></codeline>
|
|
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(n_as<sp/>==<sp/>n_hs);</highlight></codeline>
|
|
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Remove<sp/>assigned<sp/>yet<sp/>unsubscribed<sp/>views</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_x<sp/>=<sp/>x.size();</highlight></codeline>
|
|
<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x-1;<sp/>i>=n_hs;<sp/>i--)</highlight></codeline>
|
|
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>c--;<sp/>x[i]=x[--n_x];</highlight></codeline>
|
|
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]=x[--n_x];</highlight></codeline>
|
|
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>x.size(n_x);</highlight></codeline>
|
|
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="84"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="85"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="86"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="87"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="88" refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a14afb994235544bcce0967659d3251c4" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a14afb994235544bcce0967659d3251c4" kindref="member">LinBoolInt<VX>::LinBoolInt</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt" kindref="compound">LinBoolInt<VX></ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Propagator" kindref="compound">Propagator</ref>(home,share,p),<sp/>n_as(p.n_as),<sp/>n_hs(n_as)<sp/>{</highlight></codeline>
|
|
<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a8517973b26e64c472a2d41f0932425c8" kindref="member">normalize</ref>();</highlight></codeline>
|
|
<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a8536a4d55fc3191f427a67727b0c6a14" kindref="member">c</ref>=p.<ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a8536a4d55fc3191f427a67727b0c6a14" kindref="member">c</ref>;</highlight></codeline>
|
|
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1ab33a71a959c8b299dee6d7f727d5202d" kindref="member">co</ref>.update(home,share,p.<ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1ab33a71a959c8b299dee6d7f727d5202d" kindref="member">co</ref>);</highlight></codeline>
|
|
<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1af9e8e7b2291d38f37004e307b45fef2b" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1afe55a31688f656ab0b114f2342e9e313" kindref="member">update</ref>(home,share,p.<ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1af9e8e7b2291d38f37004e307b45fef2b" kindref="member">x</ref>);</highlight></codeline>
|
|
<codeline lineno="94"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="95"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="96"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="97"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1PropCost" kindref="compound">PropCost</ref></highlight></codeline>
|
|
<codeline lineno="98" refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a0675f53206d2f4c588d421cb1537da70" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a0675f53206d2f4c588d421cb1537da70" kindref="member">LinBoolInt<VX>::cost</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1PropCost_1a6c01ce3c391f293ce6a8b27294d7ee0c" kindref="member">PropCost::unary</ref>(<ref refid="classGecode_1_1PropCost_1ad1bebae59ea373495c5bf51ffc249dcdada52d4d3b08e9888c5063df5140e12e2" kindref="member">PropCost::HI</ref>);</highlight></codeline>
|
|
<codeline lineno="100"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="101"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="102"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="103"><highlight class="normal"><sp/><sp/>forceinline<sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="104" refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a873ddd4f064a4945c17ed5091b28eb6f" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt_1a873ddd4f064a4945c17ed5091b28eb6f" kindref="member">LinBoolInt<VX>::dispose</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Advisors" kindref="compound">Advisors<Advisor></ref><sp/>as(co);</highlight></codeline>
|
|
<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_hs;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>x[i].cancel(home,as.<ref refid="classGecode_1_1Advisors_1a5e7a61bed1c2ac37321327e42f14319b" kindref="member">advisor</ref>());</highlight></codeline>
|
|
<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/>co.dispose(home);</highlight></codeline>
|
|
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/><ref refid="classGecode_1_1Actor_1a143253b3eceda40f36834e38c8ac05d9" kindref="member">Propagator::dispose</ref>(home);</highlight></codeline>
|
|
<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(*this);</highlight></codeline>
|
|
<codeline lineno="111"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="112"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="113"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="114"><highlight class="comment"><sp/><sp/><sp/>*<sp/>Greater<sp/>or<sp/>equal<sp/>propagator<sp/>(integer<sp/>rhs)</highlight></codeline>
|
|
<codeline lineno="115"><highlight class="comment"><sp/><sp/><sp/>*</highlight></codeline>
|
|
<codeline lineno="116"><highlight class="comment"><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="117"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="118"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="119" refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1a60cf7c935e488aa6e4fe79af75f2549b" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1afee60cbd499e1d88f50aca040ee0d4da" kindref="member">GqBoolInt<VX>::GqBoolInt</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c)</highlight></codeline>
|
|
<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt" kindref="compound">LinBoolInt</ref><VX>(home,x,c+1,c)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="121"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="122"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="123"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="124" refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1afee60cbd499e1d88f50aca040ee0d4da" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1afee60cbd499e1d88f50aca040ee0d4da" kindref="member">GqBoolInt<VX>::GqBoolInt</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt" kindref="compound">GqBoolInt<VX></ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt" kindref="compound">LinBoolInt</ref><VX>(home,share,p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="126"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="127"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="128"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="129" refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1a36b7c8767dd85caa095256e02e55abe0" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1a36b7c8767dd85caa095256e02e55abe0" kindref="member">GqBoolInt<VX>::copy</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share)<sp/>{</highlight></codeline>
|
|
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt" kindref="compound">GqBoolInt<VX></ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="131"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="132"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="133"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="134"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="135" refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1ae010b66fa10100a20cbff8df20199203" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1ae010b66fa10100a20cbff8df20199203" kindref="member">GqBoolInt<VX>::advise</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/><ref refid="classGecode_1_1Advisor" kindref="compound">Advisor</ref>&<sp/>a,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Delta" kindref="compound">Delta</ref>&<sp/>d)<sp/>{</highlight></codeline>
|
|
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Check<sp/>whether<sp/>propagator<sp/>is<sp/>running</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n_as<sp/>==<sp/>0)</highlight></codeline>
|
|
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="139"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(VX::one(d))<sp/>{</highlight></codeline>
|
|
<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>c--;<sp/></highlight><highlight class="keywordflow">goto</highlight><highlight class="normal"><sp/>check;</highlight></codeline>
|
|
<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c+1<sp/><<sp/>n_as)</highlight></codeline>
|
|
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">goto</highlight><highlight class="normal"><sp/>check;</highlight></codeline>
|
|
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Find<sp/>a<sp/>new<sp/>subscription</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="146"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i<sp/>=<sp/>x.size()-1;<sp/>i>=n_hs;<sp/>i--)</highlight></codeline>
|
|
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].none())<sp/>{</highlight></codeline>
|
|
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::swap(x[i],x[n_hs]);</highlight></codeline>
|
|
<codeline lineno="149"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[n_hs++].subscribe(home,a);</highlight></codeline>
|
|
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x.size(i+1);</highlight></codeline>
|
|
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>c--;</highlight></codeline>
|
|
<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c+1<sp/><<sp/>n_as)<sp/>{</highlight></codeline>
|
|
<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x.size(i);</highlight></codeline>
|
|
<codeline lineno="156"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>assert(n_hs<sp/><=<sp/>x.size());</highlight></codeline>
|
|
<codeline lineno="157"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">goto</highlight><highlight class="normal"><sp/>check;</highlight></codeline>
|
|
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="159"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="160"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>No<sp/>view<sp/>left<sp/>for<sp/>subscription</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/>x.size(n_hs);</highlight></codeline>
|
|
<codeline lineno="162"><highlight class="normal"><sp/><sp/>check:</highlight></codeline>
|
|
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Do<sp/>not<sp/>update<sp/>subscription</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="164"><highlight class="normal"><sp/><sp/><sp/><sp/>n_as--;</highlight></codeline>
|
|
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x.size()-n_hs+n_as;</highlight></codeline>
|
|
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n<sp/><<sp/>c)</highlight></codeline>
|
|
<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a839b40c2e7ccebb2e61e92e274833089" kindref="member">ES_FAILED</ref>;</highlight></codeline>
|
|
<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/><=<sp/>0)<sp/>||<sp/>(c<sp/>==<sp/>n))</highlight></codeline>
|
|
<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5ac32341b682bca52b8617a8ad004023ef" kindref="member">ES_NOFIX</ref>;</highlight></codeline>
|
|
<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="172"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="173"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="174"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="175"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="176" refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1aef9470106f0bf894e495807f82910c9a" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1aef9470106f0bf894e495807f82910c9a" kindref="member">GqBoolInt<VX>::propagate</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)<sp/>{</highlight></codeline>
|
|
<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>><sp/>0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>assert((n_as<sp/>==<sp/>c)<sp/>&&<sp/>(x.size()<sp/>==<sp/>n_hs));</highlight></codeline>
|
|
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Signal<sp/>that<sp/>propagator<sp/>is<sp/>running</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>n_as<sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>views<sp/>must<sp/>be<sp/>one<sp/>to<sp/>satisfy<sp/>inequality</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="182"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_hs;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="183"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].none())</highlight></codeline>
|
|
<codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[i].one_none(home));</highlight></codeline>
|
|
<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>home.<ref refid="group__TaskActorStatus_1gafc19cbf71ed90a9e0b414b875103f4c7" kindref="member">ES_SUBSUMED</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="187"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="188"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="189"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="190"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="191" refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1afdfca4c9854c1d22d9565f96f0786014" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt_1afdfca4c9854c1d22d9565f96f0786014" kindref="member">GqBoolInt<VX>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c)<sp/>{</highlight></codeline>
|
|
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Eliminate<sp/>assigned<sp/>views</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_x<sp/>=<sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>();</highlight></codeline>
|
|
<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];</highlight></codeline>
|
|
<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];<sp/>c--;</highlight></codeline>
|
|
<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(n_x);</highlight></codeline>
|
|
<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>RHS<sp/>too<sp/>large</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n_x<sp/><<sp/>c)</highlight></codeline>
|
|
<codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a839b40c2e7ccebb2e61e92e274833089" kindref="member">ES_FAILED</ref>;</highlight></codeline>
|
|
<codeline lineno="204"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Whatever<sp/>the<sp/>x[i]<sp/>take<sp/>for<sp/>values,<sp/>the<sp/>inequality<sp/>is<sp/>subsumed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="205"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/><=<sp/>0)</highlight></codeline>
|
|
<codeline lineno="206"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="207"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Use<sp/>Boolean<sp/>disjunction<sp/>for<sp/>this<sp/>special<sp/>case</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="208"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>1)</highlight></codeline>
|
|
<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Bool_1_1NaryOrTrue_1a407f3cb5515ab858be3769820c83975c" kindref="member">Bool::NaryOrTrue<VX>::post</ref>(home,x);</highlight></codeline>
|
|
<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>views<sp/>must<sp/>be<sp/>one<sp/>to<sp/>satisfy<sp/>inequality</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>n_x)<sp/>{</highlight></codeline>
|
|
<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[i].one_none(home));</highlight></codeline>
|
|
<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>This<sp/>is<sp/>the<sp/>needed<sp/>invariant<sp/>as<sp/>c+1<sp/>subscriptions<sp/>must<sp/>be<sp/>created</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(n_x<sp/>><sp/>c);</highlight></codeline>
|
|
<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt" kindref="compound">GqBoolInt<VX></ref>(home,x,c);</highlight></codeline>
|
|
<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="220"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="221"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="222"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="223"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="224"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="225"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="226"><highlight class="comment"><sp/><sp/><sp/>*<sp/>Equal<sp/>propagator<sp/>(integer<sp/>rhs)</highlight></codeline>
|
|
<codeline lineno="227"><highlight class="comment"><sp/><sp/><sp/>*</highlight></codeline>
|
|
<codeline lineno="228"><highlight class="comment"><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="229"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="230"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="231" refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1a4e959b83943961993546327df87ca817" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1a007072258a9f2ef470798681616902b0" kindref="member">EqBoolInt<VX>::EqBoolInt</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c)</highlight></codeline>
|
|
<codeline lineno="232"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt" kindref="compound">LinBoolInt</ref><VX>(home,x,std::max(c,x.<ref refid="group__FuncIterRangesOp_1ga9f9ab6d72452ad86b95cd65abf463161" kindref="member">size</ref>()-c)+1,c)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="233"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="234"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="235"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="236" refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1a007072258a9f2ef470798681616902b0" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1a007072258a9f2ef470798681616902b0" kindref="member">EqBoolInt<VX>::EqBoolInt</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt" kindref="compound">EqBoolInt<VX></ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="237"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1LinBoolInt" kindref="compound">LinBoolInt</ref><VX>(home,share,p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="238"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="239"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="240"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="241" refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1ab398d7b666b20e936fb339b379919c51" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1ab398d7b666b20e936fb339b379919c51" kindref="member">EqBoolInt<VX>::copy</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share)<sp/>{</highlight></codeline>
|
|
<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt" kindref="compound">EqBoolInt<VX></ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="243"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="244"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="245"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="246"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="247" refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1ab2d83a914726a5cc568064b9d24b04d9" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1ab2d83a914726a5cc568064b9d24b04d9" kindref="member">EqBoolInt<VX>::advise</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/><ref refid="classGecode_1_1Advisor" kindref="compound">Advisor</ref>&<sp/>a,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Delta" kindref="compound">Delta</ref>&<sp/>d)<sp/>{</highlight></codeline>
|
|
<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Check<sp/>whether<sp/>propagator<sp/>is<sp/>running</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n_as<sp/>==<sp/>0)</highlight></codeline>
|
|
<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="251"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(VX::one(d))</highlight></codeline>
|
|
<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>c--;</highlight></codeline>
|
|
<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c+1<sp/><<sp/>n_as)<sp/>&&<sp/>(x.size()-n_hs<sp/><<sp/>c))</highlight></codeline>
|
|
<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">goto</highlight><highlight class="normal"><sp/>check;</highlight></codeline>
|
|
<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Find<sp/>a<sp/>new<sp/>subscription</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i<sp/>=<sp/>x.size()-1;<sp/>i>=n_hs;<sp/>i--)</highlight></codeline>
|
|
<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].none())<sp/>{</highlight></codeline>
|
|
<codeline lineno="259"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::swap(x[i],x[n_hs]);</highlight></codeline>
|
|
<codeline lineno="260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[n_hs++].subscribe(home,a);</highlight></codeline>
|
|
<codeline lineno="261"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x.size(i+1);</highlight></codeline>
|
|
<codeline lineno="262"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="263"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="264"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>c--;</highlight></codeline>
|
|
<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="266"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>No<sp/>view<sp/>left<sp/>for<sp/>subscription</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/>x.size(n_hs);</highlight></codeline>
|
|
<codeline lineno="268"><highlight class="normal"><sp/><sp/>check:</highlight></codeline>
|
|
<codeline lineno="269"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Do<sp/>not<sp/>update<sp/>subscription</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="270"><highlight class="normal"><sp/><sp/><sp/><sp/>n_as--;</highlight></codeline>
|
|
<codeline lineno="271"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x.size()-n_hs+n_as;</highlight></codeline>
|
|
<codeline lineno="272"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/><<sp/>0)<sp/>||<sp/>(c<sp/>><sp/>n))</highlight></codeline>
|
|
<codeline lineno="273"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a839b40c2e7ccebb2e61e92e274833089" kindref="member">ES_FAILED</ref>;</highlight></codeline>
|
|
<codeline lineno="274"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/>==<sp/>0)<sp/>||<sp/>(c<sp/>==<sp/>n))</highlight></codeline>
|
|
<codeline lineno="275"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5ac32341b682bca52b8617a8ad004023ef" kindref="member">ES_NOFIX</ref>;</highlight></codeline>
|
|
<codeline lineno="276"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="277"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="278"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="279"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="280"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="281"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="282" refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1ab1aa3df3da71a09a21dd96fdf21513fe" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1ab1aa3df3da71a09a21dd96fdf21513fe" kindref="member">EqBoolInt<VX>::propagate</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)<sp/>{</highlight></codeline>
|
|
<codeline lineno="283"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(x.size()<sp/>==<sp/>n_hs);</highlight></codeline>
|
|
<codeline lineno="284"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Signal<sp/>that<sp/>propagator<sp/>is<sp/>running</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="285"><highlight class="normal"><sp/><sp/><sp/><sp/>n_as<sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="286"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="287"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>views<sp/>must<sp/>be<sp/>zero<sp/>to<sp/>satisfy<sp/>equality</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="288"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_hs;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="289"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].none())</highlight></codeline>
|
|
<codeline lineno="290"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[i].zero_none(home));</highlight></codeline>
|
|
<codeline lineno="291"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="292"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>views<sp/>must<sp/>be<sp/>one<sp/>to<sp/>satisfy<sp/>equality</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="293"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_hs;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="294"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].none())</highlight></codeline>
|
|
<codeline lineno="295"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[i].one_none(home));</highlight></codeline>
|
|
<codeline lineno="296"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="297"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>home.<ref refid="group__TaskActorStatus_1gafc19cbf71ed90a9e0b414b875103f4c7" kindref="member">ES_SUBSUMED</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="298"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="299"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="300"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="301"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="302" refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1aee2940dc1afd8f78d9a320960a0dabdc" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt_1aee2940dc1afd8f78d9a320960a0dabdc" kindref="member">EqBoolInt<VX>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c)<sp/>{</highlight></codeline>
|
|
<codeline lineno="303"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Eliminate<sp/>assigned<sp/>views</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="304"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_x<sp/>=<sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>();</highlight></codeline>
|
|
<codeline lineno="305"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="306"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="307"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];</highlight></codeline>
|
|
<codeline lineno="308"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="309"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];<sp/>c--;</highlight></codeline>
|
|
<codeline lineno="310"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="311"><highlight class="normal"><sp/><sp/><sp/><sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(n_x);</highlight></codeline>
|
|
<codeline lineno="312"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>RHS<sp/>too<sp/>small<sp/>or<sp/>too<sp/>large</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="313"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/><<sp/>0)<sp/>||<sp/>(c<sp/>><sp/>n_x))</highlight></codeline>
|
|
<codeline lineno="314"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a839b40c2e7ccebb2e61e92e274833089" kindref="member">ES_FAILED</ref>;</highlight></codeline>
|
|
<codeline lineno="315"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>views<sp/>must<sp/>be<sp/>zero<sp/>to<sp/>satisfy<sp/>equality</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="316"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="317"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="318"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[i].zero_none(home));</highlight></codeline>
|
|
<codeline lineno="319"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="320"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="321"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>views<sp/>must<sp/>be<sp/>one<sp/>to<sp/>satisfy<sp/>equality</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="322"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>n_x)<sp/>{</highlight></codeline>
|
|
<codeline lineno="323"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="324"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[i].one_none(home));</highlight></codeline>
|
|
<codeline lineno="325"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="326"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="327"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt" kindref="compound">EqBoolInt<VX></ref>(home,x,c);</highlight></codeline>
|
|
<codeline lineno="328"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="329"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="330"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="331"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="332"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="333"><highlight class="comment"><sp/><sp/><sp/>*<sp/>Integer<sp/>disequal<sp/>to<sp/>Boolean<sp/>sum</highlight></codeline>
|
|
<codeline lineno="334"><highlight class="comment"><sp/><sp/><sp/>*</highlight></codeline>
|
|
<codeline lineno="335"><highlight class="comment"><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="336"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="337"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="338"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="339" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1ad56248e9dcd1ad2492c09b59f49226f0" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1ad56248e9dcd1ad2492c09b59f49226f0" kindref="member">NqBoolInt<VX>::NqBoolInt</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>b,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c0)</highlight></codeline>
|
|
<codeline lineno="340"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1BinaryPropagator" kindref="compound">BinaryPropagator</ref><VX,PC_INT_VAL>(home,</highlight></codeline>
|
|
<codeline lineno="341"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>b[b.<ref refid="group__FuncIterRangesOp_1ga9f9ab6d72452ad86b95cd65abf463161" kindref="member">size</ref>()-2],</highlight></codeline>
|
|
<codeline lineno="342"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>b[b.<ref refid="group__FuncIterRangesOp_1ga9f9ab6d72452ad86b95cd65abf463161" kindref="member">size</ref>()-1]),<sp/>x(b),<sp/>c(c0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>()<sp/>>=<sp/>2);</highlight></codeline>
|
|
<codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>()-2);</highlight></codeline>
|
|
<codeline lineno="345"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="346"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="347"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="348"><highlight class="normal"><sp/><sp/>forceinline<sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="349" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a0f626833dec54e19c2fa409e5615b2a6" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a0f626833dec54e19c2fa409e5615b2a6" kindref="member">NqBoolInt<VX>::dispose</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="350"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/><ref refid="classGecode_1_1BinaryPropagator" kindref="compound">BinaryPropagator<VX,PC_INT_VAL>::dispose</ref>(home);</highlight></codeline>
|
|
<codeline lineno="351"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(*this);</highlight></codeline>
|
|
<codeline lineno="352"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="353"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="354"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="355"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="356" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a3048d4c37e25fb75b3e3dcd802a459ff" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1ad56248e9dcd1ad2492c09b59f49226f0" kindref="member">NqBoolInt<VX>::NqBoolInt</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt" kindref="compound">NqBoolInt<VX></ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="357"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1BinaryPropagator" kindref="compound">BinaryPropagator</ref><VX,PC_INT_VAL>(home,share,p),<sp/>x(home,p.x.<ref refid="group__FuncIterRangesOp_1ga9f9ab6d72452ad86b95cd65abf463161" kindref="member">size</ref>())<sp/>{</highlight></codeline>
|
|
<codeline lineno="358"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Eliminate<sp/>all<sp/>zeros<sp/>and<sp/>ones<sp/>in<sp/>original<sp/>and<sp/>update</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="359"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>();</highlight></codeline>
|
|
<codeline lineno="360"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>p_c<sp/>=<sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a7dc6cd19cb1ac88e10e4ec44e3c26067" kindref="member">c</ref>;</highlight></codeline>
|
|
<codeline lineno="361"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="362"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="363"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>n--;<sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i]=p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[n];<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i]=<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[n];</highlight></codeline>
|
|
<codeline lineno="364"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="365"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>n--;<sp/>p_c--;<sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i]=p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[n];<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i]=<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[n];</highlight></codeline>
|
|
<codeline lineno="366"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="367"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i].<ref refid="classGecode_1_1ViewArray_1afe55a31688f656ab0b114f2342e9e313" kindref="member">update</ref>(home,share,p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>[i]);</highlight></codeline>
|
|
<codeline lineno="368"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="369"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a7dc6cd19cb1ac88e10e4ec44e3c26067" kindref="member">c</ref><sp/>=<sp/>p_c;<sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a7dc6cd19cb1ac88e10e4ec44e3c26067" kindref="member">c</ref><sp/>=<sp/>p_c;</highlight></codeline>
|
|
<codeline lineno="370"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(n);<sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1abdf1f873a0cbcada24699499ea1901a1" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(n);</highlight></codeline>
|
|
<codeline lineno="371"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="372"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="373"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="374"><highlight class="normal"><sp/><sp/>forceinline<sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="375" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a6684699bd3fa738833239ca476fa0f4a" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a6684699bd3fa738833239ca476fa0f4a" kindref="member">NqBoolInt<VX>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c)<sp/>{</highlight></codeline>
|
|
<codeline lineno="376"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>();</highlight></codeline>
|
|
<codeline lineno="377"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="378"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="379"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]=x[--n];<sp/>c--;</highlight></codeline>
|
|
<codeline lineno="380"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="381"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]=x[--n];</highlight></codeline>
|
|
<codeline lineno="382"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="383"><highlight class="normal"><sp/><sp/><sp/><sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(n);</highlight></codeline>
|
|
<codeline lineno="384"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((n<sp/><<sp/>c)<sp/>||<sp/>(c<sp/><<sp/>0))</highlight></codeline>
|
|
<codeline lineno="385"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="386"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n<sp/>==<sp/>0)</highlight></codeline>
|
|
<codeline lineno="387"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>0)<sp/>?<sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a839b40c2e7ccebb2e61e92e274833089" kindref="member">ES_FAILED</ref><sp/>:<sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="388"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n<sp/>==<sp/>1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="389"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="390"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[0].zero_none(home));</highlight></codeline>
|
|
<codeline lineno="391"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="392"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x[0].one_none(home));</highlight></codeline>
|
|
<codeline lineno="393"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="394"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="395"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="396"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt" kindref="compound">NqBoolInt</ref>(home,x,c);</highlight></codeline>
|
|
<codeline lineno="397"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="398"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="399"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="400"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="401"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="402" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1aaf1a91b5356feeec8833473c9b538f15" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1aaf1a91b5356feeec8833473c9b538f15" kindref="member">NqBoolInt<VX>::copy</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share)<sp/>{</highlight></codeline>
|
|
<codeline lineno="403"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt" kindref="compound">NqBoolInt<VX></ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="404"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="405"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="406"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="407"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1PropCost" kindref="compound">PropCost</ref></highlight></codeline>
|
|
<codeline lineno="408" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a36566620805cd5bb2fd2e919ddd3cba2" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a36566620805cd5bb2fd2e919ddd3cba2" kindref="member">NqBoolInt<VX>::cost</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="409"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1PropCost_1a4a383a3772df2c1e49341813edc19b34" kindref="member">PropCost::linear</ref>(<ref refid="classGecode_1_1PropCost_1ad1bebae59ea373495c5bf51ffc249dcda29f70a7d7f550f3822568ddce422d861" kindref="member">PropCost::LO</ref>,<sp/>x.size());</highlight></codeline>
|
|
<codeline lineno="410"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="411"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="412"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="413"><highlight class="normal"><sp/><sp/>forceinline<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="414" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a2d4c7d46413d9a2664d8332c73754e99" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a2d4c7d46413d9a2664d8332c73754e99" kindref="member">NqBoolInt<VX>::resubscribe</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/>VX&<sp/>y)<sp/>{</highlight></codeline>
|
|
<codeline lineno="415"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(y.one())</highlight></codeline>
|
|
<codeline lineno="416"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>c--;</highlight></codeline>
|
|
<codeline lineno="417"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x.size();</highlight></codeline>
|
|
<codeline lineno="418"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="419"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="420"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>c--;<sp/>x[i]=x[--n];</highlight></codeline>
|
|
<codeline lineno="421"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="422"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n];</highlight></codeline>
|
|
<codeline lineno="423"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="424"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>New<sp/>unassigned<sp/>view<sp/>found</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="425"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>assert(!x[i].zero()<sp/>&&<sp/>!x[i].one());</highlight></codeline>
|
|
<codeline lineno="426"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Move<sp/>to<sp/>y<sp/>and<sp/>subscribe</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="427"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>y=x[i];<sp/>x[i]=x[--n];</highlight></codeline>
|
|
<codeline lineno="428"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x.size(n);</highlight></codeline>
|
|
<codeline lineno="429"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>y.subscribe(home,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,PC_INT_VAL,</highlight><highlight class="keyword">false</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="431"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="432"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>All<sp/>views<sp/>have<sp/>been<sp/>assigned!</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="433"><highlight class="normal"><sp/><sp/><sp/><sp/>x.size(0);</highlight></codeline>
|
|
<codeline lineno="434"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="435"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="436"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="437"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX></highlight></codeline>
|
|
<codeline lineno="438"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="439" refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a8f17fc56c1fe41950602b6d6dff7f71c" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt_1a8f17fc56c1fe41950602b6d6dff7f71c" kindref="member">NqBoolInt<VX>::propagate</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)<sp/>{</highlight></codeline>
|
|
<codeline lineno="440"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>s0<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="441"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x0.zero()<sp/>||<sp/>x0.one())</highlight></codeline>
|
|
<codeline lineno="442"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>s0<sp/>=<sp/>resubscribe(home,x0);</highlight></codeline>
|
|
<codeline lineno="443"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>s1<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="444"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.zero()<sp/>||<sp/>x1.one())</highlight></codeline>
|
|
<codeline lineno="445"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>s1<sp/>=<sp/>resubscribe(home,x1);</highlight></codeline>
|
|
<codeline lineno="446"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x.size()<sp/>+<sp/>s0<sp/>+<sp/>s1;</highlight></codeline>
|
|
<codeline lineno="447"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((n<sp/><<sp/>c)<sp/>||<sp/>(c<sp/><<sp/>0))</highlight></codeline>
|
|
<codeline lineno="448"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>home.<ref refid="group__TaskActorStatus_1gafc19cbf71ed90a9e0b414b875103f4c7" kindref="member">ES_SUBSUMED</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="449"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n<sp/>==<sp/>0)</highlight></codeline>
|
|
<codeline lineno="450"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>0)<sp/>?<sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a839b40c2e7ccebb2e61e92e274833089" kindref="member">ES_FAILED</ref><sp/>:<sp/>home.<ref refid="group__TaskActorStatus_1gafc19cbf71ed90a9e0b414b875103f4c7" kindref="member">ES_SUBSUMED</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="451"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n<sp/>==<sp/>1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="452"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(s0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="453"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="454"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.zero_none(home));</highlight></codeline>
|
|
<codeline lineno="455"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="456"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.one_none(home));</highlight></codeline>
|
|
<codeline lineno="457"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="458"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="459"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>assert(s1);</highlight></codeline>
|
|
<codeline lineno="460"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/>==<sp/>1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="461"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.zero_none(home));</highlight></codeline>
|
|
<codeline lineno="462"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="463"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.one_none(home));</highlight></codeline>
|
|
<codeline lineno="464"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="465"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="466"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>home.<ref refid="group__TaskActorStatus_1gafc19cbf71ed90a9e0b414b875103f4c7" kindref="member">ES_SUBSUMED</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="467"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="468"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="469"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="470"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="471"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="472"><highlight class="comment"><sp/><sp/><sp/>*<sp/>Baseclass<sp/>for<sp/>reified<sp/>integer<sp/>Boolean<sp/>sum</highlight></codeline>
|
|
<codeline lineno="473"><highlight class="comment"><sp/><sp/><sp/>*</highlight></codeline>
|
|
<codeline lineno="474"><highlight class="comment"><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="475"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB></highlight></codeline>
|
|
<codeline lineno="476"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="477" refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1ab07050d507cfeea967a7a305c7a25eb6" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a18493b752b3286bada341dc545af421b" kindref="member">ReLinBoolInt<VX,VB>::ReLinBoolInt</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x0,</highlight></codeline>
|
|
<codeline lineno="478"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c0,<sp/>VB<sp/>b0)</highlight></codeline>
|
|
<codeline lineno="479"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Propagator" kindref="compound">Propagator</ref>(home),<sp/>co(home),<sp/>x(x0),<sp/>n_s(x.<ref refid="group__FuncIterRangesOp_1ga9f9ab6d72452ad86b95cd65abf463161" kindref="member">size</ref>()),<sp/>c(c0),<sp/>b(b0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="480"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1abacfd88310473c38e5609c8cc1fe2877" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1aa19fdfd766538312ff91e49735abec86" kindref="member">subscribe</ref>(home,*</highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Advisor" kindref="compound">Advisor</ref>(home,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,<ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a2eb11fdbf13fd02e6bc4431de6d5654a" kindref="member">co</ref>));</highlight></codeline>
|
|
<codeline lineno="481"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a3107fcd3f5c760393e6c3f47785131dc" kindref="member">b</ref>.subscribe(home,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,PC_BOOL_VAL);</highlight></codeline>
|
|
<codeline lineno="482"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="483"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="484"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB></highlight></codeline>
|
|
<codeline lineno="485"><highlight class="normal"><sp/><sp/>forceinline<sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="486" refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a68e73c8939472ea08bdd8e995bc88761" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a68e73c8939472ea08bdd8e995bc88761" kindref="member">ReLinBoolInt<VX,VB>::normalize</ref>(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">)<sp/>{</highlight></codeline>
|
|
<codeline lineno="487"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n_s<sp/>!=<sp/>x.size())<sp/>{</highlight></codeline>
|
|
<codeline lineno="488"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_x<sp/>=<sp/>x.size();</highlight></codeline>
|
|
<codeline lineno="489"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="490"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!x[i].none())</highlight></codeline>
|
|
<codeline lineno="491"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];</highlight></codeline>
|
|
<codeline lineno="492"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>x.size(n_x);</highlight></codeline>
|
|
<codeline lineno="493"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>assert(x.size()<sp/>==<sp/>n_s);</highlight></codeline>
|
|
<codeline lineno="494"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="495"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="496"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="497"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB></highlight></codeline>
|
|
<codeline lineno="498"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="499" refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a18493b752b3286bada341dc545af421b" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a18493b752b3286bada341dc545af421b" kindref="member">ReLinBoolInt<VX,VB>::ReLinBoolInt</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,<sp/></highlight></codeline>
|
|
<codeline lineno="500"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt" kindref="compound">ReLinBoolInt<VX,VB></ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="501"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Propagator" kindref="compound">Propagator</ref>(home,share,p),<sp/>n_s(p.n_s),<sp/>c(p.c)<sp/>{</highlight></codeline>
|
|
<codeline lineno="502"><highlight class="normal"><sp/><sp/><sp/><sp/>p.<ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a68e73c8939472ea08bdd8e995bc88761" kindref="member">normalize</ref>();</highlight></codeline>
|
|
<codeline lineno="503"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a2eb11fdbf13fd02e6bc4431de6d5654a" kindref="member">co</ref>.update(home,share,p.<ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a2eb11fdbf13fd02e6bc4431de6d5654a" kindref="member">co</ref>);</highlight></codeline>
|
|
<codeline lineno="504"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1abacfd88310473c38e5609c8cc1fe2877" kindref="member">x</ref>.<ref refid="classGecode_1_1ViewArray_1afe55a31688f656ab0b114f2342e9e313" kindref="member">update</ref>(home,share,p.<ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1abacfd88310473c38e5609c8cc1fe2877" kindref="member">x</ref>);</highlight></codeline>
|
|
<codeline lineno="505"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a3107fcd3f5c760393e6c3f47785131dc" kindref="member">b</ref>.update(home,share,p.<ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a3107fcd3f5c760393e6c3f47785131dc" kindref="member">b</ref>);</highlight></codeline>
|
|
<codeline lineno="506"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="507"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="508"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB></highlight></codeline>
|
|
<codeline lineno="509"><highlight class="normal"><sp/><sp/>forceinline<sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="510" refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a237a9ac8376822246c515aef5e7e81e8" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a237a9ac8376822246c515aef5e7e81e8" kindref="member">ReLinBoolInt<VX,VB>::dispose</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="511"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Advisors" kindref="compound">Advisors<Advisor></ref><sp/>as(co);</highlight></codeline>
|
|
<codeline lineno="512"><highlight class="normal"><sp/><sp/><sp/><sp/>x.cancel(home,as.<ref refid="classGecode_1_1Advisors_1a5e7a61bed1c2ac37321327e42f14319b" kindref="member">advisor</ref>());</highlight></codeline>
|
|
<codeline lineno="513"><highlight class="normal"><sp/><sp/><sp/><sp/>co.dispose(home);</highlight></codeline>
|
|
<codeline lineno="514"><highlight class="normal"><sp/><sp/><sp/><sp/>b.cancel(home,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,PC_BOOL_VAL);</highlight></codeline>
|
|
<codeline lineno="515"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/><ref refid="classGecode_1_1Actor_1a143253b3eceda40f36834e38c8ac05d9" kindref="member">Propagator::dispose</ref>(home);</highlight></codeline>
|
|
<codeline lineno="516"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(*this);</highlight></codeline>
|
|
<codeline lineno="517"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="518"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="519"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB></highlight></codeline>
|
|
<codeline lineno="520"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1PropCost" kindref="compound">PropCost</ref></highlight></codeline>
|
|
<codeline lineno="521" refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a8a7e6827a1253180b213034a449c1ef5" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt_1a8a7e6827a1253180b213034a449c1ef5" kindref="member">ReLinBoolInt<VX,VB>::cost</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="522"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1PropCost_1a6c01ce3c391f293ce6a8b27294d7ee0c" kindref="member">PropCost::unary</ref>(<ref refid="classGecode_1_1PropCost_1ad1bebae59ea373495c5bf51ffc249dcdada52d4d3b08e9888c5063df5140e12e2" kindref="member">PropCost::HI</ref>);</highlight></codeline>
|
|
<codeline lineno="523"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="524"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="525"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="526"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><></highlight></codeline>
|
|
<codeline lineno="528" refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01BoolView_01_4" refkind="compound"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits</ref><<ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">BoolView</ref>><sp/>{</highlight></codeline>
|
|
<codeline lineno="529"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
|
|
<codeline lineno="531" refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01BoolView_01_4_1af43da17074192c0b97dfc2bce62f1b7c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1NegBoolView" kindref="compound">NegBoolView</ref><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01BoolView_01_4_1af43da17074192c0b97dfc2bce62f1b7c" kindref="member">NegView</ref>;</highlight></codeline>
|
|
<codeline lineno="533" refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01BoolView_01_4_1ac58427d345f6624524b809658f16dcd8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1NegBoolView" kindref="compound">NegBoolView</ref><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01BoolView_01_4_1ac58427d345f6624524b809658f16dcd8" kindref="member">neg</ref>(<ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">BoolView</ref><sp/>x)<sp/>{</highlight></codeline>
|
|
<codeline lineno="534"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1NegBoolView" kindref="compound">NegBoolView</ref><sp/>y(x);<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>y;</highlight></codeline>
|
|
<codeline lineno="535"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="536"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
|
|
<codeline lineno="537"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="538"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><></highlight></codeline>
|
|
<codeline lineno="540" refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01NegBoolView_01_4" refkind="compound"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits</ref><<ref refid="classGecode_1_1Int_1_1NegBoolView" kindref="compound">NegBoolView</ref>><sp/>{</highlight></codeline>
|
|
<codeline lineno="541"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
|
|
<codeline lineno="543" refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01NegBoolView_01_4_1abc561a460e583191e3b84eeb0cf80f8b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">BoolView</ref><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01NegBoolView_01_4_1abc561a460e583191e3b84eeb0cf80f8b" kindref="member">NegView</ref>;</highlight></codeline>
|
|
<codeline lineno="545" refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01NegBoolView_01_4_1a704db82bb7b2abde334eece58fb70cf6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">BoolView</ref><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits_3_01NegBoolView_01_4_1a704db82bb7b2abde334eece58fb70cf6" kindref="member">neg</ref>(<ref refid="classGecode_1_1Int_1_1NegBoolView" kindref="compound">NegBoolView</ref><sp/>x)<sp/>{</highlight></codeline>
|
|
<codeline lineno="546"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>x.<ref refid="classGecode_1_1DerivedView_1aa50003acd00fbe1aba2c59913cfef099" kindref="member">base</ref>();</highlight></codeline>
|
|
<codeline lineno="547"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="548"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
|
|
<codeline lineno="549"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="550"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="551"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="552"><highlight class="comment"><sp/><sp/><sp/>*<sp/>Reified<sp/>greater<sp/>or<sp/>equal<sp/>propagator<sp/>(integer<sp/>rhs)</highlight></codeline>
|
|
<codeline lineno="553"><highlight class="comment"><sp/><sp/><sp/>*<sp/></highlight></codeline>
|
|
<codeline lineno="554"><highlight class="comment"><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="555"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="556"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="557" refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a5b27859dc04caf9299aa6060b6de69b4" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a50115aa99e60ff37fd733398c2311847" kindref="member">ReGqBoolInt<VX,VB,rm>::ReGqBoolInt</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c,<sp/>VB<sp/>b)</highlight></codeline>
|
|
<codeline lineno="558"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt" kindref="compound">ReLinBoolInt</ref><VX,VB>(home,x,c,b)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="559"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="560"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="561"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="562" refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a50115aa99e60ff37fd733398c2311847" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a50115aa99e60ff37fd733398c2311847" kindref="member">ReGqBoolInt<VX,VB,rm>::ReGqBoolInt</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,<sp/></highlight></codeline>
|
|
<codeline lineno="563"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt" kindref="compound">ReGqBoolInt<VX,VB,rm></ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="564"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt" kindref="compound">ReLinBoolInt</ref><VX,VB>(home,share,p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="565"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="566"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="567"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="568" refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a197c70e8ddf3139bd29c1fa0e9af6298" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a197c70e8ddf3139bd29c1fa0e9af6298" kindref="member">ReGqBoolInt<VX,VB,rm>::copy</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share)<sp/>{</highlight></codeline>
|
|
<codeline lineno="569"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt" kindref="compound">ReGqBoolInt<VX,VB,rm></ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="570"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="571"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="572"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="573"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="574" refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a9e17d2713090e39c5e40281fdcfeab02" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a9e17d2713090e39c5e40281fdcfeab02" kindref="member">ReGqBoolInt<VX,VB,rm>::advise</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&,<sp/><ref refid="classGecode_1_1Advisor" kindref="compound">Advisor</ref>&,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Delta" kindref="compound">Delta</ref>&<sp/>d)<sp/>{</highlight></codeline>
|
|
<codeline lineno="575"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(VX::one(d))</highlight></codeline>
|
|
<codeline lineno="576"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>c--;</highlight></codeline>
|
|
<codeline lineno="577"><highlight class="normal"><sp/><sp/><sp/><sp/>n_s--;</highlight></codeline>
|
|
<codeline lineno="578"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((n_s<sp/><<sp/>c)<sp/>||<sp/>(c<sp/><=<sp/>0))</highlight></codeline>
|
|
<codeline lineno="579"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5ac32341b682bca52b8617a8ad004023ef" kindref="member">ES_NOFIX</ref>;</highlight></codeline>
|
|
<codeline lineno="580"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="581"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="582"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="583"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="584"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="585"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="586" refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1ac0656e096f022458a6e774b946a67489" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1ac0656e096f022458a6e774b946a67489" kindref="member">ReGqBoolInt<VX,VB,rm>::propagate</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)<sp/>{</highlight></codeline>
|
|
<codeline lineno="587"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.none())<sp/>{</highlight></codeline>
|
|
<codeline lineno="588"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/><=<sp/>0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="589"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a3864fdfe47e795ea6d7c27c63dd88ad3" kindref="member">RM_IMP</ref>)</highlight></codeline>
|
|
<codeline lineno="590"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.one_none(home));</highlight></codeline>
|
|
<codeline lineno="591"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="592"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a44274ed04d4abe9f95da6ee51d97af5e" kindref="member">RM_PMI</ref>)</highlight></codeline>
|
|
<codeline lineno="593"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero_none(home));</highlight></codeline>
|
|
<codeline lineno="594"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="595"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="596"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceGecode_1_1Int_1_1Linear_1ab5b8f6e8132452642145e44f9cf57bb0" kindref="member">normalize</ref>();</highlight></codeline>
|
|
<codeline lineno="597"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="598"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a44274ed04d4abe9f95da6ee51d97af5e" kindref="member">RM_PMI</ref>)</highlight></codeline>
|
|
<codeline lineno="599"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,(<ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt" kindref="compound">GqBoolInt<VX>::post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),x,c)));</highlight></codeline>
|
|
<codeline lineno="600"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="601"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a3864fdfe47e795ea6d7c27c63dd88ad3" kindref="member">RM_IMP</ref>)<sp/>{</highlight></codeline>
|
|
<codeline lineno="602"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<typename BoolNegTraits<VX>::NegView</ref>><sp/>nx(home,x.size());</highlight></codeline>
|
|
<codeline lineno="603"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=x.size();<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="604"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nx[i]=<ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VX>::neg</ref>(x[i]);</highlight></codeline>
|
|
<codeline lineno="605"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,<ref refid="classGecode_1_1Int_1_1Linear_1_1GqBoolInt" kindref="compound">GqBoolInt</ref><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VX>::NegView</ref>></highlight></codeline>
|
|
<codeline lineno="606"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>::<ref refid="namespaceGecode_1_1Int_1_1Linear_1a9de2a7cb2f6fdbb0d25d9fb6a5276727" kindref="member">post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),nx,x.size()-c+1));</highlight></codeline>
|
|
<codeline lineno="607"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="608"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="609"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="610"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>home.<ref refid="group__TaskActorStatus_1gafc19cbf71ed90a9e0b414b875103f4c7" kindref="member">ES_SUBSUMED</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="611"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="612"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="613"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="614"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="615" refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a76b3d6fa1d5d6c9cddaab332ac065ec9" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt_1a76b3d6fa1d5d6c9cddaab332ac065ec9" kindref="member">ReGqBoolInt<VX,VB,rm>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c,<sp/>VB<sp/>b)<sp/>{</highlight></codeline>
|
|
<codeline lineno="616"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(!b.assigned());<sp/></highlight><highlight class="comment">//<sp/>checked<sp/>before<sp/>posting</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="617"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="618"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Eliminate<sp/>assigned<sp/>views</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="619"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_x<sp/>=<sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>();</highlight></codeline>
|
|
<codeline lineno="620"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="621"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="622"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];</highlight></codeline>
|
|
<codeline lineno="623"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="624"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];<sp/>c--;</highlight></codeline>
|
|
<codeline lineno="625"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="626"><highlight class="normal"><sp/><sp/><sp/><sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(n_x);</highlight></codeline>
|
|
<codeline lineno="627"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(n_x<sp/><<sp/>c)<sp/>{</highlight></codeline>
|
|
<codeline lineno="628"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>RHS<sp/>too<sp/>large</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="629"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a44274ed04d4abe9f95da6ee51d97af5e" kindref="member">RM_PMI</ref>)</highlight></codeline>
|
|
<codeline lineno="630"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero_none(home));</highlight></codeline>
|
|
<codeline lineno="631"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(c<sp/><=<sp/>0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="632"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Whatever<sp/>the<sp/>x[i]<sp/>take<sp/>for<sp/>values,<sp/>the<sp/>inequality<sp/>is<sp/>subsumed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="633"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a3864fdfe47e795ea6d7c27c63dd88ad3" kindref="member">RM_IMP</ref>)</highlight></codeline>
|
|
<codeline lineno="634"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.one_none(home));</highlight></codeline>
|
|
<codeline lineno="635"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/>==<sp/>1)<sp/>&&<sp/>(rm<sp/>==<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5ad608be446ca24286ac821efc8667e37e" kindref="member">RM_EQV</ref>))<sp/>{</highlight></codeline>
|
|
<codeline lineno="636"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Equivalent<sp/>to<sp/>Boolean<sp/>disjunction</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="637"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Bool_1_1NaryOr_1ad1b80c54996003af678fab5eb59288d9" kindref="member">Bool::NaryOr<VX,VB>::post</ref>(home,x,b);</highlight></codeline>
|
|
<codeline lineno="638"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/>==<sp/>n_x)<sp/>&&<sp/>(rm<sp/>==<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5ad608be446ca24286ac821efc8667e37e" kindref="member">RM_EQV</ref>))<sp/>{</highlight></codeline>
|
|
<codeline lineno="639"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Equivalent<sp/>to<sp/>Boolean<sp/>conjunction,<sp/>transform<sp/>to<sp/>Boolean<sp/>disjunction</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="640"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<typename BoolNegTraits<VX>::NegView</ref>><sp/>nx(home,n_x);</highlight></codeline>
|
|
<codeline lineno="641"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="642"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nx[i]=<ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VX>::neg</ref>(x[i]);</highlight></codeline>
|
|
<codeline lineno="643"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Bool_1_1NaryOr" kindref="compound">Bool::NaryOr</ref></highlight></codeline>
|
|
<codeline lineno="644"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VX>::NegView</ref>,</highlight></codeline>
|
|
<codeline lineno="645"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VB>::NegView</ref>></highlight></codeline>
|
|
<codeline lineno="646"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceGecode_1_1Int_1_1Linear_1a9de2a7cb2f6fdbb0d25d9fb6a5276727" kindref="member">::post</ref>(home,nx,<ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VB>::neg</ref>(b));</highlight></codeline>
|
|
<codeline lineno="647"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="648"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>(void)<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReGqBoolInt" kindref="compound">ReGqBoolInt<VX,VB,rm></ref>(home,x,c,b);</highlight></codeline>
|
|
<codeline lineno="649"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="650"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="651"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="652"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="653"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">/*</highlight></codeline>
|
|
<codeline lineno="654"><highlight class="comment"><sp/><sp/><sp/>*<sp/>Reified<sp/>equal<sp/>propagator<sp/>(integer<sp/>rhs)</highlight></codeline>
|
|
<codeline lineno="655"><highlight class="comment"><sp/><sp/><sp/>*<sp/></highlight></codeline>
|
|
<codeline lineno="656"><highlight class="comment"><sp/><sp/><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="657"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="658"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="659" refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1aa50e607f1737b1637ef0eb209df5cbc7" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1aff2e83d63848e7dc83c46d13921ff6ee" kindref="member">ReEqBoolInt<VX,VB,rm>::ReEqBoolInt</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c,<sp/>VB<sp/>b)</highlight></codeline>
|
|
<codeline lineno="660"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt" kindref="compound">ReLinBoolInt</ref><VX,VB>(home,x,c,b)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="661"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="662"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="663"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="664" refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1aff2e83d63848e7dc83c46d13921ff6ee" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1aff2e83d63848e7dc83c46d13921ff6ee" kindref="member">ReEqBoolInt<VX,VB,rm>::ReEqBoolInt</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,<sp/></highlight></codeline>
|
|
<codeline lineno="665"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt" kindref="compound">ReEqBoolInt<VX,VB,rm></ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="666"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReLinBoolInt" kindref="compound">ReLinBoolInt</ref><VX,VB>(home,share,p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="667"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="668"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="669"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="670" refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a1981d78114882dd9e0ea09bd2d944680" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a1981d78114882dd9e0ea09bd2d944680" kindref="member">ReEqBoolInt<VX,VB,rm>::copy</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share)<sp/>{</highlight></codeline>
|
|
<codeline lineno="671"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt" kindref="compound">ReEqBoolInt<VX,VB,rm></ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="672"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="673"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="674"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="675"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="676" refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a8272222cae26324c12eab7e36a7bad87" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a8272222cae26324c12eab7e36a7bad87" kindref="member">ReEqBoolInt<VX,VB,rm>::advise</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&,<sp/><ref refid="classGecode_1_1Advisor" kindref="compound">Advisor</ref>&,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Delta" kindref="compound">Delta</ref>&<sp/>d)<sp/>{</highlight></codeline>
|
|
<codeline lineno="677"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(VX::one(d))</highlight></codeline>
|
|
<codeline lineno="678"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>c--;</highlight></codeline>
|
|
<codeline lineno="679"><highlight class="normal"><sp/><sp/><sp/><sp/>n_s--;</highlight></codeline>
|
|
<codeline lineno="680"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="681"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/><<sp/>0)<sp/>||<sp/>(c<sp/>><sp/>n_s)<sp/>||<sp/>(n_s<sp/>==<sp/>0))</highlight></codeline>
|
|
<codeline lineno="682"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5ac32341b682bca52b8617a8ad004023ef" kindref="member">ES_NOFIX</ref>;</highlight></codeline>
|
|
<codeline lineno="683"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="684"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a13bb69056fb9293e8df98c0e347ba634" kindref="member">ES_FIX</ref>;</highlight></codeline>
|
|
<codeline lineno="685"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="686"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="687"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="688"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="689" refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a7cac60b9e4f04a6f10da50465c153e41" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a7cac60b9e4f04a6f10da50465c153e41" kindref="member">ReEqBoolInt<VX,VB,rm>::propagate</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1a129e41c1d037528010d7b6706495a560" kindref="member">ModEventDelta</ref>&)<sp/>{</highlight></codeline>
|
|
<codeline lineno="690"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.none())<sp/>{</highlight></codeline>
|
|
<codeline lineno="691"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/>==<sp/>0)<sp/>&&<sp/>(n_s<sp/>==<sp/>0))<sp/>{</highlight></codeline>
|
|
<codeline lineno="692"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a3864fdfe47e795ea6d7c27c63dd88ad3" kindref="member">RM_IMP</ref>)</highlight></codeline>
|
|
<codeline lineno="693"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.one_none(home));</highlight></codeline>
|
|
<codeline lineno="694"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="695"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a44274ed04d4abe9f95da6ee51d97af5e" kindref="member">RM_PMI</ref>)</highlight></codeline>
|
|
<codeline lineno="696"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero_none(home));</highlight></codeline>
|
|
<codeline lineno="697"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="698"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="699"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceGecode_1_1Int_1_1Linear_1ab5b8f6e8132452642145e44f9cf57bb0" kindref="member">normalize</ref>();</highlight></codeline>
|
|
<codeline lineno="700"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="701"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a44274ed04d4abe9f95da6ee51d97af5e" kindref="member">RM_PMI</ref>)</highlight></codeline>
|
|
<codeline lineno="702"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,(<ref refid="classGecode_1_1Int_1_1Linear_1_1EqBoolInt" kindref="compound">EqBoolInt<VX>::post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),x,c)));</highlight></codeline>
|
|
<codeline lineno="703"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="704"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a3864fdfe47e795ea6d7c27c63dd88ad3" kindref="member">RM_IMP</ref>)</highlight></codeline>
|
|
<codeline lineno="705"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,(<ref refid="classGecode_1_1Int_1_1Linear_1_1NqBoolInt" kindref="compound">NqBoolInt<VX>::post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),x,c)));</highlight></codeline>
|
|
<codeline lineno="706"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="707"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="708"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>home.<ref refid="group__TaskActorStatus_1gafc19cbf71ed90a9e0b414b875103f4c7" kindref="member">ES_SUBSUMED</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="709"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="710"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="711"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VX,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>VB,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="712"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="713" refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a3be856e35237426beb3a0cc0e69f595b" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt_1a3be856e35237426beb3a0cc0e69f595b" kindref="member">ReEqBoolInt<VX,VB,rm>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<VX></ref>&<sp/>x,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>c,<sp/>VB<sp/>b)<sp/>{</highlight></codeline>
|
|
<codeline lineno="714"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(!b.assigned());<sp/></highlight><highlight class="comment">//<sp/>checked<sp/>before<sp/>posting</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="715"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="716"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Eliminate<sp/>assigned<sp/>views</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="717"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n_x<sp/>=<sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>();</highlight></codeline>
|
|
<codeline lineno="718"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="719"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="720"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];</highlight></codeline>
|
|
<codeline lineno="721"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[i].one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="722"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x[i]<sp/>=<sp/>x[--n_x];<sp/>c--;</highlight></codeline>
|
|
<codeline lineno="723"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="724"><highlight class="normal"><sp/><sp/><sp/><sp/>x.<ref refid="classGecode_1_1ViewArray_1a65940b23e2457e97607475f8bd8f4ac6" kindref="member">size</ref>(n_x);</highlight></codeline>
|
|
<codeline lineno="725"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((n_x<sp/><<sp/>c)<sp/>||<sp/>(c<sp/><<sp/>0))<sp/>{</highlight></codeline>
|
|
<codeline lineno="726"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>RHS<sp/>too<sp/>large</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="727"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a44274ed04d4abe9f95da6ee51d97af5e" kindref="member">RM_PMI</ref>)</highlight></codeline>
|
|
<codeline lineno="728"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero_none(home));</highlight></codeline>
|
|
<codeline lineno="729"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/>==<sp/>0)<sp/>&&<sp/>(n_x<sp/>==<sp/>0))<sp/>{</highlight></codeline>
|
|
<codeline lineno="730"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>all<sp/>variables<sp/>set,<sp/>and<sp/>c<sp/>==<sp/>0:<sp/>equality</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="731"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(rm<sp/>!=<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5a3864fdfe47e795ea6d7c27c63dd88ad3" kindref="member">RM_IMP</ref>)</highlight></codeline>
|
|
<codeline lineno="732"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.one_none(home));</highlight></codeline>
|
|
<codeline lineno="733"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/>==<sp/>0)<sp/>&&<sp/>(rm<sp/>==<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5ad608be446ca24286ac821efc8667e37e" kindref="member">RM_EQV</ref>))<sp/>{</highlight></codeline>
|
|
<codeline lineno="734"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Equivalent<sp/>to<sp/>Boolean<sp/>disjunction</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="735"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Bool_1_1NaryOr" kindref="compound">Bool::NaryOr<VX,typename BoolNegTraits<VB>::NegView</ref>></highlight></codeline>
|
|
<codeline lineno="736"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceGecode_1_1Int_1_1Linear_1a9de2a7cb2f6fdbb0d25d9fb6a5276727" kindref="member">::post</ref>(home,x,<ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VB>::neg</ref>(b));</highlight></codeline>
|
|
<codeline lineno="737"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((c<sp/>==<sp/>n_x)<sp/>&&<sp/>(rm<sp/>==<sp/><ref refid="namespaceGecode_1a8904e2a3f216089daeaa60652a6429a5ad608be446ca24286ac821efc8667e37e" kindref="member">RM_EQV</ref>))<sp/>{</highlight></codeline>
|
|
<codeline lineno="738"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Equivalent<sp/>to<sp/>Boolean<sp/>conjunction,<sp/>transform<sp/>to<sp/>Boolean<sp/>disjunction</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="739"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<typename BoolNegTraits<VX>::NegView</ref>><sp/>nx(home,n_x);</highlight></codeline>
|
|
<codeline lineno="740"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=n_x;<sp/>i--;<sp/>)</highlight></codeline>
|
|
<codeline lineno="741"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nx[i]=<ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VX>::neg</ref>(x[i]);</highlight></codeline>
|
|
<codeline lineno="742"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Bool_1_1NaryOr" kindref="compound">Bool::NaryOr</ref></highlight></codeline>
|
|
<codeline lineno="743"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VX>::NegView</ref>,</highlight></codeline>
|
|
<codeline lineno="744"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VB>::NegView</ref>></highlight></codeline>
|
|
<codeline lineno="745"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="namespaceGecode_1_1Int_1_1Linear_1a9de2a7cb2f6fdbb0d25d9fb6a5276727" kindref="member">::post</ref>(home,nx,<ref refid="classGecode_1_1Int_1_1Linear_1_1BoolNegTraits" kindref="compound">BoolNegTraits<VB>::neg</ref>(b));</highlight></codeline>
|
|
<codeline lineno="746"><highlight class="normal"><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="747"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>(void)<sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1Linear_1_1ReEqBoolInt" kindref="compound">ReEqBoolInt<VX,VB,rm></ref>(home,x,c,b);</highlight></codeline>
|
|
<codeline lineno="748"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="749"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5a01d6fb1ec70479e8e413d5ecfd63e303" kindref="member">ES_OK</ref>;</highlight></codeline>
|
|
<codeline lineno="750"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="751"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="752"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="753"><highlight class="normal">}}}</highlight></codeline>
|
|
<codeline lineno="754"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="755"><highlight class="normal"></highlight><highlight class="comment">//<sp/>STATISTICS:<sp/>int-prop</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="756"><highlight class="normal"></highlight></codeline>
|
|
</programlisting>
|
|
<location file="/usr/include/gecode/int/linear/bool-int.hpp"/>
|
|
</compounddef>
|
|
</doxygen>
|