intel-qs/docs/html/namespaceopenqu.html

509 lines
31 KiB
HTML

<!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="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Intel qHiPSTER: openqu Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Intel qHiPSTER
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">openqu Namespace Reference<div class="ingroups"><a class="el" href="group__sim.html">Sim</a> &#124; <a class="el" href="group__util.html">Util</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Namespace for the OpenQu project.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceopenqu_1_1detail"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceopenqu_1_1detail.html">detail</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceopenqu_1_1mpi"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceopenqu_1_1mpi.html">mpi</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenqu_1_1AlignedAllocator.html">AlignedAllocator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">an allocator returning aligned memory <a href="classopenqu_1_1AlignedAllocator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classopenqu_1_1TinyMatrix.html">TinyMatrix</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A small matrix with dimensions fixed at compile time. <a href="classopenqu_1_1TinyMatrix.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5993cd77555112c420f1bc61ae3c83f5"><td class="memTemplParams" colspan="2">template&lt;class Integral &gt; </td></tr>
<tr class="memitem:a5993cd77555112c420f1bc61ae3c83f5"><td class="memTemplItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceopenqu.html#a5993cd77555112c420f1bc61ae3c83f5">floor_power_of_two</a> (Integral x)</td></tr>
<tr class="separator:a5993cd77555112c420f1bc61ae3c83f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c00ea7605ace62e602ebfc48d2e7b99"><td class="memTemplParams" colspan="2">template&lt;class Integral &gt; </td></tr>
<tr class="memitem:a0c00ea7605ace62e602ebfc48d2e7b99"><td class="memTemplItemLeft" align="right" valign="top">constexpr unsigned&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceopenqu.html#a0c00ea7605ace62e602ebfc48d2e7b99">highestBit</a> (Integral i)</td></tr>
<tr class="memdesc:a0c00ea7605ace62e602ebfc48d2e7b99"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the highest bit set in a non-zero integer <a href="#a0c00ea7605ace62e602ebfc48d2e7b99">More...</a><br /></td></tr>
<tr class="separator:a0c00ea7605ace62e602ebfc48d2e7b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cbfc48ff8a69fa8618c4eeaad4f2765"><td class="memTemplParams" colspan="2">template&lt;class Integral &gt; </td></tr>
<tr class="memitem:a9cbfc48ff8a69fa8618c4eeaad4f2765"><td class="memTemplItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceopenqu.html#a9cbfc48ff8a69fa8618c4eeaad4f2765">ilog2</a> (Integral n)</td></tr>
<tr class="memdesc:a9cbfc48ff8a69fa8618c4eeaad4f2765"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the logarithm base 2 of a non-zero integer <a href="#a9cbfc48ff8a69fa8618c4eeaad4f2765">More...</a><br /></td></tr>
<tr class="separator:a9cbfc48ff8a69fa8618c4eeaad4f2765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c261c4bb004642e72971b86e07cb2f"><td class="memTemplParams" colspan="2">template&lt;class Integral &gt; </td></tr>
<tr class="memitem:ac0c261c4bb004642e72971b86e07cb2f"><td class="memTemplItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceopenqu.html#ac0c261c4bb004642e72971b86e07cb2f">isPowerOf2</a> (Integral i)</td></tr>
<tr class="memdesc:ac0c261c4bb004642e72971b86e07cb2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">checks whether an integer is a power of 2 <a href="#ac0c261c4bb004642e72971b86e07cb2f">More...</a><br /></td></tr>
<tr class="separator:ac0c261c4bb004642e72971b86e07cb2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa35825c37c49aa745135d0d5b276d4fa"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceopenqu.html#aa35825c37c49aa745135d0d5b276d4fa">popcnt</a> (uint32_t x)</td></tr>
<tr class="memdesc:aa35825c37c49aa745135d0d5b276d4fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the population count (number of set bits) of a 32bit integer. <a href="#aa35825c37c49aa745135d0d5b276d4fa">More...</a><br /></td></tr>
<tr class="separator:aa35825c37c49aa745135d0d5b276d4fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57b8e01716e86bfcf77e395fb8eae92d"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceopenqu.html#a57b8e01716e86bfcf77e395fb8eae92d">popcnt</a> (uint64_t x)</td></tr>
<tr class="memdesc:a57b8e01716e86bfcf77e395fb8eae92d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the population count (number of set bits) of a 64bit integer using alps::popcnt. <a href="#a57b8e01716e86bfcf77e395fb8eae92d">More...</a><br /></td></tr>
<tr class="separator:a57b8e01716e86bfcf77e395fb8eae92d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5b80c42dd813c0565e9f4f31fb13727"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ad5b80c42dd813c0565e9f4f31fb13727"><td class="memTemplItemLeft" align="right" valign="top">std::string&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceopenqu.html#ad5b80c42dd813c0565e9f4f31fb13727">toString</a> (T const &amp;val)</td></tr>
<tr class="memdesc:ad5b80c42dd813c0565e9f4f31fb13727"><td class="mdescLeft">&#160;</td><td class="mdescRight">convert to a string <a href="#ad5b80c42dd813c0565e9f4f31fb13727">More...</a><br /></td></tr>
<tr class="separator:ad5b80c42dd813c0565e9f4f31fb13727"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Namespace for the OpenQu project. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a5993cd77555112c420f1bc61ae3c83f5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Integral &gt; </div>
<table class="memname">
<tr>
<td class="memname">unsigned openqu::floor_power_of_two </td>
<td>(</td>
<td class="paramtype">Integral&#160;</td>
<td class="paramname"><em>x</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="bitops_8hpp_source.html#l00043">43</a> of file <a class="el" href="bitops_8hpp_source.html">bitops.hpp</a>.</p>
</div>
</div>
<a class="anchor" id="a0c00ea7605ace62e602ebfc48d2e7b99"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Integral &gt; </div>
<table class="memname">
<tr>
<td class="memname">constexpr unsigned openqu::highestBit </td>
<td>(</td>
<td class="paramtype">Integral&#160;</td>
<td class="paramname"><em>i</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns the highest bit set in a non-zero integer </p>
<p>This function returns the highest bit set in a non-zero integer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>the non-zero integer of which the highest bit is returned</td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>The integer <code>i</code> is non-zero </dd></dl>
<p>Definition at line <a class="el" href="bitops_8hpp_source.html#l00063">63</a> of file <a class="el" href="bitops_8hpp_source.html">bitops.hpp</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_cgraph.png" border="0" usemap="#namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_cgraph" alt=""/></div>
<map name="namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_cgraph" id="namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_cgraph">
<area shape="rect" id="node2" href="highperfkernels_8cpp.html#a3c5c1de356c65cc2bfca5046ecd71e6d" title="assert" alt="" coords="252,5,311,32"/>
<area shape="rect" id="node3" href="namespaceopenqu_1_1detail.html#ac7e5b2bd32e0a8eca45f61d87dc56aef" title="openqu::detail::highestBitImpl" alt="" coords="184,56,379,83"/>
</map>
</div>
</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_icgraph.png" border="0" usemap="#namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_icgraph" alt=""/></div>
<map name="namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_icgraph" id="namespaceopenqu_a0c00ea7605ace62e602ebfc48d2e7b99_icgraph">
<area shape="rect" id="node2" href="classQbitRegister.html#a672e66fb6d27f3b1f8144a796e21a72a" title="QbitRegister::apply2QubitGate" alt="" coords="429,5,629,32"/>
<area shape="rect" id="node3" href="classQbitRegister.html#a1df7d4a899a7423b9558363ef12beb62" title="QbitRegister::applySwap\l_helper" alt="" coords="446,57,613,98"/>
<area shape="rect" id="node4" href="namespaceopenqu.html#ac0c261c4bb004642e72971b86e07cb2f" title="checks whether an integer is a power of 2 " alt="" coords="213,121,353,148"/>
<area shape="rect" id="node8" href="bitops__test_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="504,240,555,267"/>
<area shape="rect" id="node9" href="bitops__btest_8cpp.html#a4d2a1b92bca4aff7773cb1252aef00c9" title="BOOST_AUTO_TEST_CASE" alt="" coords="184,223,381,249"/>
<area shape="rect" id="node5" href="classopenqu_1_1AlignedAllocator.html#aa0916f50a231a0d30c2bdc467a540a2c" title="openqu::AlignedAllocator\l::allocate" alt="" coords="446,174,613,215"/>
<area shape="rect" id="node7" href="bitops__btest_8cpp.html#a8dbe0bcff50283c0cf60f61f947c730e" title="BOOST_AUTO_TEST_CASE" alt="" coords="431,123,628,149"/>
<area shape="rect" id="node6" href="alignedallocator__test_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="677,181,728,208"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a9cbfc48ff8a69fa8618c4eeaad4f2765"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Integral &gt; </div>
<table class="memname">
<tr>
<td class="memname">unsigned int openqu::ilog2 </td>
<td>(</td>
<td class="paramtype">Integral&#160;</td>
<td class="paramname"><em>n</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>returns the logarithm base 2 of a non-zero integer </p>
<p>This function returns the the logarithm base 2 of a non-zero integer</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>the non-zero integer of which the logarithm base 2 is returned</td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>The integer <code>i</code> is a power of 2 </dd></dl>
<p>Definition at line <a class="el" href="bitops_8hpp_source.html#l00082">82</a> of file <a class="el" href="bitops_8hpp_source.html">bitops.hpp</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_cgraph.png" border="0" usemap="#namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_cgraph" alt=""/></div>
<map name="namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_cgraph" id="namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_cgraph">
<area shape="rect" id="node2" href="highperfkernels_8cpp.html#a3c5c1de356c65cc2bfca5046ecd71e6d" title="assert" alt="" coords="152,5,211,32"/>
</map>
</div>
</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_icgraph.png" border="0" usemap="#namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_icgraph" alt=""/></div>
<map name="namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_icgraph" id="namespaceopenqu_a9cbfc48ff8a69fa8618c4eeaad4f2765_icgraph">
<area shape="rect" id="node2" href="group__qureg.html#gafe0ffe91271466805943c6b6112f02fc" title="QbitRegister::HP_Distrpair" alt="" coords="163,5,341,32"/>
<area shape="rect" id="node3" href="group__qureg.html#gaedf1dd13993178f2a14983605b20e480" title="QbitRegister::apply1Qubit\lGate_helper" alt="" coords="166,57,338,98"/>
<area shape="rect" id="node4" href="classQbitRegister.html#a843fbe4c491202dfcaf87b6ca574df4b" title="QbitRegister::applyControlled1\lQubitGate_helper" alt="" coords="152,122,352,163"/>
<area shape="rect" id="node5" href="classQbitRegister.html#a70e1d4b9c959323a1b29a9462d066d17" title="QbitRegister::applyDiag" alt="" coords="171,188,333,215"/>
<area shape="rect" id="node6" href="classQbitRegister.html#a1df7d4a899a7423b9558363ef12beb62" title="QbitRegister::applySwap\l_helper" alt="" coords="169,239,335,281"/>
<area shape="rect" id="node7" href="classQbitRegister.html#a16ec69521846cf148f6afc1dca409334" title="QbitRegister::fusionon" alt="" coords="176,305,328,332"/>
<area shape="rect" id="node8" href="classQbitRegister.html#ab8bdcc049e7c69a628fc5c5ed7909727" title="QbitRegister::resize" alt="" coords="183,356,321,383"/>
<area shape="rect" id="node10" href="classQbitRegister.html#ae289a23f862d4bd442acc71e6c672443" title="QbitRegister::Init" alt="" coords="191,407,313,433"/>
<area shape="rect" id="node12" href="group__qureg.html#ga99a26e1ccde22e3811ed1c704c01186a" title="Return &#39;true&#39; if qubit is separable and in a computational state. " alt="" coords="161,457,343,484"/>
<area shape="rect" id="node13" href="group__qureg.html#gafd87d8d1374240178227d752b2291df8" title="Collapse the wavefunction as if qubit was measured in the computational basis. " alt="" coords="161,508,343,535"/>
<area shape="rect" id="node14" href="group__qureg.html#gaacef6a6a4d5f3662d9e9fc69f70f0bdb" title="Return the probability of outcome &#39;&#45;1&#39; when Pauli Z is measured on the qubit. " alt="" coords="161,559,343,585"/>
<area shape="rect" id="node16" href="group__qureg.html#gaa3937a2f66ce48f4520955ca649b86e9" title="?? explanation needed ?? " alt="" coords="165,610,339,651"/>
<area shape="rect" id="node17" href="qft__test_8cpp.html#aa9dd8f6a5643e6d0a79644144d923222" title="qft" alt="" coords="233,676,271,703"/>
<area shape="rect" id="node18" href="bitops__test_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="227,727,277,753"/>
<area shape="rect" id="node9" href="classQbitRegisterMetric.html#a87198687df303e307201562f2ae0d8d3" title="QbitRegisterMetric\l::QbitRegisterMetric" alt="" coords="400,345,539,386"/>
<area shape="rect" id="node11" href="noisy__circuit__test_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627" title="main" alt="" coords="444,411,495,437"/>
<area shape="rect" id="node15" href="interface__api__qasm_8cpp.html#a5f137d628c742fb97d3d564d332cb867" title="MeasZ_handler" alt="" coords="414,559,525,585"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ac0c261c4bb004642e72971b86e07cb2f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Integral &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">constexpr bool openqu::isPowerOf2 </td>
<td>(</td>
<td class="paramtype">Integral&#160;</td>
<td class="paramname"><em>i</em></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>checks whether an integer is a power of 2 </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>an integer to be checked </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="bitops_8hpp_source.html#l00098">98</a> of file <a class="el" href="bitops_8hpp_source.html">bitops.hpp</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_cgraph.png" border="0" usemap="#namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_cgraph" alt=""/></div>
<map name="namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_cgraph" id="namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_cgraph">
<area shape="rect" id="node2" href="namespaceopenqu.html#a0c00ea7605ace62e602ebfc48d2e7b99" title="returns the highest bit set in a non&#45;zero integer " alt="" coords="193,31,324,57"/>
<area shape="rect" id="node3" href="highperfkernels_8cpp.html#a3c5c1de356c65cc2bfca5046ecd71e6d" title="assert" alt="" coords="440,5,499,32"/>
<area shape="rect" id="node4" href="namespaceopenqu_1_1detail.html#ac7e5b2bd32e0a8eca45f61d87dc56aef" title="openqu::detail::highestBitImpl" alt="" coords="372,56,567,83"/>
</map>
</div>
</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_icgraph.png" border="0" usemap="#namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_icgraph" alt=""/></div>
<map name="namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_icgraph" id="namespaceopenqu_ac0c261c4bb004642e72971b86e07cb2f_icgraph">
<area shape="rect" id="node2" href="classQbitRegister.html#a672e66fb6d27f3b1f8144a796e21a72a" title="QbitRegister::apply2QubitGate" alt="" coords="193,5,393,32"/>
<area shape="rect" id="node3" href="classQbitRegister.html#a1df7d4a899a7423b9558363ef12beb62" title="QbitRegister::applySwap\l_helper" alt="" coords="210,57,377,98"/>
<area shape="rect" id="node4" href="classopenqu_1_1AlignedAllocator.html#aa0916f50a231a0d30c2bdc467a540a2c" title="openqu::AlignedAllocator\l::allocate" alt="" coords="210,122,377,163"/>
<area shape="rect" id="node6" href="bitops__btest_8cpp.html#a8dbe0bcff50283c0cf60f61f947c730e" title="BOOST_AUTO_TEST_CASE" alt="" coords="195,188,392,215"/>
<area shape="rect" id="node7" href="bitops__test_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="268,239,319,265"/>
<area shape="rect" id="node5" href="alignedallocator__test_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="441,129,492,156"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="aa35825c37c49aa745135d0d5b276d4fa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">long openqu::popcnt </td>
<td>(</td>
<td class="paramtype">uint32_t&#160;</td>
<td class="paramname"><em>x</em></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>Determines the population count (number of set bits) of a 32bit integer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Integer of which to determine the population count </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="bitops_8hpp_source.html#l00120">120</a> of file <a class="el" href="bitops_8hpp_source.html">bitops.hpp</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_cgraph.png" border="0" usemap="#namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_cgraph" alt=""/></div>
<map name="namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_cgraph" id="namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_cgraph">
<area shape="rect" id="node2" href="namespaceopenqu_1_1detail.html#ab3ba5248c8b36eb9fd9425622c23619a" title="openqu::detail::BX" alt="" coords="164,5,293,32"/>
</map>
</div>
</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_icgraph.png" border="0" usemap="#namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_icgraph" alt=""/></div>
<map name="namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_icgraph" id="namespaceopenqu_aa35825c37c49aa745135d0d5b276d4fa_icgraph">
<area shape="rect" id="node2" href="namespaceopenqu.html#a57b8e01716e86bfcf77e395fb8eae92d" title="Determines the population count (number of set bits) of a 64bit integer using alps::popcnt. " alt="" coords="164,5,275,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="a57b8e01716e86bfcf77e395fb8eae92d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">long openqu::popcnt </td>
<td>(</td>
<td class="paramtype">uint64_t&#160;</td>
<td class="paramname"><em>x</em></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>Determines the population count (number of set bits) of a 64bit integer using alps::popcnt. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>Integer of which to determine the population count </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="bitops_8hpp_source.html#l00131">131</a> of file <a class="el" href="bitops_8hpp_source.html">bitops.hpp</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_a57b8e01716e86bfcf77e395fb8eae92d_cgraph.png" border="0" usemap="#namespaceopenqu_a57b8e01716e86bfcf77e395fb8eae92d_cgraph" alt=""/></div>
<map name="namespaceopenqu_a57b8e01716e86bfcf77e395fb8eae92d_cgraph" id="namespaceopenqu_a57b8e01716e86bfcf77e395fb8eae92d_cgraph">
<area shape="rect" id="node2" href="namespaceopenqu.html#aa35825c37c49aa745135d0d5b276d4fa" title="Determines the population count (number of set bits) of a 32bit integer. " alt="" coords="164,5,275,32"/>
<area shape="rect" id="node3" href="namespaceopenqu_1_1detail.html#ab3ba5248c8b36eb9fd9425622c23619a" title="openqu::detail::BX" alt="" coords="323,5,452,32"/>
</map>
</div>
</p>
</div>
</div>
<a class="anchor" id="ad5b80c42dd813c0565e9f4f31fb13727"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname">std::string openqu::toString </td>
<td>(</td>
<td class="paramtype">T const &amp;&#160;</td>
<td class="paramname"><em>val</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>convert to a string </p>
<p>This function converts any value to a string, by writing it into a string stream.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>the value to be converted to a string</td></tr>
</table>
</dd>
</dl>
<dl class="section pre"><dt>Precondition</dt><dd>Writing into a std::istream using operator&lt;&lt; needs to be implemented for the type </dd></dl>
<p>Definition at line <a class="el" href="conversion_8hpp_source.html#l00042">42</a> of file <a class="el" href="conversion_8hpp_source.html">conversion.hpp</a>.</p>
<p><div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="namespaceopenqu_ad5b80c42dd813c0565e9f4f31fb13727_icgraph.png" border="0" usemap="#namespaceopenqu_ad5b80c42dd813c0565e9f4f31fb13727_icgraph" alt=""/></div>
<map name="namespaceopenqu_ad5b80c42dd813c0565e9f4f31fb13727_icgraph" id="namespaceopenqu_ad5b80c42dd813c0565e9f4f31fb13727_icgraph">
<area shape="rect" id="node2" href="classPermutation.html#a9390cee9bf62d509e6972f4c848ff323" title="Permutation::GetMapStr" alt="" coords="189,29,352,56"/>
<area shape="rect" id="node4" href="classPermutation.html#a3d8d64e85f5f4efcf6341d334677fd94" title="Permutation::GetImapStr" alt="" coords="187,80,354,107"/>
<area shape="rect" id="node5" href="group__qureg.html#gaedf1dd13993178f2a14983605b20e480" title="QbitRegister::apply1Qubit\lGate_helper" alt="" coords="185,131,357,173"/>
<area shape="rect" id="node6" href="classQbitRegister.html#a843fbe4c491202dfcaf87b6ca574df4b" title="QbitRegister::applyControlled1\lQubitGate_helper" alt="" coords="171,197,371,238"/>
<area shape="rect" id="node7" href="conversion__test_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4" title="main" alt="" coords="245,263,296,289"/>
<area shape="rect" id="node8" href="classHeader.html#a327fb3b47f3c632859aff821bbc9be85" title="Header::sprint" alt="" coords="219,313,323,340"/>
<area shape="rect" id="node9" href="classTimer.html#a90488c0efd4e80b865b0d3d3b92a525b" title="Timer::Breakdown" alt="" coords="207,364,335,391"/>
<area shape="rect" id="node3" href="classPermutation.html#aa2f2a076a21a0f79081394146f8df1b1" title="Permutation::prange" alt="" coords="423,29,562,56"/>
<area shape="rect" id="node10" href="group__qureg.html#gab8202459af1477623fa59b0b61ccc9fb" title="??? " alt="" coords="419,364,567,391"/>
<area shape="rect" id="node11" href="benchgates_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627" title="main" alt="" coords="615,364,665,391"/>
</map>
</div>
</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Nov 6 2017 10:53:55 for Intel qHiPSTER by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>