<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>QuEST: SubListGenerator Class Reference</title>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="jquery.smartmenus.js"></script>
<script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand"><img alt="Logo" src="logo.png"/></a>
<a class="navbar-brand"><b>QuEST</b> v3.1.0<br>The Quantum Exact Simulation Toolkit</a>
</div>
</div>
</nav>
<div id="top">
<div class="content" id="content">
<div class="container">
<div class="row">
<div class="col-sm-12 panel " style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pri-methods">Private Member Functions</a> |
<a href="#pri-attribs">Private Attributes</a> </div>
<div class="headertitle">
<div class="title">SubListGenerator Class Reference</div> </div>
</div>
<div class="contents">
<div class="dynheader">
Inheritance diagram for SubListGenerator:</div>
<div class="dyncontent">
<div class="center">
<img src="classSubListGenerator.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7ae1f7ed0731d93f694a6d80cfa827e4"><td class="memItemLeft" align="right" valign="top">int *const & </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a7ae1f7ed0731d93f694a6d80cfa827e4">get</a> () const override</td></tr>
<tr class="separator:a7ae1f7ed0731d93f694a6d80cfa827e4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a87ae3a003063535f2cd34905593efc97"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a87ae3a003063535f2cd34905593efc97">next</a> () override</td></tr>
<tr class="separator:a87ae3a003063535f2cd34905593efc97"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abed6025a9c0b87bcf3b19b3548787ec5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#abed6025a9c0b87bcf3b19b3548787ec5">SubListGenerator</a> (Catch::Generators::GeneratorWrapper< int > &&gen, int numSamps, const int *exclude, int numExclude)</td></tr>
<tr class="separator:abed6025a9c0b87bcf3b19b3548787ec5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac330be89ad66eb53684ea724bc320274"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#ac330be89ad66eb53684ea724bc320274">SubListGenerator</a> (int *elems, int numElems, int numSamps)</td></tr>
<tr class="separator:ac330be89ad66eb53684ea724bc320274"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a097b2ccb4f0dafc51bf3241ea944db5a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a097b2ccb4f0dafc51bf3241ea944db5a">~SubListGenerator</a> ()</td></tr>
<tr class="separator:a097b2ccb4f0dafc51bf3241ea944db5a"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a1d6f502f5fb36c1eba4654553d3f014f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a1d6f502f5fb36c1eba4654553d3f014f">createSublist</a> ()</td></tr>
<tr class="separator:a1d6f502f5fb36c1eba4654553d3f014f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a55d93b6da9e96013873a4b65daabcfa1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">prepareSublist</a> ()</td></tr>
<tr class="separator:a55d93b6da9e96013873a4b65daabcfa1"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a50e7830a9623f44ad854bcc9a0119f5b"><td class="memItemLeft" align="right" valign="top">vector< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a></td></tr>
<tr class="separator:a50e7830a9623f44ad854bcc9a0119f5b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9455720d1e08225c6b1e12a2a58133b2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a></td></tr>
<tr class="separator:a9455720d1e08225c6b1e12a2a58133b2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6cc17992795712abb3e9bb4ca615c780"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a></td></tr>
<tr class="separator:a6cc17992795712abb3e9bb4ca615c780"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad70d3502f47c9b08f2a415c0471023c7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a></td></tr>
<tr class="separator:ad70d3502f47c9b08f2a415c0471023c7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a02b6d786dfbbce60471fd7a55e23ea75"><td class="memItemLeft" align="right" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a></td></tr>
<tr class="separator:a02b6d786dfbbce60471fd7a55e23ea75"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00974">974</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a id="ac330be89ad66eb53684ea724bc320274"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac330be89ad66eb53684ea724bc320274">◆ </a></span>SubListGenerator() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SubListGenerator::SubListGenerator </td>
<td>(</td>
<td class="paramtype">int * </td>
<td class="paramname"><em>elems</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>numElems</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>numSamps</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l01003">1003</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  {</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  </div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( numSamps <= numElems );</div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  </div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  <span class="comment">// make a record of all elements</span></div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a> = numElems;</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a> = (<span class="keywordtype">int</span>*) malloc(<a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a> * <span class="keyword">sizeof</span> *<a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>);</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<<a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a>; i++)</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>[i] = elems[i];</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  </div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="comment">// prepare sublist</span></div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a> = numSamps;</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <a class="code" href="classSubListGenerator.html#a1d6f502f5fb36c1eba4654553d3f014f">createSublist</a>();</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <a class="code" href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">prepareSublist</a>(); </div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00981">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>, <a class="el" href="utilities_8cpp_source.html#l00977">len</a>, <a class="el" href="utilities_8cpp_source.html#l00975">list</a>, <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l00978">sublen</a>.</p>
</div>
</div>
<a id="abed6025a9c0b87bcf3b19b3548787ec5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abed6025a9c0b87bcf3b19b3548787ec5">◆ </a></span>SubListGenerator() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SubListGenerator::SubListGenerator </td>
<td>(</td>
<td class="paramtype">Catch::Generators::GeneratorWrapper< int > && </td>
<td class="paramname"><em>gen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>numSamps</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const int * </td>
<td class="paramname"><em>exclude</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>numExclude</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l01019">1019</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  { </div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="comment">// extract all generator elems</span></div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  vector<int> elems = vector<int>();</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <span class="keywordflow">do</span> { elems.push_back(gen.get()); } <span class="keywordflow">while</span> (gen.next());</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  </div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <span class="comment">// make (int*) of non-excluded elems</span></div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a> = 0;</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a> = (<span class="keywordtype">int</span>*) malloc(elems.size() * <span class="keyword">sizeof</span> *<a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>);</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<elems.size(); i++) {</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keywordtype">int</span> elem = elems[i];</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  <span class="keywordtype">bool</span> present = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0; j<numExclude; j++)</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <span class="keywordflow">if</span> (elem == exclude[j]) {</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  present = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  }</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  <span class="keywordflow">if</span> (!present)</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>[<a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a>++] = elem;</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  }</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  </div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( numSamps <= <a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a> );</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  </div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  <span class="comment">// prepare sublist</span></div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  <a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a> = numSamps;</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <a class="code" href="classSubListGenerator.html#a1d6f502f5fb36c1eba4654553d3f014f">createSublist</a>();</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <a class="code" href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">prepareSublist</a>();</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00981">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>, <a class="el" href="utilities_8cpp_source.html#l00977">len</a>, <a class="el" href="utilities_8cpp_source.html#l00975">list</a>, <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l00978">sublen</a>.</p>
</div>
</div>
<a id="a097b2ccb4f0dafc51bf3241ea944db5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a097b2ccb4f0dafc51bf3241ea944db5a">◆ </a></span>~SubListGenerator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">SubListGenerator::~SubListGenerator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l01069">1069</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  {</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  free(<a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>);</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  free(<a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>);</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00975">list</a>, and <a class="el" href="utilities_8cpp_source.html#l00976">sublist</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a1d6f502f5fb36c1eba4654553d3f014f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d6f502f5fb36c1eba4654553d3f014f">◆ </a></span>createSublist()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SubListGenerator::createSublist </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00981">981</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  {</div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  </div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="comment">// sublist to send to the user</span></div>
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a> = (<span class="keywordtype">int</span>*) malloc(<a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a> * <span class="keyword">sizeof</span> *<a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>);</div>
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  </div>
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  <span class="comment">// indicates which list members are currently in sublist</span></div>
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a> = vector<bool>(<a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a>);</div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  fill(<a class="code" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a>.end() - <a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a>, <a class="code" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a>.end(), <span class="keyword">true</span>); </div>
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00979">featured</a>, <a class="el" href="utilities_8cpp_source.html#l00977">len</a>, <a class="el" href="utilities_8cpp_source.html#l00978">sublen</a>, and <a class="el" href="utilities_8cpp_source.html#l00976">sublist</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l01003">SubListGenerator()</a>.</p>
</div>
</div>
<a id="a7ae1f7ed0731d93f694a6d80cfa827e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ae1f7ed0731d93f694a6d80cfa827e4">◆ </a></span>get()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int* const& SubListGenerator::get </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l01050">1050</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  {</div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">return</span> <a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>;</div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00976">sublist</a>.</p>
</div>
</div>
<a id="a87ae3a003063535f2cd34905593efc97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87ae3a003063535f2cd34905593efc97">◆ </a></span>next()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool SubListGenerator::next </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l01054">1054</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  {</div>
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  </div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="comment">// offer next permutation of the current combination</span></div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keywordflow">if</span> (next_permutation(<a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>, <a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>+<a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a>))</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  </div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="comment">// else generate the next combination</span></div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  <span class="keywordflow">if</span> (next_permutation(<a class="code" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a>.begin(), <a class="code" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a>.end())) {</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <a class="code" href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">prepareSublist</a>();</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  }</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  </div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00979">featured</a>, <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l00978">sublen</a>, and <a class="el" href="utilities_8cpp_source.html#l00976">sublist</a>.</p>
</div>
</div>
<a id="a55d93b6da9e96013873a4b65daabcfa1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55d93b6da9e96013873a4b65daabcfa1">◆ </a></span>prepareSublist()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SubListGenerator::prepareSublist </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00991">991</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  {</div>
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  </div>
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="comment">// choose the next combination</span></div>
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordtype">int</span> j=0;</div>
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i<<a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a>; i++)</div>
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">if</span> (<a class="code" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a>[i])</div>
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>[j++] = <a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>[i];</div>
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  </div>
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="comment">// prepare for permuting</span></div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  std::sort(<a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>, <a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>+<a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a>);</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00979">featured</a>, <a class="el" href="utilities_8cpp_source.html#l00977">len</a>, <a class="el" href="utilities_8cpp_source.html#l00975">list</a>, <a class="el" href="utilities_8cpp_source.html#l00978">sublen</a>, and <a class="el" href="utilities_8cpp_source.html#l00976">sublist</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l01054">next()</a>, and <a class="el" href="utilities_8cpp_source.html#l01003">SubListGenerator()</a>.</p>
</div>
</div>
<h2 class="groupheader">Field Documentation</h2>
<a id="a50e7830a9623f44ad854bcc9a0119f5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50e7830a9623f44ad854bcc9a0119f5b">◆ </a></span>featured</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">vector<bool> SubListGenerator::featured</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00979">979</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l00981">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01054">next()</a>, and <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>.</p>
</div>
</div>
<a id="a9455720d1e08225c6b1e12a2a58133b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9455720d1e08225c6b1e12a2a58133b2">◆ </a></span>len</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int SubListGenerator::len</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00977">977</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l00981">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01003">SubListGenerator()</a>.</p>
</div>
</div>
<a id="a6cc17992795712abb3e9bb4ca615c780"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6cc17992795712abb3e9bb4ca615c780">◆ </a></span>list</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int* SubListGenerator::list</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00975">975</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01003">SubListGenerator()</a>, and <a class="el" href="utilities_8cpp_source.html#l01069">~SubListGenerator()</a>.</p>
</div>
</div>
<a id="ad70d3502f47c9b08f2a415c0471023c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad70d3502f47c9b08f2a415c0471023c7">◆ </a></span>sublen</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int SubListGenerator::sublen</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00978">978</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l00981">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01054">next()</a>, <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01003">SubListGenerator()</a>.</p>
</div>
</div>
<a id="a02b6d786dfbbce60471fd7a55e23ea75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02b6d786dfbbce60471fd7a55e23ea75">◆ </a></span>sublist</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int* SubListGenerator::sublist</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00976">976</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l00981">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01050">get()</a>, <a class="el" href="utilities_8cpp_source.html#l01054">next()</a>, <a class="el" href="utilities_8cpp_source.html#l00991">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01069">~SubListGenerator()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="utilities_8cpp_source.html">utilities.cpp</a></li>
</ul>
</div>
<div class="ttc" id="aclassSubListGenerator_html_a6cc17992795712abb3e9bb4ca615c780"><div class="ttname"><a href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">SubListGenerator::list</a></div><div class="ttdeci">int * list</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00975">utilities.cpp:975</a></div></div>
<div class="ttc" id="aclassSubListGenerator_html_a02b6d786dfbbce60471fd7a55e23ea75"><div class="ttname"><a href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">SubListGenerator::sublist</a></div><div class="ttdeci">int * sublist</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00976">utilities.cpp:976</a></div></div>
<div class="ttc" id="aclassSubListGenerator_html_a9455720d1e08225c6b1e12a2a58133b2"><div class="ttname"><a href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">SubListGenerator::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00977">utilities.cpp:977</a></div></div>
<div class="ttc" id="aclassSubListGenerator_html_a50e7830a9623f44ad854bcc9a0119f5b"><div class="ttname"><a href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">SubListGenerator::featured</a></div><div class="ttdeci">vector< bool > featured</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00979">utilities.cpp:979</a></div></div>
<div class="ttc" id="aclassSubListGenerator_html_a55d93b6da9e96013873a4b65daabcfa1"><div class="ttname"><a href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">SubListGenerator::prepareSublist</a></div><div class="ttdeci">void prepareSublist()</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00991">utilities.cpp:991</a></div></div>
<div class="ttc" id="aclassSubListGenerator_html_a1d6f502f5fb36c1eba4654553d3f014f"><div class="ttname"><a href="classSubListGenerator.html#a1d6f502f5fb36c1eba4654553d3f014f">SubListGenerator::createSublist</a></div><div class="ttdeci">void createSublist()</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00981">utilities.cpp:981</a></div></div>
<div class="ttc" id="aclassSubListGenerator_html_ad70d3502f47c9b08f2a415c0471023c7"><div class="ttname"><a href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">SubListGenerator::sublen</a></div><div class="ttdeci">int sublen</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00978">utilities.cpp:978</a></div></div>
<div class="ttc" id="autilities_8cpp_html_aba8ab64f4403dbfbd5a38902939535ff"><div class="ttname"><a href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a></div><div class="ttdeci">#define DEMAND(cond)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00024">utilities.cpp:24</a></div></div>
</div>
</div>
</div>
</div>
</div>
</body>
<script type="text/javascript" src="boot.js"></script>
</html>