395 lines
82 KiB
XML
395 lines
82 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="sym-imp_8hpp" kind="file">
|
|
<compoundname>sym-imp.hpp</compoundname>
|
|
<includedby refid="int_2ldsb_8hh" local="no">/usr/include/gecode/int/ldsb.hh</includedby>
|
|
<invincdepgraph>
|
|
<node id="16660">
|
|
<label>/usr/include/gecode/set/ldsb.hh</label>
|
|
<link refid="set_2ldsb_8hh_source"/>
|
|
</node>
|
|
<node id="16659">
|
|
<label>/usr/include/gecode/int/ldsb.hh</label>
|
|
<link refid="int_2ldsb_8hh_source"/>
|
|
<childnode refid="16660" relation="include">
|
|
</childnode>
|
|
</node>
|
|
<node id="16658">
|
|
<label>/usr/include/gecode/int/ldsb/sym-imp.hpp</label>
|
|
<link refid="sym-imp.hpp"/>
|
|
<childnode refid="16659" relation="include">
|
|
</childnode>
|
|
</node>
|
|
</invincdepgraph>
|
|
<innernamespace refid="namespaceGecode">Gecode</innernamespace>
|
|
<innernamespace refid="namespaceGecode_1_1Int">Gecode::Int</innernamespace>
|
|
<innernamespace refid="namespaceGecode_1_1Int_1_1LDSB">Gecode::Int::LDSB</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/>Christopher<sp/>Mears<sp/><chris.mears@monash.edu></highlight></codeline>
|
|
<codeline lineno="5"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="6"><highlight class="comment"><sp/>*<sp/><sp/>Copyright:</highlight></codeline>
|
|
<codeline lineno="7"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>Christopher<sp/>Mears,<sp/>2012</highlight></codeline>
|
|
<codeline lineno="8"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="9"><highlight class="comment"><sp/>*<sp/><sp/>Last<sp/>modified:</highlight></codeline>
|
|
<codeline lineno="10"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>$Date:<sp/>2013-03-07<sp/>02:18:29<sp/>+0100<sp/>(Thu,<sp/>07<sp/>Mar<sp/>2013)<sp/>$<sp/>by<sp/>$Author:<sp/>mears<sp/>$</highlight></codeline>
|
|
<codeline lineno="11"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>$Revision:<sp/>13455<sp/>$</highlight></codeline>
|
|
<codeline lineno="12"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="13"><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="14"><highlight class="comment"><sp/>*<sp/><sp/>development<sp/>environment:</highlight></codeline>
|
|
<codeline lineno="15"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/><sp/>http://www.gecode.org</highlight></codeline>
|
|
<codeline lineno="16"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="17"><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="18"><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="19"><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="20"><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="21"><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="22"><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="23"><highlight class="comment"><sp/>*<sp/><sp/>the<sp/>following<sp/>conditions:</highlight></codeline>
|
|
<codeline lineno="24"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="25"><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="26"><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="27"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="28"><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="29"><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="30"><highlight class="comment"><sp/>*<sp/><sp/>MERCHANTABILITY,<sp/>FITNESS<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE<sp/>AND</highlight></codeline>
|
|
<codeline lineno="31"><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="32"><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="33"><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="34"><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="35"><highlight class="comment"><sp/>*</highlight></codeline>
|
|
<codeline lineno="36"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="37"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="38"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">Gecode<sp/>{<sp/></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">Int<sp/>{<sp/></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">LDSB<sp/>{</highlight></codeline>
|
|
<codeline lineno="39"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="41"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>A></highlight></codeline>
|
|
<codeline lineno="42"><highlight class="normal"><sp/><sp/>ArgArray<T></highlight></codeline>
|
|
<codeline lineno="43" refid="namespaceGecode_1_1Int_1_1LDSB_1acedfade4fdf4960a4c57135ac4d23425" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="namespaceGecode_1_1Int_1_1LDSB_1acedfade4fdf4960a4c57135ac4d23425" kindref="member">dynamicStackToArgArray</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Support_1_1DynamicStack" kindref="compound">Support::DynamicStack<T,A></ref>&<sp/>s)<sp/>{</highlight></codeline>
|
|
<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1ArgArray" kindref="compound">ArgArray<T></ref><sp/>a(s.<ref refid="classGecode_1_1Support_1_1DynamicStack_1a45e8e6702442c86ff6e03ee7cbd931d9" kindref="member">entries</ref>());</highlight></codeline>
|
|
<codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>i<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>s.<ref refid="classGecode_1_1Support_1_1DynamicStack_1a45e8e6702442c86ff6e03ee7cbd931d9" kindref="member">entries</ref>()<sp/>;<sp/>++i)<sp/>{</highlight></codeline>
|
|
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>a[i]<sp/>=<sp/>s[i];</highlight></codeline>
|
|
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>a;</highlight></codeline>
|
|
<codeline lineno="49"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="50"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="51"><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="52"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*</highlight></codeline>
|
|
<codeline lineno="53" refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp_1a56d65a2e6515b19ca300e4ba8b1010f4" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp" kindref="compound">SymmetryImp<View>::operator</ref><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>s,<sp/><ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="54"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>home.ralloc(s);</highlight></codeline>
|
|
<codeline lineno="55"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="56"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="57"><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="58"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="59" refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp_1a312e7c1833bb338178d45d420e4b84bd" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp" kindref="compound">SymmetryImp<View>::operator</ref><sp/></highlight><highlight class="keyword">delete</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*,<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="60"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="61"><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="62"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="63" refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp_1ad7bba80ed673c0c3f744a3082f7696e3" refkind="member"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp" kindref="compound">SymmetryImp<View>::operator</ref><sp/></highlight><highlight class="keyword">delete</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">void</highlight><highlight class="normal">*)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="64"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="65"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="66"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a2c4a7708297bd03a2a381bf2dfeb5529" kindref="member">VariableSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="67" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a2c4a7708297bd03a2a381bf2dfeb5529" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a2c4a7708297bd03a2a381bf2dfeb5529" kindref="member"> ::VariableSymmetryImp</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">*<sp/>_indices,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n)</highlight></codeline>
|
|
<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>indices(home,<sp/>0,<sp/>0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="69"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Find<sp/>minimum<sp/>and<sp/>maximum<sp/>value<sp/>in<sp/>_indices:<sp/>the<sp/>minimum<sp/>is<sp/>the</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>offset,<sp/>and<sp/>the<sp/>maximum<sp/>dictates<sp/>how<sp/>large<sp/>the<sp/>bitset<sp/>needs<sp/>to</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>be.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>maximum<sp/>=<sp/>_indices[0];</highlight></codeline>
|
|
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>minimum<sp/>=<sp/>_indices[0];</highlight></codeline>
|
|
<codeline lineno="74"><highlight class="normal"><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<sp/>=<sp/>1<sp/>;<sp/>i<sp/><<sp/>n<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(_indices[i]<sp/>><sp/>maximum)<sp/>maximum<sp/>=<sp/>_indices[i];</highlight></codeline>
|
|
<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(_indices[i]<sp/><<sp/>minimum)<sp/>minimum<sp/>=<sp/>_indices[i];</highlight></codeline>
|
|
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/>indices.resize(home,<sp/>maximum-minimum+1,<sp/>minimum);</highlight></codeline>
|
|
<codeline lineno="79"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>bits<sp/>for<sp/>the<sp/>included<sp/>indices.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="81"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>n<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>indices.set(_indices[i]);</highlight></codeline>
|
|
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="84"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="85"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="86"><highlight class="normal"><sp/><sp/></highlight></codeline>
|
|
<codeline lineno="87"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="88"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="89"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="90"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a2c4a7708297bd03a2a381bf2dfeb5529" kindref="member">VariableSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="91" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a26999b78f9631eca4a08ebc5dcb5da60" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a2c4a7708297bd03a2a381bf2dfeb5529" kindref="member"> ::VariableSymmetryImp</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="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp" kindref="compound">VariableSymmetryImp</ref>&<sp/>other)<sp/>:</highlight></codeline>
|
|
<codeline lineno="92"><highlight class="normal"><sp/><sp/><sp/><sp/>indices(home,<sp/>other.indices)<sp/>{}</highlight></codeline>
|
|
<codeline lineno="93"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="94"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="95"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="96"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a878fea4eb5a5c76429b9b431e433416f" kindref="member">VariableSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="97" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a878fea4eb5a5c76429b9b431e433416f" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a878fea4eb5a5c76429b9b431e433416f" kindref="member"> ::dispose</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/>indices.dispose(home);</highlight></codeline>
|
|
<codeline lineno="99"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(*this);</highlight></codeline>
|
|
<codeline lineno="100"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="101"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="102"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="103"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="104"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a61c14e039fd9fe5f4480a5e83ae1829c" kindref="member">VariableSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="105" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a61c14e039fd9fe5f4480a5e83ae1829c" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1a61c14e039fd9fe5f4480a5e83ae1829c" kindref="member"> ::update</ref>(<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal" kindref="compound">Literal</ref><sp/>l)<sp/>{</highlight></codeline>
|
|
<codeline lineno="106"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(indices.valid(l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1ad42fafef399deeeb4a1cb44607dbc0b7" kindref="member">_variable</ref>))<sp/>{</highlight></codeline>
|
|
<codeline lineno="107"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>indices.clear(l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1ad42fafef399deeeb4a1cb44607dbc0b7" kindref="member">_variable</ref>);</highlight></codeline>
|
|
<codeline lineno="108"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="109"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="110"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="111"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="112"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp" kindref="compound">SymmetryImp<View></ref>*</highlight></codeline>
|
|
<codeline lineno="113"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1af403555f3e562dac8c364a2080326309" kindref="member">VariableSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="114" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1af403555f3e562dac8c364a2080326309" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp_1af403555f3e562dac8c364a2080326309" kindref="member"> ::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)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/>share;</highlight></codeline>
|
|
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSymmetryImp" kindref="compound">VariableSymmetryImp<View></ref>(home,<sp/>*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="117"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="118"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="119"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="120"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="121"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>The<sp/>minimum<sp/>value<sp/>in<sp/>vs<sp/>is<sp/>the<sp/>bitset's<sp/>offset,<sp/>and<sp/>the<sp/>maximum</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="122"><highlight class="normal"><sp/><sp/></highlight><highlight class="comment">//<sp/>dictates<sp/>how<sp/>large<sp/>the<sp/>bitset<sp/>needs<sp/>to<sp/>be.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="123"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="124"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1ac8fa63699650e0ab7177c661198aa294" kindref="member">ValueSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="125" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1ac8fa63699650e0ab7177c661198aa294" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1ac8fa63699650e0ab7177c661198aa294" kindref="member"> ::ValueSymmetryImp</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">*<sp/>vs,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n)</highlight></codeline>
|
|
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>(home,<sp/>0,<sp/>0)<sp/>{</highlight></codeline>
|
|
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Find<sp/>minimum<sp/>and<sp/>maximum<sp/>value<sp/>in<sp/>vs:<sp/>the<sp/>minimum<sp/>is<sp/>the</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>offset,<sp/>and<sp/>the<sp/>maximum<sp/>dictates<sp/>how<sp/>large<sp/>the<sp/>bitset<sp/>needs<sp/>to</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>be.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/>assert(n<sp/>><sp/>0);</highlight></codeline>
|
|
<codeline lineno="131"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>maximum<sp/>=<sp/>vs[0];</highlight></codeline>
|
|
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>minimum<sp/>=<sp/>vs[0];</highlight></codeline>
|
|
<codeline lineno="133"><highlight class="normal"><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<sp/>=<sp/>1<sp/>;<sp/>i<sp/><<sp/>n<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="134"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(vs[i]<sp/>><sp/>maximum)<sp/>maximum<sp/>=<sp/>vs[i];</highlight></codeline>
|
|
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(vs[i]<sp/><<sp/>minimum)<sp/>minimum<sp/>=<sp/>vs[i];</highlight></codeline>
|
|
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="137"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>.resize(home,<sp/>maximum-minimum+1,<sp/>minimum);</highlight></codeline>
|
|
<codeline lineno="138"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="139"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Set<sp/>the<sp/>bits<sp/>for<sp/>the<sp/>included<sp/>values.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="140"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>n<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="141"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>.set(vs[i]);</highlight></codeline>
|
|
<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="143"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="144"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="145"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="146"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1ac8fa63699650e0ab7177c661198aa294" kindref="member">ValueSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="147" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1a34e05421a991fc10fe41fac4ed85cea1" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1ac8fa63699650e0ab7177c661198aa294" kindref="member"> ::ValueSymmetryImp</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="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp" kindref="compound">ValueSymmetryImp<View></ref>&<sp/>other)</highlight></codeline>
|
|
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>(home,<sp/>other.<ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>)<sp/>{<sp/>}</highlight></codeline>
|
|
<codeline lineno="149"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="150"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="151"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="152"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1a090592dbd4324ebbce5023862113a48b" kindref="member">ValueSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="153" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1a090592dbd4324ebbce5023862113a48b" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1a090592dbd4324ebbce5023862113a48b" kindref="member"> ::dispose</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>.dispose(home);</highlight></codeline>
|
|
<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(*this);</highlight></codeline>
|
|
<codeline lineno="156"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="157"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="158"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="159"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="160"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1af54db26edb6626da517c09807416be54" kindref="member">ValueSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="161" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1af54db26edb6626da517c09807416be54" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1af54db26edb6626da517c09807416be54" kindref="member"> ::update</ref>(<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal" kindref="compound">Literal</ref><sp/>l)<sp/>{</highlight></codeline>
|
|
<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>.valid(l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1add49a0fe4c8c26d6041d53737ca25107" kindref="member">_value</ref>))</highlight></codeline>
|
|
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>.clear(l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1add49a0fe4c8c26d6041d53737ca25107" kindref="member">_value</ref>);</highlight></codeline>
|
|
<codeline lineno="164"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="165"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="166"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="167"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp" kindref="compound">SymmetryImp<View></ref>*</highlight></codeline>
|
|
<codeline lineno="168"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1a06cc69d8bd9e8966622cfb6a756f3a5b" kindref="member">ValueSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="169" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1a06cc69d8bd9e8966622cfb6a756f3a5b" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp_1a06cc69d8bd9e8966622cfb6a756f3a5b" kindref="member"> ::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)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/>share;</highlight></codeline>
|
|
<codeline lineno="171"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSymmetryImp" kindref="compound">ValueSymmetryImp</ref>(home,<sp/>*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="172"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="173"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="174"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="175"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="176"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="177"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="178"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a6468cd1d0dbb93e567825daa1b9ef613" kindref="member">VariableSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="179" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a6468cd1d0dbb93e567825daa1b9ef613" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a6468cd1d0dbb93e567825daa1b9ef613" kindref="member"> ::getVal</ref>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__TaskModelIntSequence_1ga3bc04a3aea7c48a707d6b551fee2127f" kindref="member">sequence</ref>,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>position)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>indices[sequence*seq_size<sp/>+<sp/>position];</highlight></codeline>
|
|
<codeline lineno="181"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="182"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="183"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="184"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a0e861a169bfcae12516622f45030a147" kindref="member">VariableSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="185" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a0e861a169bfcae12516622f45030a147" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a0e861a169bfcae12516622f45030a147" kindref="member"> ::VariableSequenceSymmetryImp</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">*<sp/>_indices,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n,<sp/></highlight></codeline>
|
|
<codeline lineno="186"><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/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>seqsize)</highlight></codeline>
|
|
<codeline lineno="187"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>n_indices(n),<sp/>seq_size(seqsize),<sp/>n_seqs(n/seqsize)<sp/>{</highlight></codeline>
|
|
<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/>indices<sp/>=<sp/>home.<ref refid="group__FuncMemSpace_1gacf6b71739fd13f46d8d27052d714265e" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(n_indices);</highlight></codeline>
|
|
<codeline lineno="189"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>max_index<sp/>=<sp/>_indices[0];</highlight></codeline>
|
|
<codeline lineno="190"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>n_indices<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="191"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>indices[i]<sp/>=<sp/>_indices[i];</highlight></codeline>
|
|
<codeline lineno="192"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(indices[i]<sp/>><sp/>max_index)</highlight></codeline>
|
|
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>max_index<sp/>=<sp/>indices[i];</highlight></codeline>
|
|
<codeline lineno="194"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="195"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="196"><highlight class="normal"><sp/><sp/><sp/><sp/>lookup_size<sp/>=<sp/>max_index+1;</highlight></codeline>
|
|
<codeline lineno="197"><highlight class="normal"><sp/><sp/><sp/><sp/>lookup<sp/>=<sp/>home.<ref refid="group__FuncMemSpace_1gacf6b71739fd13f46d8d27052d714265e" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(lookup_size);</highlight></codeline>
|
|
<codeline lineno="198"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>lookup_size<sp/>;<sp/>i++)</highlight></codeline>
|
|
<codeline lineno="199"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>lookup[i]<sp/>=<sp/>-1;</highlight></codeline>
|
|
<codeline lineno="200"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>n_indices<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="201"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(lookup[indices[i]]<sp/>==<sp/>-1)</highlight></codeline>
|
|
<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lookup[indices[i]]<sp/>=<sp/>i;</highlight></codeline>
|
|
<codeline lineno="203"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="204"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="205"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="206"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="207"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a0e861a169bfcae12516622f45030a147" kindref="member">VariableSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="208" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a9225fc27092dd75550be7cf6b977983c" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a0e861a169bfcae12516622f45030a147" kindref="member"> ::VariableSequenceSymmetryImp</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="209"><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/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp" kindref="compound">VariableSequenceSymmetryImp</ref>&<sp/>s)</highlight></codeline>
|
|
<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>n_indices(s.n_indices),<sp/>seq_size(s.seq_size),<sp/>n_seqs(s.n_seqs),</highlight></codeline>
|
|
<codeline lineno="211"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>lookup_size(s.lookup_size)<sp/>{</highlight></codeline>
|
|
<codeline lineno="212"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/>share;</highlight></codeline>
|
|
<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/>indices<sp/>=<sp/>home.<ref refid="group__FuncMemSpace_1gacf6b71739fd13f46d8d27052d714265e" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(n_indices);</highlight></codeline>
|
|
<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/>memcpy(indices,<sp/>s.<ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a177b74bd341565d09b5f8fd3f8e7a05c" kindref="member">indices</ref>,<sp/>n_indices<sp/>*<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">));</highlight></codeline>
|
|
<codeline lineno="215"><highlight class="normal"><sp/><sp/><sp/><sp/>lookup<sp/>=<sp/>home.<ref refid="group__FuncMemSpace_1gacf6b71739fd13f46d8d27052d714265e" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(lookup_size);</highlight></codeline>
|
|
<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/>memcpy(lookup,<sp/>s.<ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a84cd3c45edec43d23a9933575c244fdf" kindref="member">lookup</ref>,<sp/>lookup_size<sp/>*<sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">));</highlight></codeline>
|
|
<codeline lineno="217"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="218"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="219"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="220"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="221"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a276729839c9dbbbaaf9eabd80eafa97e" kindref="member">VariableSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="222" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a276729839c9dbbbaaf9eabd80eafa97e" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a276729839c9dbbbaaf9eabd80eafa97e" kindref="member"> ::dispose</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/>home.<ref refid="group__FuncMemSpace_1gada420b751340125380dc4fcde66e6d99" kindref="member">free</ref><</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(indices,<sp/>n_indices);</highlight></codeline>
|
|
<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/>home.<ref refid="group__FuncMemSpace_1gada420b751340125380dc4fcde66e6d99" kindref="member">free</ref><</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(lookup,<sp/>lookup_size);</highlight></codeline>
|
|
<codeline lineno="225"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(*this);</highlight></codeline>
|
|
<codeline lineno="226"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="227"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="229"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="230"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1ArgArray" kindref="compound">ArgArray<Literal></ref></highlight></codeline>
|
|
<codeline lineno="231"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a56f6b9a241ba09769d04c008d9b4c4a3" kindref="member">VariableSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="232" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a56f6b9a241ba09769d04c008d9b4c4a3" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a56f6b9a241ba09769d04c008d9b4c4a3" kindref="member"> ::symmetric</ref>(<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal" kindref="compound">Literal</ref><sp/>l,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1ViewArray" kindref="compound">ViewArray<View></ref>&<sp/>x)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="233"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="classGecode_1_1Support_1_1DynamicStack" kindref="compound">Support::DynamicStack<Literal, Heap></ref><sp/>s(<ref refid="namespaceGecode_1a6595368d634d0db095ad8dee79f14d2c" kindref="member">heap</ref>);</highlight></codeline>
|
|
<codeline lineno="234"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1ad42fafef399deeeb4a1cb44607dbc0b7" kindref="member">_variable</ref><sp/><<sp/>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">)lookup_size)<sp/>{</highlight></codeline>
|
|
<codeline lineno="235"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>posIt<sp/>=<sp/>lookup[l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1ad42fafef399deeeb4a1cb44607dbc0b7" kindref="member">_variable</ref>];</highlight></codeline>
|
|
<codeline lineno="236"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(posIt<sp/>==<sp/>-1)<sp/>{</highlight></codeline>
|
|
<codeline lineno="237"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1_1Int_1_1LDSB_1acedfade4fdf4960a4c57135ac4d23425" kindref="member">dynamicStackToArgArray</ref>(s);</highlight></codeline>
|
|
<codeline lineno="238"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="239"><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/>seqNum<sp/>=<sp/>posIt<sp/>/<sp/>seq_size;</highlight></codeline>
|
|
<codeline lineno="240"><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/>seqPos<sp/>=<sp/>posIt<sp/>%<sp/>seq_size;</highlight></codeline>
|
|
<codeline lineno="241"><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/>seq<sp/>=<sp/>0<sp/>;<sp/>seq<sp/><<sp/>n_seqs<sp/>;<sp/>seq++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="242"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(seq<sp/>==<sp/>seqNum)<sp/>{</highlight></codeline>
|
|
<codeline lineno="243"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="244"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="245"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(x[getVal(seq,<sp/>seqPos)].assigned())<sp/>{</highlight></codeline>
|
|
<codeline lineno="246"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="247"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="248"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/>active<sp/>=<sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="249"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</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/>*firstSeq<sp/>=<sp/>&indices[seqNum*seq_size];</highlight></codeline>
|
|
<codeline lineno="250"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</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/>*secondSeq<sp/>=<sp/>&indices[seq*seq_size];</highlight></codeline>
|
|
<codeline lineno="251"><highlight class="normal"><sp/><sp/><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>seq_size<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="252"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>View&<sp/>xv<sp/>=<sp/>x[firstSeq[i]];</highlight></codeline>
|
|
<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>View&<sp/>yv<sp/>=<sp/>x[secondSeq[i]];</highlight></codeline>
|
|
<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>((!xv.assigned()<sp/>&&<sp/>!yv.assigned())</highlight></codeline>
|
|
<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>||<sp/>(xv.assigned()<sp/>&&<sp/>yv.assigned()<sp/>&&<sp/>xv.val()<sp/>==<sp/>yv.val()))<sp/>{</highlight></codeline>
|
|
<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">continue</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}<sp/></highlight><highlight class="keywordflow">else</highlight><highlight class="normal"><sp/>{</highlight></codeline>
|
|
<codeline lineno="258"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>active<sp/>=<sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
|
|
<codeline lineno="259"><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="260"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="261"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="262"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
|
|
<codeline lineno="263"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(active)<sp/>{</highlight></codeline>
|
|
<codeline lineno="264"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>s.<ref refid="classGecode_1_1Support_1_1DynamicStack_1ac979900e1fcb20bcf2954232857c0836" kindref="member">push</ref>(<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal" kindref="compound">Literal</ref>(secondSeq[seqPos],<sp/>l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1add49a0fe4c8c26d6041d53737ca25107" kindref="member">_value</ref>));</highlight></codeline>
|
|
<codeline lineno="265"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="266"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="267"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="268"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="namespaceGecode_1_1Int_1_1LDSB_1acedfade4fdf4960a4c57135ac4d23425" kindref="member">dynamicStackToArgArray</ref>(s);</highlight></codeline>
|
|
<codeline lineno="269"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="270"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="271"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="272"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="273"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="274"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1aa1ae46a621e9d52f4cf164879af195de" kindref="member">VariableSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="275" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1aa1ae46a621e9d52f4cf164879af195de" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1aa1ae46a621e9d52f4cf164879af195de" kindref="member"> ::update</ref>(<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal" kindref="compound">Literal</ref><sp/>l)<sp/>{</highlight></codeline>
|
|
<codeline lineno="276"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Do<sp/>nothing.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="277"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/>l;</highlight></codeline>
|
|
<codeline lineno="278"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="279"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="280"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="281"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp" kindref="compound">SymmetryImp<View></ref>*</highlight></codeline>
|
|
<codeline lineno="282"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a96beb07d1c9b17f3e13f177af3690730" kindref="member">VariableSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="283" refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a96beb07d1c9b17f3e13f177af3690730" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp_1a96beb07d1c9b17f3e13f177af3690730" kindref="member"> ::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)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="284"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1VariableSequenceSymmetryImp" kindref="compound">VariableSequenceSymmetryImp<View></ref>(home,<sp/>share,<sp/>*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="285"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="286"><highlight class="normal"><sp/><sp/></highlight></codeline>
|
|
<codeline lineno="287"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="288"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="289"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="290"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="291"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a1ed4c2b50bf1fedc9ca02f443cd7cc7b" kindref="member">ValueSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="292" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a1ed4c2b50bf1fedc9ca02f443cd7cc7b" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a1ed4c2b50bf1fedc9ca02f443cd7cc7b" kindref="member"> ::getVal</ref>(</highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="group__TaskModelIntSequence_1ga3bc04a3aea7c48a707d6b551fee2127f" kindref="member">sequence</ref>,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>position)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="293"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>[sequence*seq_size<sp/>+<sp/>position];</highlight></codeline>
|
|
<codeline lineno="294"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="295"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="296"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="297"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp" kindref="compound">ValueSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="298" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a4b4abc2efc70225e3283ad9a44055288" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp" kindref="compound"> ::ValueSequenceSymmetryImp</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal">*<sp/>_values,<sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>n,<sp/></highlight></codeline>
|
|
<codeline lineno="299"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>seqsize)</highlight></codeline>
|
|
<codeline lineno="300"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>n_values(n),<sp/>seq_size(seqsize),<sp/>n_seqs(n/seqsize),</highlight></codeline>
|
|
<codeline lineno="301"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>dead_sequences(home,<sp/>n_seqs)<sp/>{</highlight></codeline>
|
|
<codeline lineno="302"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref><sp/>=<sp/>home.<ref refid="group__FuncMemSpace_1gacf6b71739fd13f46d8d27052d714265e" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(n_values);</highlight></codeline>
|
|
<codeline lineno="303"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>n_values<sp/>;<sp/>i++)</highlight></codeline>
|
|
<codeline lineno="304"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>[i]<sp/>=<sp/>_values[i];</highlight></codeline>
|
|
<codeline lineno="305"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="306"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="307"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="308"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp" kindref="compound">ValueSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="309" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1ad67636b2f2d29ad376f032d0c55f0190" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp" kindref="compound"> ::ValueSequenceSymmetryImp</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home,</highlight></codeline>
|
|
<codeline lineno="310"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp" kindref="compound">ValueSequenceSymmetryImp<View></ref>&<sp/>vss)</highlight></codeline>
|
|
<codeline lineno="311"><highlight class="normal"><sp/><sp/><sp/><sp/>:<sp/>n_values(vss.n_values),</highlight></codeline>
|
|
<codeline lineno="312"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>seq_size(vss.seq_size),</highlight></codeline>
|
|
<codeline lineno="313"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>n_seqs(vss.n_seqs),</highlight></codeline>
|
|
<codeline lineno="314"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>dead_sequences(home,<sp/>vss.dead_sequences)<sp/>{</highlight></codeline>
|
|
<codeline lineno="315"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref><sp/>=<sp/>home.<ref refid="group__FuncMemSpace_1gacf6b71739fd13f46d8d27052d714265e" kindref="member">alloc</ref><</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">>(n_values);</highlight></codeline>
|
|
<codeline lineno="316"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>n_values<sp/>;<sp/>i++)</highlight></codeline>
|
|
<codeline lineno="317"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>[i]<sp/>=<sp/>vss.<ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a451f20190919665ad42ff5b1efd99962" kindref="member">values</ref>[i];</highlight></codeline>
|
|
<codeline lineno="318"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="319"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="320"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="321"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="322"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a87720908f261e0f0c724f9d4b55d9286" kindref="member">ValueSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="323" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a87720908f261e0f0c724f9d4b55d9286" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a87720908f261e0f0c724f9d4b55d9286" kindref="member"> ::dispose</ref>(<ref refid="classGecode_1_1Space" kindref="compound">Space</ref>&<sp/>home)<sp/>{</highlight></codeline>
|
|
<codeline lineno="324"><highlight class="normal"><sp/><sp/><sp/><sp/>home.<ref refid="group__FuncMemSpace_1gada420b751340125380dc4fcde66e6d99" kindref="member">free</ref>(<ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>,<sp/>n_values);</highlight></codeline>
|
|
<codeline lineno="325"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(*this);</highlight></codeline>
|
|
<codeline lineno="326"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="327"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="328"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="329"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="330"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a79696783db33a5244893e3e52c6f6322" kindref="member">ValueSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="331" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a79696783db33a5244893e3e52c6f6322" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1a79696783db33a5244893e3e52c6f6322" kindref="member"> ::update</ref>(<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal" kindref="compound">Literal</ref><sp/>l)<sp/>{</highlight></codeline>
|
|
<codeline lineno="332"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>seq<sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="333"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>pos<sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="334"><highlight class="normal"><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<sp/>=<sp/>0<sp/>;<sp/>i<sp/><<sp/>n_values<sp/>;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline lineno="335"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="group__TaskModelMiniModelIntAlias_1ga3132bb6ef494147e4400eb0e163425b0" kindref="member">values</ref>[i]<sp/>==<sp/>l.<ref refid="classGecode_1_1Int_1_1LDSB_1_1Literal_1add49a0fe4c8c26d6041d53737ca25107" kindref="member">_value</ref>)<sp/>{</highlight></codeline>
|
|
<codeline lineno="336"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>dead_sequences.set(seq);</highlight></codeline>
|
|
<codeline lineno="337"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>TODO:<sp/>This<sp/>can<sp/>be<sp/>slightly<sp/>optimised.</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="338"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">while</highlight><highlight class="normal"><sp/>(pos<sp/><<sp/>seq_size)<sp/>{</highlight></codeline>
|
|
<codeline lineno="339"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>i++;</highlight></codeline>
|
|
<codeline lineno="340"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pos++;</highlight></codeline>
|
|
<codeline lineno="341"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="342"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="343"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>pos++;</highlight></codeline>
|
|
<codeline lineno="344"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(pos<sp/>==<sp/>seq_size)<sp/>{</highlight></codeline>
|
|
<codeline lineno="345"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>pos<sp/>=<sp/>0;</highlight></codeline>
|
|
<codeline lineno="346"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>seq++;</highlight></codeline>
|
|
<codeline lineno="347"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="348"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="349"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="350"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="351"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/><</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>View></highlight></codeline>
|
|
<codeline lineno="352"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1SymmetryImp" kindref="compound">SymmetryImp<View></ref>*</highlight></codeline>
|
|
<codeline lineno="353"><highlight class="normal"><sp/><sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1afcf01b8364d5fae00a735a0f6dc3cca7" kindref="member">ValueSequenceSymmetryImp<View></ref></highlight></codeline>
|
|
<codeline lineno="354" refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1afcf01b8364d5fae00a735a0f6dc3cca7" refkind="member"><highlight class="normal"><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp_1afcf01b8364d5fae00a735a0f6dc3cca7" kindref="member"> ::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)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
|
|
<codeline lineno="355"><highlight class="normal"><sp/><sp/><sp/><sp/>(void)<sp/>share;</highlight></codeline>
|
|
<codeline lineno="356"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>(home)<sp/><ref refid="classGecode_1_1Int_1_1LDSB_1_1ValueSequenceSymmetryImp" kindref="compound">ValueSequenceSymmetryImp<View></ref>(home,<sp/>*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
|
|
<codeline lineno="357"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
|
|
<codeline lineno="358"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="359"><highlight class="normal">}}}</highlight></codeline>
|
|
<codeline lineno="360"><highlight class="normal"></highlight></codeline>
|
|
<codeline lineno="361"><highlight class="normal"></highlight><highlight class="comment">//<sp/>STATISTICS:<sp/>int-branch</highlight><highlight class="normal"></highlight></codeline>
|
|
</programlisting>
|
|
<location file="/usr/include/gecode/int/ldsb/sym-imp.hpp"/>
|
|
</compounddef>
|
|
</doxygen>
|