<!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.4.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#l01388">1388</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#l01417">1417</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  {</div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>  </div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( numSamps <= numElems );</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>  </div>
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  <span class="comment">// make a record of all elements</span></div>
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  <a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a> = numElems;</div>
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</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="l01424"></a><span class="lineno"> 1424</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="l01425"></a><span class="lineno"> 1425</span>  <a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>[i] = elems[i];</div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  </div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  <span class="comment">// prepare sublist</span></div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  <a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a> = numSamps;</div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <a class="code" href="classSubListGenerator.html#a1d6f502f5fb36c1eba4654553d3f014f">createSublist</a>();</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  <a class="code" href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">prepareSublist</a>(); </div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l01395">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>, <a class="el" href="utilities_8cpp_source.html#l01391">len</a>, <a class="el" href="utilities_8cpp_source.html#l01389">list</a>, <a class="el" href="utilities_8cpp_source.html#l01405">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01392">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#l01433">1433</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  { </div>
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  <span class="comment">// extract all generator elems</span></div>
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  vector<int> elems = vector<int>();</div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  <span class="keywordflow">do</span> { elems.push_back(gen.get()); } <span class="keywordflow">while</span> (gen.next());</div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  </div>
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  <span class="comment">// make (int*) of non-excluded elems</span></div>
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  <a class="code" href="classSubListGenerator.html#a9455720d1e08225c6b1e12a2a58133b2">len</a> = 0;</div>
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</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="l01444"></a><span class="lineno"> 1444</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<elems.size(); i++) {</div>
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  <span class="keywordtype">int</span> elem = elems[i];</div>
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>  <span class="keywordtype">bool</span> present = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0; j<numExclude; j++)</div>
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  <span class="keywordflow">if</span> (elem == exclude[j]) {</div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  present = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  }</div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  <span class="keywordflow">if</span> (!present)</div>
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</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="l01454"></a><span class="lineno"> 1454</span>  }</div>
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  </div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</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="l01457"></a><span class="lineno"> 1457</span>  </div>
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  <span class="comment">// prepare sublist</span></div>
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  <a class="code" href="classSubListGenerator.html#ad70d3502f47c9b08f2a415c0471023c7">sublen</a> = numSamps;</div>
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>  <a class="code" href="classSubListGenerator.html#a1d6f502f5fb36c1eba4654553d3f014f">createSublist</a>();</div>
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>  <a class="code" href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">prepareSublist</a>();</div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l01395">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>, <a class="el" href="utilities_8cpp_source.html#l01391">len</a>, <a class="el" href="utilities_8cpp_source.html#l01389">list</a>, <a class="el" href="utilities_8cpp_source.html#l01405">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01392">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#l01483">1483</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  {</div>
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  free(<a class="code" href="classSubListGenerator.html#a6cc17992795712abb3e9bb4ca615c780">list</a>);</div>
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  free(<a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>);</div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l01389">list</a>, and <a class="el" href="utilities_8cpp_source.html#l01390">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#l01395">1395</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  {</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  </div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  <span class="comment">// sublist to send to the user</span></div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</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="l01399"></a><span class="lineno"> 1399</span>  </div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  <span class="comment">// indicates which list members are currently in sublist</span></div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</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="l01402"></a><span class="lineno"> 1402</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="l01403"></a><span class="lineno"> 1403</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l01393">featured</a>, <a class="el" href="utilities_8cpp_source.html#l01391">len</a>, <a class="el" href="utilities_8cpp_source.html#l01392">sublen</a>, and <a class="el" href="utilities_8cpp_source.html#l01390">sublist</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l01417">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#l01464">1464</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  {</div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  <span class="keywordflow">return</span> <a class="code" href="classSubListGenerator.html#a02b6d786dfbbce60471fd7a55e23ea75">sublist</a>;</div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l01390">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#l01468">1468</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  {</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  </div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  <span class="comment">// offer next permutation of the current combination</span></div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</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="l01472"></a><span class="lineno"> 1472</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  </div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  <span class="comment">// else generate the next combination</span></div>
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</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="l01476"></a><span class="lineno"> 1476</span>  <a class="code" href="classSubListGenerator.html#a55d93b6da9e96013873a4b65daabcfa1">prepareSublist</a>();</div>
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  }</div>
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  </div>
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l01393">featured</a>, <a class="el" href="utilities_8cpp_source.html#l01405">prepareSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01392">sublen</a>, and <a class="el" href="utilities_8cpp_source.html#l01390">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#l01405">1405</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  {</div>
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>  </div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  <span class="comment">// choose the next combination</span></div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>  <span class="keywordtype">int</span> j=0;</div>
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</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="l01410"></a><span class="lineno"> 1410</span>  <span class="keywordflow">if</span> (<a class="code" href="classSubListGenerator.html#a50e7830a9623f44ad854bcc9a0119f5b">featured</a>[i])</div>
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</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="l01412"></a><span class="lineno"> 1412</span>  </div>
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  <span class="comment">// prepare for permuting</span></div>
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</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="l01415"></a><span class="lineno"> 1415</span>  }</div>
</div>
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l01393">featured</a>, <a class="el" href="utilities_8cpp_source.html#l01391">len</a>, <a class="el" href="utilities_8cpp_source.html#l01389">list</a>, <a class="el" href="utilities_8cpp_source.html#l01392">sublen</a>, and <a class="el" href="utilities_8cpp_source.html#l01390">sublist</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l01468">next()</a>, and <a class="el" href="utilities_8cpp_source.html#l01417">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#l01393">1393</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#l01395">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01468">next()</a>, and <a class="el" href="utilities_8cpp_source.html#l01405">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#l01391">1391</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#l01395">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01405">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01417">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#l01389">1389</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#l01405">prepareSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01417">SubListGenerator()</a>, and <a class="el" href="utilities_8cpp_source.html#l01483">~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#l01392">1392</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#l01395">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01468">next()</a>, <a class="el" href="utilities_8cpp_source.html#l01405">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01417">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#l01390">1390</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#l01395">createSublist()</a>, <a class="el" href="utilities_8cpp_source.html#l01464">get()</a>, <a class="el" href="utilities_8cpp_source.html#l01468">next()</a>, <a class="el" href="utilities_8cpp_source.html#l01405">prepareSublist()</a>, and <a class="el" href="utilities_8cpp_source.html#l01483">~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#l01389">utilities.cpp:1389</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#l01390">utilities.cpp:1390</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#l01391">utilities.cpp:1391</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#l01393">utilities.cpp:1393</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#l01405">utilities.cpp:1405</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#l01395">utilities.cpp:1395</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#l01392">utilities.cpp:1392</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>