1844 lines
190 KiB
XML
1844 lines
190 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="minmax_8hpp" kind="file">
|
|
<compoundname>minmax.hpp</compoundname>
|
|
<includes refid="set_8hh" local="no">gecode/set.hh</includes>
|
|
<includes refid="int_8hh" local="no">gecode/int.hh</includes>
|
|
<includedby refid="set_2int_8hh" local="no">/usr/include/gecode/set/int.hh</includedby>
|
|
<incdepgraph>
|
|
<node id="31041">
|
|
<label>gecode/support/cast.hpp</label>
|
|
<link refid="cast_8hpp_source"/>
|
|
</node>
|
|
<node id="31138">
|
|
<label>gecode/iter/values-ranges.hpp</label>
|
|
<link refid="values-ranges_8hpp_source"/>
|
|
</node>
|
|
<node id="31205">
|
|
<label>gecode/set/branch/assign.hpp</label>
|
|
<link refid="set_2branch_2assign_8hpp_source"/>
|
|
</node>
|
|
<node id="31160">
|
|
<label>gecode/int/div.hh</label>
|
|
<link refid="div_8hh_source"/>
|
|
<childnode refid="31103" relation="include">
|
|
</childnode>
|
|
<childnode refid="31161" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31159">
|
|
<label>gecode/int/view/scale.hpp</label>
|
|
<link refid="int_2view_2scale_8hpp_source"/>
|
|
<childnode refid="31160" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31127">
|
|
<label>gecode/iter/ranges-rangelist.hpp</label>
|
|
<link refid="ranges-rangelist_8hpp_source"/>
|
|
</node>
|
|
<node id="31098">
|
|
<label>gecode/kernel/brancher-val-sel-commit.hpp</label>
|
|
<link refid="brancher-val-sel-commit_8hpp_source"/>
|
|
</node>
|
|
<node id="31133">
|
|
<label>gecode/iter/values-map.hpp</label>
|
|
<link refid="values-map_8hpp_source"/>
|
|
</node>
|
|
<node id="31118">
|
|
<label>gecode/iter/ranges-negative.hpp</label>
|
|
<link refid="ranges-negative_8hpp_source"/>
|
|
<childnode refid="31044" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31059">
|
|
<label>gecode/support/static-stack.hpp</label>
|
|
<link refid="static-stack_8hpp_source"/>
|
|
</node>
|
|
<node id="31100">
|
|
<label>gecode/kernel/var-imp.hpp</label>
|
|
<link refid="kernel_2var-imp_8hpp_source"/>
|
|
</node>
|
|
<node id="31057">
|
|
<label>gecode/support/random.hpp</label>
|
|
<link refid="random_8hpp_source"/>
|
|
</node>
|
|
<node id="31102">
|
|
<label>limits</label>
|
|
</node>
|
|
<node id="31075">
|
|
<label>gecode/kernel/var.hpp</label>
|
|
<link refid="kernel_2var_8hpp_source"/>
|
|
</node>
|
|
<node id="31163">
|
|
<label>gecode/int/view/bool.hpp</label>
|
|
<link refid="int_2view_2bool_8hpp_source"/>
|
|
</node>
|
|
<node id="31142">
|
|
<label>gecode/iter/ranges-size.hpp</label>
|
|
<link refid="ranges-size_8hpp_source"/>
|
|
</node>
|
|
<node id="31060">
|
|
<label>gecode/support/thread/none.hpp</label>
|
|
<link refid="none_8hpp_source"/>
|
|
</node>
|
|
<node id="31079">
|
|
<label>iterator</label>
|
|
</node>
|
|
<node id="31110">
|
|
<label>gecode/iter/ranges-array.hpp</label>
|
|
<link refid="ranges-array_8hpp_source"/>
|
|
</node>
|
|
<node id="31062">
|
|
<label>gecode/support/timer.hpp</label>
|
|
<link refid="timer_8hpp_source"/>
|
|
</node>
|
|
<node id="31061">
|
|
<label>gecode/support/thread/thread.hpp</label>
|
|
<link refid="thread_2thread_8hpp_source"/>
|
|
</node>
|
|
<node id="31126">
|
|
<label>gecode/iter/ranges-singleton-append.hpp</label>
|
|
<link refid="ranges-singleton-append_8hpp_source"/>
|
|
</node>
|
|
<node id="31120">
|
|
<label>gecode/iter/ranges-positive.hpp</label>
|
|
<link refid="ranges-positive_8hpp_source"/>
|
|
<childnode refid="31044" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31097">
|
|
<label>gecode/kernel/brancher-val-commit.hpp</label>
|
|
<link refid="brancher-val-commit_8hpp_source"/>
|
|
</node>
|
|
<node id="31151">
|
|
<label>gecode/int/view/iter.hpp</label>
|
|
<link refid="int_2view_2iter_8hpp_source"/>
|
|
</node>
|
|
<node id="31203">
|
|
<label>gecode/set/branch/var.hpp</label>
|
|
<link refid="set_2branch_2var_8hpp_source"/>
|
|
</node>
|
|
<node id="31190">
|
|
<label>gecode/set/var/set.hpp</label>
|
|
<link refid="set_2var_2set_8hpp_source"/>
|
|
</node>
|
|
<node id="31087">
|
|
<label>gecode/kernel/afc.hpp</label>
|
|
<link refid="kernel_2afc_8hpp_source"/>
|
|
</node>
|
|
<node id="31071">
|
|
<label>gecode/kernel/var-type.hpp</label>
|
|
<link refid="var-type_8hpp_source"/>
|
|
</node>
|
|
<node id="31063">
|
|
<label>gecode/support/hw-rnd.hpp</label>
|
|
<link refid="hw-rnd_8hpp_source"/>
|
|
</node>
|
|
<node id="31188">
|
|
<label>gecode/set/var-imp/set.hpp</label>
|
|
<link refid="set_2var-imp_2set_8hpp_source"/>
|
|
</node>
|
|
<node id="31130">
|
|
<label>gecode/iter/values-bitsetoffset.hpp</label>
|
|
<link refid="values-bitsetoffset_8hpp_source"/>
|
|
</node>
|
|
<node id="31201">
|
|
<label>gecode/set/branch/afc.hpp</label>
|
|
<link refid="set_2branch_2afc_8hpp_source"/>
|
|
</node>
|
|
<node id="31050">
|
|
<label>cmath</label>
|
|
</node>
|
|
<node id="31034">
|
|
<label>cassert</label>
|
|
</node>
|
|
<node id="31094">
|
|
<label>gecode/kernel/brancher-view-sel.hpp</label>
|
|
<link refid="brancher-view-sel_8hpp_source"/>
|
|
</node>
|
|
<node id="31101">
|
|
<label>gecode/kernel/allocators.hpp</label>
|
|
<link refid="allocators_8hpp_source"/>
|
|
<childnode refid="31102" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31183">
|
|
<label>gecode/set/limits.hpp</label>
|
|
<link refid="set_2limits_8hpp_source"/>
|
|
</node>
|
|
<node id="31182">
|
|
<label>gecode/set/exception.hpp</label>
|
|
<link refid="set_2exception_8hpp_source"/>
|
|
</node>
|
|
<node id="31171">
|
|
<label>gecode/int/int-set-2.hpp</label>
|
|
<link refid="int-set-2_8hpp_source"/>
|
|
</node>
|
|
<node id="31078">
|
|
<label>cstdarg</label>
|
|
</node>
|
|
<node id="31048">
|
|
<label>gecode/support/bitset-base.hpp</label>
|
|
<link refid="bitset-base_8hpp_source"/>
|
|
<childnode refid="31047" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31082">
|
|
<label>gecode/kernel/shared-array.hpp</label>
|
|
<link refid="shared-array_8hpp_source"/>
|
|
<childnode refid="31078" relation="include">
|
|
</childnode>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31162">
|
|
<label>gecode/int/view/cached.hpp</label>
|
|
<link refid="int_2view_2cached_8hpp_source"/>
|
|
</node>
|
|
<node id="31072">
|
|
<label>gecode/kernel/modevent.hpp</label>
|
|
<link refid="modevent_8hpp_source"/>
|
|
</node>
|
|
<node id="31065">
|
|
<label>gecode/kernel/memory-config.hpp</label>
|
|
<link refid="memory-config_8hpp_source"/>
|
|
</node>
|
|
<node id="31180">
|
|
<label>gecode/int/branch/val.hpp</label>
|
|
<link refid="int_2branch_2val_8hpp_source"/>
|
|
</node>
|
|
<node id="31046">
|
|
<label>gecode/support/int-type.hpp</label>
|
|
<link refid="int-type_8hpp_source"/>
|
|
<childnode refid="31047" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31198">
|
|
<label>gecode/set/array-traits.hpp</label>
|
|
<link refid="set_2array-traits_8hpp_source"/>
|
|
</node>
|
|
<node id="31137">
|
|
<label>gecode/iter/values-positive.hpp</label>
|
|
<link refid="values-positive_8hpp_source"/>
|
|
</node>
|
|
<node id="31104">
|
|
<label>cfloat</label>
|
|
</node>
|
|
<node id="31143">
|
|
<label>gecode/int/exception.hpp</label>
|
|
<link refid="int_2exception_8hpp_source"/>
|
|
</node>
|
|
<node id="31039">
|
|
<label>gecode/support/exception.hpp</label>
|
|
<link refid="support_2exception_8hpp_source"/>
|
|
<childnode refid="31040" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31040">
|
|
<label>exception</label>
|
|
</node>
|
|
<node id="31192">
|
|
<label>gecode/set/view/const.hpp</label>
|
|
<link refid="const_8hpp_source"/>
|
|
</node>
|
|
<node id="31116">
|
|
<label>gecode/iter/ranges-map.hpp</label>
|
|
<link refid="ranges-map_8hpp_source"/>
|
|
</node>
|
|
<node id="31074">
|
|
<label>gecode/kernel/region.hpp</label>
|
|
<link refid="region_8hpp_source"/>
|
|
</node>
|
|
<node id="31045">
|
|
<label>gecode/support/marked-pointer.hpp</label>
|
|
<link refid="marked-pointer_8hpp_source"/>
|
|
<childnode refid="31031" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31042">
|
|
<label>gecode/support/thread.hpp</label>
|
|
<link refid="thread_8hpp_source"/>
|
|
<childnode refid="31031" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31030">
|
|
<label>gecode/kernel.hh</label>
|
|
<link refid="kernel_8hh_source"/>
|
|
<childnode refid="31031" relation="include">
|
|
</childnode>
|
|
<childnode refid="31032" relation="include">
|
|
</childnode>
|
|
<childnode refid="31033" relation="include">
|
|
</childnode>
|
|
<childnode refid="31034" relation="include">
|
|
</childnode>
|
|
<childnode refid="31035" relation="include">
|
|
</childnode>
|
|
<childnode refid="31037" relation="include">
|
|
</childnode>
|
|
<childnode refid="31064" relation="include">
|
|
</childnode>
|
|
<childnode refid="31065" relation="include">
|
|
</childnode>
|
|
<childnode refid="31066" relation="include">
|
|
</childnode>
|
|
<childnode refid="31067" relation="include">
|
|
</childnode>
|
|
<childnode refid="31068" relation="include">
|
|
</childnode>
|
|
<childnode refid="31069" relation="include">
|
|
</childnode>
|
|
<childnode refid="31070" relation="include">
|
|
</childnode>
|
|
<childnode refid="31072" relation="include">
|
|
</childnode>
|
|
<childnode refid="31073" relation="include">
|
|
</childnode>
|
|
<childnode refid="31074" relation="include">
|
|
</childnode>
|
|
<childnode refid="31075" relation="include">
|
|
</childnode>
|
|
<childnode refid="31076" relation="include">
|
|
</childnode>
|
|
<childnode refid="31077" relation="include">
|
|
</childnode>
|
|
<childnode refid="31082" relation="include">
|
|
</childnode>
|
|
<childnode refid="31083" relation="include">
|
|
</childnode>
|
|
<childnode refid="31085" relation="include">
|
|
</childnode>
|
|
<childnode refid="31086" relation="include">
|
|
</childnode>
|
|
<childnode refid="31087" relation="include">
|
|
</childnode>
|
|
<childnode refid="31088" relation="include">
|
|
</childnode>
|
|
<childnode refid="31089" relation="include">
|
|
</childnode>
|
|
<childnode refid="31090" relation="include">
|
|
</childnode>
|
|
<childnode refid="31091" relation="include">
|
|
</childnode>
|
|
<childnode refid="31092" relation="include">
|
|
</childnode>
|
|
<childnode refid="31093" relation="include">
|
|
</childnode>
|
|
<childnode refid="31094" relation="include">
|
|
</childnode>
|
|
<childnode refid="31095" relation="include">
|
|
</childnode>
|
|
<childnode refid="31096" relation="include">
|
|
</childnode>
|
|
<childnode refid="31097" relation="include">
|
|
</childnode>
|
|
<childnode refid="31098" relation="include">
|
|
</childnode>
|
|
<childnode refid="31099" relation="include">
|
|
</childnode>
|
|
<childnode refid="31100" relation="include">
|
|
</childnode>
|
|
<childnode refid="31101" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31145">
|
|
<label>gecode/int/int-set-1.hpp</label>
|
|
<link refid="int-set-1_8hpp_source"/>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31186">
|
|
<label>gecode/set/var-imp/integerset.hpp</label>
|
|
<link refid="integerset_8hpp_source"/>
|
|
</node>
|
|
<node id="31088">
|
|
<label>gecode/kernel/branch-traits.hpp</label>
|
|
<link refid="branch-traits_8hpp_source"/>
|
|
</node>
|
|
<node id="31156">
|
|
<label>gecode/int/view/zero.hpp</label>
|
|
<link refid="zero_8hpp_source"/>
|
|
</node>
|
|
<node id="31112">
|
|
<label>gecode/iter/ranges-compl.hpp</label>
|
|
<link refid="ranges-compl_8hpp_source"/>
|
|
</node>
|
|
<node id="31174">
|
|
<label>gecode/int/extensional/dfa.hpp</label>
|
|
<link refid="dfa_8hpp_source"/>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31077">
|
|
<label>gecode/kernel/array.hpp</label>
|
|
<link refid="kernel_2array_8hpp_source"/>
|
|
<childnode refid="31078" relation="include">
|
|
</childnode>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
<childnode refid="31079" relation="include">
|
|
</childnode>
|
|
<childnode refid="31080" relation="include">
|
|
</childnode>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31177">
|
|
<label>gecode/int/branch/afc.hpp</label>
|
|
<link refid="int_2branch_2afc_8hpp_source"/>
|
|
</node>
|
|
<node id="31092">
|
|
<label>gecode/kernel/branch-val.hpp</label>
|
|
<link refid="branch-val_8hpp_source"/>
|
|
</node>
|
|
<node id="31056">
|
|
<label>gecode/support/dynamic-stack.hpp</label>
|
|
<link refid="dynamic-stack_8hpp_source"/>
|
|
</node>
|
|
<node id="31121">
|
|
<label>gecode/iter/ranges-scale.hpp</label>
|
|
<link refid="ranges-scale_8hpp_source"/>
|
|
<childnode refid="31050" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31068">
|
|
<label>gecode/kernel/archive.hpp</label>
|
|
<link refid="archive_8hpp_source"/>
|
|
</node>
|
|
<node id="31073">
|
|
<label>gecode/kernel/range-list.hpp</label>
|
|
<link refid="range-list_8hpp_source"/>
|
|
</node>
|
|
<node id="31132">
|
|
<label>gecode/iter/values-inter.hpp</label>
|
|
<link refid="values-inter_8hpp_source"/>
|
|
</node>
|
|
<node id="31093">
|
|
<label>gecode/kernel/brancher-merit.hpp</label>
|
|
<link refid="brancher-merit_8hpp_source"/>
|
|
</node>
|
|
<node id="31036">
|
|
<label>gecode/support/config.hpp</label>
|
|
<link refid="support_2config_8hpp_source"/>
|
|
</node>
|
|
<node id="31202">
|
|
<label>gecode/set/branch/activity.hpp</label>
|
|
<link refid="set_2branch_2activity_8hpp_source"/>
|
|
</node>
|
|
<node id="31168">
|
|
<label>gecode/int/view/bool-test.hpp</label>
|
|
<link refid="bool-test_8hpp_source"/>
|
|
</node>
|
|
<node id="31125">
|
|
<label>gecode/iter/ranges-add.hpp</label>
|
|
<link refid="ranges-add_8hpp_source"/>
|
|
</node>
|
|
<node id="31150">
|
|
<label>gecode/int/view.hpp</label>
|
|
<link refid="int_2view_8hpp_source"/>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
<childnode refid="31151" relation="include">
|
|
</childnode>
|
|
<childnode refid="31152" relation="include">
|
|
</childnode>
|
|
<childnode refid="31153" relation="include">
|
|
</childnode>
|
|
<childnode refid="31154" relation="include">
|
|
</childnode>
|
|
<childnode refid="31155" relation="include">
|
|
</childnode>
|
|
<childnode refid="31156" relation="include">
|
|
</childnode>
|
|
<childnode refid="31157" relation="include">
|
|
</childnode>
|
|
<childnode refid="31158" relation="include">
|
|
</childnode>
|
|
<childnode refid="31159" relation="include">
|
|
</childnode>
|
|
<childnode refid="31162" relation="include">
|
|
</childnode>
|
|
<childnode refid="31163" relation="include">
|
|
</childnode>
|
|
<childnode refid="31164" relation="include">
|
|
</childnode>
|
|
<childnode refid="31165" relation="include">
|
|
</childnode>
|
|
<childnode refid="31166" relation="include">
|
|
</childnode>
|
|
<childnode refid="31167" relation="include">
|
|
</childnode>
|
|
<childnode refid="31168" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31131">
|
|
<label>gecode/iter/values-list.hpp</label>
|
|
<link refid="values-list_8hpp_source"/>
|
|
</node>
|
|
<node id="31134">
|
|
<label>gecode/iter/values-minus.hpp</label>
|
|
<link refid="values-minus_8hpp_source"/>
|
|
</node>
|
|
<node id="31090">
|
|
<label>gecode/kernel/branch-var.hpp</label>
|
|
<link refid="branch-var_8hpp_source"/>
|
|
</node>
|
|
<node id="31184">
|
|
<label>gecode/set/var-imp.hpp</label>
|
|
<link refid="set_2var-imp_8hpp_source"/>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
<childnode refid="31185" relation="include">
|
|
</childnode>
|
|
<childnode refid="31186" relation="include">
|
|
</childnode>
|
|
<childnode refid="31187" relation="include">
|
|
</childnode>
|
|
<childnode refid="31188" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31066">
|
|
<label>gecode/kernel/memory-manager.hpp</label>
|
|
<link refid="memory-manager_8hpp_source"/>
|
|
</node>
|
|
<node id="31144">
|
|
<label>gecode/int/limits.hpp</label>
|
|
<link refid="int_2limits_8hpp_source"/>
|
|
</node>
|
|
<node id="31055">
|
|
<label>gecode/support/dynamic-queue.hpp</label>
|
|
<link refid="dynamic-queue_8hpp_source"/>
|
|
</node>
|
|
<node id="31169">
|
|
<label>gecode/int/propagator.hpp</label>
|
|
<link refid="int_2propagator_8hpp_source"/>
|
|
</node>
|
|
<node id="31176">
|
|
<label>gecode/int/branch/traits.hpp</label>
|
|
<link refid="int_2branch_2traits_8hpp_source"/>
|
|
</node>
|
|
<node id="31140">
|
|
<label>gecode/iter/values-union.hpp</label>
|
|
<link refid="values-union_8hpp_source"/>
|
|
</node>
|
|
<node id="31067">
|
|
<label>gecode/kernel/macros.hpp</label>
|
|
<link refid="kernel_2macros_8hpp_source"/>
|
|
</node>
|
|
<node id="31195">
|
|
<label>gecode/set/view/cached.hpp</label>
|
|
<link refid="set_2view_2cached_8hpp_source"/>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31191">
|
|
<label>gecode/set/view/set.hpp</label>
|
|
<link refid="set_2view_2set_8hpp_source"/>
|
|
</node>
|
|
<node id="31119">
|
|
<label>gecode/iter/ranges-offset.hpp</label>
|
|
<link refid="ranges-offset_8hpp_source"/>
|
|
</node>
|
|
<node id="31084">
|
|
<label>ctime</label>
|
|
</node>
|
|
<node id="31158">
|
|
<label>gecode/int/view/offset.hpp</label>
|
|
<link refid="int_2view_2offset_8hpp_source"/>
|
|
</node>
|
|
<node id="31194">
|
|
<label>gecode/set/view/complement.hpp</label>
|
|
<link refid="complement_8hpp_source"/>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31128">
|
|
<label>gecode/iter/values-array.hpp</label>
|
|
<link refid="values-array_8hpp_source"/>
|
|
</node>
|
|
<node id="31179">
|
|
<label>gecode/int/branch/var.hpp</label>
|
|
<link refid="int_2branch_2var_8hpp_source"/>
|
|
</node>
|
|
<node id="31122">
|
|
<label>gecode/iter/ranges-singleton.hpp</label>
|
|
<link refid="ranges-singleton_8hpp_source"/>
|
|
</node>
|
|
<node id="31080">
|
|
<label>vector</label>
|
|
</node>
|
|
<node id="31199">
|
|
<label>gecode/set/array.hpp</label>
|
|
<link refid="set_2array_8hpp_source"/>
|
|
</node>
|
|
<node id="31165">
|
|
<label>gecode/int/view/print.hpp</label>
|
|
<link refid="int_2view_2print_8hpp_source"/>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31086">
|
|
<label>gecode/kernel/advisor.hpp</label>
|
|
<link refid="advisor_8hpp_source"/>
|
|
</node>
|
|
<node id="31175">
|
|
<label>gecode/int/extensional/tuple-set.hpp</label>
|
|
<link refid="tuple-set_8hpp_source"/>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31099">
|
|
<label>gecode/kernel/brancher-view-val.hpp</label>
|
|
<link refid="brancher-view-val_8hpp_source"/>
|
|
</node>
|
|
<node id="31154">
|
|
<label>gecode/int/view/int.hpp</label>
|
|
<link refid="int_2view_2int_8hpp_source"/>
|
|
</node>
|
|
<node id="31167">
|
|
<label>gecode/int/view/rel-test.hpp</label>
|
|
<link refid="int_2view_2rel-test_8hpp_source"/>
|
|
</node>
|
|
<node id="31081">
|
|
<label>sstream</label>
|
|
</node>
|
|
<node id="31170">
|
|
<label>gecode/int/array-traits.hpp</label>
|
|
<link refid="int_2array-traits_8hpp_source"/>
|
|
</node>
|
|
<node id="31096">
|
|
<label>gecode/kernel/brancher-val-sel.hpp</label>
|
|
<link refid="brancher-val-sel_8hpp_source"/>
|
|
</node>
|
|
<node id="31028">
|
|
<label>/usr/include/gecode/set/int/minmax.hpp</label>
|
|
<link refid="minmax.hpp"/>
|
|
<childnode refid="31029" relation="include">
|
|
</childnode>
|
|
<childnode refid="31103" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31085">
|
|
<label>gecode/kernel/propagator.hpp</label>
|
|
<link refid="kernel_2propagator_8hpp_source"/>
|
|
</node>
|
|
<node id="31053">
|
|
<label>gecode/support/block-allocator.hpp</label>
|
|
<link refid="block-allocator_8hpp_source"/>
|
|
</node>
|
|
<node id="31161">
|
|
<label>gecode/int/div.hpp</label>
|
|
<link refid="int_2div_8hpp_source"/>
|
|
</node>
|
|
<node id="31196">
|
|
<label>gecode/set/view/print.hpp</label>
|
|
<link refid="set_2view_2print_8hpp_source"/>
|
|
<childnode refid="31081" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31136">
|
|
<label>gecode/iter/values-offset.hpp</label>
|
|
<link refid="values-offset_8hpp_source"/>
|
|
</node>
|
|
<node id="31172">
|
|
<label>gecode/int/array.hpp</label>
|
|
<link refid="int_2array_8hpp_source"/>
|
|
</node>
|
|
<node id="31193">
|
|
<label>gecode/set/view/singleton.hpp</label>
|
|
<link refid="singleton_8hpp_source"/>
|
|
</node>
|
|
<node id="31089">
|
|
<label>gecode/kernel/activity.hpp</label>
|
|
<link refid="kernel_2activity_8hpp_source"/>
|
|
</node>
|
|
<node id="31103">
|
|
<label>gecode/int.hh</label>
|
|
<link refid="int_8hh_source"/>
|
|
<childnode refid="31047" relation="include">
|
|
</childnode>
|
|
<childnode refid="31104" relation="include">
|
|
</childnode>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
<childnode refid="31080" relation="include">
|
|
</childnode>
|
|
<childnode refid="31030" relation="include">
|
|
</childnode>
|
|
<childnode refid="31105" relation="include">
|
|
</childnode>
|
|
<childnode refid="31037" relation="include">
|
|
</childnode>
|
|
<childnode refid="31143" relation="include">
|
|
</childnode>
|
|
<childnode refid="31144" relation="include">
|
|
</childnode>
|
|
<childnode refid="31145" relation="include">
|
|
</childnode>
|
|
<childnode refid="31146" relation="include">
|
|
</childnode>
|
|
<childnode refid="31150" relation="include">
|
|
</childnode>
|
|
<childnode refid="31169" relation="include">
|
|
</childnode>
|
|
<childnode refid="31170" relation="include">
|
|
</childnode>
|
|
<childnode refid="31171" relation="include">
|
|
</childnode>
|
|
<childnode refid="31172" relation="include">
|
|
</childnode>
|
|
<childnode refid="31173" relation="include">
|
|
</childnode>
|
|
<childnode refid="31174" relation="include">
|
|
</childnode>
|
|
<childnode refid="31175" relation="include">
|
|
</childnode>
|
|
<childnode refid="31176" relation="include">
|
|
</childnode>
|
|
<childnode refid="31177" relation="include">
|
|
</childnode>
|
|
<childnode refid="31178" relation="include">
|
|
</childnode>
|
|
<childnode refid="31179" relation="include">
|
|
</childnode>
|
|
<childnode refid="31180" relation="include">
|
|
</childnode>
|
|
<childnode refid="31181" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31032">
|
|
<label>cstdlib</label>
|
|
</node>
|
|
<node id="31049">
|
|
<label>gecode/support/bitset.hpp</label>
|
|
<link refid="bitset_8hpp_source"/>
|
|
<childnode refid="31047" relation="include">
|
|
</childnode>
|
|
<childnode refid="31050" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31153">
|
|
<label>gecode/int/var/bool.hpp</label>
|
|
<link refid="int_2var_2bool_8hpp_source"/>
|
|
</node>
|
|
<node id="31189">
|
|
<label>gecode/set/view.hpp</label>
|
|
<link refid="set_2view_8hpp_source"/>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
<childnode refid="31190" relation="include">
|
|
</childnode>
|
|
<childnode refid="31191" relation="include">
|
|
</childnode>
|
|
<childnode refid="31192" relation="include">
|
|
</childnode>
|
|
<childnode refid="31193" relation="include">
|
|
</childnode>
|
|
<childnode refid="31194" relation="include">
|
|
</childnode>
|
|
<childnode refid="31195" relation="include">
|
|
</childnode>
|
|
<childnode refid="31196" relation="include">
|
|
</childnode>
|
|
<childnode refid="31197" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31037">
|
|
<label>gecode/support/auto-link.hpp</label>
|
|
<link refid="auto-link_8hpp_source"/>
|
|
</node>
|
|
<node id="31181">
|
|
<label>gecode/int/branch/assign.hpp</label>
|
|
<link refid="int_2branch_2assign_8hpp_source"/>
|
|
</node>
|
|
<node id="31052">
|
|
<label>iostream</label>
|
|
</node>
|
|
<node id="31064">
|
|
<label>gecode/kernel/exception.hpp</label>
|
|
<link refid="kernel_2exception_8hpp_source"/>
|
|
</node>
|
|
<node id="31164">
|
|
<label>gecode/int/view/neg-bool.hpp</label>
|
|
<link refid="neg-bool_8hpp_source"/>
|
|
</node>
|
|
<node id="31117">
|
|
<label>gecode/iter/ranges-minus.hpp</label>
|
|
<link refid="ranges-minus_8hpp_source"/>
|
|
</node>
|
|
<node id="31135">
|
|
<label>gecode/iter/values-negative.hpp</label>
|
|
<link refid="values-negative_8hpp_source"/>
|
|
</node>
|
|
<node id="31038">
|
|
<label>gecode/support/macros.hpp</label>
|
|
<link refid="support_2macros_8hpp_source"/>
|
|
</node>
|
|
<node id="31204">
|
|
<label>gecode/set/branch/val.hpp</label>
|
|
<link refid="set_2branch_2val_8hpp_source"/>
|
|
</node>
|
|
<node id="31076">
|
|
<label>gecode/kernel/view.hpp</label>
|
|
<link refid="kernel_2view_8hpp_source"/>
|
|
</node>
|
|
<node id="31091">
|
|
<label>gecode/kernel/branch-tiebreak.hpp</label>
|
|
<link refid="branch-tiebreak_8hpp_source"/>
|
|
</node>
|
|
<node id="31031">
|
|
<label>cstddef</label>
|
|
</node>
|
|
<node id="31185">
|
|
<label>gecode/set/var-imp/delta.hpp</label>
|
|
<link refid="set_2var-imp_2delta_8hpp_source"/>
|
|
</node>
|
|
<node id="31197">
|
|
<label>gecode/set/var/print.hpp</label>
|
|
<link refid="set_2var_2print_8hpp_source"/>
|
|
</node>
|
|
<node id="31047">
|
|
<label>climits</label>
|
|
</node>
|
|
<node id="31187">
|
|
<label>gecode/set/var-imp/iter.hpp</label>
|
|
<link refid="set_2var-imp_2iter_8hpp_source"/>
|
|
</node>
|
|
<node id="31139">
|
|
<label>gecode/iter/values-singleton.hpp</label>
|
|
<link refid="values-singleton_8hpp_source"/>
|
|
</node>
|
|
<node id="31070">
|
|
<label>gecode/kernel/core.hpp</label>
|
|
<link refid="core_8hpp_source"/>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
<childnode refid="31071" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31115">
|
|
<label>gecode/iter/ranges-inter.hpp</label>
|
|
<link refid="ranges-inter_8hpp_source"/>
|
|
<childnode refid="31044" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31109">
|
|
<label>gecode/iter/ranges-append.hpp</label>
|
|
<link refid="ranges-append_8hpp_source"/>
|
|
</node>
|
|
<node id="31106">
|
|
<label>gecode/iter/ranges-operations.hpp</label>
|
|
<link refid="ranges-operations_8hpp_source"/>
|
|
</node>
|
|
<node id="31035">
|
|
<label>gecode/support.hh</label>
|
|
<link refid="support_8hh_source"/>
|
|
<childnode refid="31034" relation="include">
|
|
</childnode>
|
|
<childnode refid="31036" relation="include">
|
|
</childnode>
|
|
<childnode refid="31037" relation="include">
|
|
</childnode>
|
|
<childnode refid="31038" relation="include">
|
|
</childnode>
|
|
<childnode refid="31039" relation="include">
|
|
</childnode>
|
|
<childnode refid="31041" relation="include">
|
|
</childnode>
|
|
<childnode refid="31042" relation="include">
|
|
</childnode>
|
|
<childnode refid="31043" relation="include">
|
|
</childnode>
|
|
<childnode refid="31045" relation="include">
|
|
</childnode>
|
|
<childnode refid="31046" relation="include">
|
|
</childnode>
|
|
<childnode refid="31048" relation="include">
|
|
</childnode>
|
|
<childnode refid="31049" relation="include">
|
|
</childnode>
|
|
<childnode refid="31051" relation="include">
|
|
</childnode>
|
|
<childnode refid="31053" relation="include">
|
|
</childnode>
|
|
<childnode refid="31054" relation="include">
|
|
</childnode>
|
|
<childnode refid="31055" relation="include">
|
|
</childnode>
|
|
<childnode refid="31056" relation="include">
|
|
</childnode>
|
|
<childnode refid="31057" relation="include">
|
|
</childnode>
|
|
<childnode refid="31058" relation="include">
|
|
</childnode>
|
|
<childnode refid="31059" relation="include">
|
|
</childnode>
|
|
<childnode refid="31060" relation="include">
|
|
</childnode>
|
|
<childnode refid="31061" relation="include">
|
|
</childnode>
|
|
<childnode refid="31062" relation="include">
|
|
</childnode>
|
|
<childnode refid="31063" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31178">
|
|
<label>gecode/int/branch/activity.hpp</label>
|
|
<link refid="int_2branch_2activity_8hpp_source"/>
|
|
</node>
|
|
<node id="31148">
|
|
<label>gecode/int/var-imp/int.hpp</label>
|
|
<link refid="int_2var-imp_2int_8hpp_source"/>
|
|
</node>
|
|
<node id="31146">
|
|
<label>gecode/int/var-imp.hpp</label>
|
|
<link refid="int_2var-imp_8hpp_source"/>
|
|
<childnode refid="31050" relation="include">
|
|
</childnode>
|
|
<childnode refid="31147" relation="include">
|
|
</childnode>
|
|
<childnode refid="31148" relation="include">
|
|
</childnode>
|
|
<childnode refid="31149" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31111">
|
|
<label>gecode/iter/ranges-cache.hpp</label>
|
|
<link refid="ranges-cache_8hpp_source"/>
|
|
</node>
|
|
<node id="31054">
|
|
<label>gecode/support/dynamic-array.hpp</label>
|
|
<link refid="dynamic-array_8hpp_source"/>
|
|
<childnode refid="31044" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31155">
|
|
<label>gecode/int/view/constint.hpp</label>
|
|
<link refid="constint_8hpp_source"/>
|
|
</node>
|
|
<node id="31141">
|
|
<label>gecode/iter/values-unique.hpp</label>
|
|
<link refid="values-unique_8hpp_source"/>
|
|
</node>
|
|
<node id="31113">
|
|
<label>gecode/iter/ranges-diff.hpp</label>
|
|
<link refid="ranges-diff_8hpp_source"/>
|
|
</node>
|
|
<node id="31058">
|
|
<label>gecode/support/sort.hpp</label>
|
|
<link refid="support_2sort_8hpp_source"/>
|
|
<childnode refid="31044" relation="include">
|
|
</childnode>
|
|
<childnode refid="31047" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31147">
|
|
<label>gecode/int/var-imp/delta.hpp</label>
|
|
<link refid="int_2var-imp_2delta_8hpp_source"/>
|
|
</node>
|
|
<node id="31083">
|
|
<label>gecode/kernel/rnd.hpp</label>
|
|
<link refid="rnd_8hpp_source"/>
|
|
<childnode refid="31084" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31044">
|
|
<label>algorithm</label>
|
|
</node>
|
|
<node id="31095">
|
|
<label>gecode/kernel/brancher-view.hpp</label>
|
|
<link refid="brancher-view_8hpp_source"/>
|
|
</node>
|
|
<node id="31029">
|
|
<label>gecode/set.hh</label>
|
|
<link refid="set_8hh_source"/>
|
|
<childnode refid="31030" relation="include">
|
|
</childnode>
|
|
<childnode refid="31103" relation="include">
|
|
</childnode>
|
|
<childnode refid="31105" relation="include">
|
|
</childnode>
|
|
<childnode refid="31037" relation="include">
|
|
</childnode>
|
|
<childnode refid="31182" relation="include">
|
|
</childnode>
|
|
<childnode refid="31183" relation="include">
|
|
</childnode>
|
|
<childnode refid="31184" relation="include">
|
|
</childnode>
|
|
<childnode refid="31189" relation="include">
|
|
</childnode>
|
|
<childnode refid="31198" relation="include">
|
|
</childnode>
|
|
<childnode refid="31199" relation="include">
|
|
</childnode>
|
|
<childnode refid="31200" relation="include">
|
|
</childnode>
|
|
<childnode refid="31201" relation="include">
|
|
</childnode>
|
|
<childnode refid="31202" relation="include">
|
|
</childnode>
|
|
<childnode refid="31203" relation="include">
|
|
</childnode>
|
|
<childnode refid="31204" relation="include">
|
|
</childnode>
|
|
<childnode refid="31205" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31129">
|
|
<label>gecode/iter/values-bitset.hpp</label>
|
|
<link refid="values-bitset_8hpp_source"/>
|
|
</node>
|
|
<node id="31069">
|
|
<label>gecode/kernel/global-afc.hpp</label>
|
|
<link refid="global-afc_8hpp_source"/>
|
|
<childnode refid="31050" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31114">
|
|
<label>gecode/iter/ranges-empty.hpp</label>
|
|
<link refid="ranges-empty_8hpp_source"/>
|
|
</node>
|
|
<node id="31152">
|
|
<label>gecode/int/var/int.hpp</label>
|
|
<link refid="int_2var_2int_8hpp_source"/>
|
|
</node>
|
|
<node id="31105">
|
|
<label>gecode/iter.hh</label>
|
|
<link refid="iter_8hh_source"/>
|
|
<childnode refid="31030" relation="include">
|
|
</childnode>
|
|
<childnode refid="31106" relation="include">
|
|
</childnode>
|
|
<childnode refid="31107" relation="include">
|
|
</childnode>
|
|
<childnode refid="31108" relation="include">
|
|
</childnode>
|
|
<childnode refid="31109" relation="include">
|
|
</childnode>
|
|
<childnode refid="31110" relation="include">
|
|
</childnode>
|
|
<childnode refid="31111" relation="include">
|
|
</childnode>
|
|
<childnode refid="31112" relation="include">
|
|
</childnode>
|
|
<childnode refid="31113" relation="include">
|
|
</childnode>
|
|
<childnode refid="31114" relation="include">
|
|
</childnode>
|
|
<childnode refid="31115" relation="include">
|
|
</childnode>
|
|
<childnode refid="31116" relation="include">
|
|
</childnode>
|
|
<childnode refid="31117" relation="include">
|
|
</childnode>
|
|
<childnode refid="31118" relation="include">
|
|
</childnode>
|
|
<childnode refid="31119" relation="include">
|
|
</childnode>
|
|
<childnode refid="31120" relation="include">
|
|
</childnode>
|
|
<childnode refid="31121" relation="include">
|
|
</childnode>
|
|
<childnode refid="31122" relation="include">
|
|
</childnode>
|
|
<childnode refid="31123" relation="include">
|
|
</childnode>
|
|
<childnode refid="31124" relation="include">
|
|
</childnode>
|
|
<childnode refid="31125" relation="include">
|
|
</childnode>
|
|
<childnode refid="31126" relation="include">
|
|
</childnode>
|
|
<childnode refid="31127" relation="include">
|
|
</childnode>
|
|
<childnode refid="31128" relation="include">
|
|
</childnode>
|
|
<childnode refid="31129" relation="include">
|
|
</childnode>
|
|
<childnode refid="31130" relation="include">
|
|
</childnode>
|
|
<childnode refid="31131" relation="include">
|
|
</childnode>
|
|
<childnode refid="31132" relation="include">
|
|
</childnode>
|
|
<childnode refid="31133" relation="include">
|
|
</childnode>
|
|
<childnode refid="31134" relation="include">
|
|
</childnode>
|
|
<childnode refid="31135" relation="include">
|
|
</childnode>
|
|
<childnode refid="31136" relation="include">
|
|
</childnode>
|
|
<childnode refid="31137" relation="include">
|
|
</childnode>
|
|
<childnode refid="31138" relation="include">
|
|
</childnode>
|
|
<childnode refid="31139" relation="include">
|
|
</childnode>
|
|
<childnode refid="31140" relation="include">
|
|
</childnode>
|
|
<childnode refid="31141" relation="include">
|
|
</childnode>
|
|
<childnode refid="31142" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31124">
|
|
<label>gecode/iter/ranges-values.hpp</label>
|
|
<link refid="ranges-values_8hpp_source"/>
|
|
</node>
|
|
<node id="31149">
|
|
<label>gecode/int/var-imp/bool.hpp</label>
|
|
<link refid="int_2var-imp_2bool_8hpp_source"/>
|
|
</node>
|
|
<node id="31033">
|
|
<label>cstring</label>
|
|
</node>
|
|
<node id="31200">
|
|
<label>gecode/set/branch/traits.hpp</label>
|
|
<link refid="set_2branch_2traits_8hpp_source"/>
|
|
</node>
|
|
<node id="31173">
|
|
<label>gecode/int/reify.hpp</label>
|
|
<link refid="reify_8hpp_source"/>
|
|
</node>
|
|
<node id="31123">
|
|
<label>gecode/iter/ranges-union.hpp</label>
|
|
<link refid="ranges-union_8hpp_source"/>
|
|
<childnode refid="31044" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31157">
|
|
<label>gecode/int/view/minus.hpp</label>
|
|
<link refid="int_2view_2minus_8hpp_source"/>
|
|
</node>
|
|
<node id="31107">
|
|
<label>gecode/iter/ranges-minmax.hpp</label>
|
|
<link refid="ranges-minmax_8hpp_source"/>
|
|
</node>
|
|
<node id="31051">
|
|
<label>gecode/support/bitset-offset.hpp</label>
|
|
<link refid="bitset-offset_8hpp_source"/>
|
|
<childnode refid="31047" relation="include">
|
|
</childnode>
|
|
<childnode refid="31050" relation="include">
|
|
</childnode>
|
|
<childnode refid="31052" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31043">
|
|
<label>gecode/support/heap.hpp</label>
|
|
<link refid="heap_8hpp_source"/>
|
|
<childnode refid="31033" relation="include">
|
|
</childnode>
|
|
<childnode refid="31032" relation="include">
|
|
</childnode>
|
|
<childnode refid="31044" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="31166">
|
|
<label>gecode/int/var/print.hpp</label>
|
|
<link refid="int_2var_2print_8hpp_source"/>
|
|
</node>
|
|
<node id="31108">
|
|
<label>gecode/iter/ranges-list.hpp</label>
|
|
<link refid="ranges-list_8hpp_source"/>
|
|
</node>
|
|
</incdepgraph>
|
|
<invincdepgraph>
|
|
<node id="31207">
|
|
<label>/usr/include/gecode/set/int.hh</label>
|
|
<link refid="set_2int_8hh_source"/>
|
|
</node>
|
|
<node id="31206">
|
|
<label>/usr/include/gecode/set/int/minmax.hpp</label>
|
|
<link refid="minmax.hpp"/>
|
|
<childnode refid="31207" relation="include">
|
|
</childnode>
|
|
</node>
|
|
</invincdepgraph>
|
|
<innernamespace refid="namespaceGecode">Gecode</innernamespace>
|
|
<innernamespace refid="namespaceGecode_1_1Set">Gecode::Set</innernamespace>
|
|
<innernamespace refid="namespaceGecode_1_1Set_1_1Int">Gecode::Set::Int</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/>Guido<sp/>Tack<sp/><tack@gecode.org></highlight></codeline>
|
|
<codeline lineno="5"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Christian<sp/>Schulte<sp/><schulte@gecode.org></highlight></codeline>
|
|
<codeline lineno="6"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Gabor<sp/>Szokoli<sp/><szokoli@gecode.org></highlight></codeline>
|
|
<codeline lineno="7"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Denys<sp/>Duchier<sp/><denys.duchier@univ-orleans.fr></highlight></codeline>
|
|
<codeline lineno="8"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="9"><highlight class="comment"><sp/>*<sp/><sp/>Copyright:</highlight></codeline>
|
|
<codeline lineno="10"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Guido<sp/>Tack,<sp/>2004</highlight></codeline>
|
|
<codeline lineno="11"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Christian<sp/>Schulte,<sp/>2004</highlight></codeline>
|
|
<codeline lineno="12"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Gabor<sp/>Szokoli,<sp/>2004</highlight></codeline>
|
|
<codeline lineno="13"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="14"><highlight class="comment"><sp/>*<sp/><sp/>Last<sp/>modified:</highlight></codeline>
|
|
<codeline lineno="15"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>$Date:<sp/>2012-10-19<sp/>05:58:26<sp/>+0200<sp/>(Fri,<sp/>19<sp/>Oct<sp/>2012)<sp/>$<sp/>by<sp/>$Author:<sp/>tack<sp/>$</highlight></codeline>
|
|
<codeline lineno="16"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>$Revision:<sp/>13156<sp/>$</highlight></codeline>
|
|
<codeline lineno="17"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="18"><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="19"><highlight class="comment"><sp/>*<sp/><sp/>development<sp/>environment:</highlight></codeline>
|
|
<codeline lineno="20"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>http://www.gecode.org</highlight></codeline>
|
|
<codeline lineno="21"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="22"><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="23"><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="24"><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="25"><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="26"><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="27"><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="28"><highlight class="comment"><sp/>*<sp/><sp/>the<sp/>following<sp/>conditions:</highlight></codeline>
|
|
<codeline lineno="29"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="30"><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="31"><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="32"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="33"><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="34"><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="35"><highlight class="comment"><sp/>*<sp/><sp/>MERCHANTABILITY,<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE<sp/>AND</highlight></codeline>
|
|
<codeline lineno="36"><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="37"><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="38"><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="39"><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="40"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="41"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="42"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="43"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="44"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="45"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><gecode/set.hh></highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="46"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/><gecode/int.hh></highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="47"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="48"><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">Set<sp/>{<sp/></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">Int<sp/>{</highlight></codeline>
|
|
<codeline lineno="49"><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/>View></highlight></codeline>
|
|
<codeline lineno="51"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="52" refid="classGecode_1_1Set_1_1Int_1_1MinElement_1a2938f4f5f6e0a0972eedd9a1cc53dcad" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MinElement_1afd6bc166ce57209fabbb37706f599513" kindref="member">MinElement<View>::MinElement</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>y0,<sp/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>y1)</highlight></codeline>
|
|
<codeline lineno="53"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,Gecode::Int::IntView,Gecode::Int::PC_INT_BND><sp/>(home,<sp/>y0,<sp/>y1)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="54"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="55"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="56"><highlight class="normal"><sp/><sp/>forceinline<sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="57" refid="classGecode_1_1Set_1_1Int_1_1MinElement_1a7982766612bf24f80ef308252fdd799f" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MinElement_1a7982766612bf24f80ef308252fdd799f" kindref="member">MinElement<View>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>x0,<sp/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>x1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.cardMin(home,1));</highlight></codeline>
|
|
<codeline lineno="59"><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_1Set_1_1Int_1_1MinElement" kindref="compound">MinElement</ref>(home,x0,x1);</highlight></codeline>
|
|
<codeline lineno="60"><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="61"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="62"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="63"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="64"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="65" refid="classGecode_1_1Set_1_1Int_1_1MinElement_1afd6bc166ce57209fabbb37706f599513" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MinElement_1afd6bc166ce57209fabbb37706f599513" kindref="member">MinElement<View>::MinElement</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_1Set_1_1Int_1_1MinElement" kindref="compound">MinElement</ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,Gecode::Int::IntView,Gecode::Int::PC_INT_BND><sp/>(home,<sp/>share,<sp/>p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="67"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="68"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="69"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="70" refid="classGecode_1_1Set_1_1Int_1_1MinElement_1addf5c50375f9bce1fc609a2ad0163f17" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MinElement_1addf5c50375f9bce1fc609a2ad0163f17" kindref="member">MinElement<View>::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="71"><highlight class="normal"><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_1Set_1_1Int_1_1MinElement" kindref="compound">MinElement</ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="72"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="73"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="74"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="75"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="76" refid="classGecode_1_1Set_1_1Int_1_1MinElement_1a53c82b566b2b061485959e45409eae78" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MinElement_1a53c82b566b2b061485959e45409eae78" kindref="member">MinElement<View>::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="77"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//x1<sp/>is<sp/>an<sp/>element<sp/>of<sp/>x0.ub</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//x1<sp/>=<<sp/>smallest<sp/>element<sp/>of<sp/>x0.lb</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//x1<sp/>=<<sp/>x0.cardinialityMin-est<sp/>largest<sp/>element<sp/>of<sp/>x0.ub</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//(these<sp/>2<sp/>take<sp/>care<sp/>of<sp/>determined<sp/>x0)</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//No<sp/>element<sp/>in<sp/>x0<sp/>is<sp/>smaller<sp/>than<sp/>x1</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//if<sp/>x1<sp/>is<sp/>determined,<sp/>it<sp/>is<sp/>part<sp/>of<sp/>the<sp/>ub.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="83"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Consequently:</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="85"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//The<sp/>domain<sp/>of<sp/>x1<sp/>is<sp/>a<sp/>subset<sp/>of<sp/>x0.ub<sp/>up<sp/>to<sp/>the<sp/>first<sp/>element<sp/>in<sp/>x0.lb.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="86"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//x0<sp/>lacks<sp/>everything<sp/>smaller<sp/>than<sp/>smallest<sp/>possible<sp/>x1.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="87"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ub(x0);</highlight></codeline>
|
|
<codeline lineno="90"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.inter_r(home,ub,</highlight><highlight class="keyword">false</highlight><highlight class="normal">));</highlight></codeline>
|
|
<codeline lineno="91"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.lq(home,x0.glbMin()));</highlight></codeline>
|
|
<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//if<sp/>cardMin>lbSize?</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(x0.cardMin()>=1);</highlight></codeline>
|
|
<codeline lineno="95"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="96"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__FuncIterRangesOp_1ga9f9ab6d72452ad86b95cd65abf463161" kindref="member">size</ref><sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>maxN<sp/>=<sp/><ref refid="classGecode_1_1Set_1_1BndSet_1a2a0b1c8d9863a9650eda7b1066d85943" kindref="member">BndSet::MAX_OF_EMPTY</ref>;</highlight></codeline>
|
|
<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(<ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ubr(x0);<sp/>ubr();<sp/>++ubr,<sp/>++<ref refid="group__FuncIterRangesOp_1ga9f9ab6d72452ad86b95cd65abf463161" kindref="member">size</ref>)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Region" kindref="compound">Region</ref><sp/>r(home);</highlight></codeline>
|
|
<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">*<sp/>ub<sp/>=<sp/>r.<ref refid="classGecode_1_1Region_1a167cff2d16f08d890fff11f80e519233" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(size*2);</highlight></codeline>
|
|
<codeline lineno="103"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=0;</highlight></codeline>
|
|
<codeline lineno="104"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(<ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ubr(x0);<sp/>ubr();<sp/>++ubr,<sp/>++i)<sp/>{</highlight></codeline>
|
|
<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ub[2*i]<sp/><sp/><sp/>=<sp/>ubr.min();</highlight></codeline>
|
|
<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>ub[2*i+1]<sp/>=<sp/>ubr.max();</highlight></codeline>
|
|
<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>x0cm<sp/>=<sp/>x0.cardMin()-1;</highlight></codeline>
|
|
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=size;<sp/>i--;)<sp/>{</highlight></codeline>
|
|
<codeline lineno="110"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>width<sp/>=<sp/></highlight><highlight class="keyword">static_cast<</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="keyword">></highlight><highlight class="normal">(ub[2*i+1]-ub[2*i]+1);</highlight></codeline>
|
|
<codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(width<sp/>><sp/>x0cm)<sp/>{</highlight></codeline>
|
|
<codeline lineno="112"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>maxN<sp/>=<sp/></highlight><highlight class="keyword">static_cast<</highlight><highlight class="keywordtype">int</highlight><highlight class="keyword">></highlight><highlight class="normal">(ub[2*i+1]-x0cm);</highlight></codeline>
|
|
<codeline lineno="113"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>x0cm<sp/>-=<sp/>width;</highlight></codeline>
|
|
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.lq(home,maxN));</highlight></codeline>
|
|
<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="119"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="120"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(<sp/>x0.exclude(home,</highlight></codeline>
|
|
<codeline lineno="121"><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/><ref refid="namespaceGecode_1_1Set_1_1Limits_1a768af29a2cbf9eec75b4376b325f6cc4" kindref="member">Limits::min</ref>,<sp/>x1.min()-1)<sp/>);</highlight></codeline>
|
|
<codeline lineno="122"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned())<sp/>{</highlight></codeline>
|
|
<codeline lineno="124"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.include(home,x1.val()));</highlight></codeline>
|
|
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.exclude(home,</highlight></codeline>
|
|
<codeline lineno="126"><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/><ref refid="namespaceGecode_1_1Set_1_1Limits_1a768af29a2cbf9eec75b4376b325f6cc4" kindref="member">Limits::min</ref>,<sp/>x1.val()-1));</highlight></codeline>
|
|
<codeline lineno="127"><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="128"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="129"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="130"><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="131"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="132"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="133"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="134"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="135"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="136" refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1a8fb4dfdb5464f977c7bd9eff66101a3c" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1aeb408790912af9dc6a4cd7ed1d3868ab" kindref="member">NotMinElement<View>::NotMinElement</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>y0,</highlight></codeline>
|
|
<codeline lineno="137"><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_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>y1)</highlight></codeline>
|
|
<codeline lineno="138"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM><sp/>(home,<sp/>y0,<sp/>y1)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="140"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="141"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="142"><highlight class="normal"><sp/><sp/>forceinline<sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="143" refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1a20f98498a26a723d900f51d7dcde7b4a" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1a20f98498a26a723d900f51d7dcde7b4a" kindref="member">NotMinElement<View>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>x0,<sp/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>x1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="144"><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_1Set_1_1Int_1_1NotMinElement" kindref="compound">NotMinElement</ref>(home,x0,x1);</highlight></codeline>
|
|
<codeline lineno="145"><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="146"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="147"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="148"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="149"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="150" refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1aeb408790912af9dc6a4cd7ed1d3868ab" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1aeb408790912af9dc6a4cd7ed1d3868ab" kindref="member">NotMinElement<View>::NotMinElement</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,</highlight></codeline>
|
|
<codeline lineno="151"><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_1Set_1_1Int_1_1NotMinElement" kindref="compound">NotMinElement</ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM><sp/>(home,<sp/>share,<sp/>p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="154"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="155"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="156"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="157" refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1a2de1bbc57e1c9e0ed97e73a8a9948f1e" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1a2de1bbc57e1c9e0ed97e73a8a9948f1e" kindref="member">NotMinElement<View>::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="158"><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_1Set_1_1Int_1_1NotMinElement" kindref="compound">NotMinElement</ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="159"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="160"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="161"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="162"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="163" refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1a14125ccc636c62425afb950a57db877f" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMinElement_1a14125ccc636c62425afb950a57db877f" kindref="member">NotMinElement<View>::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="164"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>cheap<sp/>tests<sp/>for<sp/>entailment:</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x0<sp/>is<sp/>empty,<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x1)<sp/><<sp/>min(x0.lub)<sp/>or<sp/>min(x1)<sp/>><sp/>max(x0.lub),<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="167"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>min(x0.glb)<sp/><<sp/>min(x1),<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="168"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((x0.cardMax()<sp/>==<sp/>0)<sp/>||</highlight></codeline>
|
|
<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x1.max()<sp/><<sp/>x0.lubMin())<sp/>||<sp/>(x1.min()<sp/>><sp/>x0.lubMax()))<sp/>||</highlight></codeline>
|
|
<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x0.glbSize()<sp/>><sp/>0)<sp/>&&<sp/>(x0.glbMin()<sp/><<sp/>x1.min())))</highlight></codeline>
|
|
<codeline lineno="171"><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="172"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/>is<sp/>determined<sp/>and<sp/>=<sp/>x0.lub.min:<sp/>remove<sp/>it<sp/>from<sp/>x0,</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="174"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned()<sp/>&&<sp/>x1.val()==x0.lubMin())<sp/>{</highlight></codeline>
|
|
<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.exclude(home,x1.val()));</highlight></codeline>
|
|
<codeline lineno="176"><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="177"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>min(x0)<sp/>is<sp/>decided:<sp/>remove<sp/>min(x0)<sp/>from<sp/>the<sp/>domain<sp/>of<sp/>x1</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x0.glbMin()<sp/>==<sp/>x0.lubMin())<sp/>{</highlight></codeline>
|
|
<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.nq(home,x0.glbMin()));</highlight></codeline>
|
|
<codeline lineno="182"><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="183"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="184"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/>is<sp/>determined<sp/>and<sp/>=<sp/>x0.glb.min,<sp/>then<sp/>we<sp/>need<sp/>at<sp/>least</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>one<sp/>more<sp/>element;<sp/>if<sp/>there<sp/>is<sp/>only<sp/>one<sp/>below,<sp/>then<sp/>we<sp/>must</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>take<sp/>it.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="187"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned()<sp/>&&<sp/>x0.glbSize()<sp/>><sp/>0<sp/>&&<sp/>x1.val()==x0.glbMin())<sp/>{</highlight></codeline>
|
|
<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>oldGlbSize<sp/>=<sp/>x0.glbSize();</highlight></codeline>
|
|
<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>there<sp/>is<sp/>only<sp/>1<sp/>unknown<sp/>below<sp/>x1,<sp/>then<sp/>we<sp/>must<sp/>take<sp/>it</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Set_1_1UnknownRanges" kindref="compound">UnknownRanges<View></ref><sp/>ur(x0);</highlight></codeline>
|
|
<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>assert(ur());</highlight></codeline>
|
|
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>the<sp/>iterator<sp/>is<sp/>not<sp/>empty:<sp/>otherwise<sp/>x0<sp/>would<sp/>be<sp/>determined</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>and<sp/>min(x0)<sp/>would<sp/>have<sp/>been<sp/>decided<sp/>and<sp/>the<sp/>preceding<sp/>if</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>would<sp/>have<sp/>caught<sp/>it.<sp/><sp/>Also,<sp/>the<sp/>first<sp/>range<sp/>is<sp/>not<sp/>above</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>x1<sp/>otherwise<sp/>the<sp/>very<sp/>first<sp/>if<sp/>would<sp/>have<sp/>caught<sp/>it.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>so<sp/>let's<sp/>check<sp/>if<sp/>the<sp/>very<sp/>first<sp/>range<sp/>of<sp/>unknowns<sp/>is<sp/>of</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>size<sp/>1<sp/>and<sp/>there<sp/>is<sp/>no<sp/>second<sp/>one<sp/>or<sp/>it<sp/>starts<sp/>above<sp/>x1.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ur.<ref refid="classGecode_1_1Iter_1_1Ranges_1_1MinMax_1a2d2e9510d15f3b604f58cf65a1497957" kindref="member">width</ref>()==1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i=ur.<ref refid="classGecode_1_1Iter_1_1Ranges_1_1MinMax_1aec4557b5d203495359e89d79b278d4d3" kindref="member">min</ref>();</highlight></codeline>
|
|
<codeline lineno="200"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>++ur;</highlight></codeline>
|
|
<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!ur()<sp/>||<sp/>ur.<ref refid="classGecode_1_1Iter_1_1Ranges_1_1MinMax_1aec4557b5d203495359e89d79b278d4d3" kindref="member">min</ref>()>x1.val())<sp/>{</highlight></codeline>
|
|
<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.include(home,i));</highlight></codeline>
|
|
<codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/><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="204"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="205"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="206"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.cardMin(home,<sp/>oldGlbSize+1));</highlight></codeline>
|
|
<codeline lineno="207"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="208"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>dom(x1)<sp/>and<sp/>lub(x0)<sp/>are<sp/>disjoint,<sp/>then<sp/>entailed;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="209"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ub(x0);</highlight></codeline>
|
|
<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1ViewRanges" kindref="compound">Gecode::Int::ViewRanges<Gecode::Int::IntView></ref><sp/>d(x1);</highlight></codeline>
|
|
<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Iter_1_1Ranges_1_1Inter" kindref="compound">Gecode::Iter::Ranges::Inter<LubRanges<View></ref>,</highlight></codeline>
|
|
<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1ViewRanges" kindref="compound">Gecode::Int::ViewRanges<Gecode::Int::IntView></ref><sp/>><sp/>ir(ub,d);</highlight></codeline>
|
|
<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!ir())<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="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/>x0<sp/>is<sp/>fated<sp/>to<sp/>eventually<sp/>contain<sp/>at<sp/>least<sp/>x0.cardMin<sp/>elements.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="217"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>therefore<sp/>min(x0)<sp/><=<sp/>x0.cardMin-th<sp/>largest<sp/>element<sp/>of<sp/>x0.lub</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="218"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/>><sp/>than<sp/>that,<sp/>then<sp/>entailed.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>to<sp/>find<sp/>the<sp/>x0.cardMin-th<sp/>largest<sp/>element<sp/>of<sp/>x0.lub,<sp/>we<sp/>need</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="221"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>some<sp/>sort<sp/>of<sp/>reverse<sp/>range<sp/>iterator.<sp/>we<sp/>will<sp/>need<sp/>to<sp/>fake<sp/>one</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="222"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>by<sp/>storing<sp/>the<sp/>ranges<sp/>of<sp/>the<sp/>forward<sp/>iterator<sp/>in<sp/>an<sp/>array.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>first<sp/>we<sp/>need<sp/>to<sp/>know<sp/>how<sp/>large<sp/>the<sp/>array<sp/>needs<sp/>to<sp/>be.<sp/>so,<sp/>let's</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>count<sp/>the<sp/>ranges:</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="225"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>num_ranges<sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="226"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(<ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ur(x0);<sp/>ur();<sp/>++ur,<sp/>++num_ranges)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="227"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>create<sp/>an<sp/>array<sp/>for<sp/>storing<sp/>min<sp/>and<sp/>max<sp/>of<sp/>each<sp/>range</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="228"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Region" kindref="compound">Region</ref><sp/>r(home);</highlight></codeline>
|
|
<codeline lineno="229"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">*<sp/>_ur<sp/>=<sp/>r.<ref refid="classGecode_1_1Region_1a167cff2d16f08d890fff11f80e519233" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(num_ranges*2);</highlight></codeline>
|
|
<codeline lineno="230"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>now,<sp/>we<sp/>fill<sp/>the<sp/>array:</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="231"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i<sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="232"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(<ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ur(x0);<sp/>ur();<sp/>++ur,<sp/>++i)<sp/>{</highlight></codeline>
|
|
<codeline lineno="233"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>_ur[2*i<sp/><sp/>]<sp/>=<sp/>ur.min();</highlight></codeline>
|
|
<codeline lineno="234"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>_ur[2*i+1]<sp/>=<sp/>ur.max();</highlight></codeline>
|
|
<codeline lineno="235"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="236"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>now<sp/>we<sp/>search<sp/>from<sp/>the<sp/>top<sp/>the<sp/>range<sp/>that<sp/>contains<sp/>the</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="237"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>nth<sp/>largest<sp/>value.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x0.cardMin();</highlight></codeline>
|
|
<codeline lineno="239"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>nth_largest<sp/>=<sp/><ref refid="classGecode_1_1Set_1_1BndSet_1a2a0b1c8d9863a9650eda7b1066d85943" kindref="member">BndSet::MAX_OF_EMPTY</ref>;</highlight></codeline>
|
|
<codeline lineno="240"><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=num_ranges;<sp/>i--;<sp/>)<sp/>{</highlight></codeline>
|
|
<codeline lineno="241"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>number<sp/>of<sp/>values<sp/>in<sp/>range</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>num_values<sp/>=<sp/></highlight><highlight class="keyword">static_cast<</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="keyword">></highlight><highlight class="normal">(_ur[2*i+1]-_ur[2*i]+1);</highlight></codeline>
|
|
<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>does<sp/>the<sp/>range<sp/>contain<sp/>the<sp/>value?</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="244"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(num_values<sp/>>=<sp/>n)<sp/>{</highlight></codeline>
|
|
<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>record<sp/>it<sp/>and<sp/>exit<sp/>the<sp/>loop</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nth_largest<sp/>=<sp/></highlight><highlight class="keyword">static_cast<</highlight><highlight class="keywordtype">int</highlight><highlight class="keyword">></highlight><highlight class="normal">(_ur[2*i+1]-n+1);</highlight></codeline>
|
|
<codeline lineno="247"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>otherwise,<sp/>we<sp/>skipped<sp/>num_values</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>n<sp/>-=<sp/>num_values;</highlight></codeline>
|
|
<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1.min<sp/>><sp/>nth_largest,<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.min()<sp/>><sp/>nth_largest)</highlight></codeline>
|
|
<codeline lineno="254"><highlight class="normal"><sp/><sp/><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="255"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="256"><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="257"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="258"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="259"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="260"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="261" refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1ae3999ae28e699f13ef88de02e0e47db0" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1a1a957063811f6b2079d92b13997d527b" kindref="member">ReMinElement<View,rm>::ReMinElement</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>y0,</highlight></codeline>
|
|
<codeline lineno="262"><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/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>y1,</highlight></codeline>
|
|
<codeline lineno="263"><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/><ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">Gecode::Int::BoolView</ref><sp/>b2)</highlight></codeline>
|
|
<codeline lineno="264"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>Gecode::Int::ReMixBinaryPropagator<View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM,</highlight></codeline>
|
|
<codeline lineno="266"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::BoolView><sp/>(home,<sp/>y0,<sp/>y1,<sp/>b2)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="267"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="268"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="269"><highlight class="normal"><sp/><sp/>forceinline<sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="270" refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1a2958a11da35b2c73d1f8b17783fc2614" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1a2958a11da35b2c73d1f8b17783fc2614" kindref="member">ReMinElement<View,rm>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>x0,<sp/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>x1,</highlight></codeline>
|
|
<codeline lineno="271"><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/><ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">Gecode::Int::BoolView</ref><sp/>b2)<sp/>{</highlight></codeline>
|
|
<codeline lineno="272"><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_1Set_1_1Int_1_1ReMinElement" kindref="compound">ReMinElement</ref>(home,x0,x1,b2);</highlight></codeline>
|
|
<codeline lineno="273"><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="274"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="275"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="276"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="277"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="278" refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1a1a957063811f6b2079d92b13997d527b" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1a1a957063811f6b2079d92b13997d527b" kindref="member">ReMinElement<View,rm>::ReMinElement</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,</highlight></codeline>
|
|
<codeline lineno="279"><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/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMinElement" kindref="compound">ReMinElement</ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="280"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>Gecode::Int::ReMixBinaryPropagator<View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="281"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM,</highlight></codeline>
|
|
<codeline lineno="282"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::BoolView><sp/>(home,<sp/>share,<sp/>p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="283"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="284"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="285"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="286" refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1aa6658af0e5a08d09c6d1f6017155aa3a" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1aa6658af0e5a08d09c6d1f6017155aa3a" kindref="member">ReMinElement<View,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="287"><highlight class="normal"><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_1Set_1_1Int_1_1ReMinElement" kindref="compound">ReMinElement</ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="288"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="289"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="290"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="291"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="292" refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1a4840da49c8540f22af49dfea261b0241" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMinElement_1a4840da49c8540f22af49dfea261b0241" kindref="member">ReMinElement<View,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="293"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>check<sp/>if<sp/>b<sp/>is<sp/>determined</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="294"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="295"><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="296"><highlight class="normal"><sp/><sp/><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="297"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,<sp/>(<ref refid="classGecode_1_1Set_1_1Int_1_1MinElement" kindref="compound">MinElement<View>::post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),x0,x1)));</highlight></codeline>
|
|
<codeline lineno="298"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="299"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="300"><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="301"><highlight class="normal"><sp/><sp/><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">);<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
|
|
<codeline lineno="302"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,<sp/>(<ref refid="classGecode_1_1Set_1_1Int_1_1NotMinElement" kindref="compound">NotMinElement<View>::post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),x0,x1)));</highlight></codeline>
|
|
<codeline lineno="303"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="304"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>cheap<sp/>tests<sp/>for<sp/>=><sp/>b=0</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="305"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x0<sp/>is<sp/>empty,<sp/>then<sp/>b=0<sp/>and<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="306"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x1)<sp/><<sp/>min(x0.lub)<sp/>or<sp/>min(x1)<sp/>><sp/>max(x0.lub),<sp/>then<sp/>b=0<sp/>and<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="307"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>min(x0.glb)<sp/><<sp/>min(x1),<sp/>then<sp/>b=0<sp/>and<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="308"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((x0.cardMax()<sp/>==<sp/>0)<sp/>||</highlight></codeline>
|
|
<codeline lineno="309"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x1.max()<sp/><<sp/>x0.lubMin())<sp/>||<sp/>(x1.min()<sp/>><sp/>x0.lubMax()))<sp/>||</highlight></codeline>
|
|
<codeline lineno="310"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x0.glbSize()<sp/>><sp/>0)<sp/>&&<sp/>(x0.glbMin()<sp/><<sp/>x1.min())))</highlight></codeline>
|
|
<codeline lineno="311"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="312"><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="313"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="314"><highlight class="normal"><sp/><sp/><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="315"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="316"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>min(x0)<sp/>is<sp/>decided</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="317"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x0.glbMin()<sp/>==<sp/>x0.lubMin())<sp/>{</highlight></codeline>
|
|
<codeline lineno="318"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/>is<sp/>det:<sp/>check<sp/>if<sp/>=<sp/>min(x0),<sp/>assign<sp/>b,<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="319"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned())<sp/>{</highlight></codeline>
|
|
<codeline lineno="320"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.val()<sp/>==<sp/>x0.glbMin())<sp/>{</highlight></codeline>
|
|
<codeline lineno="321"><highlight class="normal"><sp/><sp/><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="322"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.one(home));</highlight></codeline>
|
|
<codeline lineno="323"><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="324"><highlight class="normal"><sp/><sp/><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="325"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="326"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="327"><highlight class="normal"><sp/><sp/><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="328"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="329"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>min(x0)<sp/>not<sp/>in<sp/>dom(x1):<sp/>b=0,<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="330"><highlight class="normal"><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/>((x0.glbMin()<sp/><<sp/>x1.min())<sp/>||</highlight></codeline>
|
|
<codeline lineno="331"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(x0.glbMin()<sp/>><sp/>x1.max())<sp/>||</highlight></codeline>
|
|
<codeline lineno="332"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>!x1.in(x0.glbMin()))</highlight></codeline>
|
|
<codeline lineno="333"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="334"><highlight class="normal"><sp/><sp/><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="335"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="336"><highlight class="normal"><sp/><sp/><sp/><sp/><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="337"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="338"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="339"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>//<sp/>if<sp/>dom(x1)<sp/>and<sp/>lub(x0)<sp/>are<sp/>disjoint,<sp/>then<sp/>b=0,<sp/>entailed;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="340"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>{</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="341"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>LubRanges<View><sp/>ub(x0);</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="342"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>Gecode::Int::ViewRanges<Gecode::Int::IntView><sp/>d(x1);</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>Gecode::Iter::Ranges::Inter<LubRanges<View>,</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>Gecode::Int::ViewRanges<Gecode::Int::IntView><sp/>><sp/>ir(ub,d);</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="345"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>if<sp/>(!ir())<sp/>{</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="346"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="347"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>return<sp/>home.ES_SUBSUMED(*this);</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="348"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="349"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="350"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>//<sp/>x0<sp/>is<sp/>fated<sp/>to<sp/>eventually<sp/>contain<sp/>at<sp/>least<sp/>x0.cardMin<sp/>elements.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="351"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>//<sp/>therefore<sp/>min(x0)<sp/><=<sp/>x0.cardMin-th<sp/>largest<sp/>element<sp/>of<sp/>x0.lub</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="352"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>//<sp/>if<sp/>x1<sp/>><sp/>than<sp/>that,<sp/>then<sp/>b=0<sp/>and<sp/>entailed.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="353"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>{</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="354"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>to<sp/>find<sp/>the<sp/>x0.cardMin-th<sp/>largest<sp/>element<sp/>of<sp/>x0.lub,<sp/>we<sp/>need</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="355"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>some<sp/>sort<sp/>of<sp/>reverse<sp/>range<sp/>iterator.<sp/>we<sp/>will<sp/>need<sp/>to<sp/>fake<sp/>one</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="356"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>by<sp/>storing<sp/>the<sp/>ranges<sp/>of<sp/>the<sp/>forward<sp/>iterator<sp/>in<sp/>an<sp/>array.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="357"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>first<sp/>we<sp/>need<sp/>to<sp/>know<sp/>how<sp/>large<sp/>the<sp/>array<sp/>needs<sp/>to<sp/>be.<sp/>so,<sp/>let's</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="358"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>count<sp/>the<sp/>ranges:</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="359"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>int<sp/>num_ranges<sp/>=<sp/>0;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="360"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>for<sp/>(LubRanges<View><sp/>ur(x0);<sp/>ur();<sp/>++ur,<sp/>++num_ranges)<sp/>{}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="361"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>create<sp/>an<sp/>array<sp/>for<sp/>storing<sp/>min<sp/>and<sp/>max<sp/>of<sp/>each<sp/>range</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="362"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>Region<sp/>re(home);</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="363"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>int*<sp/>_ur<sp/>=<sp/>re.alloc<int>(num_ranges*2);</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="364"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>now,<sp/>we<sp/>fill<sp/>the<sp/>array:</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="365"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>int<sp/>i<sp/>=<sp/>0;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="366"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>for<sp/>(LubRanges<View><sp/>ur(x0);<sp/>ur();<sp/>++ur,<sp/>++i)<sp/>{</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="367"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>_ur[2*i<sp/><sp/>]<sp/>=<sp/>ur.min();</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="368"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>_ur[2*i+1]<sp/>=<sp/>ur.max();</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="369"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="370"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>now<sp/>we<sp/>search<sp/>from<sp/>the<sp/>top<sp/>the<sp/>range<sp/>that<sp/>contains<sp/>the</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="371"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>nth<sp/>largest<sp/>value.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="372"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>int<sp/>n<sp/>=<sp/>x0.cardMin();</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="373"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>int<sp/>nth_largest<sp/>=<sp/>BndSet::MAX_OF_EMPTY;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="374"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>for<sp/>(int<sp/>i=num_ranges;<sp/>i--;<sp/>)<sp/>{</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="375"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>//<sp/>number<sp/>of<sp/>values<sp/>in<sp/>range</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="376"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>int<sp/>num_values<sp/>=<sp/>_ur[2*i+1]-_ur[2*i]+1;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="377"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>//<sp/>does<sp/>the<sp/>range<sp/>contain<sp/>the<sp/>value?</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="378"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>if<sp/>(num_values<sp/>>=<sp/>n)</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="379"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="380"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>//<sp/>record<sp/>it<sp/>and<sp/>exit<sp/>the<sp/>loop</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="381"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nth_largest<sp/>=<sp/>_ur[2*i+1]-n+1;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="382"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>break;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="383"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="384"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>//<sp/>otherwise,<sp/>we<sp/>skipped<sp/>num_values</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="385"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>n<sp/>-=<sp/>num_values;</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="386"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="387"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>//<sp/>if<sp/>x1.min<sp/>><sp/>nth_largest,<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="388"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>if<sp/>(x1.min()<sp/>><sp/>nth_largest)<sp/>{</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="389"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="390"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/><sp/><sp/>return<sp/>home.ES_SUBSUMED(*this);</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="391"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/><sp/><sp/>}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="392"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>}</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="393"><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="394"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="395"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="396"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="397"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="398" refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1a110d41628022d271af8e5a5c26aa7eda" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1aaaa0cbd2daa3274ca2cdfe94070e2956" kindref="member">MaxElement<View>::MaxElement</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>y0,<sp/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>y1)</highlight></codeline>
|
|
<codeline lineno="399"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="400"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_BND><sp/>(home,<sp/>y0,<sp/>y1)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="401"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="402"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="403"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="404" refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1aaaa0cbd2daa3274ca2cdfe94070e2956" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1aaaa0cbd2daa3274ca2cdfe94070e2956" kindref="member">MaxElement<View>::MaxElement</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_1Set_1_1Int_1_1MaxElement" kindref="compound">MaxElement</ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="405"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="406"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_BND><sp/>(home,<sp/>share,<sp/>p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="407"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="408"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="409"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="410" refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1a6468131c4c7a5bbfe0803041f03accb4" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1a6468131c4c7a5bbfe0803041f03accb4" kindref="member">MaxElement<View>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>x0,</highlight></codeline>
|
|
<codeline lineno="411"><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/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>x1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="412"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.cardMin(home,1));</highlight></codeline>
|
|
<codeline lineno="413"><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_1Set_1_1Int_1_1MaxElement" kindref="compound">MaxElement</ref>(home,x0,x1);</highlight></codeline>
|
|
<codeline lineno="414"><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="415"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="416"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="417"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="418"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="419" refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1ad7aacc33924fb00327956f746ef3f98e" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1ad7aacc33924fb00327956f746ef3f98e" kindref="member">MaxElement<View>::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="420"><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_1Set_1_1Int_1_1MaxElement" kindref="compound">MaxElement</ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="421"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="422"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="423"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="424"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="425" refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1aeac12870cfbd66a402ce1b896bdcd7ae" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1MaxElement_1aeac12870cfbd66a402ce1b896bdcd7ae" kindref="member">MaxElement<View>::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="426"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ub(x0);</highlight></codeline>
|
|
<codeline lineno="427"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.inter_r(home,ub,</highlight><highlight class="keyword">false</highlight><highlight class="normal">));</highlight></codeline>
|
|
<codeline lineno="428"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.gq(home,x0.glbMax()));</highlight></codeline>
|
|
<codeline lineno="429"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(x0.cardMin()>=1);</highlight></codeline>
|
|
<codeline lineno="430"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.gq(home,x0.lubMinN(x0.cardMin()-1)));</highlight></codeline>
|
|
<codeline lineno="431"><highlight class="normal"><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.exclude(home,</highlight></codeline>
|
|
<codeline lineno="432"><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/>x1.max()+1,<ref refid="namespaceGecode_1_1Set_1_1Limits_1aa0057c6b80521aaf8485343580d0eed5" kindref="member">Limits::max</ref>)<sp/>);</highlight></codeline>
|
|
<codeline lineno="433"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="434"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned())<sp/>{</highlight></codeline>
|
|
<codeline lineno="435"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.include(home,x1.val()));</highlight></codeline>
|
|
<codeline lineno="436"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(<sp/>x0.exclude(home,</highlight></codeline>
|
|
<codeline lineno="437"><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/>x1.val()+1,<ref refid="namespaceGecode_1_1Set_1_1Limits_1aa0057c6b80521aaf8485343580d0eed5" kindref="member">Limits::max</ref>)<sp/>);</highlight></codeline>
|
|
<codeline lineno="438"><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="439"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="440"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="441"><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="442"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="443"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="444"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="445"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="446" refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1ae773b31f460bda64f79c883054534920" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1a16d75d8b4cca9bbc0a76e746a9060e58" kindref="member">NotMaxElement<View>::NotMaxElement</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>y0,</highlight></codeline>
|
|
<codeline lineno="447"><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_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>y1)</highlight></codeline>
|
|
<codeline lineno="448"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="449"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM><sp/>(home,<sp/>y0,<sp/>y1)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="450"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="451"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="452"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="453" refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1a16d75d8b4cca9bbc0a76e746a9060e58" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1a16d75d8b4cca9bbc0a76e746a9060e58" kindref="member">NotMaxElement<View>::NotMaxElement</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,</highlight></codeline>
|
|
<codeline lineno="454"><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_1Set_1_1Int_1_1NotMaxElement" kindref="compound">NotMaxElement</ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="455"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="classGecode_1_1MixBinaryPropagator" kindref="compound">MixBinaryPropagator</ref><View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="456"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM><sp/>(home,<sp/>share,<sp/>p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="457"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="458"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="459"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="460" refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1abf3cd49cc5d7c78739a1e88e2cd3491d" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1abf3cd49cc5d7c78739a1e88e2cd3491d" kindref="member">NotMaxElement<View>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>x0,<sp/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>x1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="461"><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_1Set_1_1Int_1_1NotMaxElement" kindref="compound">NotMaxElement</ref>(home,x0,x1);</highlight></codeline>
|
|
<codeline lineno="462"><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="463"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="464"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="465"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="466"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="467" refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1ab07d84928403ce488ad63227309fa60d" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1ab07d84928403ce488ad63227309fa60d" kindref="member">NotMaxElement<View>::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="468"><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_1Set_1_1Int_1_1NotMaxElement" kindref="compound">NotMaxElement</ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</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="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="472"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="473" refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1af429d7354953221af3d39f3bbf21cd42" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement_1af429d7354953221af3d39f3bbf21cd42" kindref="member">NotMaxElement<View>::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="474"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>cheap<sp/>tests<sp/>for<sp/>entailment:</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="475"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x0<sp/>is<sp/>empty,<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="476"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x1)<sp/><<sp/>min(x0.lub)<sp/>or<sp/>min(x1)<sp/>><sp/>max(x0.lub),<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="477"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x0.glb)<sp/>><sp/>max(x1),<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="478"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((x0.cardMax()<sp/>==<sp/>0)<sp/>||</highlight></codeline>
|
|
<codeline lineno="479"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x1.max()<sp/><<sp/>x0.lubMin())<sp/>||<sp/>(x1.min()<sp/>><sp/>x0.lubMax()))<sp/>||</highlight></codeline>
|
|
<codeline lineno="480"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x0.glbSize()<sp/>><sp/>0)<sp/>&&<sp/>(x0.glbMax()<sp/>><sp/>x1.max())))</highlight></codeline>
|
|
<codeline lineno="481"><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="482"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/>is<sp/>determined<sp/>and<sp/>=<sp/>max(x0.lub):<sp/>remove<sp/>it<sp/>from<sp/>x0,</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="483"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="484"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned()<sp/>&&<sp/>x1.val()==x0.lubMax())<sp/>{</highlight></codeline>
|
|
<codeline lineno="485"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.exclude(home,x1.val()));</highlight></codeline>
|
|
<codeline lineno="486"><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="487"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="488"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x0)<sp/>is<sp/>decided:<sp/>remove<sp/>max(x0)<sp/>from<sp/>the<sp/>domain<sp/>of<sp/>x1</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="489"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="490"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x0.glbMax()<sp/>==<sp/>x0.lubMax())<sp/>{</highlight></codeline>
|
|
<codeline lineno="491"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x1.nq(home,x0.glbMax()));</highlight></codeline>
|
|
<codeline lineno="492"><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="493"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="494"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/>is<sp/>determined<sp/>and<sp/>=<sp/>max(x0.glb),<sp/>then<sp/>we<sp/>need<sp/>at<sp/>least</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="495"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>one<sp/>more<sp/>element;<sp/>if<sp/>there<sp/>is<sp/>only<sp/>one<sp/>above,<sp/>then<sp/>we<sp/>must</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="496"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>take<sp/>it.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="497"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned()<sp/>&&<sp/>x0.glbSize()<sp/>><sp/>0<sp/>&&<sp/>x1.val()==x0.glbMax())<sp/>{</highlight></codeline>
|
|
<codeline lineno="498"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>oldGlbSize<sp/>=<sp/>x0.glbSize();</highlight></codeline>
|
|
<codeline lineno="499"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>there<sp/>is<sp/>only<sp/>1<sp/>unknown<sp/>above<sp/>x1,<sp/>then<sp/>we<sp/>must<sp/>take<sp/>it</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="500"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Set_1_1UnknownRanges" kindref="compound">UnknownRanges<View></ref><sp/>ur(x0);</highlight></codeline>
|
|
<codeline lineno="501"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>there<sp/>is<sp/>at<sp/>least<sp/>one<sp/>unknown<sp/>above<sp/>x1<sp/>otherwise<sp/>it<sp/>would</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="502"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>have<sp/>been<sp/>caught<sp/>by<sp/>the<sp/>if<sp/>for<sp/>x1=max(x0.lub)</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="503"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(ur.<ref refid="classGecode_1_1Iter_1_1Ranges_1_1MinMax_1a78b64e6931716580060e987dd5c60102" kindref="member">max</ref>()<sp/><<sp/>x1.val())<sp/>{</highlight></codeline>
|
|
<codeline lineno="504"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>assert(ur());</highlight></codeline>
|
|
<codeline lineno="505"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>++ur;</highlight></codeline>
|
|
<codeline lineno="506"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>};</highlight></codeline>
|
|
<codeline lineno="507"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>the<sp/>first<sp/>range<sp/>above<sp/>x1<sp/>contains<sp/>just<sp/>1<sp/>element,</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="508"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>and<sp/>is<sp/>the<sp/>last<sp/>range,<sp/>then<sp/>take<sp/>that<sp/>element</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="509"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ur.<ref refid="classGecode_1_1Iter_1_1Ranges_1_1MinMax_1a2d2e9510d15f3b604f58cf65a1497957" kindref="member">width</ref>()<sp/>==<sp/>1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="510"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i<sp/>=<sp/>ur.<ref refid="classGecode_1_1Iter_1_1Ranges_1_1MinMax_1aec4557b5d203495359e89d79b278d4d3" kindref="member">min</ref>();</highlight></codeline>
|
|
<codeline lineno="511"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>++ur;</highlight></codeline>
|
|
<codeline lineno="512"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!ur())<sp/>{</highlight></codeline>
|
|
<codeline lineno="513"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>last<sp/>range</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="514"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.include(home,i));</highlight></codeline>
|
|
<codeline lineno="515"><highlight class="normal"><sp/><sp/><sp/><sp/><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="516"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="517"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="518"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(x0.cardMin(home,<sp/>oldGlbSize+1));</highlight></codeline>
|
|
<codeline lineno="519"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="520"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>dom(x1)<sp/>and<sp/>lub(x0)<sp/>are<sp/>disjoint,<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="521"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="522"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ub(x0);</highlight></codeline>
|
|
<codeline lineno="523"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1ViewRanges" kindref="compound">Gecode::Int::ViewRanges<Gecode::Int::IntView></ref><sp/>d(x1);</highlight></codeline>
|
|
<codeline lineno="524"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Iter_1_1Ranges_1_1Inter" kindref="compound">Gecode::Iter::Ranges::Inter<LubRanges<View></ref>,</highlight></codeline>
|
|
<codeline lineno="525"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1ViewRanges" kindref="compound">Gecode::Int::ViewRanges<Gecode::Int::IntView></ref><sp/>><sp/>ir(ub,d);</highlight></codeline>
|
|
<codeline lineno="526"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!ir())<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="527"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="528"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>x0<sp/>is<sp/>fated<sp/>to<sp/>eventually<sp/>contain<sp/>at<sp/>least<sp/>x0.cardMin<sp/>elements.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="529"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>therefore<sp/>max(x0)<sp/>>=<sp/>x0.cardMin-th<sp/>smallest<sp/>element<sp/>of<sp/>x0.lub.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="530"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/><<sp/>than<sp/>that,<sp/>then<sp/>entailed.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="531"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="532"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x0.cardMin();</highlight></codeline>
|
|
<codeline lineno="533"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>nth_smallest<sp/>=<sp/><ref refid="classGecode_1_1Set_1_1BndSet_1ac506e1f8224563cc4090b7465acbe14b" kindref="member">BndSet::MIN_OF_EMPTY</ref>;</highlight></codeline>
|
|
<codeline lineno="534"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(<ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ur(x0);<sp/>ur();<sp/>++ur)<sp/>{</highlight></codeline>
|
|
<codeline lineno="535"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ur.width()<sp/>>=<sp/>n)<sp/>{</highlight></codeline>
|
|
<codeline lineno="536"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>record<sp/>it<sp/>and<sp/>exit<sp/>the<sp/>loop</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="537"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nth_smallest<sp/>=<sp/></highlight><highlight class="keyword">static_cast<</highlight><highlight class="keywordtype">int</highlight><highlight class="keyword">></highlight><highlight class="normal">(ur.min()<sp/>+<sp/>n<sp/>-<sp/>1);</highlight></codeline>
|
|
<codeline lineno="538"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="539"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="540"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>otherwise,<sp/>we<sp/>skipped<sp/>ur.width()<sp/>values</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="541"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>n<sp/>-=<sp/>ur.width();</highlight></codeline>
|
|
<codeline lineno="542"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="543"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1.max<sp/><<sp/>nth_smallest,<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="544"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.max()<sp/><<sp/>nth_smallest)</highlight></codeline>
|
|
<codeline lineno="545"><highlight class="normal"><sp/><sp/><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="546"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="547"><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="548"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="549"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="550"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="551"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="552" refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1a53160f1e7c90b7221da18442ec21948b" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1ac8679704aea4fba20974f7e4c2a9a9ec" kindref="member">ReMaxElement<View,rm>::ReMaxElement</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>y0,</highlight></codeline>
|
|
<codeline lineno="553"><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/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>y1,</highlight></codeline>
|
|
<codeline lineno="554"><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/><ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">Gecode::Int::BoolView</ref><sp/>b2)</highlight></codeline>
|
|
<codeline lineno="555"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>Gecode::Int::ReMixBinaryPropagator<View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="556"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM,</highlight></codeline>
|
|
<codeline lineno="557"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::BoolView><sp/>(home,<sp/>y0,<sp/>y1,<sp/>b2)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="558"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="559"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="560"><highlight class="normal"><sp/><sp/>forceinline</highlight></codeline>
|
|
<codeline lineno="561" refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1ac8679704aea4fba20974f7e4c2a9a9ec" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1ac8679704aea4fba20974f7e4c2a9a9ec" kindref="member">ReMaxElement<View,rm>::ReMaxElement</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>share,</highlight></codeline>
|
|
<codeline lineno="562"><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/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement" kindref="compound">ReMaxElement</ref>&<sp/>p)</highlight></codeline>
|
|
<codeline lineno="563"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>Gecode::Int::ReMixBinaryPropagator<View,PC_SET_ANY,</highlight></codeline>
|
|
<codeline lineno="564"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::IntView,Gecode::Int::PC_INT_DOM,</highlight></codeline>
|
|
<codeline lineno="565"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>Gecode::Int::BoolView><sp/>(home,<sp/>share,<sp/>p)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="566"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="567"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="568"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="569" refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1a87da5207b1cf872d4f078215bd853b0b" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1a87da5207b1cf872d4f078215bd853b0b" kindref="member">ReMaxElement<View,rm>::post</ref>(<ref refid="classGecode_1_1Home" kindref="compound">Home</ref><sp/>home,<sp/>View<sp/>x0,</highlight></codeline>
|
|
<codeline lineno="570"><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/><ref refid="classGecode_1_1Int_1_1IntView" kindref="compound">Gecode::Int::IntView</ref><sp/>x1,</highlight></codeline>
|
|
<codeline lineno="571"><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/><ref refid="classGecode_1_1Int_1_1BoolView" kindref="compound">Gecode::Int::BoolView</ref><sp/>b2)<sp/>{</highlight></codeline>
|
|
<codeline lineno="572"><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_1Set_1_1Int_1_1ReMaxElement" kindref="compound">ReMaxElement</ref>(home,x0,x1,b2);</highlight></codeline>
|
|
<codeline lineno="573"><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="574"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="575"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="576"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="577"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Actor" kindref="compound">Actor</ref>*</highlight></codeline>
|
|
<codeline lineno="578" refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1aea92409690ee8ec9147bf878bb2e2cc7" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1aea92409690ee8ec9147bf878bb2e2cc7" kindref="member">ReMaxElement<View,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="579"><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_1Set_1_1Int_1_1ReMaxElement" kindref="compound">ReMaxElement</ref>(home,share,*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="580"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="581"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="582"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View,<sp/>ReifyMode<sp/>rm></highlight></codeline>
|
|
<codeline lineno="583"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1ab278aee34126d2f13c5429ee3c4ed3b5" kindref="member">ExecStatus</ref></highlight></codeline>
|
|
<codeline lineno="584" refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1a76653949da1f2d9d7b4ed1ea4f5551ec" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Set_1_1Int_1_1ReMaxElement_1a76653949da1f2d9d7b4ed1ea4f5551ec" kindref="member">ReMaxElement<View,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="585"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>check<sp/>if<sp/>b<sp/>is<sp/>determined</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="586"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.one())<sp/>{</highlight></codeline>
|
|
<codeline lineno="587"><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="588"><highlight class="normal"><sp/><sp/><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="589"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,<sp/>(<ref refid="classGecode_1_1Set_1_1Int_1_1MaxElement" kindref="compound">MaxElement<View>::post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),x0,x1)));</highlight></codeline>
|
|
<codeline lineno="590"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="591"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(b.zero())<sp/>{</highlight></codeline>
|
|
<codeline lineno="592"><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="593"><highlight class="normal"><sp/><sp/><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="594"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_REWRITE(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">,<sp/>(<ref refid="classGecode_1_1Set_1_1Int_1_1NotMaxElement" kindref="compound">NotMaxElement<View>::post</ref>(home(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),x0,x1)));</highlight></codeline>
|
|
<codeline lineno="595"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="596"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>cheap<sp/>tests<sp/>for<sp/>=><sp/>b=0</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="597"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x0<sp/>is<sp/>empty,<sp/>then<sp/>b=0<sp/>and<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="598"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x1)<sp/><<sp/>min(x0.lub)<sp/>or<sp/>min(x1)<sp/>><sp/>max(x0.lub),<sp/>then<sp/>b=0<sp/>and<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="599"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x0.glb)<sp/>><sp/>max(x1),<sp/>then<sp/>b=0<sp/>and<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="600"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((x0.cardMax()<sp/>==<sp/>0)<sp/>||</highlight></codeline>
|
|
<codeline lineno="601"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x1.max()<sp/><<sp/>x0.lubMin())<sp/>||<sp/>(x1.min()<sp/>><sp/>x0.lubMax()))<sp/>||</highlight></codeline>
|
|
<codeline lineno="602"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>((x0.glbSize()<sp/>><sp/>0)<sp/>&&<sp/>(x0.glbMax()<sp/>><sp/>x1.max())))</highlight></codeline>
|
|
<codeline lineno="603"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="604"><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="605"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="606"><highlight class="normal"><sp/><sp/><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="607"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="608"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x0)<sp/>is<sp/>decided</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="609"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x0.glbMax()<sp/>==<sp/>x0.lubMax())<sp/>{</highlight></codeline>
|
|
<codeline lineno="610"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/>is<sp/>det:<sp/>check<sp/>if<sp/>=<sp/>max(x0),<sp/>assign<sp/>b,<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="611"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.assigned())<sp/>{</highlight></codeline>
|
|
<codeline lineno="612"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.val()<sp/>==<sp/>x0.glbMax())<sp/>{</highlight></codeline>
|
|
<codeline lineno="613"><highlight class="normal"><sp/><sp/><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="614"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.one(home));</highlight></codeline>
|
|
<codeline lineno="615"><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="616"><highlight class="normal"><sp/><sp/><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="617"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="618"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="619"><highlight class="normal"><sp/><sp/><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="620"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="621"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>max(x0)<sp/>not<sp/>in<sp/>dom(x1):<sp/>b=0,<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="622"><highlight class="normal"><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/>((x0.glbMax()<sp/><<sp/>x1.min())<sp/>||</highlight></codeline>
|
|
<codeline lineno="623"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>(x0.glbMax()<sp/>><sp/>x1.max())<sp/>||</highlight></codeline>
|
|
<codeline lineno="624"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>!x1.in(x0.glbMax()))</highlight></codeline>
|
|
<codeline lineno="625"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="626"><highlight class="normal"><sp/><sp/><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="627"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="628"><highlight class="normal"><sp/><sp/><sp/><sp/><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="629"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="630"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="631"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>dom(x1)<sp/>and<sp/>lub(x0)<sp/>are<sp/>disjoint,<sp/>then<sp/>b=0,<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="632"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="633"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ub(x0);</highlight></codeline>
|
|
<codeline lineno="634"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1ViewRanges" kindref="compound">Gecode::Int::ViewRanges<Gecode::Int::IntView></ref><sp/>d(x1);</highlight></codeline>
|
|
<codeline lineno="635"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Iter_1_1Ranges_1_1Inter" kindref="compound">Gecode::Iter::Ranges::Inter<LubRanges<View></ref>,</highlight></codeline>
|
|
<codeline lineno="636"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Int_1_1ViewRanges" kindref="compound">Gecode::Int::ViewRanges<Gecode::Int::IntView></ref><sp/>><sp/>ir(ub,d);</highlight></codeline>
|
|
<codeline lineno="637"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(!ir())<sp/>{</highlight></codeline>
|
|
<codeline lineno="638"><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="639"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="640"><highlight class="normal"><sp/><sp/><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="641"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="642"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="643"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>x0<sp/>is<sp/>fated<sp/>to<sp/>eventually<sp/>contain<sp/>at<sp/>least<sp/>x0.cardMin<sp/>elements.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="644"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>therefore<sp/>max(x0)<sp/>>=<sp/>x0.cardMin-th<sp/>smallest<sp/>element<sp/>of<sp/>x0.lub.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="645"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1<sp/><<sp/>than<sp/>that,<sp/>then<sp/>b=0,<sp/>entailed.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="646"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="647"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n<sp/>=<sp/>x0.cardMin();</highlight></codeline>
|
|
<codeline lineno="648"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>nth_smallest<sp/>=<sp/><ref refid="classGecode_1_1Set_1_1BndSet_1ac506e1f8224563cc4090b7465acbe14b" kindref="member">BndSet::MIN_OF_EMPTY</ref>;</highlight></codeline>
|
|
<codeline lineno="649"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(<ref refid="classGecode_1_1Set_1_1LubRanges" kindref="compound">LubRanges<View></ref><sp/>ur(x0);<sp/>ur();<sp/>++ur)<sp/>{</highlight></codeline>
|
|
<codeline lineno="650"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(ur.width()<sp/>>=<sp/>n)</highlight></codeline>
|
|
<codeline lineno="651"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
|
<codeline lineno="652"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>record<sp/>it<sp/>and<sp/>exit<sp/>the<sp/>loop</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="653"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>nth_smallest<sp/>=<sp/></highlight><highlight class="keyword">static_cast<</highlight><highlight class="keywordtype">int</highlight><highlight class="keyword">></highlight><highlight class="normal">(ur.min()<sp/>+<sp/>n<sp/>-<sp/>1);</highlight></codeline>
|
|
<codeline lineno="654"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">break</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="655"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="656"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>otherwise,<sp/>we<sp/>skipped<sp/>ur.width()<sp/>values</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="657"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>n<sp/>-=<sp/>ur.width();</highlight></codeline>
|
|
<codeline lineno="658"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="659"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>if<sp/>x1.max<sp/><<sp/>nth_smallest,<sp/>then<sp/>entailed</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="660"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x1.max()<sp/><<sp/>nth_smallest)<sp/>{</highlight></codeline>
|
|
<codeline lineno="661"><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="662"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>GECODE_ME_CHECK(b.zero(home));</highlight></codeline>
|
|
<codeline lineno="663"><highlight class="normal"><sp/><sp/><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="664"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="665"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="666"><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="667"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="668"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="669"><highlight class="normal">}}}</highlight></codeline>
|
|
<codeline lineno="670"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="671"><highlight class="normal"></highlight><highlight class="comment">//<sp/>STATISTICS:<sp/>set-prop</highlight><highlight class="normal"></highlight></codeline>
|
|
</programlisting>
|
|
<location file="/usr/include/gecode/set/int/minmax.hpp"/>
|
|
</compounddef>
|
|
</doxygen>
|