<!-- HTML header for doxygen 1.8.8-->
<!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">
<!-- For Mobile Devices -->
<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: QuEST.h Source File</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<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>
<!-- SmartMenus jQuery Bootstrap Addon -->
<script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
<!-- SmartMenus jQuery plugin -->
</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"><!-- do not remove this div, it is closed by doxygen! -->
<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;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e145b6391efe0b6e575fd5bb5f76dbf8.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_aaf4e0c86438000dc030ca371e863336.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_ea73998990134951f0a2a9d1cfc118c0.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">QuEST.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="QuEST_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Distributed under MIT licence. See https://github.com/QuEST-Kit/QuEST/blob/master/LICENCE.txt for details </span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"># ifndef QUEST_H</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"># define QUEST_H</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor"># include "<a class="code" href="QuEST__precision_8h.html">QuEST_precision.h</a>"</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// prevent C++ name mangling</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * private structures</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// hide these from doxygen</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment"></span> </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">enum</span> phaseGateType {SIGMA_Z=0, S_GATE=1, T_GATE=2}; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordtype">char</span>* buffer; <span class="comment">// generated QASM string</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">int</span> bufferSize; <span class="comment">// maximum number of chars before overflow</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">int</span> bufferFill; <span class="comment">// number of chars currently in buffer</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordtype">int</span> isLogging; <span class="comment">// whether gates are being added to buffer</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> } QASMLogger;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>ComplexArray</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *real; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *imag;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> } ComplexArray;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">/*</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment"> * public structures</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028"> 96</a></span>  <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> {<a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a63800f45b01ccc2608f754aee850bf4a">PAULI_I</a>=0, <a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a7abac7bb5b71e17382014c443244ad5c">PAULI_X</a>=1, <a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a2c64a9aaee27f6bcfef894d159e759bd">PAULI_Y</a>=2, <a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a085c85cff6ba79c52d8b1e61c42ddddf">PAULI_Z</a>=3};</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  </div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structComplex.html"> 103</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplex.html">Complex</a></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structComplex.html#ab5b2e2eca02131fc74b289a83636cbe3"> 105</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplex.html#ab5b2e2eca02131fc74b289a83636cbe3">real</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structComplex.html#a84f5439aad0ef495efdd3b4c1c02d27e"> 106</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplex.html#a84f5439aad0ef495efdd3b4c1c02d27e">imag</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> } <a class="code" href="structComplex.html">Complex</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html"> 137</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> {</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f"> 139</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f">real</a>[2][2];</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html#a3a2b60a9e00ccef054a6de3b9307c1be"> 140</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix2.html#a3a2b60a9e00ccef054a6de3b9307c1be">imag</a>[2][2];</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> } <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html"> 175</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> {</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html#aeadc9893e1b16cdd585dac523e73926c"> 177</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix4.html#aeadc9893e1b16cdd585dac523e73926c">real</a>[4][4];</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html#a1f6bb840b5a9e6252980cab7a14f1a35"> 178</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix4.html#a1f6bb840b5a9e6252980cab7a14f1a35">imag</a>[4][4];</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> } <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a>;</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html"> 186</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> {</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8"> 188</a></span>  <span class="keywordtype">int</span> <a class="code" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">numQubits</a>;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#a446e8a077597e4f76049d547df0c9738"> 189</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> **<a class="code" href="structComplexMatrixN.html#a446e8a077597e4f76049d547df0c9738">real</a>;</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#afde13e469a3b4f179f45e53d1ec0a7cf"> 190</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> **<a class="code" href="structComplexMatrixN.html#afde13e469a3b4f179f45e53d1ec0a7cf">imag</a>;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> } <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a>;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structVector.html"> 198</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structVector.html">Vector</a></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> {</div>
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="structVector.html#ab33976d8fda2e44b770f71269d698a25"> 200</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structVector.html#a0d0459a5b731ac5fb3dff2c6134e6e88">x</a>, <a class="code" href="structVector.html#abc3cfc6c8e297b1153a373d84b981e6b">y</a>, <a class="code" href="structVector.html#ab33976d8fda2e44b770f71269d698a25">z</a>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> } <a class="code" href="structVector.html">Vector</a>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  </div>
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65"> 231</a></span> <span class="keyword">enum</span> <a class="code" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> {</div>
<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a93c0c1e166dd43c6a57f61e5490808e1"> 232</a></span>  <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae003ec1158e3a4e295616ced12af154e">NORM</a>=0, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a93c0c1e166dd43c6a57f61e5490808e1">SCALED_NORM</a>=1, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ad4c32e295c08ebe224e2c5ba6497f043">INVERSE_NORM</a>=2, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae8c96906c1ec109d295c491e572d01e2">SCALED_INVERSE_NORM</a>=3, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65aa318172feec5b530e9a7849f2f7b44e7">SCALED_INVERSE_SHIFTED_NORM</a>=4,</div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a31a29a30f92fe34c35098f941adbbc93"> 233</a></span>  <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65acb6911398e0068f545a31b82bcdef3e4">PRODUCT</a>=5, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a31a29a30f92fe34c35098f941adbbc93">SCALED_PRODUCT</a>=6, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65acb26952815118f5ced7703302dbeb556">INVERSE_PRODUCT</a>=7, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a1a5168576607f460d3e60f184575cacb">SCALED_INVERSE_PRODUCT</a>=8,</div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a39111120b79016d6b3e773b711fa63f7"> 234</a></span>  <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a2ad72f168181763513d7793c13bf2a91">DISTANCE</a>=9, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ace23d4b924240a245d83193f0ce398d4">SCALED_DISTANCE</a>=10, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a6313e6ff48163c11c47866c4fda4bfa0">INVERSE_DISTANCE</a>=11, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae5114537389194302c7a619e35e6e227">SCALED_INVERSE_DISTANCE</a>=12, <a class="code" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a39111120b79016d6b3e773b711fa63f7">SCALED_INVERSE_SHIFTED_DISTANCE</a>=13};</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="group__type.html#gga9c91c41aa42ae537995e89ffc616afe1a7165f9a47792f47c718ca128556fb3ae"> 269</a></span> <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> {<a class="code" href="group__type.html#gga9c91c41aa42ae537995e89ffc616afe1a7165f9a47792f47c718ca128556fb3ae">UNSIGNED</a>=0, <a class="code" href="group__type.html#gga9c91c41aa42ae537995e89ffc616afe1a9aa2a35d92976c7de970506c4d19a96c">TWOS_COMPLEMENT</a>=1};</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="structPauliHamil.html"> 277</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structPauliHamil.html">PauliHamil</a> </div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> {</div>
<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="structPauliHamil.html#a4b8d38c403553c07ceddcd40c46ce6c8"> 281</a></span>  <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* <a class="code" href="structPauliHamil.html#a4b8d38c403553c07ceddcd40c46ce6c8">pauliCodes</a>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="structPauliHamil.html#ac1c6c9f6299cf83bbba88123216c3cac"> 283</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* <a class="code" href="structPauliHamil.html#ac1c6c9f6299cf83bbba88123216c3cac">termCoeffs</a>;</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="structPauliHamil.html#a737e46b40ef8990cf004d22eb9dbe2e4"> 285</a></span>  <span class="keywordtype">int</span> <a class="code" href="structPauliHamil.html#a737e46b40ef8990cf004d22eb9dbe2e4">numSumTerms</a>;</div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="structPauliHamil.html#acb49fff0e3160ea1904c9ca34408b4e1"> 287</a></span>  <span class="keywordtype">int</span> <a class="code" href="structPauliHamil.html#acb49fff0e3160ea1904c9ca34408b4e1">numQubits</a>;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> } <a class="code" href="structPauliHamil.html">PauliHamil</a>;</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  </div>
<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structDiagonalOp.html"> 297</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structDiagonalOp.html">DiagonalOp</a></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> {</div>
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a5131eeb67aafb4c19ac98270c3266742"> 300</a></span>  <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#a5131eeb67aafb4c19ac98270c3266742">numQubits</a>;</div>
<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a2c6eab631ef48b4978db026c98180eee"> 302</a></span>  <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#a2c6eab631ef48b4978db026c98180eee">numElemsPerChunk</a>;</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#ada3bffa8e414f883e415dd74e46cd879"> 304</a></span>  <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#ada3bffa8e414f883e415dd74e46cd879">numChunks</a>;</div>
<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#aa91713a22c95a383bba55e56c4a4e37a"> 306</a></span>  <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#aa91713a22c95a383bba55e56c4a4e37a">chunkId</a>;</div>
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a1d66088bed235d524cd452b107694d5c"> 308</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *<a class="code" href="structDiagonalOp.html#a1d66088bed235d524cd452b107694d5c">real</a>;</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a85c3f52533efe831bbe40b9a48602388"> 310</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *<a class="code" href="structDiagonalOp.html#a85c3f52533efe831bbe40b9a48602388">imag</a>;</div>
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#aebb8af156861c4bc0dd4f35f6982570a"> 312</a></span>  ComplexArray <a class="code" href="structDiagonalOp.html#aebb8af156861c4bc0dd4f35f6982570a">deviceOperator</a>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> } <a class="code" href="structDiagonalOp.html">DiagonalOp</a>;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  </div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="structQureg.html"> 322</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structQureg.html">Qureg</a></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> {</div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79"> 325</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79">isDensityMatrix</a>;</div>
<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc"> 327</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc">numQubitsRepresented</a>;</div>
<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218"> 329</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218">numQubitsInStateVec</a>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="structQureg.html#ab0ea0358482b62f43fdd781469607d97"> 332</a></span>  <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ab0ea0358482b62f43fdd781469607d97">numAmpsPerChunk</a>;</div>
<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="structQureg.html#adef4935cac95763c29164cf99b144ed4"> 334</a></span>  <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="structQureg.html#adef4935cac95763c29164cf99b144ed4">numAmpsTotal</a>;</div>
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0"> 336</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0">chunkId</a>;</div>
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413"> 338</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413">numChunks</a>;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe"> 341</a></span>  ComplexArray <a class="code" href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe">stateVec</a>; </div>
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="structQureg.html#aba97773694870ef35e378c036f486bb7"> 343</a></span>  ComplexArray <a class="code" href="structQureg.html#aba97773694870ef35e378c036f486bb7">pairStateVec</a>;</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1"> 346</a></span>  ComplexArray <a class="code" href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1">deviceStateVec</a>;</div>
<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="structQureg.html#a8bb9f7517470a0cc406951935f37b64f"> 348</a></span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *<a class="code" href="structQureg.html#a2d0007a026a4231b338a5037c4e861b2">firstLevelReduction</a>, *<a class="code" href="structQureg.html#a8bb9f7517470a0cc406951935f37b64f">secondLevelReduction</a>;</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  </div>
<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a"> 351</a></span>  QASMLogger* <a class="code" href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a">qasmLog</a>;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  </div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> } <a class="code" href="structQureg.html">Qureg</a>;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  </div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="structQuESTEnv.html"> 362</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structQuESTEnv.html">QuESTEnv</a></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> {</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8"> 364</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8">rank</a>;</div>
<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4"> 365</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4">numRanks</a>;</div>
<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#a66feaa60d3adc7dcf6f8b66514989356"> 366</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span>* <a class="code" href="structQuESTEnv.html#a66feaa60d3adc7dcf6f8b66514989356">seeds</a>;</div>
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#a46e67e1a5ab930e04ff59f83f1d8630d"> 367</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQuESTEnv.html#a46e67e1a5ab930e04ff59f83f1d8630d">numSeeds</a>;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> } <a class="code" href="structQuESTEnv.html">QuESTEnv</a>;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  </div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  </div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="comment">/*</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="comment"> * public functions</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> <a class="code" href="structQureg.html">Qureg</a> <a class="code" href="group__type.html#ga3392816c0643414165c2f5caeec17df0">createQureg</a>(<span class="keywordtype">int</span> numQubits, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  </div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <a class="code" href="structQureg.html">Qureg</a> <a class="code" href="group__type.html#ga93e55b6650b408abb30a1d4a8bce757c">createDensityQureg</a>(<span class="keywordtype">int</span> numQubits, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  </div>
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <a class="code" href="structQureg.html">Qureg</a> <a class="code" href="group__type.html#gabd07eee133dcd4e6ae7c2d2ce4c42978">createCloneQureg</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  </div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#ga8e1e6ad3254892edc2ee08712ea9d692">destroyQureg</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  </div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> <a class="code" href="group__type.html#ga815103261fb22ea9690e1427571df00e">createComplexMatrixN</a>(<span class="keywordtype">int</span> numQubits);</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  </div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#ga9df2f3d86be4a6e9aad481665e5e6753">destroyComplexMatrixN</a>(<a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> matr);</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  </div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="preprocessor">#ifndef _WIN32</span></div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  </div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#ga429f1b90b3ef06c786dec8c7f0eda4ce">initComplexMatrixN</a>(<a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> m, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> real[][1<<m.<a class="code" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">numQubits</a>], <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> imag[][1<<m.<a class="code" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">numQubits</a>]);</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  </div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <a class="code" href="structPauliHamil.html">PauliHamil</a> <a class="code" href="group__type.html#ga35b28710877c462927366fa602e591cb">createPauliHamil</a>(<span class="keywordtype">int</span> numQubits, <span class="keywordtype">int</span> numSumTerms);</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  </div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#gac1c8ed909b33bd55ae680901006051b6">destroyPauliHamil</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  </div>
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <a class="code" href="structPauliHamil.html">PauliHamil</a> <a class="code" href="group__type.html#gaa77376c5e3518186eb085f37826d6008">createPauliHamilFromFile</a>(<span class="keywordtype">char</span>* fn);</div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  </div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#gadbe6701dda1d49168f2f23253e370a7a">initPauliHamil</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* codes);</div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  </div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <a class="code" href="structDiagonalOp.html">DiagonalOp</a> <a class="code" href="group__type.html#gaebf896dd8d5eeaf9fd896f6cc8e334fe">createDiagonalOp</a>(<span class="keywordtype">int</span> numQubits, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  </div>
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#ga2c59f45fab56708f687b4104ee99bcd1">destroyDiagonalOp</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  </div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#gab75d5cdc622d2778bad24e3a8130aab9">syncDiagonalOp</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  </div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#ga12a6c59ebbfba8bdb9453a4138027d46">initDiagonalOp</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* real, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imag);</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  </div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#ga2ecd67e0de9efcbbe37afbad28a8ffad">initDiagonalOpFromPauliHamil</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  </div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <a class="code" href="structDiagonalOp.html">DiagonalOp</a> <a class="code" href="group__type.html#gaa86572b44755646858d6b0292d53cc15">createDiagonalOpFromPauliHamilFile</a>(<span class="keywordtype">char</span>* fn, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  </div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#gafabb15a6c1cf49f8ecb67e1f35c77c1e">setDiagonalOpElems</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> startInd, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* real, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imag, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> numElems);</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  </div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#gad2e953390342cd361cfb4064d47715e6">applyDiagonalOp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  </div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#ga82f17e96a4cb7612fb9c6ef856df3810">calcExpecDiagonalOp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  </div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gacd5f0ee488157837a8483c1515817f98">reportState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  </div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaa33ed720560d051eb4126b4a534bc4c6">reportStateToScreen</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env, <span class="keywordtype">int</span> reportRank);</div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  </div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga97d96af7c7ea7b31e32cbe3b25377e09">reportQuregParams</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  </div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gab27234d9ccf440bb5e5d834e8f7e3938">reportPauliHamil</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  </div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="keywordtype">int</span> <a class="code" href="group__calc.html#ga73036c778d800703585ab3d8796a915f">getNumQubits</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  </div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="group__calc.html#ga8cbe422d4981bf06847d229a4c6aa3df">getNumAmps</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  </div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#gada7230491a50cd409f8b00f5ee1db953">initBlankState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  </div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga2f049055d4a51d0ea4d1a43b5234dedb">initZeroState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  </div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga234bd34016f08288532791903b9884b5">initPlusState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  </div>
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga0379e21efca0767a22607fc0e26a5a22">initClassicalState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> stateInd);</div>
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  </div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga9a348df3e1df623c3d4c4f12c3ee3fe8">initPureState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQureg.html">Qureg</a> pure);</div>
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  </div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaa696c94112e5fbbc996af10dfc4e2c1c">initDebugState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  </div>
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga4589960486ec43dcd63bd985f1c4f398">initStateFromAmps</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* reals, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imags);</div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>  </div>
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#gabc0c64f8adf307d2a44184dc0f8ca66e">setAmps</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> startInd, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* reals, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imags, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> numAmps);</div>
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>  </div>
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga4534403b721977b669bff7bf4e37f0fb">cloneQureg</a>(<a class="code" href="structQureg.html">Qureg</a> targetQureg, <a class="code" href="structQureg.html">Qureg</a> copyQureg);</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>  </div>
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga26baa057f5db8804825c2d611386753b">phaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>  </div>
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga7214a79aa22ae7a50ad6f38615968cb0">controlledPhaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> idQubit1, <span class="keywordtype">int</span> idQubit2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>  </div>
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga0832e39058d913ad47af44e97a854446">multiControlledPhaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> *controlQubits, <span class="keywordtype">int</span> numControlQubits, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>  </div>
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga2fa310101ecffd6aeba96f77b7d85f56">controlledPhaseFlip</a> (<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> idQubit1, <span class="keywordtype">int</span> idQubit2);</div>
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>  </div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gad76781842af56821ed4e223bd776f057">multiControlledPhaseFlip</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> *controlQubits, <span class="keywordtype">int</span> numControlQubits);</div>
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>  </div>
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga655ffcd4def2e127341c9488f5ca8455">sGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>  </div>
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gac15907193da5a7c48b9610a26e669064">tGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>  </div>
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span> <a class="code" href="structQuESTEnv.html">QuESTEnv</a> <a class="code" href="group__type.html#ga8ba2c3388dd64d9348c3b091852d36d4">createQuESTEnv</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>  </div>
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span> <span class="keywordtype">void</span> <a class="code" href="group__type.html#gaeff624226629d7063a8a776958a4f991">destroyQuESTEnv</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>  </div>
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77">syncQuESTEnv</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>  </div>
<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span> <span class="keywordtype">int</span> <a class="code" href="group__debug.html#gac7e38d768a1bd79019f88cc1e6295092">syncQuESTSuccess</a>(<span class="keywordtype">int</span> successCode);</div>
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>  </div>
<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaf8a14ae79c3fb2c0b5f6255cc37bebf9">reportQuESTEnv</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>  </div>
<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gadc5c01d8ea32e28c188db52be26116b6">getEnvironmentString</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env, <span class="keywordtype">char</span> str[200]);</div>
<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>  </div>
<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga11448560006dd165128e404b54ebb2f7">copyStateToGPU</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>  </div>
<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga924ef2dbda6b733b4041270077c76ece">copyStateFromGPU</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>  </div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#ga30d6f8b7c766c9c9914b2c61a2fc0def">getAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>  </div>
<div class="line"><a name="l02013"></a><span class="lineno"> 2013</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga1416145280c62c5dd5ec9bed89b4cd05">getRealAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>  </div>
<div class="line"><a name="l02034"></a><span class="lineno"> 2034</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#gad575782de461d9ab0975b38cc7850f1a">getImagAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>  </div>
<div class="line"><a name="l02055"></a><span class="lineno"> 2055</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga4a14d22379d399760b0cfc5c8053589b">getProbAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>  </div>
<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span> <a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#gadca286c4ad5cde6124d4e80a7ab95a68">getDensityAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> row, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> col);</div>
<div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>  </div>
<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#gab082910d33473ec29e1d5852943de468">calcTotalProb</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>  </div>
<div class="line"><a name="l02146"></a><span class="lineno"> 2146</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaefaa7acba90373efe4e0f0b94987c734">compactUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplex.html">Complex</a> alpha, <a class="code" href="structComplex.html">Complex</a> beta);</div>
<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>  </div>
<div class="line"><a name="l02187"></a><span class="lineno"> 2187</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">unitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>  </div>
<div class="line"><a name="l02225"></a><span class="lineno"> 2225</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga8886a3793b21622c48cf3bad6e15082d">rotateX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>  </div>
<div class="line"><a name="l02264"></a><span class="lineno"> 2264</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga34312ff52cc28bcab3cbd2ff338fd081">rotateY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>  </div>
<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gab23a8b022ec83b9d423961ca87cd8cb5">rotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>  </div>
<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">rotateAroundAxis</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="code" href="structVector.html">Vector</a> axis);</div>
<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>  </div>
<div class="line"><a name="l02372"></a><span class="lineno"> 2372</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">controlledRotateX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>  </div>
<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gafbbded98b7233f5da06d74d1db5cbfdb">controlledRotateY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>  </div>
<div class="line"><a name="l02451"></a><span class="lineno"> 2451</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga7eb969c1dd6c949aecf716d2fba71120">controlledRotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>  </div>
<div class="line"><a name="l02491"></a><span class="lineno"> 2491</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga0c84c429cb1d7e2596706c1804dd9cba">controlledRotateAroundAxis</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="code" href="structVector.html">Vector</a> axis);</div>
<div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>  </div>
<div class="line"><a name="l02542"></a><span class="lineno"> 2542</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaf7e15bf09c64082e0a8467998eb25623">controlledCompactUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplex.html">Complex</a> alpha, <a class="code" href="structComplex.html">Complex</a> beta);</div>
<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>  </div>
<div class="line"><a name="l02593"></a><span class="lineno"> 2593</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa3fb996a5cadd098f4acd8aec955cf9c">controlledUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>  </div>
<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa700dc9657ade4cf16f1cad1624c5332">multiControlledUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span> numControlQubits, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>  </div>
<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga4193c14cfb918fa3291fb0648058d63e">pauliX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>  </div>
<div class="line"><a name="l02729"></a><span class="lineno"> 2729</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga8e0f03e745778a89d6f59c3c25e32df8">pauliY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>  </div>
<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga5d80b490e3910aa737a81bb597cdfcc9">pauliZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>  </div>
<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga6532decd6c404189915563492f090e6f">hadamard</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>  </div>
<div class="line"><a name="l02843"></a><span class="lineno"> 2843</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa5a138473a4433c853c6e66e7aabc237">controlledNot</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l02844"></a><span class="lineno"> 2844</span>  </div>
<div class="line"><a name="l02919"></a><span class="lineno"> 2919</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gafd81a9217fb7d21c365443442492b2dc">multiControlledMultiQubitNot</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs);</div>
<div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>  </div>
<div class="line"><a name="l02976"></a><span class="lineno"> 2976</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga7e58e8131f219f48e5b7410ca8dfe0c0">multiQubitNot</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs);</div>
<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>  </div>
<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga5e5fdaa7d3dd449b3e2c5d4a01bd015a">controlledPauliY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l03019"></a><span class="lineno"> 3019</span>  </div>
<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">calcProbOfOutcome</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit, <span class="keywordtype">int</span> outcome);</div>
<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>  </div>
<div class="line"><a name="l03141"></a><span class="lineno"> 3141</span> <span class="keywordtype">void</span> <a class="code" href="group__calc.html#gad0cc08d52cad5062553d6f78126780cc">calcProbOfAllOutcomes</a>(<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* outcomeProbs, <a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span> numQubits);</div>
<div class="line"><a name="l03142"></a><span class="lineno"> 3142</span>  </div>
<div class="line"><a name="l03176"></a><span class="lineno"> 3176</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__normgate.html#ga34457f7f62ccd75fb7d3fe67cd2f815a">collapseToOutcome</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit, <span class="keywordtype">int</span> outcome);</div>
<div class="line"><a name="l03177"></a><span class="lineno"> 3177</span>  </div>
<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span> <span class="keywordtype">int</span> <a class="code" href="group__normgate.html#ga2a3794103125f1e3cfa103f8b1963656">measure</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit);</div>
<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>  </div>
<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span> <span class="keywordtype">int</span> <a class="code" href="group__normgate.html#gae192ac0759e46c7b20a7182020155240">measureWithStats</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *outcomeProb);</div>
<div class="line"><a name="l03228"></a><span class="lineno"> 3228</span>  </div>
<div class="line"><a name="l03254"></a><span class="lineno"> 3254</span> <a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#ga374ad70804998394ae41ebfe106258a6">calcInnerProduct</a>(<a class="code" href="structQureg.html">Qureg</a> bra, <a class="code" href="structQureg.html">Qureg</a> ket);</div>
<div class="line"><a name="l03255"></a><span class="lineno"> 3255</span>  </div>
<div class="line"><a name="l03307"></a><span class="lineno"> 3307</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga658b3a5cab5e73a17a7fd76a83583a22">calcDensityInnerProduct</a>(<a class="code" href="structQureg.html">Qureg</a> rho1, <a class="code" href="structQureg.html">Qureg</a> rho2);</div>
<div class="line"><a name="l03308"></a><span class="lineno"> 3308</span>  </div>
<div class="line"><a name="l03331"></a><span class="lineno"> 3331</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gae53fad7ebafccf236ad62b41e3244214">seedQuESTDefault</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> *env);</div>
<div class="line"><a name="l03332"></a><span class="lineno"> 3332</span>  </div>
<div class="line"><a name="l03360"></a><span class="lineno"> 3360</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga555451c697ea4a9d27389155f68fdabc">seedQuEST</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> *env, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> *seedArray, <span class="keywordtype">int</span> numSeeds);</div>
<div class="line"><a name="l03361"></a><span class="lineno"> 3361</span>  </div>
<div class="line"><a name="l03404"></a><span class="lineno"> 3404</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaaf64c49f51b622702e66d917bf5b5e16">getQuESTSeeds</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span>** seeds, <span class="keywordtype">int</span>* numSeeds);</div>
<div class="line"><a name="l03405"></a><span class="lineno"> 3405</span>  </div>
<div class="line"><a name="l03414"></a><span class="lineno"> 3414</span> <span class="keywordtype">void</span> <a class="code" href="group__qasm.html#ga65bf1906298ca6355e2942f4923d77b6">startRecordingQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l03415"></a><span class="lineno"> 3415</span>  </div>
<div class="line"><a name="l03425"></a><span class="lineno"> 3425</span> <span class="keywordtype">void</span> <a class="code" href="group__qasm.html#gabdaa339967f0955176a4967f01364182">stopRecordingQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l03426"></a><span class="lineno"> 3426</span>  </div>
<div class="line"><a name="l03433"></a><span class="lineno"> 3433</span> <span class="keywordtype">void</span> <a class="code" href="group__qasm.html#gab3a410abab3e8beb394bd3bbfae8977c">clearRecordedQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l03434"></a><span class="lineno"> 3434</span>  </div>
<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span> <span class="keywordtype">void</span> <a class="code" href="group__qasm.html#gacf139d0a54b1f9e5c2f2feff742b8c76">printRecordedQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>  </div>
<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span> <span class="keywordtype">void</span> <a class="code" href="group__qasm.html#ga0054955857ce83b88e127d731796c23d">writeRecordedQASMToFile</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">char</span>* filename);</div>
<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>  </div>
<div class="line"><a name="l03484"></a><span class="lineno"> 3484</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gacc2667ac87482a7afdcb711b74bf732e">mixDephasing</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l03485"></a><span class="lineno"> 3485</span>  </div>
<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga14282bdb1dc65760ca9ecbe6305eb770">mixTwoQubitDephasing</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qubit1, <span class="keywordtype">int</span> qubit2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>  </div>
<div class="line"><a name="l03559"></a><span class="lineno"> 3559</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">mixDepolarising</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>  </div>
<div class="line"><a name="l03597"></a><span class="lineno"> 3597</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gaea8509011985522bae857bd3b13c34ed">mixDamping</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l03598"></a><span class="lineno"> 3598</span>  </div>
<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gacfc45a8fc86ee18f60866bbd0c874ed0">mixTwoQubitDepolarising</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qubit1, <span class="keywordtype">int</span> qubit2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>  </div>
<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga9a77f84e1aa7d25d036b14d7d0cd8b61">mixPauli</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probX, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probY, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probZ);</div>
<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>  </div>
<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga97d563fa8f4bc51f720bbb653f5480b3">mixDensityMatrix</a>(<a class="code" href="structQureg.html">Qureg</a> combineQureg, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob, <a class="code" href="structQureg.html">Qureg</a> otherQureg);</div>
<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>  </div>
<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga683779343fb2c6055f6b1d01079c2ede">calcPurity</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>  </div>
<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#gaa266ed6c8ae5d0d0f49e1ac50819cffc">calcFidelity</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQureg.html">Qureg</a> pureState);</div>
<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>  </div>
<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga820fd139c035136819e371308c206e36">swapGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qubit1, <span class="keywordtype">int</span> qubit2);</div>
<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>  </div>
<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>  </div>
<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga75d5e65f87c68403602a669b9c6d52b0">sqrtSwapGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qb1, <span class="keywordtype">int</span> qb2);</div>
<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>  </div>
<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga41b946a82982c3fa3dc2a7395665bc90">multiStateControlledUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span>* controlState, <span class="keywordtype">int</span> numControlQubits, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>  </div>
<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga3250d0d95b5d755cad542a6a2372b894">multiRotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span> numQubits, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>  </div>
<div class="line"><a name="l04030"></a><span class="lineno"> 4030</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga34aa4865c92f9aa5d898c91286c9eca5">multiRotatePauli</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targetQubits, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* targetPaulis, <span class="keywordtype">int</span> numTargets, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>  </div>
<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga1e5dd165b402e97abaa0b807026527f2">multiControlledMultiRotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span> numControls, <span class="keywordtype">int</span>* targetQubits, <span class="keywordtype">int</span> numTargets, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>  </div>
<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gab2ececaa253252e1b1cdb18a8452704a">multiControlledMultiRotatePauli</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span> numControls, <span class="keywordtype">int</span>* targetQubits, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* targetPaulis, <span class="keywordtype">int</span> numTargets, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>  </div>
<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga15cfad3f3d26339128e3be32ae7deacd">calcExpecPauliProd</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targetQubits, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* pauliCodes, <span class="keywordtype">int</span> numTargets, <a class="code" href="structQureg.html">Qureg</a> workspace);</div>
<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>  </div>
<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga50ee589fd5ceab52fdd70d0082352b41">calcExpecPauliSum</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* allPauliCodes, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* termCoeffs, <span class="keywordtype">int</span> numSumTerms, <a class="code" href="structQureg.html">Qureg</a> workspace);</div>
<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>  </div>
<div class="line"><a name="l04348"></a><span class="lineno"> 4348</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">calcExpecPauliHamil</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="structQureg.html">Qureg</a> workspace);</div>
<div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>  </div>
<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gab525a42d63233f61afeb6be97d89dd36">twoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>  </div>
<div class="line"><a name="l04483"></a><span class="lineno"> 4483</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga3d89916b46bc4aaf23e938022e6c89c1">controlledTwoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>  </div>
<div class="line"><a name="l04562"></a><span class="lineno"> 4562</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga65c7879947e398690a5428bd43e143e3">multiControlledTwoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span> numControlQubits, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>  </div>
<div class="line"><a name="l04645"></a><span class="lineno"> 4645</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga20bf9b8a71b8a3ee4651e9497e6d1f4f">multiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l04646"></a><span class="lineno"> 4646</span>  </div>
<div class="line"><a name="l04718"></a><span class="lineno"> 4718</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaeb975903209000ebbaf50ef1cc353a79">controlledMultiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l04719"></a><span class="lineno"> 4719</span>  </div>
<div class="line"><a name="l04807"></a><span class="lineno"> 4807</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">multiControlledMultiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l04808"></a><span class="lineno"> 4808</span>  </div>
<div class="line"><a name="l04852"></a><span class="lineno"> 4852</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gacb7faa9d8afb0f4270c866424fffbccd">mixKrausMap</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> target, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> *ops, <span class="keywordtype">int</span> numOps);</div>
<div class="line"><a name="l04853"></a><span class="lineno"> 4853</span>  </div>
<div class="line"><a name="l04891"></a><span class="lineno"> 4891</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga2cf7dece0efea4207349f872cdcb7e81">mixTwoQubitKrausMap</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> target1, <span class="keywordtype">int</span> target2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> *ops, <span class="keywordtype">int</span> numOps);</div>
<div class="line"><a name="l04892"></a><span class="lineno"> 4892</span>  </div>
<div class="line"><a name="l04941"></a><span class="lineno"> 4941</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga65b4c0944090fae78a37ba3b94811ace">mixMultiQubitKrausMap</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targets, <span class="keywordtype">int</span> numTargets, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a>* ops, <span class="keywordtype">int</span> numOps);</div>
<div class="line"><a name="l04942"></a><span class="lineno"> 4942</span>  </div>
<div class="line"><a name="l04974"></a><span class="lineno"> 4974</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga87ddbe5c8281543541ccd99e0dafd387">calcHilbertSchmidtDistance</a>(<a class="code" href="structQureg.html">Qureg</a> a, <a class="code" href="structQureg.html">Qureg</a> b);</div>
<div class="line"><a name="l04975"></a><span class="lineno"> 4975</span>  </div>
<div class="line"><a name="l04999"></a><span class="lineno"> 4999</span> <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga5d0f3f71ea38d3c44597f8c2c2f014d4">setWeightedQureg</a>(<a class="code" href="structComplex.html">Complex</a> fac1, <a class="code" href="structQureg.html">Qureg</a> qureg1, <a class="code" href="structComplex.html">Complex</a> fac2, <a class="code" href="structQureg.html">Qureg</a> qureg2, <a class="code" href="structComplex.html">Complex</a> facOut, <a class="code" href="structQureg.html">Qureg</a> out);</div>
<div class="line"><a name="l05000"></a><span class="lineno"> 5000</span>  </div>
<div class="line"><a name="l05058"></a><span class="lineno"> 5058</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga6fc26cf857db070e12959e59ecfed8a6">applyPauliSum</a>(<a class="code" href="structQureg.html">Qureg</a> inQureg, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* allPauliCodes, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* termCoeffs, <span class="keywordtype">int</span> numSumTerms, <a class="code" href="structQureg.html">Qureg</a> outQureg);</div>
<div class="line"><a name="l05059"></a><span class="lineno"> 5059</span>  </div>
<div class="line"><a name="l05102"></a><span class="lineno"> 5102</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga54d4e589468002bdc998200ae45e7312">applyPauliHamil</a>(<a class="code" href="structQureg.html">Qureg</a> inQureg, <a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="structQureg.html">Qureg</a> outQureg);</div>
<div class="line"><a name="l05103"></a><span class="lineno"> 5103</span>  </div>
<div class="line"><a name="l05182"></a><span class="lineno"> 5182</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">applyTrotterCircuit</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> time, <span class="keywordtype">int</span> order, <span class="keywordtype">int</span> reps);</div>
<div class="line"><a name="l05183"></a><span class="lineno"> 5183</span>  </div>
<div class="line"><a name="l05203"></a><span class="lineno"> 5203</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#gadfb5c1d99a22ce666fc715a8da2e0950">applyMatrix2</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l05204"></a><span class="lineno"> 5204</span>  </div>
<div class="line"><a name="l05255"></a><span class="lineno"> 5255</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga74a955ec4bce606d89317bcfc528387f">applyMatrix4</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l05256"></a><span class="lineno"> 5256</span>  </div>
<div class="line"><a name="l05323"></a><span class="lineno"> 5323</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga358e7094a98851afa86d27f0147e32a1">applyMatrixN</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l05324"></a><span class="lineno"> 5324</span>  </div>
<div class="line"><a name="l05376"></a><span class="lineno"> 5376</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#gab52b6315c5520b7d311b0458785eed8e">applyMultiControlledMatrixN</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l05377"></a><span class="lineno"> 5377</span>  </div>
<div class="line"><a name="l05417"></a><span class="lineno"> 5417</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga51a64b05d31ef9bcf6a63ce26c0092db">invalidQuESTInputError</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* errMsg, <span class="keyword">const</span> <span class="keywordtype">char</span>* errFunc);</div>
<div class="line"><a name="l05418"></a><span class="lineno"> 5418</span>  </div>
<div class="line"><a name="l05419"></a><span class="lineno"> 5419</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l05420"></a><span class="lineno"> 5420</span> <span class="preprocessor">#ifndef _WIN32</span></div>
<div class="line"><a name="l05421"></a><span class="lineno"> 5421</span>  <span class="comment">// hide this function from doxygen</span></div>
<div class="line"><a name="l05423"></a><span class="lineno"> 5423</span> <span class="comment"></span> </div>
<div class="line"><a name="l05461"></a><span class="lineno"> 5461</span> <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> <a class="code" href="QuEST__common_8c.html#ad67cb67877c941189b0de2c2e67e2026">bindArraysToStackComplexMatrixN</a>(</div>
<div class="line"><a name="l05462"></a><span class="lineno"> 5462</span>  <span class="keywordtype">int</span> numQubits, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> re[][1<<numQubits], <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> im[][1<<numQubits], </div>
<div class="line"><a name="l05463"></a><span class="lineno"> 5463</span>  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>** reStorage, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>** imStorage);</div>
<div class="line"><a name="l05464"></a><span class="lineno"> 5464</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l05465"></a><span class="lineno"> 5465</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l05466"></a><span class="lineno"> 5466</span>  </div>
<div class="line"><a name="l05468"></a><span class="lineno"> 5468</span> <span class="comment">// hide this function from doxygen</span></div>
<div class="line"><a name="l05470"></a><span class="lineno"> 5470</span> <span class="comment"></span><span class="preprocessor">#define UNPACK_ARR(...) __VA_ARGS__</span></div>
<div class="line"><a name="l05471"></a><span class="lineno"> 5471</span>  </div>
<div class="line"><a name="l05473"></a><span class="lineno"> 5473</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l05474"></a><span class="lineno"> 5474</span>  </div>
<div class="line"><a name="l05521"></a><span class="lineno"><a class="line" href="group__type.html#ga927beeee2ba3b110f33ebb440c154ae2"> 5521</a></span> <span class="preprocessor">#define getStaticComplexMatrixN(numQubits, re, im) \</span></div>
<div class="line"><a name="l05522"></a><span class="lineno"> 5522</span> <span class="preprocessor"> bindArraysToStackComplexMatrixN( \</span></div>
<div class="line"><a name="l05523"></a><span class="lineno"> 5523</span> <span class="preprocessor"> numQubits, \</span></div>
<div class="line"><a name="l05524"></a><span class="lineno"> 5524</span> <span class="preprocessor"> (qreal[1<<numQubits][1<<numQubits]) UNPACK_ARR re, \</span></div>
<div class="line"><a name="l05525"></a><span class="lineno"> 5525</span> <span class="preprocessor"> (qreal[1<<numQubits][1<<numQubits]) UNPACK_ARR im, \</span></div>
<div class="line"><a name="l05526"></a><span class="lineno"> 5526</span> <span class="preprocessor"> (double*[1<<numQubits]) {NULL}, (double*[1<<numQubits]) {NULL} \</span></div>
<div class="line"><a name="l05527"></a><span class="lineno"> 5527</span> <span class="preprocessor"> )</span></div>
<div class="line"><a name="l05528"></a><span class="lineno"> 5528</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l05529"></a><span class="lineno"> 5529</span>  </div>
<div class="line"><a name="l05636"></a><span class="lineno"> 5636</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga467f517abd18dbc3d6fced84c6589161">applyPhaseFunc</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span> numQubits, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* exponents, <span class="keywordtype">int</span> numTerms);</div>
<div class="line"><a name="l05637"></a><span class="lineno"> 5637</span>  </div>
<div class="line"><a name="l05747"></a><span class="lineno"> 5747</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#gaf5344129240243ad11d0c081eb9036ab">applyPhaseFuncOverrides</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span> numQubits, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* exponents, <span class="keywordtype">int</span> numTerms, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span>* overrideInds, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* overridePhases, <span class="keywordtype">int</span> numOverrides);</div>
<div class="line"><a name="l05748"></a><span class="lineno"> 5748</span>  </div>
<div class="line"><a name="l05908"></a><span class="lineno"> 5908</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga008a46d178a5a9691e2f5d363e3f518f">applyMultiVarPhaseFunc</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span>* numQubitsPerReg, <span class="keywordtype">int</span> numRegs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* exponents, <span class="keywordtype">int</span>* numTermsPerReg);</div>
<div class="line"><a name="l05909"></a><span class="lineno"> 5909</span>  </div>
<div class="line"><a name="l05990"></a><span class="lineno"> 5990</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga8dca543fb4d1ee1cd8b4c5d6028b3075">applyMultiVarPhaseFuncOverrides</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span>* numQubitsPerReg, <span class="keywordtype">int</span> numRegs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* exponents, <span class="keywordtype">int</span>* numTermsPerReg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span>* overrideInds, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* overridePhases, <span class="keywordtype">int</span> numOverrides);</div>
<div class="line"><a name="l05991"></a><span class="lineno"> 5991</span>  </div>
<div class="line"><a name="l06130"></a><span class="lineno"> 6130</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#gac4df97d8c125c8cc65df720f67b2bf69">applyNamedPhaseFunc</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span>* numQubitsPerReg, <span class="keywordtype">int</span> numRegs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <span class="keyword">enum</span> <a class="code" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode);</div>
<div class="line"><a name="l06131"></a><span class="lineno"> 6131</span>  </div>
<div class="line"><a name="l06203"></a><span class="lineno"> 6203</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga2fbaec3bb21cc01f7a2a4ed2aa911ebf">applyNamedPhaseFuncOverrides</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span>* numQubitsPerReg, <span class="keywordtype">int</span> numRegs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <span class="keyword">enum</span> <a class="code" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span>* overrideInds, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* overridePhases, <span class="keywordtype">int</span> numOverrides);</div>
<div class="line"><a name="l06204"></a><span class="lineno"> 6204</span>  </div>
<div class="line"><a name="l06321"></a><span class="lineno"> 6321</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga225b82ff8b8eed1fff312240ec70c731">applyParamNamedPhaseFunc</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span>* numQubitsPerReg, <span class="keywordtype">int</span> numRegs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <span class="keyword">enum</span> <a class="code" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* params, <span class="keywordtype">int</span> numParams);</div>
<div class="line"><a name="l06322"></a><span class="lineno"> 6322</span>  </div>
<div class="line"><a name="l06396"></a><span class="lineno"> 6396</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#gaabd7efa3beebc9f3a525321d41a28989">applyParamNamedPhaseFuncOverrides</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span>* numQubitsPerReg, <span class="keywordtype">int</span> numRegs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <span class="keyword">enum</span> <a class="code" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* params, <span class="keywordtype">int</span> numParams, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span>* overrideInds, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* overridePhases, <span class="keywordtype">int</span> numOverrides);</div>
<div class="line"><a name="l06397"></a><span class="lineno"> 6397</span>  </div>
<div class="line"><a name="l06490"></a><span class="lineno"> 6490</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#gaf26f32c25db760065486188497c1da8b">applyFullQFT</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l06491"></a><span class="lineno"> 6491</span>  </div>
<div class="line"><a name="l06606"></a><span class="lineno"> 6606</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga9bc8c4ab44f8233b5766208a0b1c0776">applyQFT</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span> numQubits);</div>
<div class="line"><a name="l06607"></a><span class="lineno"> 6607</span>  </div>
<div class="line"><a name="l06630"></a><span class="lineno"> 6630</span> <span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga26db8b8a8a242d388c291e50d228ab18">applyProjector</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qubit, <span class="keywordtype">int</span> outcome);</div>
<div class="line"><a name="l06631"></a><span class="lineno"> 6631</span>  </div>
<div class="line"><a name="l06632"></a><span class="lineno"> 6632</span> <span class="comment">// end prevention of C++ name mangling</span></div>
<div class="line"><a name="l06633"></a><span class="lineno"> 6633</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l06634"></a><span class="lineno"> 6634</span> }</div>
<div class="line"><a name="l06635"></a><span class="lineno"> 6635</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l06636"></a><span class="lineno"> 6636</span>  </div>
<div class="line"><a name="l06637"></a><span class="lineno"> 6637</span> <span class="preprocessor">#endif // QUEST_H</span></div>
<div class="line"><a name="l06638"></a><span class="lineno"> 6638</span>  </div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="agroup__unitary_html_ga7eb969c1dd6c949aecf716d2fba71120"><div class="ttname"><a href="group__unitary.html#ga7eb969c1dd6c949aecf716d2fba71120">controlledRotateZ</a></div><div class="ttdeci">void controlledRotateZ(Qureg qureg, int controlQubit, int targetQubit, qreal angle)</div><div class="ttdoc">Applies a controlled rotation by a given angle around the Z-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00244">QuEST.c:244</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gacc2667ac87482a7afdcb711b74bf732e"><div class="ttname"><a href="group__decoherence.html#gacc2667ac87482a7afdcb711b74bf732e">mixDephasing</a></div><div class="ttdeci">void mixDephasing(Qureg qureg, int targetQubit, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce single-qubit dephasing noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01250">QuEST.c:1250</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65acb26952815118f5ced7703302dbeb556"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65acb26952815118f5ced7703302dbeb556">INVERSE_PRODUCT</a></div><div class="ttdeci">@ INVERSE_PRODUCT</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00233">QuEST.h:233</a></div></div>
<div class="ttc" id="agroup__calc_html_ga4a14d22379d399760b0cfc5c8053589b"><div class="ttname"><a href="group__calc.html#ga4a14d22379d399760b0cfc5c8053589b">getProbAmp</a></div><div class="ttdeci">qreal getProbAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the probability of a state-vector at an index in the full state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00932">QuEST.c:932</a></div></div>
<div class="ttc" id="agroup__init_html_gada7230491a50cd409f8b00f5ee1db953"><div class="ttname"><a href="group__init.html#gada7230491a50cd409f8b00f5ee1db953">initBlankState</a></div><div class="ttdeci">void initBlankState(Qureg qureg)</div><div class="ttdoc">Initialises a qureg to have all-zero-amplitudes.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00119">QuEST.c:119</a></div></div>
<div class="ttc" id="astructVector_html"><div class="ttname"><a href="structVector.html">Vector</a></div><div class="ttdoc">Represents a 3-vector of real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00198">QuEST.h:198</a></div></div>
<div class="ttc" id="agroup__type_html_gaeff624226629d7063a8a776958a4f991"><div class="ttname"><a href="group__type.html#gaeff624226629d7063a8a776958a4f991">destroyQuESTEnv</a></div><div class="ttdeci">void destroyQuESTEnv(QuESTEnv env)</div><div class="ttdoc">Destroy the QuEST environment.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00174">QuEST_cpu_distributed.c:174</a></div></div>
<div class="ttc" id="agroup__type_html_ga1c703cf89629e4e9c7023cd402d67028"><div class="ttname"><a href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a></div><div class="ttdeci">pauliOpType</div><div class="ttdoc">Codes for specifying Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__operator_html_ga467f517abd18dbc3d6fced84c6589161"><div class="ttname"><a href="group__operator.html#ga467f517abd18dbc3d6fced84c6589161">applyPhaseFunc</a></div><div class="ttdeci">void applyPhaseFunc(Qureg qureg, int *qubits, int numQubits, enum bitEncoding encoding, qreal *coeffs, qreal *exponents, int numTerms)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by the passed exponential polynomial ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00726">QuEST.c:726</a></div></div>
<div class="ttc" id="agroup__operator_html_gab52b6315c5520b7d311b0458785eed8e"><div class="ttname"><a href="group__operator.html#gab52b6315c5520b7d311b0458785eed8e">applyMultiControlledMatrixN</a></div><div class="ttdeci">void applyMultiControlledMatrixN(Qureg qureg, int *ctrls, int numCtrls, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general N-by-N matrix, which may be non-unitary, with additional controlled qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01114">QuEST.c:1114</a></div></div>
<div class="ttc" id="agroup__unitary_html_gab525a42d63233f61afeb6be97d89dd36"><div class="ttname"><a href="group__unitary.html#gab525a42d63233f61afeb6be97d89dd36">twoQubitUnitary</a></div><div class="ttdeci">void twoQubitUnitary(Qureg qureg, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general two-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00256">QuEST.c:256</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga13f904b417f647c70d163770e65906fc"><div class="ttname"><a href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">controlledRotateX</a></div><div class="ttdeci">void controlledRotateX(Qureg qureg, int controlQubit, int targetQubit, qreal angle)</div><div class="ttdoc">Applies a controlled rotation by a given angle around the X-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00220">QuEST.c:220</a></div></div>
<div class="ttc" id="agroup__operator_html_ga2fbaec3bb21cc01f7a2a4ed2aa911ebf"><div class="ttname"><a href="group__operator.html#ga2fbaec3bb21cc01f7a2a4ed2aa911ebf">applyNamedPhaseFuncOverrides</a></div><div class="ttdeci">void applyNamedPhaseFuncOverrides(Qureg qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum bitEncoding encoding, enum phaseFunc functionNameCode, long long int *overrideInds, qreal *overridePhases, int numOverrides)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by a named (and potentially multi-var...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00813">QuEST.c:813</a></div></div>
<div class="ttc" id="agroup__debug_html_ga97d96af7c7ea7b31e32cbe3b25377e09"><div class="ttname"><a href="group__debug.html#ga97d96af7c7ea7b31e32cbe3b25377e09">reportQuregParams</a></div><div class="ttdeci">void reportQuregParams(Qureg qureg)</div><div class="ttdoc">Report metainformation about a set of qubits: number of qubits, number of probability amplitudes.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00237">QuEST_common.c:237</a></div></div>
<div class="ttc" id="agroup__debug_html_ga924ef2dbda6b733b4041270077c76ece"><div class="ttname"><a href="group__debug.html#ga924ef2dbda6b733b4041270077c76ece">copyStateFromGPU</a></div><div class="ttdeci">void copyStateFromGPU(Qureg qureg)</div><div class="ttdoc">In GPU mode, this copies the state-vector (or density matrix) from GPU memory (qureg....</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu_8c_source.html#l00045">QuEST_cpu.c:45</a></div></div>
<div class="ttc" id="agroup__type_html_gadbe6701dda1d49168f2f23253e370a7a"><div class="ttname"><a href="group__type.html#gadbe6701dda1d49168f2f23253e370a7a">initPauliHamil</a></div><div class="ttdeci">void initPauliHamil(PauliHamil hamil, qreal *coeffs, enum pauliOpType *codes)</div><div class="ttdoc">Initialise PauliHamil instance hamil with the given term coefficients and Pauli codes (one for every ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01504">QuEST.c:1504</a></div></div>
<div class="ttc" id="astructComplexMatrix4_html_aeadc9893e1b16cdd585dac523e73926c"><div class="ttname"><a href="structComplexMatrix4.html#aeadc9893e1b16cdd585dac523e73926c">ComplexMatrix4::real</a></div><div class="ttdeci">qreal real[4][4]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00177">QuEST.h:177</a></div></div>
<div class="ttc" id="agroup__debug_html_ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77"><div class="ttname"><a href="group__debug.html#ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77">syncQuESTEnv</a></div><div class="ttdeci">void syncQuESTEnv(QuESTEnv env)</div><div class="ttdoc">Guarantees that all code up to the given point has been executed on all nodes (if running in distribu...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00164">QuEST_cpu_distributed.c:164</a></div></div>
<div class="ttc" id="agroup__init_html_ga9a348df3e1df623c3d4c4f12c3ee3fe8"><div class="ttname"><a href="group__init.html#ga9a348df3e1df623c3d4c4f12c3ee3fe8">initPureState</a></div><div class="ttdeci">void initPureState(Qureg qureg, Qureg pure)</div><div class="ttdoc">Initialise qureg into to a given pure state of an equivalent Hilbert dimension.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00145">QuEST.c:145</a></div></div>
<div class="ttc" id="agroup__operator_html_ga26db8b8a8a242d388c291e50d228ab18"><div class="ttname"><a href="group__operator.html#ga26db8b8a8a242d388c291e50d228ab18">applyProjector</a></div><div class="ttdeci">void applyProjector(Qureg qureg, int qubit, int outcome)</div><div class="ttdoc">Force the target qubit of qureg into the given classical outcome, via a non-renormalising projection.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00888">QuEST.c:888</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a085c85cff6ba79c52d8b1e61c42ddddf"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a085c85cff6ba79c52d8b1e61c42ddddf">PAULI_Z</a></div><div class="ttdeci">@ PAULI_Z</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga4c708f066b244801e10f538b48b90145"><div class="ttname"><a href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">rotateAroundAxis</a></div><div class="ttdeci">void rotateAroundAxis(Qureg qureg, int rotQubit, qreal angle, Vector axis)</div><div class="ttdoc">Rotate a single qubit by a given angle around a given Vector on the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00601">QuEST.c:601</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65a2ad72f168181763513d7793c13bf2a91"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a2ad72f168181763513d7793c13bf2a91">DISTANCE</a></div><div class="ttdeci">@ DISTANCE</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00234">QuEST.h:234</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gae2ea9255b8b11a4a382231e5604dc4e3"><div class="ttname"><a href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">mixDepolarising</a></div><div class="ttdeci">void mixDepolarising(Qureg qureg, int targetQubit, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce single-qubit homogeneous depolarising noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01272">QuEST.c:1272</a></div></div>
<div class="ttc" id="astructQuESTEnv_html_aa648bb336cf8598467cb62db00b9cee8"><div class="ttname"><a href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8">QuESTEnv::rank</a></div><div class="ttdeci">int rank</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00364">QuEST.h:364</a></div></div>
<div class="ttc" id="agroup__debug_html_gae53fad7ebafccf236ad62b41e3244214"><div class="ttname"><a href="group__debug.html#gae53fad7ebafccf236ad62b41e3244214">seedQuESTDefault</a></div><div class="ttdeci">void seedQuESTDefault(QuESTEnv *env)</div><div class="ttdoc">Seeds the random number generator with the (master node) current time and process ID.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01614">QuEST.c:1614</a></div></div>
<div class="ttc" id="agroup__calc_html_gab082910d33473ec29e1d5852943de468"><div class="ttname"><a href="group__calc.html#gab082910d33473ec29e1d5852943de468">calcTotalProb</a></div><div class="ttdeci">qreal calcTotalProb(Qureg qureg)</div><div class="ttdoc">A debugging function which calculates the probability of the qubits in qureg being in any state,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01143">QuEST.c:1143</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gaea8509011985522bae857bd3b13c34ed"><div class="ttname"><a href="group__decoherence.html#gaea8509011985522bae857bd3b13c34ed">mixDamping</a></div><div class="ttdeci">void mixDamping(Qureg qureg, int targetQubit, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce single-qubit amplitude damping (decay to 0 state).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01283">QuEST.c:1283</a></div></div>
<div class="ttc" id="agroup__type_html_ga9df2f3d86be4a6e9aad481665e5e6753"><div class="ttname"><a href="group__type.html#ga9df2f3d86be4a6e9aad481665e5e6753">destroyComplexMatrixN</a></div><div class="ttdeci">void destroyComplexMatrixN(ComplexMatrixN matr)</div><div class="ttdoc">Destroy a ComplexMatrixN instance created with createComplexMatrixN()</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01369">QuEST.c:1369</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_ada3bffa8e414f883e415dd74e46cd879"><div class="ttname"><a href="structDiagonalOp.html#ada3bffa8e414f883e415dd74e46cd879">DiagonalOp::numChunks</a></div><div class="ttdeci">int numChunks</div><div class="ttdoc">The number of nodes between which the elements of this operator are split.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00304">QuEST.h:304</a></div></div>
<div class="ttc" id="agroup__operator_html_gac4df97d8c125c8cc65df720f67b2bf69"><div class="ttname"><a href="group__operator.html#gac4df97d8c125c8cc65df720f67b2bf69">applyNamedPhaseFunc</a></div><div class="ttdeci">void applyNamedPhaseFunc(Qureg qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum bitEncoding encoding, enum phaseFunc functionNameCode)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by a named (and potentially multi-var...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00796">QuEST.c:796</a></div></div>
<div class="ttc" id="agroup__calc_html_gad0cc08d52cad5062553d6f78126780cc"><div class="ttname"><a href="group__calc.html#gad0cc08d52cad5062553d6f78126780cc">calcProbOfAllOutcomes</a></div><div class="ttdeci">void calcProbOfAllOutcomes(qreal *outcomeProbs, Qureg qureg, int *qubits, int numQubits)</div><div class="ttdoc">Populates outcomeProbs with the probabilities of every outcome of the sub-register contained in qubit...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01176">QuEST.c:1176</a></div></div>
<div class="ttc" id="agroup__debug_html_gab27234d9ccf440bb5e5d834e8f7e3938"><div class="ttname"><a href="group__debug.html#gab27234d9ccf440bb5e5d834e8f7e3938">reportPauliHamil</a></div><div class="ttdeci">void reportPauliHamil(PauliHamil hamil)</div><div class="ttdoc">Print the PauliHamil to screen.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01598">QuEST.c:1598</a></div></div>
<div class="ttc" id="astructQureg_html_aba97773694870ef35e378c036f486bb7"><div class="ttname"><a href="structQureg.html#aba97773694870ef35e378c036f486bb7">Qureg::pairStateVec</a></div><div class="ttdeci">ComplexArray pairStateVec</div><div class="ttdoc">Temporary storage for a chunk of the state vector received from another process in the MPI version.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00343">QuEST.h:343</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a63800f45b01ccc2608f754aee850bf4a"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a63800f45b01ccc2608f754aee850bf4a">PAULI_I</a></div><div class="ttdeci">@ PAULI_I</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__unitary_html_gafd81a9217fb7d21c365443442492b2dc"><div class="ttname"><a href="group__unitary.html#gafd81a9217fb7d21c365443442492b2dc">multiControlledMultiQubitNot</a></div><div class="ttdeci">void multiControlledMultiQubitNot(Qureg qureg, int *ctrls, int numCtrls, int *targs, int numTargs)</div><div class="ttdoc">Apply a NOT (or Pauli X) gate with multiple control and target qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00549">QuEST.c:549</a></div></div>
<div class="ttc" id="agroup__calc_html_gadca286c4ad5cde6124d4e80a7ab95a68"><div class="ttname"><a href="group__calc.html#gadca286c4ad5cde6124d4e80a7ab95a68">getDensityAmp</a></div><div class="ttdeci">Complex getDensityAmp(Qureg qureg, long long int row, long long int col)</div><div class="ttdoc">Get an amplitude from a density matrix at a given row and column.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00949">QuEST.c:949</a></div></div>
<div class="ttc" id="agroup__type_html_gaa86572b44755646858d6b0292d53cc15"><div class="ttname"><a href="group__type.html#gaa86572b44755646858d6b0292d53cc15">createDiagonalOpFromPauliHamilFile</a></div><div class="ttdeci">DiagonalOp createDiagonalOpFromPauliHamilFile(char *fn, QuESTEnv env)</div><div class="ttdoc">Creates and initialiases a diagonal operator from the Z Pauli Hamiltonian encoded in file with filena...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01558">QuEST.c:1558</a></div></div>
<div class="ttc" id="agroup__type_html_ga815103261fb22ea9690e1427571df00e"><div class="ttname"><a href="group__type.html#ga815103261fb22ea9690e1427571df00e">createComplexMatrixN</a></div><div class="ttdeci">ComplexMatrixN createComplexMatrixN(int numQubits)</div><div class="ttdoc">Allocate dynamic memory for a square complex matrix of any size, which can be passed to functions lik...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01348">QuEST.c:1348</a></div></div>
<div class="ttc" id="agroup__calc_html_gad575782de461d9ab0975b38cc7850f1a"><div class="ttname"><a href="group__calc.html#gad575782de461d9ab0975b38cc7850f1a">getImagAmp</a></div><div class="ttdeci">qreal getImagAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the imaginary component of the complex probability amplitude at an index in the state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00925">QuEST.c:925</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga0c84c429cb1d7e2596706c1804dd9cba"><div class="ttname"><a href="group__unitary.html#ga0c84c429cb1d7e2596706c1804dd9cba">controlledRotateAroundAxis</a></div><div class="ttdeci">void controlledRotateAroundAxis(Qureg qureg, int controlQubit, int targetQubit, qreal angle, Vector axis)</div><div class="ttdoc">Applies a controlled rotation by a given angle around a given vector on the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00614">QuEST.c:614</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gacb7faa9d8afb0f4270c866424fffbccd"><div class="ttname"><a href="group__decoherence.html#gacb7faa9d8afb0f4270c866424fffbccd">mixKrausMap</a></div><div class="ttdeci">void mixKrausMap(Qureg qureg, int target, ComplexMatrix2 *ops, int numOps)</div><div class="ttdoc">Apply a general single-qubit Kraus map to a density matrix, as specified by at most four Kraus operat...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01314">QuEST.c:1314</a></div></div>
<div class="ttc" id="agroup__debug_html_gadc5c01d8ea32e28c188db52be26116b6"><div class="ttname"><a href="group__debug.html#gadc5c01d8ea32e28c188db52be26116b6">getEnvironmentString</a></div><div class="ttdeci">void getEnvironmentString(QuESTEnv env, char str[200])</div><div class="ttdoc">Sets str to a string containing information about the runtime environment, including whether simulati...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00198">QuEST_cpu_distributed.c:198</a></div></div>
<div class="ttc" id="agroup__type_html_gab75d5cdc622d2778bad24e3a8130aab9"><div class="ttname"><a href="group__type.html#gab75d5cdc622d2778bad24e3a8130aab9">syncDiagonalOp</a></div><div class="ttdeci">void syncDiagonalOp(DiagonalOp op)</div><div class="ttdoc">Update the GPU memory with the current values in op.real and op.imag.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01531">QuEST.c:1531</a></div></div>
<div class="ttc" id="agroup__type_html_ga2c59f45fab56708f687b4104ee99bcd1"><div class="ttname"><a href="group__type.html#ga2c59f45fab56708f687b4104ee99bcd1">destroyDiagonalOp</a></div><div class="ttdeci">void destroyDiagonalOp(DiagonalOp op, QuESTEnv env)</div><div class="ttdoc">Destroys a DiagonalOp created with createDiagonalOp(), freeing its memory.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01524">QuEST.c:1524</a></div></div>
<div class="ttc" id="astructVector_html_ab33976d8fda2e44b770f71269d698a25"><div class="ttname"><a href="structVector.html#ab33976d8fda2e44b770f71269d698a25">Vector::z</a></div><div class="ttdeci">qreal z</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00200">QuEST.h:200</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga65c7879947e398690a5428bd43e143e3"><div class="ttname"><a href="group__unitary.html#ga65c7879947e398690a5428bd43e143e3">multiControlledTwoQubitUnitary</a></div><div class="ttdeci">void multiControlledTwoQubitUnitary(Qureg qureg, int *controlQubits, int numControlQubits, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general multi-controlled two-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00282">QuEST.c:282</a></div></div>
<div class="ttc" id="agroup__normgate_html_ga34457f7f62ccd75fb7d3fe67cd2f815a"><div class="ttname"><a href="group__normgate.html#ga34457f7f62ccd75fb7d3fe67cd2f815a">collapseToOutcome</a></div><div class="ttdeci">qreal collapseToOutcome(Qureg qureg, int measureQubit, int outcome)</div><div class="ttdoc">Updates qureg to be consistent with measuring measureQubit in the given outcome (0 or 1),...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00966">QuEST.c:966</a></div></div>
<div class="ttc" id="astructQuESTEnv_html_a46e67e1a5ab930e04ff59f83f1d8630d"><div class="ttname"><a href="structQuESTEnv.html#a46e67e1a5ab930e04ff59f83f1d8630d">QuESTEnv::numSeeds</a></div><div class="ttdeci">int numSeeds</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00367">QuEST.h:367</a></div></div>
<div class="ttc" id="astructQureg_html_aa3deb7163aab90a61e755a1f200f5413"><div class="ttname"><a href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413">Qureg::numChunks</a></div><div class="ttdeci">int numChunks</div><div class="ttdoc">Number of chunks the state vector is broken up into – the number of MPI processes used.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00338">QuEST.h:338</a></div></div>
<div class="ttc" id="agroup__type_html_gga9c91c41aa42ae537995e89ffc616afe1a9aa2a35d92976c7de970506c4d19a96c"><div class="ttname"><a href="group__type.html#gga9c91c41aa42ae537995e89ffc616afe1a9aa2a35d92976c7de970506c4d19a96c">TWOS_COMPLEMENT</a></div><div class="ttdeci">@ TWOS_COMPLEMENT</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00269">QuEST.h:269</a></div></div>
<div class="ttc" id="agroup__calc_html_ga683779343fb2c6055f6b1d01079c2ede"><div class="ttname"><a href="group__calc.html#ga683779343fb2c6055f6b1d01079c2ede">calcPurity</a></div><div class="ttdeci">qreal calcPurity(Qureg qureg)</div><div class="ttdoc">Calculates the purity of a density matrix, by the trace of the density matrix squared.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01185">QuEST.c:1185</a></div></div>
<div class="ttc" id="agroup__calc_html_ga2a7946e6fa4f44c9ae0c6c9f683229ad"><div class="ttname"><a href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">calcProbOfOutcome</a></div><div class="ttdeci">qreal calcProbOfOutcome(Qureg qureg, int measureQubit, int outcome)</div><div class="ttdoc">Gives the probability of a specified qubit being measured in the given outcome (0 or 1).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01166">QuEST.c:1166</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_aebb8af156861c4bc0dd4f35f6982570a"><div class="ttname"><a href="structDiagonalOp.html#aebb8af156861c4bc0dd4f35f6982570a">DiagonalOp::deviceOperator</a></div><div class="ttdeci">ComplexArray deviceOperator</div><div class="ttdoc">A copy of the elements stored persistently on the GPU.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00312">QuEST.h:312</a></div></div>
<div class="ttc" id="agroup__debug_html_gaaf64c49f51b622702e66d917bf5b5e16"><div class="ttname"><a href="group__debug.html#gaaf64c49f51b622702e66d917bf5b5e16">getQuESTSeeds</a></div><div class="ttdeci">void getQuESTSeeds(QuESTEnv env, unsigned long int **seeds, int *numSeeds)</div><div class="ttdoc">Obtain the seeds presently used in random number generation.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01622">QuEST.c:1622</a></div></div>
<div class="ttc" id="agroup__qasm_html_gab3a410abab3e8beb394bd3bbfae8977c"><div class="ttname"><a href="group__qasm.html#gab3a410abab3e8beb394bd3bbfae8977c">clearRecordedQASM</a></div><div class="ttdeci">void clearRecordedQASM(Qureg qureg)</div><div class="ttdoc">Clear all QASM so far recorded.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00095">QuEST.c:95</a></div></div>
<div class="ttc" id="agroup__normgate_html_ga2a3794103125f1e3cfa103f8b1963656"><div class="ttname"><a href="group__normgate.html#ga2a3794103125f1e3cfa103f8b1963656">measure</a></div><div class="ttdeci">int measure(Qureg qureg, int measureQubit)</div><div class="ttdoc">Measures a single qubit, collapsing it randomly to 0 or 1.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00998">QuEST.c:998</a></div></div>
<div class="ttc" id="agroup__calc_html_gaa266ed6c8ae5d0d0f49e1ac50819cffc"><div class="ttname"><a href="group__calc.html#gaa266ed6c8ae5d0d0f49e1ac50819cffc">calcFidelity</a></div><div class="ttdeci">qreal calcFidelity(Qureg qureg, Qureg pureState)</div><div class="ttdoc">Calculates the fidelity of qureg (a state-vector or density matrix) against a reference pure state (n...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01191">QuEST.c:1191</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga78b814256f851cac70fdf3cbf9cfc206"><div class="ttname"><a href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">unitary</a></div><div class="ttdeci">void unitary(Qureg qureg, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general single-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00348">QuEST.c:348</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_aa91713a22c95a383bba55e56c4a4e37a"><div class="ttname"><a href="structDiagonalOp.html#aa91713a22c95a383bba55e56c4a4e37a">DiagonalOp::chunkId</a></div><div class="ttdeci">int chunkId</div><div class="ttdoc">The position of the chunk of the operator held by this process in the full operator.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00306">QuEST.h:306</a></div></div>
<div class="ttc" id="astructQureg_html_ac181d7b3b94fff179dc74d7935ecd9e1"><div class="ttname"><a href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1">Qureg::deviceStateVec</a></div><div class="ttdeci">ComplexArray deviceStateVec</div><div class="ttdoc">Storage for wavefunction amplitudes in the GPU version.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00346">QuEST.h:346</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65ae003ec1158e3a4e295616ced12af154e"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae003ec1158e3a4e295616ced12af154e">NORM</a></div><div class="ttdeci">@ NORM</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00232">QuEST.h:232</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gacfc45a8fc86ee18f60866bbd0c874ed0"><div class="ttname"><a href="group__decoherence.html#gacfc45a8fc86ee18f60866bbd0c874ed0">mixTwoQubitDepolarising</a></div><div class="ttdeci">void mixTwoQubitDepolarising(Qureg qureg, int qubit1, int qubit2, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce two-qubit homogeneous depolarising noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01291">QuEST.c:1291</a></div></div>
<div class="ttc" id="agroup__calc_html_ga82f17e96a4cb7612fb9c6ef856df3810"><div class="ttname"><a href="group__calc.html#ga82f17e96a4cb7612fb9c6ef856df3810">calcExpecDiagonalOp</a></div><div class="ttdeci">Complex calcExpecDiagonalOp(Qureg qureg, DiagonalOp op)</div><div class="ttdoc">Computes the expected value of the diagonal operator op for state qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01228">QuEST.c:1228</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga655ffcd4def2e127341c9488f5ca8455"><div class="ttname"><a href="group__unitary.html#ga655ffcd4def2e127341c9488f5ca8455">sGate</a></div><div class="ttdeci">void sGate(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit S gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00465">QuEST.c:465</a></div></div>
<div class="ttc" id="agroup__init_html_ga4534403b721977b669bff7bf4e37f0fb"><div class="ttname"><a href="group__init.html#ga4534403b721977b669bff7bf4e37f0fb">cloneQureg</a></div><div class="ttdeci">void cloneQureg(Qureg targetQureg, Qureg copyQureg)</div><div class="ttdoc">Overwrite the amplitudes of targetQureg with those from copyQureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00164">QuEST.c:164</a></div></div>
<div class="ttc" id="astructComplexMatrix4_html"><div class="ttname"><a href="structComplexMatrix4.html">ComplexMatrix4</a></div><div class="ttdoc">Represents a 4x4 matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00175">QuEST.h:175</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65ae5114537389194302c7a619e35e6e227"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae5114537389194302c7a619e35e6e227">SCALED_INVERSE_DISTANCE</a></div><div class="ttdeci">@ SCALED_INVERSE_DISTANCE</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00234">QuEST.h:234</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga34312ff52cc28bcab3cbd2ff338fd081"><div class="ttname"><a href="group__unitary.html#ga34312ff52cc28bcab3cbd2ff338fd081">rotateY</a></div><div class="ttdeci">void rotateY(Qureg qureg, int rotQubit, qreal angle)</div><div class="ttdoc">Rotate a single qubit by a given angle around the Y-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00198">QuEST.c:198</a></div></div>
<div class="ttc" id="agroup__operator_html_ga54d4e589468002bdc998200ae45e7312"><div class="ttname"><a href="group__operator.html#ga54d4e589468002bdc998200ae45e7312">applyPauliHamil</a></div><div class="ttdeci">void applyPauliHamil(Qureg inQureg, PauliHamil hamil, Qureg outQureg)</div><div class="ttdoc">Modifies outQureg to be the result of applying PauliHamil (a Hermitian but not necessarily unitary op...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01059">QuEST.c:1059</a></div></div>
<div class="ttc" id="astructQuESTEnv_html"><div class="ttname"><a href="structQuESTEnv.html">QuESTEnv</a></div><div class="ttdoc">Information about the environment the program is running in.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00362">QuEST.h:362</a></div></div>
<div class="ttc" id="agroup__operator_html_ga9bc8c4ab44f8233b5766208a0b1c0776"><div class="ttname"><a href="group__operator.html#ga9bc8c4ab44f8233b5766208a0b1c0776">applyQFT</a></div><div class="ttdeci">void applyQFT(Qureg qureg, int *qubits, int numQubits)</div><div class="ttdoc">Applies the quantum Fourier transform (QFT) to a specific subset of qubits of the register qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00866">QuEST.c:866</a></div></div>
<div class="ttc" id="agroup__type_html_gga9c91c41aa42ae537995e89ffc616afe1a7165f9a47792f47c718ca128556fb3ae"><div class="ttname"><a href="group__type.html#gga9c91c41aa42ae537995e89ffc616afe1a7165f9a47792f47c718ca128556fb3ae">UNSIGNED</a></div><div class="ttdeci">@ UNSIGNED</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00269">QuEST.h:269</a></div></div>
<div class="ttc" id="agroup__type_html_gaa77376c5e3518186eb085f37826d6008"><div class="ttname"><a href="group__type.html#gaa77376c5e3518186eb085f37826d6008">createPauliHamilFromFile</a></div><div class="ttdeci">PauliHamil createPauliHamilFromFile(char *fn)</div><div class="ttdoc">Creates a PauliHamil instance, a real-weighted sum of products of Pauli operators,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01420">QuEST.c:1420</a></div></div>
<div class="ttc" id="agroup__operator_html_gaf5344129240243ad11d0c081eb9036ab"><div class="ttname"><a href="group__operator.html#gaf5344129240243ad11d0c081eb9036ab">applyPhaseFuncOverrides</a></div><div class="ttdeci">void applyPhaseFuncOverrides(Qureg qureg, int *qubits, int numQubits, enum bitEncoding encoding, qreal *coeffs, qreal *exponents, int numTerms, long long int *overrideInds, qreal *overridePhases, int numOverrides)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by the passed exponential polynomial ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00743">QuEST.c:743</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga0832e39058d913ad47af44e97a854446"><div class="ttname"><a href="group__unitary.html#ga0832e39058d913ad47af44e97a854446">multiControlledPhaseShift</a></div><div class="ttdeci">void multiControlledPhaseShift(Qureg qureg, int *controlQubits, int numControlQubits, qreal angle)</div><div class="ttdoc">Introduce a phase factor on state of the passed qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00510">QuEST.c:510</a></div></div>
<div class="ttc" id="agroup__type_html_gafabb15a6c1cf49f8ecb67e1f35c77c1e"><div class="ttname"><a href="group__type.html#gafabb15a6c1cf49f8ecb67e1f35c77c1e">setDiagonalOpElems</a></div><div class="ttdeci">void setDiagonalOpElems(DiagonalOp op, long long int startInd, qreal *real, qreal *imag, long long int numElems)</div><div class="ttdoc">Modifies a subset (starting at index startInd, and ending at index startInd + numElems) of the elemen...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01543">QuEST.c:1543</a></div></div>
<div class="ttc" id="aQuEST__common_8c_html_ad67cb67877c941189b0de2c2e67e2026"><div class="ttname"><a href="QuEST__common_8c.html#ad67cb67877c941189b0de2c2e67e2026">bindArraysToStackComplexMatrixN</a></div><div class="ttdeci">ComplexMatrixN bindArraysToStackComplexMatrixN(int numQubits, qreal re[][1<< numQubits], qreal im[][1<< numQubits], qreal **reStorage, qreal **imStorage)</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00652">QuEST_common.c:652</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html"><div class="ttname"><a href="structComplexMatrixN.html">ComplexMatrixN</a></div><div class="ttdoc">Represents a general 2^N by 2^N matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00186">QuEST.h:186</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65a6313e6ff48163c11c47866c4fda4bfa0"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a6313e6ff48163c11c47866c4fda4bfa0">INVERSE_DISTANCE</a></div><div class="ttdeci">@ INVERSE_DISTANCE</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00234">QuEST.h:234</a></div></div>
<div class="ttc" id="agroup__type_html_ga7740e349b4f8bae6451547680f0ce2d6"><div class="ttname"><a href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a></div><div class="ttdeci">#define qreal</div></div>
<div class="ttc" id="agroup__unitary_html_ga34aa4865c92f9aa5d898c91286c9eca5"><div class="ttname"><a href="group__unitary.html#ga34aa4865c92f9aa5d898c91286c9eca5">multiRotatePauli</a></div><div class="ttdeci">void multiRotatePauli(Qureg qureg, int *targetQubits, enum pauliOpType *targetPaulis, int numTargets, qreal angle)</div><div class="ttdoc">Apply a multi-qubit multi-Pauli rotation, also known as a Pauli gadget, on a selected number of qubit...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00685">QuEST.c:685</a></div></div>
<div class="ttc" id="agroup__qasm_html_gabdaa339967f0955176a4967f01364182"><div class="ttname"><a href="group__qasm.html#gabdaa339967f0955176a4967f01364182">stopRecordingQASM</a></div><div class="ttdeci">void stopRecordingQASM(Qureg qureg)</div><div class="ttdoc">Disable QASM recording.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00091">QuEST.c:91</a></div></div>
<div class="ttc" id="agroup__init_html_gabc0c64f8adf307d2a44184dc0f8ca66e"><div class="ttname"><a href="group__init.html#gabc0c64f8adf307d2a44184dc0f8ca66e">setAmps</a></div><div class="ttdeci">void setAmps(Qureg qureg, long long int startInd, qreal *reals, qreal *imags, long long int numAmps)</div><div class="ttdoc">Overwrites a subset of the amplitudes in state-vector qureg, with those passed in reals and imags.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01021">QuEST.c:1021</a></div></div>
<div class="ttc" id="agroup__unitary_html_gad76781842af56821ed4e223bd776f057"><div class="ttname"><a href="group__unitary.html#gad76781842af56821ed4e223bd776f057">multiControlledPhaseFlip</a></div><div class="ttdeci">void multiControlledPhaseFlip(Qureg qureg, int *controlQubits, int numControlQubits)</div><div class="ttdoc">Apply the multiple-qubit controlled phase flip gate, also known as the multiple-qubit controlled paul...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00587">QuEST.c:587</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga20bf9b8a71b8a3ee4651e9497e6d1f4f"><div class="ttname"><a href="group__unitary.html#ga20bf9b8a71b8a3ee4651e9497e6d1f4f">multiQubitUnitary</a></div><div class="ttdeci">void multiQubitUnitary(Qureg qureg, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general multi-qubit unitary (including a global phase factor) with any number of target qubit...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00296">QuEST.c:296</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga1e5dd165b402e97abaa0b807026527f2"><div class="ttname"><a href="group__unitary.html#ga1e5dd165b402e97abaa0b807026527f2">multiControlledMultiRotateZ</a></div><div class="ttdeci">void multiControlledMultiRotateZ(Qureg qureg, int *controlQubits, int numControls, int *targetQubits, int numTargets, qreal angle)</div><div class="ttdoc">Apply a multi-controlled multi-target Z rotation, also known as a controlled phase gadget.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00668">QuEST.c:668</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a7abac7bb5b71e17382014c443244ad5c"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a7abac7bb5b71e17382014c443244ad5c">PAULI_X</a></div><div class="ttdeci">@ PAULI_X</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__calc_html_ga30d6f8b7c766c9c9914b2c61a2fc0def"><div class="ttname"><a href="group__calc.html#ga30d6f8b7c766c9c9914b2c61a2fc0def">getAmp</a></div><div class="ttdeci">Complex getAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the complex amplitude at a given index in the state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00939">QuEST.c:939</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga5e5fdaa7d3dd449b3e2c5d4a01bd015a"><div class="ttname"><a href="group__unitary.html#ga5e5fdaa7d3dd449b3e2c5d4a01bd015a">controlledPauliY</a></div><div class="ttdeci">void controlledPauliY(Qureg qureg, int controlQubit, int targetQubit)</div><div class="ttdoc">Apply the controlled pauliY (single control, single target) gate, also known as the c-Y and c-sigma-Y...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00563">QuEST.c:563</a></div></div>
<div class="ttc" id="agroup__debug_html_gacd5f0ee488157837a8483c1515817f98"><div class="ttname"><a href="group__debug.html#gacd5f0ee488157837a8483c1515817f98">reportState</a></div><div class="ttdeci">void reportState(Qureg qureg)</div><div class="ttdoc">Print the current state vector of probability amplitudes for a set of qubits to file.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00219">QuEST_common.c:219</a></div></div>
<div class="ttc" id="agroup__type_html_ga429f1b90b3ef06c786dec8c7f0eda4ce"><div class="ttname"><a href="group__type.html#ga429f1b90b3ef06c786dec8c7f0eda4ce">initComplexMatrixN</a></div><div class="ttdeci">void initComplexMatrixN(ComplexMatrixN m, qreal real[][1<< m.numQubits], qreal imag[][1<< m.numQubits])</div><div class="ttdoc">Initialises a ComplexMatrixN instance to have the passed real and imag values.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01386">QuEST.c:1386</a></div></div>
<div class="ttc" id="agroup__normgate_html_gae192ac0759e46c7b20a7182020155240"><div class="ttname"><a href="group__normgate.html#gae192ac0759e46c7b20a7182020155240">measureWithStats</a></div><div class="ttdeci">int measureWithStats(Qureg qureg, int measureQubit, qreal *outcomeProb)</div><div class="ttdoc">Measures a single qubit, collapsing it randomly to 0 or 1, and additionally gives the probability of ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00985">QuEST.c:985</a></div></div>
<div class="ttc" id="astructQureg_html_a0a86e8a50ea8c998b4a0a6640c5a1218"><div class="ttname"><a href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218">Qureg::numQubitsInStateVec</a></div><div class="ttdeci">int numQubitsInStateVec</div><div class="ttdoc">Number of qubits in the state-vector - this is double the number represented for mixed states.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00329">QuEST.h:329</a></div></div>
<div class="ttc" id="agroup__calc_html_ga5544d2833a69941b8820797b79daf79f"><div class="ttname"><a href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">calcExpecPauliHamil</a></div><div class="ttdeci">qreal calcExpecPauliHamil(Qureg qureg, PauliHamil hamil, Qureg workspace)</div><div class="ttdoc">Computes the expected value of qureg under Hermitian operator hamil.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01219">QuEST.c:1219</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga3ad6c477edcdbc845fc1143e860fda08"><div class="ttname"><a href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">multiControlledMultiQubitUnitary</a></div><div class="ttdeci">void multiControlledMultiQubitUnitary(Qureg qureg, int *ctrls, int numCtrls, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general multi-controlled multi-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00330">QuEST.c:330</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga8886a3793b21622c48cf3bad6e15082d"><div class="ttname"><a href="group__unitary.html#ga8886a3793b21622c48cf3bad6e15082d">rotateX</a></div><div class="ttdeci">void rotateX(Qureg qureg, int rotQubit, qreal angle)</div><div class="ttdoc">Rotate a single qubit by a given angle around the X-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00187">QuEST.c:187</a></div></div>
<div class="ttc" id="agroup__debug_html_ga51a64b05d31ef9bcf6a63ce26c0092db"><div class="ttname"><a href="group__debug.html#ga51a64b05d31ef9bcf6a63ce26c0092db">invalidQuESTInputError</a></div><div class="ttdeci">void invalidQuESTInputError(const char *errMsg, const char *errFunc)</div><div class="ttdoc">An internal function called when invalid arguments are passed to a QuEST API call,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__validation_8c_source.html#l00209">QuEST_validation.c:209</a></div></div>
<div class="ttc" id="agroup__init_html_ga5d0f3f71ea38d3c44597f8c2c2f014d4"><div class="ttname"><a href="group__init.html#ga5d0f3f71ea38d3c44597f8c2c2f014d4">setWeightedQureg</a></div><div class="ttdeci">void setWeightedQureg(Complex fac1, Qureg qureg1, Complex fac2, Qureg qureg2, Complex facOut, Qureg out)</div><div class="ttdoc">Modifies qureg out to the result of (facOut out + fac1 qureg1 + fac2 qureg2), imposing no constraints...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01037">QuEST.c:1037</a></div></div>
<div class="ttc" id="astructQureg_html_ac2929e681d3d95591c18cf168dbbe4f0"><div class="ttname"><a href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0">Qureg::chunkId</a></div><div class="ttdeci">int chunkId</div><div class="ttdoc">The position of the chunk of the state vector held by this process in the full state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00336">QuEST.h:336</a></div></div>
<div class="ttc" id="agroup__unitary_html_gab2ececaa253252e1b1cdb18a8452704a"><div class="ttname"><a href="group__unitary.html#gab2ececaa253252e1b1cdb18a8452704a">multiControlledMultiRotatePauli</a></div><div class="ttdeci">void multiControlledMultiRotatePauli(Qureg qureg, int *controlQubits, int numControls, int *targetQubits, enum pauliOpType *targetPaulis, int numTargets, qreal angle)</div><div class="ttdoc">Apply a multi-controlled multi-target multi-Pauli rotation, also known as a controlled Pauli gadget.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00705">QuEST.c:705</a></div></div>
<div class="ttc" id="agroup__calc_html_ga87ddbe5c8281543541ccd99e0dafd387"><div class="ttname"><a href="group__calc.html#ga87ddbe5c8281543541ccd99e0dafd387">calcHilbertSchmidtDistance</a></div><div class="ttdeci">qreal calcHilbertSchmidtDistance(Qureg a, Qureg b)</div><div class="ttdoc">Computes the Hilbert Schmidt distance between two density matrices a and b, defined as the Frobenius ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01237">QuEST.c:1237</a></div></div>
<div class="ttc" id="astructVector_html_abc3cfc6c8e297b1153a373d84b981e6b"><div class="ttname"><a href="structVector.html#abc3cfc6c8e297b1153a373d84b981e6b">Vector::y</a></div><div class="ttdeci">qreal y</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00200">QuEST.h:200</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html_a3a2b60a9e00ccef054a6de3b9307c1be"><div class="ttname"><a href="structComplexMatrix2.html#a3a2b60a9e00ccef054a6de3b9307c1be">ComplexMatrix2::imag</a></div><div class="ttdeci">qreal imag[2][2]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00140">QuEST.h:140</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a85c3f52533efe831bbe40b9a48602388"><div class="ttname"><a href="structDiagonalOp.html#a85c3f52533efe831bbe40b9a48602388">DiagonalOp::imag</a></div><div class="ttdeci">qreal * imag</div><div class="ttdoc">The imaginary values of the 2^numQubits complex elements.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00310">QuEST.h:310</a></div></div>
<div class="ttc" id="astructVector_html_a0d0459a5b731ac5fb3dff2c6134e6e88"><div class="ttname"><a href="structVector.html#a0d0459a5b731ac5fb3dff2c6134e6e88">Vector::x</a></div><div class="ttdeci">qreal x</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00200">QuEST.h:200</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga5d80b490e3910aa737a81bb597cdfcc9"><div class="ttname"><a href="group__unitary.html#ga5d80b490e3910aa737a81bb597cdfcc9">pauliZ</a></div><div class="ttdeci">void pauliZ(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Pauli-Z (also known as the Z, sigma-Z or phase-flip) gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00454">QuEST.c:454</a></div></div>
<div class="ttc" id="agroup__type_html_gaa7d869b117ba5024d6b84938e8cdfc65"><div class="ttname"><a href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a></div><div class="ttdeci">phaseFunc</div><div class="ttdoc">Flags for specifying named phase functions.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00231">QuEST.h:231</a></div></div>
<div class="ttc" id="astructQureg_html_ab0ea0358482b62f43fdd781469607d97"><div class="ttname"><a href="structQureg.html#ab0ea0358482b62f43fdd781469607d97">Qureg::numAmpsPerChunk</a></div><div class="ttdeci">long long int numAmpsPerChunk</div><div class="ttdoc">Number of probability amplitudes held in stateVec by this process In the non-MPI version,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00332">QuEST.h:332</a></div></div>
<div class="ttc" id="agroup__operator_html_gad2e953390342cd361cfb4064d47715e6"><div class="ttname"><a href="group__operator.html#gad2e953390342cd361cfb4064d47715e6">applyDiagonalOp</a></div><div class="ttdeci">void applyDiagonalOp(Qureg qureg, DiagonalOp op)</div><div class="ttdoc">Apply a diagonal operator, which is possibly non-unitary and non-Hermitian, to the entire qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01127">QuEST.c:1127</a></div></div>
<div class="ttc" id="astructPauliHamil_html_ac1c6c9f6299cf83bbba88123216c3cac"><div class="ttname"><a href="structPauliHamil.html#ac1c6c9f6299cf83bbba88123216c3cac">PauliHamil::termCoeffs</a></div><div class="ttdeci">qreal * termCoeffs</div><div class="ttdoc">The real coefficient of each Pauli product. This is an array of length PauliHamil....</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00283">QuEST.h:283</a></div></div>
<div class="ttc" id="agroup__operator_html_ga74a955ec4bce606d89317bcfc528387f"><div class="ttname"><a href="group__operator.html#ga74a955ec4bce606d89317bcfc528387f">applyMatrix4</a></div><div class="ttdeci">void applyMatrix4(Qureg qureg, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general 4-by-4 matrix, which may be non-unitary.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01093">QuEST.c:1093</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga820fd139c035136819e371308c206e36"><div class="ttname"><a href="group__unitary.html#ga820fd139c035136819e371308c206e36">swapGate</a></div><div class="ttdeci">void swapGate(Qureg qureg, int qubit1, int qubit2)</div><div class="ttdoc">Performs a SWAP gate between qubit1 and qubit2.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00627">QuEST.c:627</a></div></div>
<div class="ttc" id="astructPauliHamil_html_a4b8d38c403553c07ceddcd40c46ce6c8"><div class="ttname"><a href="structPauliHamil.html#a4b8d38c403553c07ceddcd40c46ce6c8">PauliHamil::pauliCodes</a></div><div class="ttdeci">enum pauliOpType * pauliCodes</div><div class="ttdoc">The Pauli operators acting on each qubit, flattened over every operator.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00281">QuEST.h:281</a></div></div>
<div class="ttc" id="agroup__init_html_ga4589960486ec43dcd63bd985f1c4f398"><div class="ttname"><a href="group__init.html#ga4589960486ec43dcd63bd985f1c4f398">initStateFromAmps</a></div><div class="ttdeci">void initStateFromAmps(Qureg qureg, qreal *reals, qreal *imags)</div><div class="ttdoc">Initialise qureg by specifying all amplitudes.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00157">QuEST.c:157</a></div></div>
<div class="ttc" id="agroup__debug_html_ga11448560006dd165128e404b54ebb2f7"><div class="ttname"><a href="group__debug.html#ga11448560006dd165128e404b54ebb2f7">copyStateToGPU</a></div><div class="ttdeci">void copyStateToGPU(Qureg qureg)</div><div class="ttdoc">In GPU mode, this copies the state-vector (or density matrix) from RAM (qureg.stateVec) to VRAM / GPU...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu_8c_source.html#l00042">QuEST_cpu.c:42</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65a31a29a30f92fe34c35098f941adbbc93"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a31a29a30f92fe34c35098f941adbbc93">SCALED_PRODUCT</a></div><div class="ttdeci">@ SCALED_PRODUCT</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00233">QuEST.h:233</a></div></div>
<div class="ttc" id="agroup__qasm_html_ga0054955857ce83b88e127d731796c23d"><div class="ttname"><a href="group__qasm.html#ga0054955857ce83b88e127d731796c23d">writeRecordedQASMToFile</a></div><div class="ttdeci">void writeRecordedQASMToFile(Qureg qureg, char *filename)</div><div class="ttdoc">Writes recorded QASM to a file, throwing an error if inaccessible.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00103">QuEST.c:103</a></div></div>
<div class="ttc" id="astructQuESTEnv_html_af22aacd7c9905accae28484785c193b4"><div class="ttname"><a href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4">QuESTEnv::numRanks</a></div><div class="ttdeci">int numRanks</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00365">QuEST.h:365</a></div></div>
<div class="ttc" id="astructComplexMatrix4_html_a1f6bb840b5a9e6252980cab7a14f1a35"><div class="ttname"><a href="structComplexMatrix4.html#a1f6bb840b5a9e6252980cab7a14f1a35">ComplexMatrix4::imag</a></div><div class="ttdeci">qreal imag[4][4]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00178">QuEST.h:178</a></div></div>
<div class="ttc" id="agroup__calc_html_ga1416145280c62c5dd5ec9bed89b4cd05"><div class="ttname"><a href="group__calc.html#ga1416145280c62c5dd5ec9bed89b4cd05">getRealAmp</a></div><div class="ttdeci">qreal getRealAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the real component of the complex probability amplitude at an index in the state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00918">QuEST.c:918</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga2fa310101ecffd6aeba96f77b7d85f56"><div class="ttname"><a href="group__unitary.html#ga2fa310101ecffd6aeba96f77b7d85f56">controlledPhaseFlip</a></div><div class="ttdeci">void controlledPhaseFlip(Qureg qureg, int idQubit1, int idQubit2)</div><div class="ttdoc">Apply the (two-qubit) controlled phase flip gate, also known as the controlled pauliZ gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00575">QuEST.c:575</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a5131eeb67aafb4c19ac98270c3266742"><div class="ttname"><a href="structDiagonalOp.html#a5131eeb67aafb4c19ac98270c3266742">DiagonalOp::numQubits</a></div><div class="ttdeci">int numQubits</div><div class="ttdoc">The number of qubits this operator can act on (informing its size)</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00300">QuEST.h:300</a></div></div>
<div class="ttc" id="astructPauliHamil_html_a737e46b40ef8990cf004d22eb9dbe2e4"><div class="ttname"><a href="structPauliHamil.html#a737e46b40ef8990cf004d22eb9dbe2e4">PauliHamil::numSumTerms</a></div><div class="ttdeci">int numSumTerms</div><div class="ttdoc">The number of terms in the weighted sum, or the number of Pauli products.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00285">QuEST.h:285</a></div></div>
<div class="ttc" id="astructDiagonalOp_html"><div class="ttname"><a href="structDiagonalOp.html">DiagonalOp</a></div><div class="ttdoc">Represents a diagonal complex operator on the full Hilbert state of a Qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00297">QuEST.h:297</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a2c64a9aaee27f6bcfef894d159e759bd"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a2c64a9aaee27f6bcfef894d159e759bd">PAULI_Y</a></div><div class="ttdeci">@ PAULI_Y</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="astructPauliHamil_html"><div class="ttname"><a href="structPauliHamil.html">PauliHamil</a></div><div class="ttdoc">A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represen...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00277">QuEST.h:277</a></div></div>
<div class="ttc" id="agroup__calc_html_ga73036c778d800703585ab3d8796a915f"><div class="ttname"><a href="group__calc.html#ga73036c778d800703585ab3d8796a915f">getNumQubits</a></div><div class="ttdeci">int getNumQubits(Qureg qureg)</div><div class="ttdoc">Returns the number of qubits represented by qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00908">QuEST.c:908</a></div></div>
<div class="ttc" id="agroup__calc_html_ga374ad70804998394ae41ebfe106258a6"><div class="ttname"><a href="group__calc.html#ga374ad70804998394ae41ebfe106258a6">calcInnerProduct</a></div><div class="ttdeci">Complex calcInnerProduct(Qureg bra, Qureg ket)</div><div class="ttdoc">Computes the inner product of two equal-size state vectors, given by.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01150">QuEST.c:1150</a></div></div>
<div class="ttc" id="agroup__type_html_ga8e1e6ad3254892edc2ee08712ea9d692"><div class="ttname"><a href="group__type.html#ga8e1e6ad3254892edc2ee08712ea9d692">destroyQureg</a></div><div class="ttdeci">void destroyQureg(Qureg qureg, QuESTEnv env)</div><div class="ttdoc">Deallocate a Qureg, freeing its memory.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00077">QuEST.c:77</a></div></div>
<div class="ttc" id="agroup__operator_html_gaabd7efa3beebc9f3a525321d41a28989"><div class="ttname"><a href="group__operator.html#gaabd7efa3beebc9f3a525321d41a28989">applyParamNamedPhaseFuncOverrides</a></div><div class="ttdeci">void applyParamNamedPhaseFuncOverrides(Qureg qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum bitEncoding encoding, enum phaseFunc functionNameCode, qreal *params, int numParams, long long int *overrideInds, qreal *overridePhases, int numOverrides)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by a named, parameterised (and potent...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00848">QuEST.c:848</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65aa318172feec5b530e9a7849f2f7b44e7"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65aa318172feec5b530e9a7849f2f7b44e7">SCALED_INVERSE_SHIFTED_NORM</a></div><div class="ttdeci">@ SCALED_INVERSE_SHIFTED_NORM</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00232">QuEST.h:232</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaeb975903209000ebbaf50ef1cc353a79"><div class="ttname"><a href="group__unitary.html#gaeb975903209000ebbaf50ef1cc353a79">controlledMultiQubitUnitary</a></div><div class="ttdeci">void controlledMultiQubitUnitary(Qureg qureg, int ctrl, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general controlled multi-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00313">QuEST.c:313</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga7e58e8131f219f48e5b7410ca8dfe0c0"><div class="ttname"><a href="group__unitary.html#ga7e58e8131f219f48e5b7410ca8dfe0c0">multiQubitNot</a></div><div class="ttdeci">void multiQubitNot(Qureg qureg, int *targs, int numTargs)</div><div class="ttdoc">Apply a NOT (or Pauli X) gate with multiple target qubits, which has the same effect as (but is much ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00536">QuEST.c:536</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga2cf7dece0efea4207349f872cdcb7e81"><div class="ttname"><a href="group__decoherence.html#ga2cf7dece0efea4207349f872cdcb7e81">mixTwoQubitKrausMap</a></div><div class="ttdeci">void mixTwoQubitKrausMap(Qureg qureg, int target1, int target2, ComplexMatrix4 *ops, int numOps)</div><div class="ttdoc">Apply a general two-qubit Kraus map to a density matrix, as specified by at most sixteen Kraus operat...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01324">QuEST.c:1324</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html_a446e8a077597e4f76049d547df0c9738"><div class="ttname"><a href="structComplexMatrixN.html#a446e8a077597e4f76049d547df0c9738">ComplexMatrixN::real</a></div><div class="ttdeci">qreal ** real</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00189">QuEST.h:189</a></div></div>
<div class="ttc" id="agroup__debug_html_gaa696c94112e5fbbc996af10dfc4e2c1c"><div class="ttname"><a href="group__debug.html#gaa696c94112e5fbbc996af10dfc4e2c1c">initDebugState</a></div><div class="ttdeci">void initDebugState(Qureg qureg)</div><div class="ttdoc">Initialises qureg to be in the un-normalised, non-physical state with with -th complex amplitude give...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01578">QuEST.c:1578</a></div></div>
<div class="ttc" id="astructQureg_html_a6b7912365d7ad8ff9b986fcad0c6ca3a"><div class="ttname"><a href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a">Qureg::qasmLog</a></div><div class="ttdeci">QASMLogger * qasmLog</div><div class="ttdoc">Storage for generated QASM output.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00351">QuEST.h:351</a></div></div>
<div class="ttc" id="astructQureg_html_a8bb9f7517470a0cc406951935f37b64f"><div class="ttname"><a href="structQureg.html#a8bb9f7517470a0cc406951935f37b64f">Qureg::secondLevelReduction</a></div><div class="ttdeci">qreal * secondLevelReduction</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00348">QuEST.h:348</a></div></div>
<div class="ttc" id="agroup__qasm_html_ga65bf1906298ca6355e2942f4923d77b6"><div class="ttname"><a href="group__qasm.html#ga65bf1906298ca6355e2942f4923d77b6">startRecordingQASM</a></div><div class="ttdeci">void startRecordingQASM(Qureg qureg)</div><div class="ttdoc">Enable QASM recording.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00087">QuEST.c:87</a></div></div>
<div class="ttc" id="agroup__operator_html_ga6fc26cf857db070e12959e59ecfed8a6"><div class="ttname"><a href="group__operator.html#ga6fc26cf857db070e12959e59ecfed8a6">applyPauliSum</a></div><div class="ttdeci">void applyPauliSum(Qureg inQureg, enum pauliOpType *allPauliCodes, qreal *termCoeffs, int numSumTerms, Qureg outQureg)</div><div class="ttdoc">Modifies outQureg to be the result of applying the weighted sum of Pauli products (a Hermitian but no...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01048">QuEST.c:1048</a></div></div>
<div class="ttc" id="agroup__operator_html_ga358e7094a98851afa86d27f0147e32a1"><div class="ttname"><a href="group__operator.html#ga358e7094a98851afa86d27f0147e32a1">applyMatrixN</a></div><div class="ttdeci">void applyMatrixN(Qureg qureg, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general N-by-N matrix, which may be non-unitary, on any number of target qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01103">QuEST.c:1103</a></div></div>
<div class="ttc" id="astructQuESTEnv_html_a66feaa60d3adc7dcf6f8b66514989356"><div class="ttname"><a href="structQuESTEnv.html#a66feaa60d3adc7dcf6f8b66514989356">QuESTEnv::seeds</a></div><div class="ttdeci">unsigned long int * seeds</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00366">QuEST.h:366</a></div></div>
<div class="ttc" id="agroup__operator_html_ga008a46d178a5a9691e2f5d363e3f518f"><div class="ttname"><a href="group__operator.html#ga008a46d178a5a9691e2f5d363e3f518f">applyMultiVarPhaseFunc</a></div><div class="ttdeci">void applyMultiVarPhaseFunc(Qureg qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum bitEncoding encoding, qreal *coeffs, qreal *exponents, int *numTermsPerReg)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by a multi-variable exponential polyn...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00761">QuEST.c:761</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaefaa7acba90373efe4e0f0b94987c734"><div class="ttname"><a href="group__unitary.html#gaefaa7acba90373efe4e0f0b94987c734">compactUnitary</a></div><div class="ttdeci">void compactUnitary(Qureg qureg, int targetQubit, Complex alpha, Complex beta)</div><div class="ttdoc">Apply a single-qubit unitary parameterised by two given complex scalars.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00404">QuEST.c:404</a></div></div>
<div class="ttc" id="agroup__init_html_ga0379e21efca0767a22607fc0e26a5a22"><div class="ttname"><a href="group__init.html#ga0379e21efca0767a22607fc0e26a5a22">initClassicalState</a></div><div class="ttdeci">void initClassicalState(Qureg qureg, long long int stateInd)</div><div class="ttdoc">Initialise qureg into the classical state (also known as a "computational basis state") with index st...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00134">QuEST.c:134</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga8e0f03e745778a89d6f59c3c25e32df8"><div class="ttname"><a href="group__unitary.html#ga8e0f03e745778a89d6f59c3c25e32df8">pauliY</a></div><div class="ttdeci">void pauliY(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Pauli-Y (also known as the Y or sigma-Y) gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00443">QuEST.c:443</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65ad4c32e295c08ebe224e2c5ba6497f043"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ad4c32e295c08ebe224e2c5ba6497f043">INVERSE_NORM</a></div><div class="ttdeci">@ INVERSE_NORM</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00232">QuEST.h:232</a></div></div>
<div class="ttc" id="astructQureg_html"><div class="ttname"><a href="structQureg.html">Qureg</a></div><div class="ttdoc">Represents a system of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00322">QuEST.h:322</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga7214a79aa22ae7a50ad6f38615968cb0"><div class="ttname"><a href="group__unitary.html#ga7214a79aa22ae7a50ad6f38615968cb0">controlledPhaseShift</a></div><div class="ttdeci">void controlledPhaseShift(Qureg qureg, int idQubit1, int idQubit2, qreal angle)</div><div class="ttdoc">Introduce a phase factor on state of qubits idQubit1 and idQubit2.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00498">QuEST.c:498</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga14282bdb1dc65760ca9ecbe6305eb770"><div class="ttname"><a href="group__decoherence.html#ga14282bdb1dc65760ca9ecbe6305eb770">mixTwoQubitDephasing</a></div><div class="ttdeci">void mixTwoQubitDephasing(Qureg qureg, int qubit1, int qubit2, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce two-qubit dephasing noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01260">QuEST.c:1260</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaa3fb996a5cadd098f4acd8aec955cf9c"><div class="ttname"><a href="group__unitary.html#gaa3fb996a5cadd098f4acd8aec955cf9c">controlledUnitary</a></div><div class="ttdeci">void controlledUnitary(Qureg qureg, int controlQubit, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general controlled unitary (single control, single target), which can include a global phase ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00360">QuEST.c:360</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html_afde13e469a3b4f179f45e53d1ec0a7cf"><div class="ttname"><a href="structComplexMatrixN.html#afde13e469a3b4f179f45e53d1ec0a7cf">ComplexMatrixN::imag</a></div><div class="ttdeci">qreal ** imag</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00190">QuEST.h:190</a></div></div>
<div class="ttc" id="agroup__type_html_ga12a6c59ebbfba8bdb9453a4138027d46"><div class="ttname"><a href="group__type.html#ga12a6c59ebbfba8bdb9453a4138027d46">initDiagonalOp</a></div><div class="ttdeci">void initDiagonalOp(DiagonalOp op, qreal *real, qreal *imag)</div><div class="ttdoc">Overwrites the entire DiagonalOp op with the given real and imag complex elements.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01537">QuEST.c:1537</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga26baa057f5db8804825c2d611386753b"><div class="ttname"><a href="group__unitary.html#ga26baa057f5db8804825c2d611386753b">phaseShift</a></div><div class="ttdeci">void phaseShift(Qureg qureg, int targetQubit, qreal angle)</div><div class="ttdoc">Shift the phase between and of a single qubit by a given angle.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00487">QuEST.c:487</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65acb6911398e0068f545a31b82bcdef3e4"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65acb6911398e0068f545a31b82bcdef3e4">PRODUCT</a></div><div class="ttdeci">@ PRODUCT</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00233">QuEST.h:233</a></div></div>
<div class="ttc" id="aQuEST__precision_8h_html"><div class="ttname"><a href="QuEST__precision_8h.html">QuEST_precision.h</a></div></div>
<div class="ttc" id="astructQureg_html_a441e4cacef6bd17adb9813c7442d42fe"><div class="ttname"><a href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe">Qureg::stateVec</a></div><div class="ttdeci">ComplexArray stateVec</div><div class="ttdoc">Computational state amplitudes - a subset thereof in the MPI version.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00341">QuEST.h:341</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaa5a138473a4433c853c6e66e7aabc237"><div class="ttname"><a href="group__unitary.html#gaa5a138473a4433c853c6e66e7aabc237">controlledNot</a></div><div class="ttdeci">void controlledNot(Qureg qureg, int controlQubit, int targetQubit)</div><div class="ttdoc">Apply the controlled not (single control, single target) gate, also known as the c-X,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00524">QuEST.c:524</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html_a3ea98d545b67a190ee6abe936c72076f"><div class="ttname"><a href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f">ComplexMatrix2::real</a></div><div class="ttdeci">qreal real[2][2]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00139">QuEST.h:139</a></div></div>
<div class="ttc" id="agroup__calc_html_ga8cbe422d4981bf06847d229a4c6aa3df"><div class="ttname"><a href="group__calc.html#ga8cbe422d4981bf06847d229a4c6aa3df">getNumAmps</a></div><div class="ttdeci">long long int getNumAmps(Qureg qureg)</div><div class="ttdoc">Returns the number of complex amplitudes in a state-vector qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00912">QuEST.c:912</a></div></div>
<div class="ttc" id="agroup__operator_html_ga8dca543fb4d1ee1cd8b4c5d6028b3075"><div class="ttname"><a href="group__operator.html#ga8dca543fb4d1ee1cd8b4c5d6028b3075">applyMultiVarPhaseFuncOverrides</a></div><div class="ttdeci">void applyMultiVarPhaseFuncOverrides(Qureg qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum bitEncoding encoding, qreal *coeffs, qreal *exponents, int *numTermsPerReg, long long int *overrideInds, qreal *overridePhases, int numOverrides)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by a multi-variable exponential polyn...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00778">QuEST.c:778</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a2c6eab631ef48b4978db026c98180eee"><div class="ttname"><a href="structDiagonalOp.html#a2c6eab631ef48b4978db026c98180eee">DiagonalOp::numElemsPerChunk</a></div><div class="ttdeci">long long int numElemsPerChunk</div><div class="ttdoc">The number of the 2^numQubits amplitudes stored on each distributed node.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00302">QuEST.h:302</a></div></div>
<div class="ttc" id="agroup__type_html_ga2ecd67e0de9efcbbe37afbad28a8ffad"><div class="ttname"><a href="group__type.html#ga2ecd67e0de9efcbbe37afbad28a8ffad">initDiagonalOpFromPauliHamil</a></div><div class="ttdeci">void initDiagonalOpFromPauliHamil(DiagonalOp op, PauliHamil hamil)</div><div class="ttdoc">Populates the diagonal operator op to be equivalent to the given Pauli Hamiltonian hamil,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01550">QuEST.c:1550</a></div></div>
<div class="ttc" id="astructQureg_html_acf78445e9435d09f44f0cc832c6aee79"><div class="ttname"><a href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79">Qureg::isDensityMatrix</a></div><div class="ttdeci">int isDensityMatrix</div><div class="ttdoc">Whether this instance is a density-state representation.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00325">QuEST.h:325</a></div></div>
<div class="ttc" id="agroup__debug_html_gaf8a14ae79c3fb2c0b5f6255cc37bebf9"><div class="ttname"><a href="group__debug.html#gaf8a14ae79c3fb2c0b5f6255cc37bebf9">reportQuESTEnv</a></div><div class="ttdeci">void reportQuESTEnv(QuESTEnv env)</div><div class="ttdoc">Report information about the QuEST environment.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00183">QuEST_cpu_distributed.c:183</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html_a606f7afbc3f65a596bdca21cb43be6a8"><div class="ttname"><a href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">ComplexMatrixN::numQubits</a></div><div class="ttdeci">int numQubits</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00188">QuEST.h:188</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga4193c14cfb918fa3291fb0648058d63e"><div class="ttname"><a href="group__unitary.html#ga4193c14cfb918fa3291fb0648058d63e">pauliX</a></div><div class="ttdeci">void pauliX(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Pauli-X (also known as the X, sigma-X, NOT or bit-flip) gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00432">QuEST.c:432</a></div></div>
<div class="ttc" id="agroup__type_html_gabd07eee133dcd4e6ae7c2d2ce4c42978"><div class="ttname"><a href="group__type.html#gabd07eee133dcd4e6ae7c2d2ce4c42978">createCloneQureg</a></div><div class="ttdeci">Qureg createCloneQureg(Qureg qureg, QuESTEnv env)</div><div class="ttdoc">Create a new Qureg which is an exact clone of the passed qureg, which can be either a state-vector or...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00064">QuEST.c:64</a></div></div>
<div class="ttc" id="agroup__calc_html_ga50ee589fd5ceab52fdd70d0082352b41"><div class="ttname"><a href="group__calc.html#ga50ee589fd5ceab52fdd70d0082352b41">calcExpecPauliSum</a></div><div class="ttdeci">qreal calcExpecPauliSum(Qureg qureg, enum pauliOpType *allPauliCodes, qreal *termCoeffs, int numSumTerms, Qureg workspace)</div><div class="ttdoc">Computes the expected value of a sum of products of Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01210">QuEST.c:1210</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga3d89916b46bc4aaf23e938022e6c89c1"><div class="ttname"><a href="group__unitary.html#ga3d89916b46bc4aaf23e938022e6c89c1">controlledTwoQubitUnitary</a></div><div class="ttdeci">void controlledTwoQubitUnitary(Qureg qureg, int controlQubit, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general controlled two-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00269">QuEST.c:269</a></div></div>
<div class="ttc" id="agroup__operator_html_gaf26f32c25db760065486188497c1da8b"><div class="ttname"><a href="group__operator.html#gaf26f32c25db760065486188497c1da8b">applyFullQFT</a></div><div class="ttdeci">void applyFullQFT(Qureg qureg)</div><div class="ttdoc">Applies the quantum Fourier transform (QFT) to the entirety of qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00876">QuEST.c:876</a></div></div>
<div class="ttc" id="astructPauliHamil_html_acb49fff0e3160ea1904c9ca34408b4e1"><div class="ttname"><a href="structPauliHamil.html#acb49fff0e3160ea1904c9ca34408b4e1">PauliHamil::numQubits</a></div><div class="ttdeci">int numQubits</div><div class="ttdoc">The number of qubits informing the Hilbert dimension of the Hamiltonian.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00287">QuEST.h:287</a></div></div>
<div class="ttc" id="astructQureg_html_ad08dff5316b8937f4b2a1417591543dc"><div class="ttname"><a href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc">Qureg::numQubitsRepresented</a></div><div class="ttdeci">int numQubitsRepresented</div><div class="ttdoc">The number of qubits represented in either the state-vector or density matrix.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00327">QuEST.h:327</a></div></div>
<div class="ttc" id="astructQureg_html_adef4935cac95763c29164cf99b144ed4"><div class="ttname"><a href="structQureg.html#adef4935cac95763c29164cf99b144ed4">Qureg::numAmpsTotal</a></div><div class="ttdeci">long long int numAmpsTotal</div><div class="ttdoc">Total number of amplitudes, which are possibly distributed among machines.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00334">QuEST.h:334</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65ace23d4b924240a245d83193f0ce398d4"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ace23d4b924240a245d83193f0ce398d4">SCALED_DISTANCE</a></div><div class="ttdeci">@ SCALED_DISTANCE</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00234">QuEST.h:234</a></div></div>
<div class="ttc" id="agroup__debug_html_gac7e38d768a1bd79019f88cc1e6295092"><div class="ttname"><a href="group__debug.html#gac7e38d768a1bd79019f88cc1e6295092">syncQuESTSuccess</a></div><div class="ttdeci">int syncQuESTSuccess(int successCode)</div><div class="ttdoc">Performs a logical AND on all successCodes held by all processes.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00168">QuEST_cpu_distributed.c:168</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a1d66088bed235d524cd452b107694d5c"><div class="ttname"><a href="structDiagonalOp.html#a1d66088bed235d524cd452b107694d5c">DiagonalOp::real</a></div><div class="ttdeci">qreal * real</div><div class="ttdoc">The real values of the 2^numQubits complex elements.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00308">QuEST.h:308</a></div></div>
<div class="ttc" id="astructComplex_html_ab5b2e2eca02131fc74b289a83636cbe3"><div class="ttname"><a href="structComplex.html#ab5b2e2eca02131fc74b289a83636cbe3">Complex::real</a></div><div class="ttdeci">qreal real</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00105">QuEST.h:105</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga97d563fa8f4bc51f720bbb653f5480b3"><div class="ttname"><a href="group__decoherence.html#ga97d563fa8f4bc51f720bbb653f5480b3">mixDensityMatrix</a></div><div class="ttdeci">void mixDensityMatrix(Qureg combineQureg, qreal prob, Qureg otherQureg)</div><div class="ttdoc">Modifies combineQureg to become (1-prob)combineProb + prob otherQureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01012">QuEST.c:1012</a></div></div>
<div class="ttc" id="agroup__type_html_ga3392816c0643414165c2f5caeec17df0"><div class="ttname"><a href="group__type.html#ga3392816c0643414165c2f5caeec17df0">createQureg</a></div><div class="ttdeci">Qureg createQureg(int numQubits, QuESTEnv env)</div><div class="ttdoc">Creates a state-vector Qureg object representing a set of qubits which will remain in a pure state.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00036">QuEST.c:36</a></div></div>
<div class="ttc" id="agroup__type_html_gac1c8ed909b33bd55ae680901006051b6"><div class="ttname"><a href="group__type.html#gac1c8ed909b33bd55ae680901006051b6">destroyPauliHamil</a></div><div class="ttdeci">void destroyPauliHamil(PauliHamil hamil)</div><div class="ttdoc">Destroy a PauliHamil instance, created with either createPauliHamil() or createPauliHamilFromFile().</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01414">QuEST.c:1414</a></div></div>
<div class="ttc" id="agroup__unitary_html_gac15907193da5a7c48b9610a26e669064"><div class="ttname"><a href="group__unitary.html#gac15907193da5a7c48b9610a26e669064">tGate</a></div><div class="ttdeci">void tGate(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit T gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00476">QuEST.c:476</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga3250d0d95b5d755cad542a6a2372b894"><div class="ttname"><a href="group__unitary.html#ga3250d0d95b5d755cad542a6a2372b894">multiRotateZ</a></div><div class="ttdeci">void multiRotateZ(Qureg qureg, int *qubits, int numQubits, qreal angle)</div><div class="ttdoc">Apply a multi-qubit Z rotation, also known as a phase gadget, on a selected number of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00652">QuEST.c:652</a></div></div>
<div class="ttc" id="astructComplex_html_a84f5439aad0ef495efdd3b4c1c02d27e"><div class="ttname"><a href="structComplex.html#a84f5439aad0ef495efdd3b4c1c02d27e">Complex::imag</a></div><div class="ttdeci">qreal imag</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00106">QuEST.h:106</a></div></div>
<div class="ttc" id="agroup__operator_html_ga225b82ff8b8eed1fff312240ec70c731"><div class="ttname"><a href="group__operator.html#ga225b82ff8b8eed1fff312240ec70c731">applyParamNamedPhaseFunc</a></div><div class="ttdeci">void applyParamNamedPhaseFunc(Qureg qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum bitEncoding encoding, enum phaseFunc functionNameCode, qreal *params, int numParams)</div><div class="ttdoc">Induces a phase change upon each amplitude of qureg, determined by a named, paramaterized (and potent...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00831">QuEST.c:831</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65a39111120b79016d6b3e773b711fa63f7"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a39111120b79016d6b3e773b711fa63f7">SCALED_INVERSE_SHIFTED_DISTANCE</a></div><div class="ttdeci">@ SCALED_INVERSE_SHIFTED_DISTANCE</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00234">QuEST.h:234</a></div></div>
<div class="ttc" id="agroup__debug_html_ga555451c697ea4a9d27389155f68fdabc"><div class="ttname"><a href="group__debug.html#ga555451c697ea4a9d27389155f68fdabc">seedQuEST</a></div><div class="ttdeci">void seedQuEST(QuESTEnv *env, unsigned long int *seedArray, int numSeeds)</div><div class="ttdoc">Seeds the random number generator with a custom array of key(s), overriding the default keys.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l01388">QuEST_cpu_distributed.c:1388</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga9a77f84e1aa7d25d036b14d7d0cd8b61"><div class="ttname"><a href="group__decoherence.html#ga9a77f84e1aa7d25d036b14d7d0cd8b61">mixPauli</a></div><div class="ttdeci">void mixPauli(Qureg qureg, int targetQubit, qreal probX, qreal probY, qreal probZ)</div><div class="ttdoc">Mixes a density matrix qureg to induce general single-qubit Pauli noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01303">QuEST.c:1303</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga6532decd6c404189915563492f090e6f"><div class="ttname"><a href="group__unitary.html#ga6532decd6c404189915563492f090e6f">hadamard</a></div><div class="ttdeci">void hadamard(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Hadamard gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00176">QuEST.c:176</a></div></div>
<div class="ttc" id="astructComplex_html"><div class="ttname"><a href="structComplex.html">Complex</a></div><div class="ttdoc">Represents one complex number.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00103">QuEST.h:103</a></div></div>
<div class="ttc" id="agroup__operator_html_gadfb5c1d99a22ce666fc715a8da2e0950"><div class="ttname"><a href="group__operator.html#gadfb5c1d99a22ce666fc715a8da2e0950">applyMatrix2</a></div><div class="ttdeci">void applyMatrix2(Qureg qureg, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general 2-by-2 matrix, which may be non-unitary.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01084">QuEST.c:1084</a></div></div>
<div class="ttc" id="agroup__type_html_ga8ba2c3388dd64d9348c3b091852d36d4"><div class="ttname"><a href="group__type.html#ga8ba2c3388dd64d9348c3b091852d36d4">createQuESTEnv</a></div><div class="ttdeci">QuESTEnv createQuESTEnv(void)</div><div class="ttdoc">Create the QuEST execution environment.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00129">QuEST_cpu_distributed.c:129</a></div></div>
<div class="ttc" id="agroup__unitary_html_gab23a8b022ec83b9d423961ca87cd8cb5"><div class="ttname"><a href="group__unitary.html#gab23a8b022ec83b9d423961ca87cd8cb5">rotateZ</a></div><div class="ttdeci">void rotateZ(Qureg qureg, int rotQubit, qreal angle)</div><div class="ttdoc">Rotate a single qubit by a given angle around the Z-axis of the Bloch-sphere (also known as a phase s...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00209">QuEST.c:209</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65a93c0c1e166dd43c6a57f61e5490808e1"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a93c0c1e166dd43c6a57f61e5490808e1">SCALED_NORM</a></div><div class="ttdeci">@ SCALED_NORM</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00232">QuEST.h:232</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65a1a5168576607f460d3e60f184575cacb"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a1a5168576607f460d3e60f184575cacb">SCALED_INVERSE_PRODUCT</a></div><div class="ttdeci">@ SCALED_INVERSE_PRODUCT</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00233">QuEST.h:233</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaa700dc9657ade4cf16f1cad1624c5332"><div class="ttname"><a href="group__unitary.html#gaa700dc9657ade4cf16f1cad1624c5332">multiControlledUnitary</a></div><div class="ttdeci">void multiControlledUnitary(Qureg qureg, int *controlQubits, int numControlQubits, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general multiple-control single-target unitary, which can include a global phase factor.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00373">QuEST.c:373</a></div></div>
<div class="ttc" id="agroup__init_html_ga2f049055d4a51d0ea4d1a43b5234dedb"><div class="ttname"><a href="group__init.html#ga2f049055d4a51d0ea4d1a43b5234dedb">initZeroState</a></div><div class="ttdeci">void initZeroState(Qureg qureg)</div><div class="ttdoc">Initialise qureg into the zero state.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00113">QuEST.c:113</a></div></div>
<div class="ttc" id="agroup__calc_html_ga658b3a5cab5e73a17a7fd76a83583a22"><div class="ttname"><a href="group__calc.html#ga658b3a5cab5e73a17a7fd76a83583a22">calcDensityInnerProduct</a></div><div class="ttdeci">qreal calcDensityInnerProduct(Qureg rho1, Qureg rho2)</div><div class="ttdoc">Computes the Hilbert-Schmidt scalar product (which is equivalent to the Frobenius inner product of ma...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01158">QuEST.c:1158</a></div></div>
<div class="ttc" id="agroup__type_html_ga93e55b6650b408abb30a1d4a8bce757c"><div class="ttname"><a href="group__type.html#ga93e55b6650b408abb30a1d4a8bce757c">createDensityQureg</a></div><div class="ttdeci">Qureg createDensityQureg(int numQubits, QuESTEnv env)</div><div class="ttdoc">Creates a density matrix Qureg object representing a set of qubits which can enter noisy and mixed st...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00050">QuEST.c:50</a></div></div>
<div class="ttc" id="astructQureg_html_a2d0007a026a4231b338a5037c4e861b2"><div class="ttname"><a href="structQureg.html#a2d0007a026a4231b338a5037c4e861b2">Qureg::firstLevelReduction</a></div><div class="ttdeci">qreal * firstLevelReduction</div><div class="ttdoc">Storage for reduction of probabilities on GPU.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00348">QuEST.h:348</a></div></div>
<div class="ttc" id="agroup__operator_html_ga35b6321c578a8c69470132b5ee95f930"><div class="ttname"><a href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">applyTrotterCircuit</a></div><div class="ttdeci">void applyTrotterCircuit(Qureg qureg, PauliHamil hamil, qreal time, int order, int reps)</div><div class="ttdoc">Applies a trotterisation of unitary evolution to qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01070">QuEST.c:1070</a></div></div>
<div class="ttc" id="agroup__type_html_ga35b28710877c462927366fa602e591cb"><div class="ttname"><a href="group__type.html#ga35b28710877c462927366fa602e591cb">createPauliHamil</a></div><div class="ttdeci">PauliHamil createPauliHamil(int numQubits, int numSumTerms)</div><div class="ttdoc">Dynamically allocates a Hamiltonian expressed as a real-weighted sum of products of Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01398">QuEST.c:1398</a></div></div>
<div class="ttc" id="agroup__init_html_ga234bd34016f08288532791903b9884b5"><div class="ttname"><a href="group__init.html#ga234bd34016f08288532791903b9884b5">initPlusState</a></div><div class="ttdeci">void initPlusState(Qureg qureg)</div><div class="ttdoc">Initialise qureg into the plus state.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00125">QuEST.c:125</a></div></div>
<div class="ttc" id="agroup__calc_html_ga15cfad3f3d26339128e3be32ae7deacd"><div class="ttname"><a href="group__calc.html#ga15cfad3f3d26339128e3be32ae7deacd">calcExpecPauliProd</a></div><div class="ttdeci">qreal calcExpecPauliProd(Qureg qureg, int *targetQubits, enum pauliOpType *pauliCodes, int numTargets, Qureg workspace)</div><div class="ttdoc">Computes the expected value of a product of Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01201">QuEST.c:1201</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaf7e15bf09c64082e0a8467998eb25623"><div class="ttname"><a href="group__unitary.html#gaf7e15bf09c64082e0a8467998eb25623">controlledCompactUnitary</a></div><div class="ttdeci">void controlledCompactUnitary(Qureg qureg, int controlQubit, int targetQubit, Complex alpha, Complex beta)</div><div class="ttdoc">Apply a controlled unitary (single control, single target) parameterised by two given complex scalars...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00417">QuEST.c:417</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga41b946a82982c3fa3dc2a7395665bc90"><div class="ttname"><a href="group__unitary.html#ga41b946a82982c3fa3dc2a7395665bc90">multiStateControlledUnitary</a></div><div class="ttdeci">void multiStateControlledUnitary(Qureg qureg, int *controlQubits, int *controlState, int numControlQubits, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general single-qubit unitary with multiple control qubits, conditioned upon a specific bit se...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00388">QuEST.c:388</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga75d5e65f87c68403602a669b9c6d52b0"><div class="ttname"><a href="group__unitary.html#ga75d5e65f87c68403602a669b9c6d52b0">sqrtSwapGate</a></div><div class="ttdeci">void sqrtSwapGate(Qureg qureg, int qb1, int qb2)</div><div class="ttdoc">Performs a sqrt SWAP gate between qubit1 and qubit2.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00639">QuEST.c:639</a></div></div>
<div class="ttc" id="agroup__type_html_ga9c91c41aa42ae537995e89ffc616afe1"><div class="ttname"><a href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a></div><div class="ttdeci">bitEncoding</div><div class="ttdoc">Flags for specifying how the bits in sub-register computational basis states are mapped to indices in...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00269">QuEST.h:269</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga65b4c0944090fae78a37ba3b94811ace"><div class="ttname"><a href="group__decoherence.html#ga65b4c0944090fae78a37ba3b94811ace">mixMultiQubitKrausMap</a></div><div class="ttdeci">void mixMultiQubitKrausMap(Qureg qureg, int *targets, int numTargets, ComplexMatrixN *ops, int numOps)</div><div class="ttdoc">Apply a general N-qubit Kraus map to a density matrix, as specified by at most (2N)^2 Kraus operators...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01334">QuEST.c:1334</a></div></div>
<div class="ttc" id="agroup__qasm_html_gacf139d0a54b1f9e5c2f2feff742b8c76"><div class="ttname"><a href="group__qasm.html#gacf139d0a54b1f9e5c2f2feff742b8c76">printRecordedQASM</a></div><div class="ttdeci">void printRecordedQASM(Qureg qureg)</div><div class="ttdoc">Print recorded QASM to stdout.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00099">QuEST.c:99</a></div></div>
<div class="ttc" id="agroup__debug_html_gaa33ed720560d051eb4126b4a534bc4c6"><div class="ttname"><a href="group__debug.html#gaa33ed720560d051eb4126b4a534bc4c6">reportStateToScreen</a></div><div class="ttdeci">void reportStateToScreen(Qureg qureg, QuESTEnv env, int reportRank)</div><div class="ttdoc">Print the current state vector of probability amplitudes for a set of qubits to standard out.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01594">QuEST.c:1594</a></div></div>
<div class="ttc" id="agroup__type_html_gaebf896dd8d5eeaf9fd896f6cc8e334fe"><div class="ttname"><a href="group__type.html#gaebf896dd8d5eeaf9fd896f6cc8e334fe">createDiagonalOp</a></div><div class="ttdeci">DiagonalOp createDiagonalOp(int numQubits, QuESTEnv env)</div><div class="ttdoc">Creates a DiagonalOp representing a diagonal operator on the full Hilbert space of a Qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01518">QuEST.c:1518</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html"><div class="ttname"><a href="structComplexMatrix2.html">ComplexMatrix2</a></div><div class="ttdoc">Represents a 2x2 matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00137">QuEST.h:137</a></div></div>
<div class="ttc" id="agroup__unitary_html_gafbbded98b7233f5da06d74d1db5cbfdb"><div class="ttname"><a href="group__unitary.html#gafbbded98b7233f5da06d74d1db5cbfdb">controlledRotateY</a></div><div class="ttdeci">void controlledRotateY(Qureg qureg, int controlQubit, int targetQubit, qreal angle)</div><div class="ttdoc">Applies a controlled rotation by a given angle around the Y-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00232">QuEST.c:232</a></div></div>
<div class="ttc" id="agroup__type_html_ggaa7d869b117ba5024d6b84938e8cdfc65ae8c96906c1ec109d295c491e572d01e2"><div class="ttname"><a href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae8c96906c1ec109d295c491e572d01e2">SCALED_INVERSE_NORM</a></div><div class="ttdeci">@ SCALED_INVERSE_NORM</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00232">QuEST.h:232</a></div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
</body>
<script type="text/javascript" src="boot.js"></script>
</html>