<!-- 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.1.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_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_70834f0dcd10de01d2e35ab402a2238e.html">tysonjones</a></li><li class="navelem"><a class="el" href="dir_1957401ef452be7528010ba0f4832a45.html">Desktop</a></li><li class="navelem"><a class="el" href="dir_dee4414d5d72b49a9429e079789ffd08.html">GithubRepos</a></li><li class="navelem"><a class="el" href="dir_a89b43d59316bb5045aa22bb53a67d29.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_f1fe56bf5ef15ff22696c757278c6962.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_a9e976136714c36d9c92c62eb1305fc4.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="l00114"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html"> 114</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="l00115"></a><span class="lineno"> 115</span> {</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f"> 116</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="l00117"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html#a3a2b60a9e00ccef054a6de3b9307c1be"> 117</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="l00118"></a><span class="lineno"> 118</span> } <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html"> 125</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="l00126"></a><span class="lineno"> 126</span> {</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html#aeadc9893e1b16cdd585dac523e73926c"> 127</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="l00128"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html#a1f6bb840b5a9e6252980cab7a14f1a35"> 128</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="l00129"></a><span class="lineno"> 129</span> } <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a>;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html"> 136</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="l00137"></a><span class="lineno"> 137</span> {</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8"> 138</a></span>  <span class="keywordtype">int</span> <a class="code" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">numQubits</a>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#a446e8a077597e4f76049d547df0c9738"> 139</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="l00140"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#afde13e469a3b4f179f45e53d1ec0a7cf"> 140</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="l00141"></a><span class="lineno"> 141</span> } <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="structVector.html"> 148</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="l00149"></a><span class="lineno"> 149</span> {</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structVector.html#ab33976d8fda2e44b770f71269d698a25"> 150</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="l00151"></a><span class="lineno"> 151</span> } <a class="code" href="structVector.html">Vector</a>;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structQureg.html"> 160</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="l00161"></a><span class="lineno"> 161</span> {</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79"> 163</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79">isDensityMatrix</a>;</div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc"> 165</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc">numQubitsRepresented</a>;</div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218"> 167</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218">numQubitsInStateVec</a>;</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structQureg.html#ab0ea0358482b62f43fdd781469607d97"> 170</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="l00172"></a><span class="lineno"><a class="line" href="structQureg.html#adef4935cac95763c29164cf99b144ed4"> 172</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="l00174"></a><span class="lineno"><a class="line" href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0"> 174</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0">chunkId</a>;</div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413"> 176</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413">numChunks</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe"> 179</a></span>  ComplexArray <a class="code" href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe">stateVec</a>; </div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="structQureg.html#aba97773694870ef35e378c036f486bb7"> 181</a></span>  ComplexArray <a class="code" href="structQureg.html#aba97773694870ef35e378c036f486bb7">pairStateVec</a>;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1"> 184</a></span>  ComplexArray <a class="code" href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1">deviceStateVec</a>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="structQureg.html#a8bb9f7517470a0cc406951935f37b64f"> 186</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="l00187"></a><span class="lineno"> 187</span>  </div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a"> 189</a></span>  QASMLogger* <a class="code" href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a">qasmLog</a>;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> } <a class="code" href="structQureg.html">Qureg</a>;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structQuESTEnv.html"> 199</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="l00200"></a><span class="lineno"> 200</span> {</div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8"> 201</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8">rank</a>;</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4"> 202</a></span>  <span class="keywordtype">int</span> <a class="code" href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4">numRanks</a>;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> } <a class="code" href="structQuESTEnv.html">QuESTEnv</a>;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">/*</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment"> * public functions</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</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="l00224"></a><span class="lineno"> 224</span>  </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</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="l00238"></a><span class="lineno"> 238</span>  </div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</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="l00251"></a><span class="lineno"> 251</span>  </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</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="l00262"></a><span class="lineno"> 262</span>  </div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</span>  </div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</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="l00292"></a><span class="lineno"> 292</span>  </div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</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="l00316"></a><span class="lineno"> 316</span> <span class="preprocessor">#endif </span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</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="l00342"></a><span class="lineno"> 342</span>  </div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</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="l00351"></a><span class="lineno"> 351</span>  </div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</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="l00359"></a><span class="lineno"> 359</span>  </div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</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="l00366"></a><span class="lineno"> 366</span>  </div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</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="l00373"></a><span class="lineno"> 373</span>  </div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</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="l00383"></a><span class="lineno"> 383</span>  </div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</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="l00393"></a><span class="lineno"> 393</span>  </div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</span>  </div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</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="l00435"></a><span class="lineno"> 435</span>  </div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</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="l00448"></a><span class="lineno"> 448</span>  </div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</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="l00459"></a><span class="lineno"> 459</span>  </div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</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="l00474"></a><span class="lineno"> 474</span>  </div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</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="l00494"></a><span class="lineno"> 494</span>  </div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</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="l00506"></a><span class="lineno"> 506</span>  </div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga05c7b8c9491410215e277ea83c0dfef8">phaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  </div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga69e074c8174e198ca014d9905b98b43d">controlledPhaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> idQubit1, <span class="keyword">const</span> <span class="keywordtype">int</span> idQubit2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  </div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</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="l00624"></a><span class="lineno"> 624</span>  </div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga4dcb9c6660d7a5f74c9597bc467d39ef">controlledPhaseFlip</a> (<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> idQubit1, <span class="keyword">const</span> <span class="keywordtype">int</span> idQubit2);</div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  </div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</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="l00709"></a><span class="lineno"> 709</span>  </div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga67a83cdbd8d6ae77f91aa011cf09907a">sGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  </div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga3c500a891a522fd3045c379489f0252a">tGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  </div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</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="l00785"></a><span class="lineno"> 785</span>  </div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</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="l00795"></a><span class="lineno"> 795</span>  </div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</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="l00803"></a><span class="lineno"> 803</span>  </div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</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="l00813"></a><span class="lineno"> 813</span>  </div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</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="l00821"></a><span class="lineno"> 821</span>  </div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga2d955c6e51067371eee69795532a2d62">getEnvironmentString</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env, <a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">char</span> str[200]);</div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  </div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</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="l00855"></a><span class="lineno"> 855</span>  </div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</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="l00878"></a><span class="lineno"> 878</span>  </div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</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="l00891"></a><span class="lineno"> 891</span>  </div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</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="l00904"></a><span class="lineno"> 904</span>  </div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</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="l00917"></a><span class="lineno"> 917</span>  </div>
<div class="line"><a name="l00929"></a><span class="lineno"> 929</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="l00930"></a><span class="lineno"> 930</span>  </div>
<div class="line"><a name="l00943"></a><span class="lineno"> 943</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="l00944"></a><span class="lineno"> 944</span>  </div>
<div class="line"><a name="l00970"></a><span class="lineno"> 970</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="l00971"></a><span class="lineno"> 971</span>  </div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga0cbd92af48fe641522e62eea1a76a7c3">compactUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <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="l01010"></a><span class="lineno"> 1010</span>  </div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga5a117f81298e8ed894d964198e737757">unitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  </div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga5fb1514d67ab43917dc64a357e711425">rotateX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  </div>
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga680f90d42e56950f40d11d695596a363">rotateY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  </div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga30675e80b054d5adf556ae00f98377d9">rotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  </div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gac5c485fe330636966effc0642ba2bd99">rotateAroundAxis</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <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="l01160"></a><span class="lineno"> 1160</span>  </div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  </div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga7dc4ed5d9fd2872a04fea6ef13b65c3d">controlledRotateX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  </div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaf99ba5356a6c20d3d047b36874fc0a50">controlledRotateY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  </div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga9afcf34f7c6ae127452b503c074a9b7b">controlledRotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  </div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga82bf9aaf01430d3ecfde52b7731421d7">controlledRotateAroundAxis</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <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="l01298"></a><span class="lineno"> 1298</span>  </div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa854e4b76cfd4000a32c06c990960bd9">controlledCompactUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <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="l01345"></a><span class="lineno"> 1345</span>  </div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaf2ad34c9659292d32c6c725e4bd668cf">controlledUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  </div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga18c44cb3b947147951590dea2f6b25f7">multiControlledUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keyword">const</span> <span class="keywordtype">int</span> numControlQubits, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  </div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga84cd118c44b9d3866f56b865dbb9bd7d">pauliX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  </div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa064fcf40fd02b21f98a9a83dc6cea13">pauliY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>  </div>
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gadf988ee16f38ddaf404552c41ea2b745">pauliZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>  </div>
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga2f3bec8d06e7bf7314c581a5b837641f">hadamard</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>  </div>
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gadf4927a3d5dd8cd6d7400f2e810b4f05">controlledNot</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>  </div>
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga811e9b47126c83ff859059106f66cf96">controlledPauliY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>  </div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga2a0fbd65f42d35dcd5ae966c48826920">calcProbOfOutcome</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> measureQubit, <span class="keywordtype">int</span> outcome);</div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>  </div>
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__normgate.html#gab164930b260718d85ed3f55f50c76a59">collapseToOutcome</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> measureQubit, <span class="keywordtype">int</span> outcome);</div>
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>  </div>
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</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="l01736"></a><span class="lineno"> 1736</span>  </div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</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="l01753"></a><span class="lineno"> 1753</span>  </div>
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</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="l01777"></a><span class="lineno"> 1777</span>  </div>
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</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="l01826"></a><span class="lineno"> 1826</span>  </div>
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaa8437ef3bf135231e2916e64dde1c94e">seedQuESTDefault</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>  </div>
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span> <span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga95012dad46509b4b461974c34cfd7b3d">seedQuEST</a>(<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="l01858"></a><span class="lineno"> 1858</span>  </div>
<div class="line"><a name="l01867"></a><span class="lineno"> 1867</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="l01868"></a><span class="lineno"> 1868</span>  </div>
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</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="l01879"></a><span class="lineno"> 1879</span>  </div>
<div class="line"><a name="l01886"></a><span class="lineno"> 1886</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="l01887"></a><span class="lineno"> 1887</span>  </div>
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</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="l01896"></a><span class="lineno"> 1896</span>  </div>
<div class="line"><a name="l01905"></a><span class="lineno"> 1905</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="l01906"></a><span class="lineno"> 1906</span>  </div>
<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga91edd6320f517810a58afd4b845edf12">mixDephasing</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>  </div>
<div class="line"><a name="l01957"></a><span class="lineno"> 1957</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="l01958"></a><span class="lineno"> 1958</span>  </div>
<div class="line"><a name="l01992"></a><span class="lineno"> 1992</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga556fe013915bca4626367d98db948f5e">mixDepolarising</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>  </div>
<div class="line"><a name="l02023"></a><span class="lineno"> 2023</span> <span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga3e39405eb2ce05ce4bb88c0f00dace45">mixDamping</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>  </div>
<div class="line"><a name="l02087"></a><span class="lineno"> 2087</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="l02088"></a><span class="lineno"> 2088</span>  </div>
<div class="line"><a name="l02122"></a><span class="lineno"> 2122</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="l02123"></a><span class="lineno"> 2123</span>  </div>
<div class="line"><a name="l02137"></a><span class="lineno"> 2137</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="l02138"></a><span class="lineno"> 2138</span>  </div>
<div class="line"><a name="l02160"></a><span class="lineno"> 2160</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="l02161"></a><span class="lineno"> 2161</span>  </div>
<div class="line"><a name="l02188"></a><span class="lineno"> 2188</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="l02189"></a><span class="lineno"> 2189</span>  </div>
<div class="line"><a name="l02231"></a><span class="lineno"> 2231</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="l02232"></a><span class="lineno"> 2232</span>  </div>
<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>  </div>
<div class="line"><a name="l02278"></a><span class="lineno"> 2278</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="l02279"></a><span class="lineno"> 2279</span>  </div>
<div class="line"><a name="l02331"></a><span class="lineno"> 2331</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga09a08f98955e75d942fdc88d4dca3e33">multiStateControlledUnitary</a>(</div>
<div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>  <a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span>* controlState, <span class="keyword">const</span> <span class="keywordtype">int</span> numControlQubits, </div>
<div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u</div>
<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span> );</div>
<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>  </div>
<div class="line"><a name="l02359"></a><span class="lineno"> 2359</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="l02360"></a><span class="lineno"> 2360</span>  </div>
<div class="line"><a name="l02407"></a><span class="lineno"> 2407</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="l02408"></a><span class="lineno"> 2408</span>  </div>
<div class="line"><a name="l02453"></a><span class="lineno"> 2453</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="l02454"></a><span class="lineno"> 2454</span>  </div>
<div class="line"><a name="l02503"></a><span class="lineno"> 2503</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="l02504"></a><span class="lineno"> 2504</span>  </div>
<div class="line"><a name="l02566"></a><span class="lineno"> 2566</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga81cf22c68db66bf9b4593a5d1b3f528c">twoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit1, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>  </div>
<div class="line"><a name="l02630"></a><span class="lineno"> 2630</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80">controlledTwoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">const</span> <span class="keywordtype">int</span> controlQubit, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit1, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>  </div>
<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga4183dc6cb8fd996fb790a711bf3e4871">multiControlledTwoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keyword">const</span> <span class="keywordtype">int</span> numControlQubits, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit1, <span class="keyword">const</span> <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>  </div>
<div class="line"><a name="l02781"></a><span class="lineno"> 2781</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gab5828a9f0518951451d9fec9370199ae">multiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targs, <span class="keyword">const</span> <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>  </div>
<div class="line"><a name="l02852"></a><span class="lineno"> 2852</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga6375f658bd7cb24d25e0603b5b947bbd">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="keyword">const</span> <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>  </div>
<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span> <span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gadad71b27575fd7d9baf110ff780ee0a1">multiControlledMultiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* ctrls, <span class="keyword">const</span> <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span>* targs, <span class="keyword">const</span> <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>  </div>
<div class="line"><a name="l02964"></a><span class="lineno"> 2964</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="l02965"></a><span class="lineno"> 2965</span>  </div>
<div class="line"><a name="l02998"></a><span class="lineno"> 2998</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="l02999"></a><span class="lineno"> 2999</span>  </div>
<div class="line"><a name="l03042"></a><span class="lineno"> 3042</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="l03043"></a><span class="lineno"> 3043</span>  </div>
<div class="line"><a name="l03070"></a><span class="lineno"> 3070</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="l03071"></a><span class="lineno"> 3071</span>  </div>
<div class="line"><a name="l03095"></a><span class="lineno"> 3095</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="l03096"></a><span class="lineno"> 3096</span>  </div>
<div class="line"><a name="l03150"></a><span class="lineno"> 3150</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="l03151"></a><span class="lineno"> 3151</span>  </div>
<div class="line"><a name="l03190"></a><span class="lineno"> 3190</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="l03191"></a><span class="lineno"> 3191</span>  </div>
<div class="line"><a name="l03192"></a><span class="lineno"> 3192</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l03193"></a><span class="lineno"> 3193</span>  <span class="comment">// hide this function from doxygen</span></div>
<div class="line"><a name="l03195"></a><span class="lineno"> 3195</span> <span class="comment"></span> </div>
<div class="line"><a name="l03233"></a><span class="lineno"> 3233</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="l03234"></a><span class="lineno"> 3234</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="l03235"></a><span class="lineno"> 3235</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="l03236"></a><span class="lineno"> 3236</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>  </div>
<div class="line"><a name="l03239"></a><span class="lineno"> 3239</span> <span class="comment">// hide this function from doxygen</span></div>
<div class="line"><a name="l03241"></a><span class="lineno"> 3241</span> <span class="comment"></span><span class="preprocessor">#define UNPACK_ARR(...) __VA_ARGS__</span></div>
<div class="line"><a name="l03242"></a><span class="lineno"> 3242</span>  </div>
<div class="line"><a name="l03244"></a><span class="lineno"> 3244</span> <span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l03245"></a><span class="lineno"> 3245</span>  </div>
<div class="line"><a name="l03284"></a><span class="lineno"><a class="line" href="group__type.html#ga927beeee2ba3b110f33ebb440c154ae2"> 3284</a></span> <span class="preprocessor">#define getStaticComplexMatrixN(numQubits, re, im) \</span></div>
<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span> <span class="preprocessor"> bindArraysToStackComplexMatrixN( \</span></div>
<div class="line"><a name="l03286"></a><span class="lineno"> 3286</span> <span class="preprocessor"> numQubits, \</span></div>
<div class="line"><a name="l03287"></a><span class="lineno"> 3287</span> <span class="preprocessor"> (qreal[1<<numQubits][1<<numQubits]) UNPACK_ARR re, \</span></div>
<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span> <span class="preprocessor"> (qreal[1<<numQubits][1<<numQubits]) UNPACK_ARR im, \</span></div>
<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span> <span class="preprocessor"> (double*[1<<numQubits]) {NULL}, (double*[1<<numQubits]) {NULL} \</span></div>
<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span> <span class="preprocessor"> )</span></div>
<div class="line"><a name="l03291"></a><span class="lineno"> 3291</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>  </div>
<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>  </div>
<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span> <span class="comment">// end prevention of C++ name mangling</span></div>
<div class="line"><a name="l03295"></a><span class="lineno"> 3295</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l03296"></a><span class="lineno"> 3296</span> }</div>
<div class="line"><a name="l03297"></a><span class="lineno"> 3297</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>  </div>
<div class="line"><a name="l03299"></a><span class="lineno"> 3299</span> <span class="preprocessor">#endif // QUEST_H</span></div>
<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>  </div>
</div><!-- fragment --></div><!-- contents -->
<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#l00690">QuEST.c:690</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#l00117">QuEST.c:117</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#l00148">QuEST.h:148</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#l00172">QuEST_cpu_distributed.c:172</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__unitary_html_ga811e9b47126c83ff859059106f66cf96"><div class="ttname"><a href="group__unitary.html#ga811e9b47126c83ff859059106f66cf96">controlledPauliY</a></div><div class="ttdeci">void controlledPauliY(Qureg qureg, const int controlQubit, const 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#l00535">QuEST.c:535</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#l00233">QuEST_common.c:233</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#l00039">QuEST_cpu.c:39</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#l00127">QuEST.h:127</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#l00162">QuEST_cpu_distributed.c:162</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 a set of qubits, which can be a state vector or density matrix, to a given pure state.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00143">QuEST.c:143</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_ga3c500a891a522fd3045c379489f0252a"><div class="ttname"><a href="group__unitary.html#ga3c500a891a522fd3045c379489f0252a">tGate</a></div><div class="ttdeci">void tGate(Qureg qureg, const 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#l00475">QuEST.c:475</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#l00201">QuEST.h:201</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#l00822">QuEST.c:822</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#l01021">QuEST.c:1021</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga30675e80b054d5adf556ae00f98377d9"><div class="ttname"><a href="group__unitary.html#ga30675e80b054d5adf556ae00f98377d9">rotateZ</a></div><div class="ttdeci">void rotateZ(Qureg qureg, const 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#l00208">QuEST.c:208</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#l00181">QuEST.h:181</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__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#l00707">QuEST.c:707</a></div></div>
<div class="ttc" id="agroup__debug_html_ga2d955c6e51067371eee69795532a2d62"><div class="ttname"><a href="group__debug.html#ga2d955c6e51067371eee69795532a2d62">getEnvironmentString</a></div><div class="ttdeci">void getEnvironmentString(QuESTEnv env, Qureg qureg, char str[200])</div><div class="ttdoc">Sets str to a string containing the number of qubits in qureg, and the hardware facilities used (e....</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__gpu_8cu_source.html#l00393">QuEST_gpu.cu:393</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">Create (dynamically) a square complex matrix which can be passed to the multi-qubit general unitary f...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01000">QuEST.c:1000</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#l00683">QuEST.c:683</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#l00966">QuEST.c:966</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#l00150">QuEST.h:150</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga91edd6320f517810a58afd4b845edf12"><div class="ttname"><a href="group__decoherence.html#ga91edd6320f517810a58afd4b845edf12">mixDephasing</a></div><div class="ttdeci">void mixDephasing(Qureg qureg, const 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#l00902">QuEST.c:902</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#l00176">QuEST.h:176</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#l00855">QuEST.c:855</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#l00093">QuEST.c:93</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#l00756">QuEST.c:756</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 statevector or density matrix) against a reference pure state (ne...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00861">QuEST.c:861</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#l00184">QuEST.h:184</a></div></div>
<div class="ttc" id="agroup__debug_html_ga95012dad46509b4b461974c34cfd7b3d"><div class="ttname"><a href="group__debug.html#ga95012dad46509b4b461974c34cfd7b3d">seedQuEST</a></div><div class="ttdeci">void seedQuEST(unsigned long int *seedArray, int numSeeds)</div><div class="ttdoc">Seed the Mersenne Twister used for random number generation in the QuEST environment with a user defi...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00208">QuEST_common.c:208</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#l00943">QuEST.c:943</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga5fb1514d67ab43917dc64a357e711425"><div class="ttname"><a href="group__unitary.html#ga5fb1514d67ab43917dc64a357e711425">rotateX</a></div><div class="ttdeci">void rotateX(Qureg qureg, const 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#l00186">QuEST.c:186</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">Set targetQureg to be a clone of copyQureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00163">QuEST.c:163</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga4183dc6cb8fd996fb790a711bf3e4871"><div class="ttname"><a href="group__unitary.html#ga4183dc6cb8fd996fb790a711bf3e4871">multiControlledTwoQubitUnitary</a></div><div class="ttdeci">void multiControlledTwoQubitUnitary(Qureg qureg, int *controlQubits, const int numControlQubits, const int targetQubit1, const 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#l00281">QuEST.c:281</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#l00125">QuEST.h:125</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#l00199">QuEST.h:199</a></div></div>
<div class="ttc" id="agroup__unitary_html_gadf988ee16f38ddaf404552c41ea2b745"><div class="ttname"><a href="group__unitary.html#gadf988ee16f38ddaf404552c41ea2b745">pauliZ</a></div><div class="ttdeci">void pauliZ(Qureg qureg, const 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#l00453">QuEST.c:453</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#l00509">QuEST.c:509</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#l00606">QuEST_common.c:606</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#l00136">QuEST.h:136</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga4dcb9c6660d7a5f74c9597bc467d39ef"><div class="ttname"><a href="group__unitary.html#ga4dcb9c6660d7a5f74c9597bc467d39ef">controlledPhaseFlip</a></div><div class="ttdeci">void controlledPhaseFlip(Qureg qureg, const int idQubit1, const 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#l00547">QuEST.c:547</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 on a selected number of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00640">QuEST.c:640</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#l00089">QuEST.c:89</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 qureg, with those passed in reals and imags.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00779">QuEST.c:779</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga18c44cb3b947147951590dea2f6b25f7"><div class="ttname"><a href="group__unitary.html#ga18c44cb3b947147951590dea2f6b25f7">multiControlledUnitary</a></div><div class="ttdeci">void multiControlledUnitary(Qureg qureg, int *controlQubits, const int numControlQubits, const 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#l00372">QuEST.c:372</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#l00559">QuEST.c:559</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#l00697">QuEST.c:697</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#l00215">QuEST_common.c:215</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#l01037">QuEST.c:1037</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#l00743">QuEST.c:743</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#l00167">QuEST.h:167</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga6375f658bd7cb24d25e0603b5b947bbd"><div class="ttname"><a href="group__unitary.html#ga6375f658bd7cb24d25e0603b5b947bbd">controlledMultiQubitUnitary</a></div><div class="ttdeci">void controlledMultiQubitUnitary(Qureg qureg, int ctrl, int *targs, const 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#l00312">QuEST.c:312</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga09a08f98955e75d942fdc88d4dca3e33"><div class="ttname"><a href="group__unitary.html#ga09a08f98955e75d942fdc88d4dca3e33">multiStateControlledUnitary</a></div><div class="ttdeci">void multiStateControlledUnitary(Qureg qureg, int *controlQubits, int *controlState, const int numControlQubits, const int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general multiple-control, conditioned on a specific bit sequence, single-target unitary,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00387">QuEST.c:387</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#l00142">QuEST_validation.c:142</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#l00795">QuEST.c:795</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#l00174">QuEST.h:174</a></div></div>
<div class="ttc" id="agroup__unitary_html_gadad71b27575fd7d9baf110ff780ee0a1"><div class="ttname"><a href="group__unitary.html#gadad71b27575fd7d9baf110ff780ee0a1">multiControlledMultiQubitUnitary</a></div><div class="ttdeci">void multiControlledMultiQubitUnitary(Qureg qureg, int *ctrls, const int numCtrls, int *targs, const 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#l00329">QuEST.c:329</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga05c7b8c9491410215e277ea83c0dfef8"><div class="ttname"><a href="group__unitary.html#ga05c7b8c9491410215e277ea83c0dfef8">phaseShift</a></div><div class="ttdeci">void phaseShift(Qureg qureg, const 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#l00486">QuEST.c:486</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#l00889">QuEST.c:889</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#l00150">QuEST.h:150</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#l00117">QuEST.h:117</a></div></div>
<div class="ttc" id="agroup__unitary_html_gab5828a9f0518951451d9fec9370199ae"><div class="ttname"><a href="group__unitary.html#gab5828a9f0518951451d9fec9370199ae">multiQubitUnitary</a></div><div class="ttdeci">void multiQubitUnitary(Qureg qureg, int *targs, const 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#l00295">QuEST.c:295</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#l00150">QuEST.h:150</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga0cbd92af48fe641522e62eea1a76a7c3"><div class="ttname"><a href="group__unitary.html#ga0cbd92af48fe641522e62eea1a76a7c3">compactUnitary</a></div><div class="ttdeci">void compactUnitary(Qureg qureg, const 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#l00403">QuEST.c:403</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#l00170">QuEST.h:170</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga2f3bec8d06e7bf7314c581a5b837641f"><div class="ttname"><a href="group__unitary.html#ga2f3bec8d06e7bf7314c581a5b837641f">hadamard</a></div><div class="ttdeci">void hadamard(Qureg qureg, const 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#l00175">QuEST.c:175</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga680f90d42e56950f40d11d695596a363"><div class="ttname"><a href="group__unitary.html#ga680f90d42e56950f40d11d695596a363">rotateY</a></div><div class="ttdeci">void rotateY(Qureg qureg, const 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#l00197">QuEST.c:197</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#l00599">QuEST.c:599</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaf2ad34c9659292d32c6c725e4bd668cf"><div class="ttname"><a href="group__unitary.html#gaf2ad34c9659292d32c6c725e4bd668cf">controlledUnitary</a></div><div class="ttdeci">void controlledUnitary(Qureg qureg, const int controlQubit, const 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#l00359">QuEST.c:359</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaf99ba5356a6c20d3d047b36874fc0a50"><div class="ttname"><a href="group__unitary.html#gaf99ba5356a6c20d3d047b36874fc0a50">controlledRotateY</a></div><div class="ttdeci">void controlledRotateY(Qureg qureg, const int controlQubit, const 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#l00231">QuEST.c:231</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 the complete statevector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00155">QuEST.c:155</a></div></div>
<div class="ttc" id="agroup__unitary_html_gadf4927a3d5dd8cd6d7400f2e810b4f05"><div class="ttname"><a href="group__unitary.html#gadf4927a3d5dd8cd6d7400f2e810b4f05">controlledNot</a></div><div class="ttdeci">void controlledNot(Qureg qureg, const int controlQubit, const 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#l00523">QuEST.c:523</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#l00036">QuEST_cpu.c:36</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#l00101">QuEST.c:101</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#l00202">QuEST.h:202</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#l00128">QuEST.h:128</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga82bf9aaf01430d3ecfde52b7731421d7"><div class="ttname"><a href="group__unitary.html#ga82bf9aaf01430d3ecfde52b7731421d7">controlledRotateAroundAxis</a></div><div class="ttdeci">void controlledRotateAroundAxis(Qureg qureg, const int controlQubit, const 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#l00586">QuEST.c:586</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#l00676">QuEST.c:676</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80"><div class="ttname"><a href="group__unitary.html#ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80">controlledTwoQubitUnitary</a></div><div class="ttdeci">void controlledTwoQubitUnitary(Qureg qureg, const int controlQubit, const int targetQubit1, const 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#l00268">QuEST.c:268</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="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">Get the number of qubits in a qureg object.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00666">QuEST.c:666</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#l00829">QuEST.c:829</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga69e074c8174e198ca014d9905b98b43d"><div class="ttname"><a href="group__unitary.html#ga69e074c8174e198ca014d9905b98b43d">controlledPhaseShift</a></div><div class="ttdeci">void controlledPhaseShift(Qureg qureg, const int idQubit1, const 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#l00497">QuEST.c:497</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 object representing a set of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00075">QuEST.c:75</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#l00976">QuEST.c:976</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#l00139">QuEST.h:139</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 n-th complex amplitude (2n...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01057">QuEST.c:1057</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#l00189">QuEST.h:189</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#l00186">QuEST.h:186</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#l00085">QuEST.c:85</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#l00806">QuEST.c:806</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga3e39405eb2ce05ce4bb88c0f00dace45"><div class="ttname"><a href="group__decoherence.html#ga3e39405eb2ce05ce4bb88c0f00dace45">mixDamping</a></div><div class="ttdeci">void mixDamping(Qureg qureg, const 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#l00935">QuEST.c:935</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 a set of qubits to the classical state (also known as a "computational basis state") with...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00132">QuEST.c:132</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga5a117f81298e8ed894d964198e737757"><div class="ttname"><a href="group__unitary.html#ga5a117f81298e8ed894d964198e737757">unitary</a></div><div class="ttdeci">void unitary(Qureg qureg, const 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#l00347">QuEST.c:347</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#l00160">QuEST.h:160</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga9afcf34f7c6ae127452b503c074a9b7b"><div class="ttname"><a href="group__unitary.html#ga9afcf34f7c6ae127452b503c074a9b7b">controlledRotateZ</a></div><div class="ttdeci">void controlledRotateZ(Qureg qureg, const int controlQubit, const 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#l00243">QuEST.c:243</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#l00912">QuEST.c:912</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#l00140">QuEST.h:140</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#l00179">QuEST.h:179</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#l00116">QuEST.h:116</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">Get the number of probability amplitudes in a qureg object, given by 2^numQubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00670">QuEST.c:670</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaa854e4b76cfd4000a32c06c990960bd9"><div class="ttname"><a href="group__unitary.html#gaa854e4b76cfd4000a32c06c990960bd9">controlledCompactUnitary</a></div><div class="ttdeci">void controlledCompactUnitary(Qureg qureg, const int controlQubit, const 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#l00416">QuEST.c:416</a></div></div>
<div class="ttc" id="agroup__debug_html_gaa8437ef3bf135231e2916e64dde1c94e"><div class="ttname"><a href="group__debug.html#gaa8437ef3bf135231e2916e64dde1c94e">seedQuESTDefault</a></div><div class="ttdeci">void seedQuESTDefault(void)</div><div class="ttdoc">Seed the Mersenne Twister used for random number generation in the QuEST environment with an example ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l01321">QuEST_cpu_distributed.c:1321</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#l00163">QuEST.h:163</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#l00179">QuEST_cpu_distributed.c:179</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#l00138">QuEST.h:138</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 statevector or ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00062">QuEST.c:62</a></div></div>
<div class="ttc" id="agroup__normgate_html_gab164930b260718d85ed3f55f50c76a59"><div class="ttname"><a href="group__normgate.html#gab164930b260718d85ed3f55f50c76a59">collapseToOutcome</a></div><div class="ttdeci">qreal collapseToOutcome(Qureg qureg, const 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#l00724">QuEST.c:724</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga7dc4ed5d9fd2872a04fea6ef13b65c3d"><div class="ttname"><a href="group__unitary.html#ga7dc4ed5d9fd2872a04fea6ef13b65c3d">controlledRotateX</a></div><div class="ttdeci">void controlledRotateX(Qureg qureg, const int controlQubit, const 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#l00219">QuEST.c:219</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#l00880">QuEST.c:880</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#l00165">QuEST.h:165</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#l00172">QuEST.h:172</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#l00166">QuEST_cpu_distributed.c:166</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#l00770">QuEST.c:770</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">Create a 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#l00034">QuEST.c:34</a></div></div>
<div class="ttc" id="agroup__calc_html_ga2a0fbd65f42d35dcd5ae966c48826920"><div class="ttname"><a href="group__calc.html#ga2a0fbd65f42d35dcd5ae966c48826920">calcProbOfOutcome</a></div><div class="ttdeci">qreal calcProbOfOutcome(Qureg qureg, const 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#l00845">QuEST.c:845</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 on a selected number of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00624">QuEST.c:624</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__unitary_html_gaa064fcf40fd02b21f98a9a83dc6cea13"><div class="ttname"><a href="group__unitary.html#gaa064fcf40fd02b21f98a9a83dc6cea13">pauliY</a></div><div class="ttdeci">void pauliY(Qureg qureg, const 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#l00442">QuEST.c:442</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#l00955">QuEST.c:955</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__unitary_html_ga81cf22c68db66bf9b4593a5d1b3f528c"><div class="ttname"><a href="group__unitary.html#ga81cf22c68db66bf9b4593a5d1b3f528c">twoQubitUnitary</a></div><div class="ttdeci">void twoQubitUnitary(Qureg qureg, const int targetQubit1, const 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#l00255">QuEST.c:255</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_ga67a83cdbd8d6ae77f91aa011cf09907a"><div class="ttname"><a href="group__unitary.html#ga67a83cdbd8d6ae77f91aa011cf09907a">sGate</a></div><div class="ttdeci">void sGate(Qureg qureg, const 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#l00464">QuEST.c:464</a></div></div>
<div class="ttc" id="agroup__unitary_html_gac5c485fe330636966effc0642ba2bd99"><div class="ttname"><a href="group__unitary.html#gac5c485fe330636966effc0642ba2bd99">rotateAroundAxis</a></div><div class="ttdeci">void rotateAroundAxis(Qureg qureg, const 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#l00573">QuEST.c:573</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 a set of qubits to the classical zero state .</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00111">QuEST.c:111</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#l00837">QuEST.c:837</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">Create a Qureg for qubits which are represented by a density matrix, and can be in mixed states.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00048">QuEST.c:48</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#l00186">QuEST.h:186</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 a set of qubits to the plus state (and similarly for density matrices).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00123">QuEST.c:123</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#l00871">QuEST.c:871</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga84cd118c44b9d3866f56b865dbb9bd7d"><div class="ttname"><a href="group__unitary.html#ga84cd118c44b9d3866f56b865dbb9bd7d">pauliX</a></div><div class="ttdeci">void pauliX(Qureg qureg, const 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#l00431">QuEST.c:431</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#l00611">QuEST.c:611</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#l00986">QuEST.c:986</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#l00097">QuEST.c:97</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#l01073">QuEST.c:1073</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#l00114">QuEST.h:114</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga556fe013915bca4626367d98db948f5e"><div class="ttname"><a href="group__decoherence.html#ga556fe013915bca4626367d98db948f5e">mixDepolarising</a></div><div class="ttdeci">void mixDepolarising(Qureg qureg, const 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#l00924">QuEST.c:924</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>