<!-- 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 File Reference</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="jquery.smartmenus.js"></script>
<!-- SmartMenus jQuery Bootstrap Addon -->
<script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
<!-- SmartMenus jQuery plugin -->
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand"><img alt="Logo" src="logo.png"/></a>
<a class="navbar-brand"><b>QuEST</b> v3.4.0<br>The Quantum Exact Simulation Toolkit</a>
</div>
</div>
</nav>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div class="content" id="content">
<div class="container">
<div class="row">
<div class="col-sm-12 panel " style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e145b6391efe0b6e575fd5bb5f76dbf8.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_aaf4e0c86438000dc030ca371e863336.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_ea73998990134951f0a2a9d1cfc118c0.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#define-members">Macros</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">QuEST.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include "<a class="el" href="QuEST__precision_8h_source.html">QuEST_precision.h</a>"</code><br />
</div>
<p><a href="QuEST_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structComplex.html">Complex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents one complex number. <a href="structComplex.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a 2x2 matrix of complex numbers. <a href="structComplexMatrix2.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a 4x4 matrix of complex numbers. <a href="structComplexMatrix4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a general 2^N by 2^N matrix of complex numbers. <a href="structComplexMatrixN.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structDiagonalOp.html">DiagonalOp</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a diagonal complex operator on the full Hilbert state of a <code><a class="el" href="structQureg.html" title="Represents a system of qubits.">Qureg</a></code>. <a href="structDiagonalOp.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structPauliHamil.html">PauliHamil</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represent any Hermitian operator. <a href="structPauliHamil.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structQuESTEnv.html">QuESTEnv</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Information about the environment the program is running in. <a href="structQuESTEnv.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structQureg.html">Qureg</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a system of qubits. <a href="structQureg.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structVector.html">Vector</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a 3-vector of real numbers. <a href="structVector.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga927beeee2ba3b110f33ebb440c154ae2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga927beeee2ba3b110f33ebb440c154ae2">getStaticComplexMatrixN</a>(numQubits, re, im)</td></tr>
<tr class="memdesc:ga927beeee2ba3b110f33ebb440c154ae2"><td class="mdescLeft"> </td><td class="mdescRight">Creates a <a class="el" href="structComplexMatrixN.html" title="Represents a general 2^N by 2^N matrix of complex numbers.">ComplexMatrixN</a> struct which lives in the stack and so does not need freeing, but cannot be returned beyond the calling scope. <a href="group__type.html#ga927beeee2ba3b110f33ebb440c154ae2">More...</a><br /></td></tr>
<tr class="separator:ga927beeee2ba3b110f33ebb440c154ae2"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga9c91c41aa42ae537995e89ffc616afe1"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> { <a class="el" href="group__type.html#gga9c91c41aa42ae537995e89ffc616afe1a7165f9a47792f47c718ca128556fb3ae">UNSIGNED</a> =0,
<a class="el" href="group__type.html#gga9c91c41aa42ae537995e89ffc616afe1a9aa2a35d92976c7de970506c4d19a96c">TWOS_COMPLEMENT</a> =1
}</td></tr>
<tr class="memdesc:ga9c91c41aa42ae537995e89ffc616afe1"><td class="mdescLeft"> </td><td class="mdescRight">Flags for specifying how the bits in sub-register computational basis states are mapped to indices in functions like <a class="el" href="group__operator.html#ga467f517abd18dbc3d6fced84c6589161" title="Induces a phase change upon each amplitude of qureg, determined by the passed exponential polynomial ...">applyPhaseFunc()</a>. <a href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">More...</a><br /></td></tr>
<tr class="separator:ga9c91c41aa42ae537995e89ffc616afe1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1c703cf89629e4e9c7023cd402d67028"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> { <a class="el" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a63800f45b01ccc2608f754aee850bf4a">PAULI_I</a> =0,
<a class="el" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a7abac7bb5b71e17382014c443244ad5c">PAULI_X</a> =1,
<a class="el" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a2c64a9aaee27f6bcfef894d159e759bd">PAULI_Y</a> =2,
<a class="el" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a085c85cff6ba79c52d8b1e61c42ddddf">PAULI_Z</a> =3
}</td></tr>
<tr class="memdesc:ga1c703cf89629e4e9c7023cd402d67028"><td class="mdescLeft"> </td><td class="mdescRight">Codes for specifying Pauli operators. <a href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">More...</a><br /></td></tr>
<tr class="separator:ga1c703cf89629e4e9c7023cd402d67028"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa7d869b117ba5024d6b84938e8cdfc65"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> { <br />
  <a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae003ec1158e3a4e295616ced12af154e">NORM</a> =0,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a93c0c1e166dd43c6a57f61e5490808e1">SCALED_NORM</a> =1,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ad4c32e295c08ebe224e2c5ba6497f043">INVERSE_NORM</a> =2,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae8c96906c1ec109d295c491e572d01e2">SCALED_INVERSE_NORM</a> =3,
<br />
  <a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65aa318172feec5b530e9a7849f2f7b44e7">SCALED_INVERSE_SHIFTED_NORM</a> =4,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65acb6911398e0068f545a31b82bcdef3e4">PRODUCT</a> =5,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a31a29a30f92fe34c35098f941adbbc93">SCALED_PRODUCT</a> =6,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65acb26952815118f5ced7703302dbeb556">INVERSE_PRODUCT</a> =7,
<br />
  <a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a1a5168576607f460d3e60f184575cacb">SCALED_INVERSE_PRODUCT</a> =8,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a2ad72f168181763513d7793c13bf2a91">DISTANCE</a> =9,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ace23d4b924240a245d83193f0ce398d4">SCALED_DISTANCE</a> =10,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a6313e6ff48163c11c47866c4fda4bfa0">INVERSE_DISTANCE</a> =11,
<br />
  <a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65ae5114537389194302c7a619e35e6e227">SCALED_INVERSE_DISTANCE</a> =12,
<a class="el" href="group__type.html#ggaa7d869b117ba5024d6b84938e8cdfc65a39111120b79016d6b3e773b711fa63f7">SCALED_INVERSE_SHIFTED_DISTANCE</a> =13
<br />
}</td></tr>
<tr class="memdesc:gaa7d869b117ba5024d6b84938e8cdfc65"><td class="mdescLeft"> </td><td class="mdescRight">Flags for specifying named phase functions. <a href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">More...</a><br /></td></tr>
<tr class="separator:gaa7d869b117ba5024d6b84938e8cdfc65"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad2e953390342cd361cfb4064d47715e6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#gad2e953390342cd361cfb4064d47715e6">applyDiagonalOp</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structDiagonalOp.html">DiagonalOp</a> op)</td></tr>
<tr class="memdesc:gad2e953390342cd361cfb4064d47715e6"><td class="mdescLeft"> </td><td class="mdescRight">Apply a diagonal operator, which is possibly non-unitary and non-Hermitian, to the entire <code>qureg</code>. <a href="group__operator.html#gad2e953390342cd361cfb4064d47715e6">More...</a><br /></td></tr>
<tr class="separator:gad2e953390342cd361cfb4064d47715e6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf26f32c25db760065486188497c1da8b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#gaf26f32c25db760065486188497c1da8b">applyFullQFT</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gaf26f32c25db760065486188497c1da8b"><td class="mdescLeft"> </td><td class="mdescRight">Applies the quantum Fourier transform (QFT) to the entirety of <code>qureg</code>. <a href="group__operator.html#gaf26f32c25db760065486188497c1da8b">More...</a><br /></td></tr>
<tr class="separator:gaf26f32c25db760065486188497c1da8b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadfb5c1d99a22ce666fc715a8da2e0950"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#gadfb5c1d99a22ce666fc715a8da2e0950">applyMatrix2</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:gadfb5c1d99a22ce666fc715a8da2e0950"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general 2-by-2 matrix, which may be non-unitary. <a href="group__operator.html#gadfb5c1d99a22ce666fc715a8da2e0950">More...</a><br /></td></tr>
<tr class="separator:gadfb5c1d99a22ce666fc715a8da2e0950"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga74a955ec4bce606d89317bcfc528387f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga74a955ec4bce606d89317bcfc528387f">applyMatrix4</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit1, int targetQubit2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> u)</td></tr>
<tr class="memdesc:ga74a955ec4bce606d89317bcfc528387f"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general 4-by-4 matrix, which may be non-unitary. <a href="group__operator.html#ga74a955ec4bce606d89317bcfc528387f">More...</a><br /></td></tr>
<tr class="separator:ga74a955ec4bce606d89317bcfc528387f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga358e7094a98851afa86d27f0147e32a1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga358e7094a98851afa86d27f0147e32a1">applyMatrixN</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *targs, int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:ga358e7094a98851afa86d27f0147e32a1"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general N-by-N matrix, which may be non-unitary, on any number of target qubits. <a href="group__operator.html#ga358e7094a98851afa86d27f0147e32a1">More...</a><br /></td></tr>
<tr class="separator:ga358e7094a98851afa86d27f0147e32a1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab52b6315c5520b7d311b0458785eed8e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#gab52b6315c5520b7d311b0458785eed8e">applyMultiControlledMatrixN</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *ctrls, int numCtrls, int *targs, int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:gab52b6315c5520b7d311b0458785eed8e"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general N-by-N matrix, which may be non-unitary, with additional controlled qubits. <a href="group__operator.html#gab52b6315c5520b7d311b0458785eed8e">More...</a><br /></td></tr>
<tr class="separator:gab52b6315c5520b7d311b0458785eed8e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga008a46d178a5a9691e2f5d363e3f518f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga008a46d178a5a9691e2f5d363e3f518f">applyMultiVarPhaseFunc</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *coeffs, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *exponents, int *numTermsPerReg)</td></tr>
<tr class="memdesc:ga008a46d178a5a9691e2f5d363e3f518f"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by a multi-variable exponential polynomial "phase function". <a href="group__operator.html#ga008a46d178a5a9691e2f5d363e3f518f">More...</a><br /></td></tr>
<tr class="separator:ga008a46d178a5a9691e2f5d363e3f518f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8dca543fb4d1ee1cd8b4c5d6028b3075"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga8dca543fb4d1ee1cd8b4c5d6028b3075">applyMultiVarPhaseFuncOverrides</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *coeffs, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *exponents, int *numTermsPerReg, long long int *overrideInds, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *overridePhases, int numOverrides)</td></tr>
<tr class="memdesc:ga8dca543fb4d1ee1cd8b4c5d6028b3075"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by a multi-variable exponential polynomial "phase function", and an explicit set of 'overriding' values at specific state indices. <a href="group__operator.html#ga8dca543fb4d1ee1cd8b4c5d6028b3075">More...</a><br /></td></tr>
<tr class="separator:ga8dca543fb4d1ee1cd8b4c5d6028b3075"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac4df97d8c125c8cc65df720f67b2bf69"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#gac4df97d8c125c8cc65df720f67b2bf69">applyNamedPhaseFunc</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, enum <a class="el" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode)</td></tr>
<tr class="memdesc:gac4df97d8c125c8cc65df720f67b2bf69"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by a named (and potentially multi-variable) phase function. <a href="group__operator.html#gac4df97d8c125c8cc65df720f67b2bf69">More...</a><br /></td></tr>
<tr class="separator:gac4df97d8c125c8cc65df720f67b2bf69"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2fbaec3bb21cc01f7a2a4ed2aa911ebf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga2fbaec3bb21cc01f7a2a4ed2aa911ebf">applyNamedPhaseFuncOverrides</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, enum <a class="el" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode, long long int *overrideInds, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *overridePhases, int numOverrides)</td></tr>
<tr class="memdesc:ga2fbaec3bb21cc01f7a2a4ed2aa911ebf"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by a named (and potentially multi-variable) phase function, and an explicit set of 'overriding' values at specific state indices. <a href="group__operator.html#ga2fbaec3bb21cc01f7a2a4ed2aa911ebf">More...</a><br /></td></tr>
<tr class="separator:ga2fbaec3bb21cc01f7a2a4ed2aa911ebf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga225b82ff8b8eed1fff312240ec70c731"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga225b82ff8b8eed1fff312240ec70c731">applyParamNamedPhaseFunc</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, enum <a class="el" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *params, int numParams)</td></tr>
<tr class="memdesc:ga225b82ff8b8eed1fff312240ec70c731"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by a named, paramaterized (and potentially multi-variable) phase function. <a href="group__operator.html#ga225b82ff8b8eed1fff312240ec70c731">More...</a><br /></td></tr>
<tr class="separator:ga225b82ff8b8eed1fff312240ec70c731"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaabd7efa3beebc9f3a525321d41a28989"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#gaabd7efa3beebc9f3a525321d41a28989">applyParamNamedPhaseFuncOverrides</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int *numQubitsPerReg, int numRegs, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, enum <a class="el" href="group__type.html#gaa7d869b117ba5024d6b84938e8cdfc65">phaseFunc</a> functionNameCode, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *params, int numParams, long long int *overrideInds, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *overridePhases, int numOverrides)</td></tr>
<tr class="memdesc:gaabd7efa3beebc9f3a525321d41a28989"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by a named, parameterised (and potentially multi-variable) phase function, and an explicit set of 'overriding' values at specific state indices. <a href="group__operator.html#gaabd7efa3beebc9f3a525321d41a28989">More...</a><br /></td></tr>
<tr class="separator:gaabd7efa3beebc9f3a525321d41a28989"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga54d4e589468002bdc998200ae45e7312"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga54d4e589468002bdc998200ae45e7312">applyPauliHamil</a> (<a class="el" href="structQureg.html">Qureg</a> inQureg, <a class="el" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="el" href="structQureg.html">Qureg</a> outQureg)</td></tr>
<tr class="memdesc:ga54d4e589468002bdc998200ae45e7312"><td class="mdescLeft"> </td><td class="mdescRight">Modifies <code>outQureg</code> to be the result of applying <code><a class="el" href="structPauliHamil.html" title="A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represen...">PauliHamil</a></code> (a Hermitian but not necessarily unitary operator) to <code>inQureg</code>. <a href="group__operator.html#ga54d4e589468002bdc998200ae45e7312">More...</a><br /></td></tr>
<tr class="separator:ga54d4e589468002bdc998200ae45e7312"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6fc26cf857db070e12959e59ecfed8a6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga6fc26cf857db070e12959e59ecfed8a6">applyPauliSum</a> (<a class="el" href="structQureg.html">Qureg</a> inQureg, enum <a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> *allPauliCodes, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *termCoeffs, int numSumTerms, <a class="el" href="structQureg.html">Qureg</a> outQureg)</td></tr>
<tr class="memdesc:ga6fc26cf857db070e12959e59ecfed8a6"><td class="mdescLeft"> </td><td class="mdescRight">Modifies <code>outQureg</code> to be the result of applying the weighted sum of Pauli products (a Hermitian but not necessarily unitary operator) to <code>inQureg</code>. <a href="group__operator.html#ga6fc26cf857db070e12959e59ecfed8a6">More...</a><br /></td></tr>
<tr class="separator:ga6fc26cf857db070e12959e59ecfed8a6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga467f517abd18dbc3d6fced84c6589161"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga467f517abd18dbc3d6fced84c6589161">applyPhaseFunc</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int numQubits, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *coeffs, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *exponents, int numTerms)</td></tr>
<tr class="memdesc:ga467f517abd18dbc3d6fced84c6589161"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by the passed exponential polynomial "phase function". <a href="group__operator.html#ga467f517abd18dbc3d6fced84c6589161">More...</a><br /></td></tr>
<tr class="separator:ga467f517abd18dbc3d6fced84c6589161"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf5344129240243ad11d0c081eb9036ab"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#gaf5344129240243ad11d0c081eb9036ab">applyPhaseFuncOverrides</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int numQubits, enum <a class="el" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *coeffs, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *exponents, int numTerms, long long int *overrideInds, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *overridePhases, int numOverrides)</td></tr>
<tr class="memdesc:gaf5344129240243ad11d0c081eb9036ab"><td class="mdescLeft"> </td><td class="mdescRight">Induces a phase change upon each amplitude of <code>qureg</code>, determined by the passed exponential polynomial "phase function", and an explicit set of 'overriding' values at specific state indices. <a href="group__operator.html#gaf5344129240243ad11d0c081eb9036ab">More...</a><br /></td></tr>
<tr class="separator:gaf5344129240243ad11d0c081eb9036ab"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga26db8b8a8a242d388c291e50d228ab18"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga26db8b8a8a242d388c291e50d228ab18">applyProjector</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int qubit, int outcome)</td></tr>
<tr class="memdesc:ga26db8b8a8a242d388c291e50d228ab18"><td class="mdescLeft"> </td><td class="mdescRight">Force the target <code>qubit</code> of <code>qureg</code> into the given classical <code>outcome</code>, via a non-renormalising projection. <a href="group__operator.html#ga26db8b8a8a242d388c291e50d228ab18">More...</a><br /></td></tr>
<tr class="separator:ga26db8b8a8a242d388c291e50d228ab18"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9bc8c4ab44f8233b5766208a0b1c0776"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga9bc8c4ab44f8233b5766208a0b1c0776">applyQFT</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int numQubits)</td></tr>
<tr class="memdesc:ga9bc8c4ab44f8233b5766208a0b1c0776"><td class="mdescLeft"> </td><td class="mdescRight">Applies the quantum Fourier transform (QFT) to a specific subset of qubits of the register <code>qureg</code>. <a href="group__operator.html#ga9bc8c4ab44f8233b5766208a0b1c0776">More...</a><br /></td></tr>
<tr class="separator:ga9bc8c4ab44f8233b5766208a0b1c0776"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga35b6321c578a8c69470132b5ee95f930"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">applyTrotterCircuit</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> time, int order, int reps)</td></tr>
<tr class="memdesc:ga35b6321c578a8c69470132b5ee95f930"><td class="mdescLeft"> </td><td class="mdescRight">Applies a trotterisation of unitary evolution <img class="formulaInl" alt="$ \exp(-i \, \text{hamil} \, \text{time}) $" src="form_235.png"/> to <code>qureg</code>. <a href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">More...</a><br /></td></tr>
<tr class="separator:ga35b6321c578a8c69470132b5ee95f930"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga658b3a5cab5e73a17a7fd76a83583a22"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga658b3a5cab5e73a17a7fd76a83583a22">calcDensityInnerProduct</a> (<a class="el" href="structQureg.html">Qureg</a> rho1, <a class="el" href="structQureg.html">Qureg</a> rho2)</td></tr>
<tr class="memdesc:ga658b3a5cab5e73a17a7fd76a83583a22"><td class="mdescLeft"> </td><td class="mdescRight">Computes the Hilbert-Schmidt scalar product (which is equivalent to the Frobenius inner product of matrices) of two density matrices <code>rho1</code> and <code>rho2</code> of equivalent size. <a href="group__calc.html#ga658b3a5cab5e73a17a7fd76a83583a22">More...</a><br /></td></tr>
<tr class="separator:ga658b3a5cab5e73a17a7fd76a83583a22"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga82f17e96a4cb7612fb9c6ef856df3810"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComplex.html">Complex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga82f17e96a4cb7612fb9c6ef856df3810">calcExpecDiagonalOp</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structDiagonalOp.html">DiagonalOp</a> op)</td></tr>
<tr class="memdesc:ga82f17e96a4cb7612fb9c6ef856df3810"><td class="mdescLeft"> </td><td class="mdescRight">Computes the expected value of the diagonal operator <code>op</code> for state <code>qureg</code>. <a href="group__calc.html#ga82f17e96a4cb7612fb9c6ef856df3810">More...</a><br /></td></tr>
<tr class="separator:ga82f17e96a4cb7612fb9c6ef856df3810"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5544d2833a69941b8820797b79daf79f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">calcExpecPauliHamil</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="el" href="structQureg.html">Qureg</a> workspace)</td></tr>
<tr class="memdesc:ga5544d2833a69941b8820797b79daf79f"><td class="mdescLeft"> </td><td class="mdescRight">Computes the expected value of <code>qureg</code> under Hermitian operator <code>hamil</code>. <a href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">More...</a><br /></td></tr>
<tr class="separator:ga5544d2833a69941b8820797b79daf79f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga15cfad3f3d26339128e3be32ae7deacd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga15cfad3f3d26339128e3be32ae7deacd">calcExpecPauliProd</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *targetQubits, enum <a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> *pauliCodes, int numTargets, <a class="el" href="structQureg.html">Qureg</a> workspace)</td></tr>
<tr class="memdesc:ga15cfad3f3d26339128e3be32ae7deacd"><td class="mdescLeft"> </td><td class="mdescRight">Computes the expected value of a product of Pauli operators. <a href="group__calc.html#ga15cfad3f3d26339128e3be32ae7deacd">More...</a><br /></td></tr>
<tr class="separator:ga15cfad3f3d26339128e3be32ae7deacd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga50ee589fd5ceab52fdd70d0082352b41"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga50ee589fd5ceab52fdd70d0082352b41">calcExpecPauliSum</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, enum <a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> *allPauliCodes, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *termCoeffs, int numSumTerms, <a class="el" href="structQureg.html">Qureg</a> workspace)</td></tr>
<tr class="memdesc:ga50ee589fd5ceab52fdd70d0082352b41"><td class="mdescLeft"> </td><td class="mdescRight">Computes the expected value of a sum of products of Pauli operators. <a href="group__calc.html#ga50ee589fd5ceab52fdd70d0082352b41">More...</a><br /></td></tr>
<tr class="separator:ga50ee589fd5ceab52fdd70d0082352b41"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa266ed6c8ae5d0d0f49e1ac50819cffc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#gaa266ed6c8ae5d0d0f49e1ac50819cffc">calcFidelity</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structQureg.html">Qureg</a> pureState)</td></tr>
<tr class="memdesc:gaa266ed6c8ae5d0d0f49e1ac50819cffc"><td class="mdescLeft"> </td><td class="mdescRight">Calculates the fidelity of <code>qureg</code> (a state-vector or density matrix) against a reference pure state (necessarily a state-vector). <a href="group__calc.html#gaa266ed6c8ae5d0d0f49e1ac50819cffc">More...</a><br /></td></tr>
<tr class="separator:gaa266ed6c8ae5d0d0f49e1ac50819cffc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga87ddbe5c8281543541ccd99e0dafd387"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga87ddbe5c8281543541ccd99e0dafd387">calcHilbertSchmidtDistance</a> (<a class="el" href="structQureg.html">Qureg</a> a, <a class="el" href="structQureg.html">Qureg</a> b)</td></tr>
<tr class="memdesc:ga87ddbe5c8281543541ccd99e0dafd387"><td class="mdescLeft"> </td><td class="mdescRight">Computes the Hilbert Schmidt distance between two density matrices <code>a</code> and <code>b</code>, defined as the Frobenius norm of the difference between them. <a href="group__calc.html#ga87ddbe5c8281543541ccd99e0dafd387">More...</a><br /></td></tr>
<tr class="separator:ga87ddbe5c8281543541ccd99e0dafd387"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga374ad70804998394ae41ebfe106258a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComplex.html">Complex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga374ad70804998394ae41ebfe106258a6">calcInnerProduct</a> (<a class="el" href="structQureg.html">Qureg</a> bra, <a class="el" href="structQureg.html">Qureg</a> ket)</td></tr>
<tr class="memdesc:ga374ad70804998394ae41ebfe106258a6"><td class="mdescLeft"> </td><td class="mdescRight">Computes the inner product <img class="formulaInl" alt="$ \langle \text{bra} | \text{ket} \rangle $" src="form_146.png"/> of two equal-size state vectors, given by. <a href="group__calc.html#ga374ad70804998394ae41ebfe106258a6">More...</a><br /></td></tr>
<tr class="separator:ga374ad70804998394ae41ebfe106258a6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad0cc08d52cad5062553d6f78126780cc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#gad0cc08d52cad5062553d6f78126780cc">calcProbOfAllOutcomes</a> (<a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *outcomeProbs, <a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int numQubits)</td></tr>
<tr class="memdesc:gad0cc08d52cad5062553d6f78126780cc"><td class="mdescLeft"> </td><td class="mdescRight">Populates <code>outcomeProbs</code> with the probabilities of every outcome of the sub-register contained in <code>qubits</code>. <a href="group__calc.html#gad0cc08d52cad5062553d6f78126780cc">More...</a><br /></td></tr>
<tr class="separator:gad0cc08d52cad5062553d6f78126780cc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2a7946e6fa4f44c9ae0c6c9f683229ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">calcProbOfOutcome</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int measureQubit, int outcome)</td></tr>
<tr class="memdesc:ga2a7946e6fa4f44c9ae0c6c9f683229ad"><td class="mdescLeft"> </td><td class="mdescRight">Gives the probability of a specified qubit being measured in the given outcome (0 or 1). <a href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">More...</a><br /></td></tr>
<tr class="separator:ga2a7946e6fa4f44c9ae0c6c9f683229ad"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga683779343fb2c6055f6b1d01079c2ede"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga683779343fb2c6055f6b1d01079c2ede">calcPurity</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga683779343fb2c6055f6b1d01079c2ede"><td class="mdescLeft"> </td><td class="mdescRight">Calculates the purity of a density matrix, by the trace of the density matrix squared. <a href="group__calc.html#ga683779343fb2c6055f6b1d01079c2ede">More...</a><br /></td></tr>
<tr class="separator:ga683779343fb2c6055f6b1d01079c2ede"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab082910d33473ec29e1d5852943de468"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#gab082910d33473ec29e1d5852943de468">calcTotalProb</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gab082910d33473ec29e1d5852943de468"><td class="mdescLeft"> </td><td class="mdescRight">A debugging function which calculates the probability of the qubits in <code>qureg</code> being in any state, which should always be 1 for correctly normalised states (hence returning a real number). <a href="group__calc.html#gab082910d33473ec29e1d5852943de468">More...</a><br /></td></tr>
<tr class="separator:gab082910d33473ec29e1d5852943de468"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab3a410abab3e8beb394bd3bbfae8977c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__qasm.html#gab3a410abab3e8beb394bd3bbfae8977c">clearRecordedQASM</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gab3a410abab3e8beb394bd3bbfae8977c"><td class="mdescLeft"> </td><td class="mdescRight">Clear all QASM so far recorded. <a href="group__qasm.html#gab3a410abab3e8beb394bd3bbfae8977c">More...</a><br /></td></tr>
<tr class="separator:gab3a410abab3e8beb394bd3bbfae8977c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4534403b721977b669bff7bf4e37f0fb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga4534403b721977b669bff7bf4e37f0fb">cloneQureg</a> (<a class="el" href="structQureg.html">Qureg</a> targetQureg, <a class="el" href="structQureg.html">Qureg</a> copyQureg)</td></tr>
<tr class="memdesc:ga4534403b721977b669bff7bf4e37f0fb"><td class="mdescLeft"> </td><td class="mdescRight">Overwrite the amplitudes of <code>targetQureg</code> with those from <code>copyQureg</code>. <a href="group__init.html#ga4534403b721977b669bff7bf4e37f0fb">More...</a><br /></td></tr>
<tr class="separator:ga4534403b721977b669bff7bf4e37f0fb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga34457f7f62ccd75fb7d3fe67cd2f815a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__normgate.html#ga34457f7f62ccd75fb7d3fe67cd2f815a">collapseToOutcome</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int measureQubit, int outcome)</td></tr>
<tr class="memdesc:ga34457f7f62ccd75fb7d3fe67cd2f815a"><td class="mdescLeft"> </td><td class="mdescRight">Updates <code>qureg</code> to be consistent with measuring <code>measureQubit</code> in the given <code>outcome</code> (0 or 1), and returns the probability of such a measurement outcome. <a href="group__normgate.html#ga34457f7f62ccd75fb7d3fe67cd2f815a">More...</a><br /></td></tr>
<tr class="separator:ga34457f7f62ccd75fb7d3fe67cd2f815a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaefaa7acba90373efe4e0f0b94987c734"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaefaa7acba90373efe4e0f0b94987c734">compactUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="structComplex.html">Complex</a> alpha, <a class="el" href="structComplex.html">Complex</a> beta)</td></tr>
<tr class="memdesc:gaefaa7acba90373efe4e0f0b94987c734"><td class="mdescLeft"> </td><td class="mdescRight">Apply a single-qubit unitary parameterised by two given complex scalars. <a href="group__unitary.html#gaefaa7acba90373efe4e0f0b94987c734">More...</a><br /></td></tr>
<tr class="separator:gaefaa7acba90373efe4e0f0b94987c734"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf7e15bf09c64082e0a8467998eb25623"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaf7e15bf09c64082e0a8467998eb25623">controlledCompactUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit, <a class="el" href="structComplex.html">Complex</a> alpha, <a class="el" href="structComplex.html">Complex</a> beta)</td></tr>
<tr class="memdesc:gaf7e15bf09c64082e0a8467998eb25623"><td class="mdescLeft"> </td><td class="mdescRight">Apply a controlled unitary (single control, single target) parameterised by two given complex scalars. <a href="group__unitary.html#gaf7e15bf09c64082e0a8467998eb25623">More...</a><br /></td></tr>
<tr class="separator:gaf7e15bf09c64082e0a8467998eb25623"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaeb975903209000ebbaf50ef1cc353a79"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaeb975903209000ebbaf50ef1cc353a79">controlledMultiQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int ctrl, int *targs, int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:gaeb975903209000ebbaf50ef1cc353a79"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general controlled multi-qubit unitary (including a global phase factor). <a href="group__unitary.html#gaeb975903209000ebbaf50ef1cc353a79">More...</a><br /></td></tr>
<tr class="separator:gaeb975903209000ebbaf50ef1cc353a79"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa5a138473a4433c853c6e66e7aabc237"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaa5a138473a4433c853c6e66e7aabc237">controlledNot</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit)</td></tr>
<tr class="memdesc:gaa5a138473a4433c853c6e66e7aabc237"><td class="mdescLeft"> </td><td class="mdescRight">Apply the controlled not (single control, single target) gate, also known as the c-X, c-sigma-X, c-Pauli-X and c-bit-flip gate. <a href="group__unitary.html#gaa5a138473a4433c853c6e66e7aabc237">More...</a><br /></td></tr>
<tr class="separator:gaa5a138473a4433c853c6e66e7aabc237"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5e5fdaa7d3dd449b3e2c5d4a01bd015a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga5e5fdaa7d3dd449b3e2c5d4a01bd015a">controlledPauliY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit)</td></tr>
<tr class="memdesc:ga5e5fdaa7d3dd449b3e2c5d4a01bd015a"><td class="mdescLeft"> </td><td class="mdescRight">Apply the controlled pauliY (single control, single target) gate, also known as the c-Y and c-sigma-Y gate. <a href="group__unitary.html#ga5e5fdaa7d3dd449b3e2c5d4a01bd015a">More...</a><br /></td></tr>
<tr class="separator:ga5e5fdaa7d3dd449b3e2c5d4a01bd015a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2fa310101ecffd6aeba96f77b7d85f56"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga2fa310101ecffd6aeba96f77b7d85f56">controlledPhaseFlip</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int idQubit1, int idQubit2)</td></tr>
<tr class="memdesc:ga2fa310101ecffd6aeba96f77b7d85f56"><td class="mdescLeft"> </td><td class="mdescRight">Apply the (two-qubit) controlled phase flip gate, also known as the controlled pauliZ gate. <a href="group__unitary.html#ga2fa310101ecffd6aeba96f77b7d85f56">More...</a><br /></td></tr>
<tr class="separator:ga2fa310101ecffd6aeba96f77b7d85f56"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7214a79aa22ae7a50ad6f38615968cb0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga7214a79aa22ae7a50ad6f38615968cb0">controlledPhaseShift</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int idQubit1, int idQubit2, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga7214a79aa22ae7a50ad6f38615968cb0"><td class="mdescLeft"> </td><td class="mdescRight">Introduce a phase factor <img class="formulaInl" alt="$ \exp(i \theta) $" src="form_67.png"/> on state <img class="formulaInl" alt="$ |11\rangle $" src="form_68.png"/> of qubits <code>idQubit1</code> and <code>idQubit2</code>. <a href="group__unitary.html#ga7214a79aa22ae7a50ad6f38615968cb0">More...</a><br /></td></tr>
<tr class="separator:ga7214a79aa22ae7a50ad6f38615968cb0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0c84c429cb1d7e2596706c1804dd9cba"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga0c84c429cb1d7e2596706c1804dd9cba">controlledRotateAroundAxis</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="el" href="structVector.html">Vector</a> axis)</td></tr>
<tr class="memdesc:ga0c84c429cb1d7e2596706c1804dd9cba"><td class="mdescLeft"> </td><td class="mdescRight">Applies a controlled rotation by a given angle around a given vector on the Bloch-sphere. <a href="group__unitary.html#ga0c84c429cb1d7e2596706c1804dd9cba">More...</a><br /></td></tr>
<tr class="separator:ga0c84c429cb1d7e2596706c1804dd9cba"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga13f904b417f647c70d163770e65906fc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">controlledRotateX</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga13f904b417f647c70d163770e65906fc"><td class="mdescLeft"> </td><td class="mdescRight">Applies a controlled rotation by a given angle around the X-axis of the Bloch-sphere. <a href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">More...</a><br /></td></tr>
<tr class="separator:ga13f904b417f647c70d163770e65906fc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafbbded98b7233f5da06d74d1db5cbfdb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gafbbded98b7233f5da06d74d1db5cbfdb">controlledRotateY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:gafbbded98b7233f5da06d74d1db5cbfdb"><td class="mdescLeft"> </td><td class="mdescRight">Applies a controlled rotation by a given angle around the Y-axis of the Bloch-sphere. <a href="group__unitary.html#gafbbded98b7233f5da06d74d1db5cbfdb">More...</a><br /></td></tr>
<tr class="separator:gafbbded98b7233f5da06d74d1db5cbfdb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7eb969c1dd6c949aecf716d2fba71120"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga7eb969c1dd6c949aecf716d2fba71120">controlledRotateZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga7eb969c1dd6c949aecf716d2fba71120"><td class="mdescLeft"> </td><td class="mdescRight">Applies a controlled rotation by a given angle around the Z-axis of the Bloch-sphere. <a href="group__unitary.html#ga7eb969c1dd6c949aecf716d2fba71120">More...</a><br /></td></tr>
<tr class="separator:ga7eb969c1dd6c949aecf716d2fba71120"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3d89916b46bc4aaf23e938022e6c89c1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga3d89916b46bc4aaf23e938022e6c89c1">controlledTwoQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit1, int targetQubit2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> u)</td></tr>
<tr class="memdesc:ga3d89916b46bc4aaf23e938022e6c89c1"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general controlled two-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga3d89916b46bc4aaf23e938022e6c89c1">More...</a><br /></td></tr>
<tr class="separator:ga3d89916b46bc4aaf23e938022e6c89c1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa3fb996a5cadd098f4acd8aec955cf9c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaa3fb996a5cadd098f4acd8aec955cf9c">controlledUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int controlQubit, int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:gaa3fb996a5cadd098f4acd8aec955cf9c"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general controlled unitary (single control, single target), which can include a global phase factor. <a href="group__unitary.html#gaa3fb996a5cadd098f4acd8aec955cf9c">More...</a><br /></td></tr>
<tr class="separator:gaa3fb996a5cadd098f4acd8aec955cf9c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga924ef2dbda6b733b4041270077c76ece"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga924ef2dbda6b733b4041270077c76ece">copyStateFromGPU</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga924ef2dbda6b733b4041270077c76ece"><td class="mdescLeft"> </td><td class="mdescRight">In GPU mode, this copies the state-vector (or density matrix) from GPU memory (qureg.deviceStateVec) to RAM (qureg.stateVec), where it can be accessed/modified by the user. <a href="group__debug.html#ga924ef2dbda6b733b4041270077c76ece">More...</a><br /></td></tr>
<tr class="separator:ga924ef2dbda6b733b4041270077c76ece"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga11448560006dd165128e404b54ebb2f7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga11448560006dd165128e404b54ebb2f7">copyStateToGPU</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga11448560006dd165128e404b54ebb2f7"><td class="mdescLeft"> </td><td class="mdescRight">In GPU mode, this copies the state-vector (or density matrix) from RAM (qureg.stateVec) to VRAM / GPU-memory (qureg.deviceStateVec), which is the version operated upon by other calls to the API. <a href="group__debug.html#ga11448560006dd165128e404b54ebb2f7">More...</a><br /></td></tr>
<tr class="separator:ga11448560006dd165128e404b54ebb2f7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabd07eee133dcd4e6ae7c2d2ce4c42978"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structQureg.html">Qureg</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gabd07eee133dcd4e6ae7c2d2ce4c42978">createCloneQureg</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:gabd07eee133dcd4e6ae7c2d2ce4c42978"><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="structQureg.html" title="Represents a system of qubits.">Qureg</a> which is an exact clone of the passed qureg, which can be either a state-vector or a density matrix. <a href="group__type.html#gabd07eee133dcd4e6ae7c2d2ce4c42978">More...</a><br /></td></tr>
<tr class="separator:gabd07eee133dcd4e6ae7c2d2ce4c42978"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga815103261fb22ea9690e1427571df00e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga815103261fb22ea9690e1427571df00e">createComplexMatrixN</a> (int numQubits)</td></tr>
<tr class="memdesc:ga815103261fb22ea9690e1427571df00e"><td class="mdescLeft"> </td><td class="mdescRight">Allocate dynamic memory for a square complex matrix of any size, which can be passed to functions like <a class="el" href="group__unitary.html#ga20bf9b8a71b8a3ee4651e9497e6d1f4f" title="Apply a general multi-qubit unitary (including a global phase factor) with any number of target qubit...">multiQubitUnitary()</a> and <a class="el" href="group__operator.html#ga358e7094a98851afa86d27f0147e32a1" title="Apply a general N-by-N matrix, which may be non-unitary, on any number of target qubits.">applyMatrixN()</a>. <a href="group__type.html#ga815103261fb22ea9690e1427571df00e">More...</a><br /></td></tr>
<tr class="separator:ga815103261fb22ea9690e1427571df00e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga93e55b6650b408abb30a1d4a8bce757c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structQureg.html">Qureg</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga93e55b6650b408abb30a1d4a8bce757c">createDensityQureg</a> (int numQubits, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:ga93e55b6650b408abb30a1d4a8bce757c"><td class="mdescLeft"> </td><td class="mdescRight">Creates a density matrix <a class="el" href="structQureg.html" title="Represents a system of qubits.">Qureg</a> object representing a set of qubits which can enter noisy and mixed states. <a href="group__type.html#ga93e55b6650b408abb30a1d4a8bce757c">More...</a><br /></td></tr>
<tr class="separator:ga93e55b6650b408abb30a1d4a8bce757c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaebf896dd8d5eeaf9fd896f6cc8e334fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDiagonalOp.html">DiagonalOp</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gaebf896dd8d5eeaf9fd896f6cc8e334fe">createDiagonalOp</a> (int numQubits, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:gaebf896dd8d5eeaf9fd896f6cc8e334fe"><td class="mdescLeft"> </td><td class="mdescRight">Creates a <a class="el" href="structDiagonalOp.html" title="Represents a diagonal complex operator on the full Hilbert state of a Qureg.">DiagonalOp</a> representing a diagonal operator on the full Hilbert space of a <a class="el" href="structQureg.html" title="Represents a system of qubits.">Qureg</a>. <a href="group__type.html#gaebf896dd8d5eeaf9fd896f6cc8e334fe">More...</a><br /></td></tr>
<tr class="separator:gaebf896dd8d5eeaf9fd896f6cc8e334fe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa86572b44755646858d6b0292d53cc15"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDiagonalOp.html">DiagonalOp</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gaa86572b44755646858d6b0292d53cc15">createDiagonalOpFromPauliHamilFile</a> (char *fn, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:gaa86572b44755646858d6b0292d53cc15"><td class="mdescLeft"> </td><td class="mdescRight">Creates and initialiases a diagonal operator from the Z Pauli Hamiltonian encoded in file with filename <code>fn</code>. <a href="group__type.html#gaa86572b44755646858d6b0292d53cc15">More...</a><br /></td></tr>
<tr class="separator:gaa86572b44755646858d6b0292d53cc15"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga35b28710877c462927366fa602e591cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structPauliHamil.html">PauliHamil</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga35b28710877c462927366fa602e591cb">createPauliHamil</a> (int numQubits, int numSumTerms)</td></tr>
<tr class="memdesc:ga35b28710877c462927366fa602e591cb"><td class="mdescLeft"> </td><td class="mdescRight">Dynamically allocates a Hamiltonian expressed as a real-weighted sum of products of Pauli operators. <a href="group__type.html#ga35b28710877c462927366fa602e591cb">More...</a><br /></td></tr>
<tr class="separator:ga35b28710877c462927366fa602e591cb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa77376c5e3518186eb085f37826d6008"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structPauliHamil.html">PauliHamil</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gaa77376c5e3518186eb085f37826d6008">createPauliHamilFromFile</a> (char *fn)</td></tr>
<tr class="memdesc:gaa77376c5e3518186eb085f37826d6008"><td class="mdescLeft"> </td><td class="mdescRight">Creates a <code><a class="el" href="structPauliHamil.html" title="A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represen...">PauliHamil</a></code> instance, a real-weighted sum of products of Pauli operators, populated with the data in filename <code>fn</code>. <a href="group__type.html#gaa77376c5e3518186eb085f37826d6008">More...</a><br /></td></tr>
<tr class="separator:gaa77376c5e3518186eb085f37826d6008"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8ba2c3388dd64d9348c3b091852d36d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structQuESTEnv.html">QuESTEnv</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga8ba2c3388dd64d9348c3b091852d36d4">createQuESTEnv</a> (void)</td></tr>
<tr class="memdesc:ga8ba2c3388dd64d9348c3b091852d36d4"><td class="mdescLeft"> </td><td class="mdescRight">Create the QuEST execution environment. <a href="group__type.html#ga8ba2c3388dd64d9348c3b091852d36d4">More...</a><br /></td></tr>
<tr class="separator:ga8ba2c3388dd64d9348c3b091852d36d4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3392816c0643414165c2f5caeec17df0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structQureg.html">Qureg</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga3392816c0643414165c2f5caeec17df0">createQureg</a> (int numQubits, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:ga3392816c0643414165c2f5caeec17df0"><td class="mdescLeft"> </td><td class="mdescRight">Creates a state-vector <a class="el" href="structQureg.html" title="Represents a system of qubits.">Qureg</a> object representing a set of qubits which will remain in a pure state. <a href="group__type.html#ga3392816c0643414165c2f5caeec17df0">More...</a><br /></td></tr>
<tr class="separator:ga3392816c0643414165c2f5caeec17df0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9df2f3d86be4a6e9aad481665e5e6753"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga9df2f3d86be4a6e9aad481665e5e6753">destroyComplexMatrixN</a> (<a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> matr)</td></tr>
<tr class="memdesc:ga9df2f3d86be4a6e9aad481665e5e6753"><td class="mdescLeft"> </td><td class="mdescRight">Destroy a <a class="el" href="structComplexMatrixN.html" title="Represents a general 2^N by 2^N matrix of complex numbers.">ComplexMatrixN</a> instance created with <a class="el" href="group__type.html#ga815103261fb22ea9690e1427571df00e" title="Allocate dynamic memory for a square complex matrix of any size, which can be passed to functions lik...">createComplexMatrixN()</a> <a href="group__type.html#ga9df2f3d86be4a6e9aad481665e5e6753">More...</a><br /></td></tr>
<tr class="separator:ga9df2f3d86be4a6e9aad481665e5e6753"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2c59f45fab56708f687b4104ee99bcd1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga2c59f45fab56708f687b4104ee99bcd1">destroyDiagonalOp</a> (<a class="el" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:ga2c59f45fab56708f687b4104ee99bcd1"><td class="mdescLeft"> </td><td class="mdescRight">Destroys a <a class="el" href="structDiagonalOp.html" title="Represents a diagonal complex operator on the full Hilbert state of a Qureg.">DiagonalOp</a> created with <a class="el" href="group__type.html#gaebf896dd8d5eeaf9fd896f6cc8e334fe" title="Creates a DiagonalOp representing a diagonal operator on the full Hilbert space of a Qureg.">createDiagonalOp()</a>, freeing its memory. <a href="group__type.html#ga2c59f45fab56708f687b4104ee99bcd1">More...</a><br /></td></tr>
<tr class="separator:ga2c59f45fab56708f687b4104ee99bcd1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac1c8ed909b33bd55ae680901006051b6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gac1c8ed909b33bd55ae680901006051b6">destroyPauliHamil</a> (<a class="el" href="structPauliHamil.html">PauliHamil</a> hamil)</td></tr>
<tr class="memdesc:gac1c8ed909b33bd55ae680901006051b6"><td class="mdescLeft"> </td><td class="mdescRight">Destroy a <a class="el" href="structPauliHamil.html" title="A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represen...">PauliHamil</a> instance, created with either <a class="el" href="group__type.html#ga35b28710877c462927366fa602e591cb" title="Dynamically allocates a Hamiltonian expressed as a real-weighted sum of products of Pauli operators.">createPauliHamil()</a> or <a class="el" href="group__type.html#gaa77376c5e3518186eb085f37826d6008" title="Creates a PauliHamil instance, a real-weighted sum of products of Pauli operators,...">createPauliHamilFromFile()</a>. <a href="group__type.html#gac1c8ed909b33bd55ae680901006051b6">More...</a><br /></td></tr>
<tr class="separator:gac1c8ed909b33bd55ae680901006051b6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaeff624226629d7063a8a776958a4f991"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gaeff624226629d7063a8a776958a4f991">destroyQuESTEnv</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:gaeff624226629d7063a8a776958a4f991"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the QuEST environment. <a href="group__type.html#gaeff624226629d7063a8a776958a4f991">More...</a><br /></td></tr>
<tr class="separator:gaeff624226629d7063a8a776958a4f991"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8e1e6ad3254892edc2ee08712ea9d692"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga8e1e6ad3254892edc2ee08712ea9d692">destroyQureg</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:ga8e1e6ad3254892edc2ee08712ea9d692"><td class="mdescLeft"> </td><td class="mdescRight">Deallocate a <a class="el" href="structQureg.html" title="Represents a system of qubits.">Qureg</a>, freeing its memory. <a href="group__type.html#ga8e1e6ad3254892edc2ee08712ea9d692">More...</a><br /></td></tr>
<tr class="separator:ga8e1e6ad3254892edc2ee08712ea9d692"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga30d6f8b7c766c9c9914b2c61a2fc0def"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComplex.html">Complex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga30d6f8b7c766c9c9914b2c61a2fc0def">getAmp</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, long long int index)</td></tr>
<tr class="memdesc:ga30d6f8b7c766c9c9914b2c61a2fc0def"><td class="mdescLeft"> </td><td class="mdescRight">Get the complex amplitude at a given index in the state vector. <a href="group__calc.html#ga30d6f8b7c766c9c9914b2c61a2fc0def">More...</a><br /></td></tr>
<tr class="separator:ga30d6f8b7c766c9c9914b2c61a2fc0def"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadca286c4ad5cde6124d4e80a7ab95a68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComplex.html">Complex</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#gadca286c4ad5cde6124d4e80a7ab95a68">getDensityAmp</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, long long int row, long long int col)</td></tr>
<tr class="memdesc:gadca286c4ad5cde6124d4e80a7ab95a68"><td class="mdescLeft"> </td><td class="mdescRight">Get an amplitude from a density matrix at a given row and column. <a href="group__calc.html#gadca286c4ad5cde6124d4e80a7ab95a68">More...</a><br /></td></tr>
<tr class="separator:gadca286c4ad5cde6124d4e80a7ab95a68"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadc5c01d8ea32e28c188db52be26116b6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gadc5c01d8ea32e28c188db52be26116b6">getEnvironmentString</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> env, char str[200])</td></tr>
<tr class="memdesc:gadc5c01d8ea32e28c188db52be26116b6"><td class="mdescLeft"> </td><td class="mdescRight">Sets <code>str</code> to a string containing information about the runtime environment, including whether simulation is using CUDA (for GPU), OpenMP (for multithreading) and/or MPI (for distribution). <a href="group__debug.html#gadc5c01d8ea32e28c188db52be26116b6">More...</a><br /></td></tr>
<tr class="separator:gadc5c01d8ea32e28c188db52be26116b6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad575782de461d9ab0975b38cc7850f1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#gad575782de461d9ab0975b38cc7850f1a">getImagAmp</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, long long int index)</td></tr>
<tr class="memdesc:gad575782de461d9ab0975b38cc7850f1a"><td class="mdescLeft"> </td><td class="mdescRight">Get the imaginary component of the complex probability amplitude at an index in the state vector. <a href="group__calc.html#gad575782de461d9ab0975b38cc7850f1a">More...</a><br /></td></tr>
<tr class="separator:gad575782de461d9ab0975b38cc7850f1a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8cbe422d4981bf06847d229a4c6aa3df"><td class="memItemLeft" align="right" valign="top">long long int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga8cbe422d4981bf06847d229a4c6aa3df">getNumAmps</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga8cbe422d4981bf06847d229a4c6aa3df"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of complex amplitudes in a state-vector <code>qureg</code>. <a href="group__calc.html#ga8cbe422d4981bf06847d229a4c6aa3df">More...</a><br /></td></tr>
<tr class="separator:ga8cbe422d4981bf06847d229a4c6aa3df"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga73036c778d800703585ab3d8796a915f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga73036c778d800703585ab3d8796a915f">getNumQubits</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga73036c778d800703585ab3d8796a915f"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of qubits represented by <code>qureg</code>. <a href="group__calc.html#ga73036c778d800703585ab3d8796a915f">More...</a><br /></td></tr>
<tr class="separator:ga73036c778d800703585ab3d8796a915f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4a14d22379d399760b0cfc5c8053589b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga4a14d22379d399760b0cfc5c8053589b">getProbAmp</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, long long int index)</td></tr>
<tr class="memdesc:ga4a14d22379d399760b0cfc5c8053589b"><td class="mdescLeft"> </td><td class="mdescRight">Get the probability of a state-vector at an index in the full state vector. <a href="group__calc.html#ga4a14d22379d399760b0cfc5c8053589b">More...</a><br /></td></tr>
<tr class="separator:ga4a14d22379d399760b0cfc5c8053589b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaaf64c49f51b622702e66d917bf5b5e16"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gaaf64c49f51b622702e66d917bf5b5e16">getQuESTSeeds</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> env, unsigned long int **seeds, int *numSeeds)</td></tr>
<tr class="memdesc:gaaf64c49f51b622702e66d917bf5b5e16"><td class="mdescLeft"> </td><td class="mdescRight">Obtain the seeds presently used in random number generation. <a href="group__debug.html#gaaf64c49f51b622702e66d917bf5b5e16">More...</a><br /></td></tr>
<tr class="separator:gaaf64c49f51b622702e66d917bf5b5e16"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1416145280c62c5dd5ec9bed89b4cd05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__calc.html#ga1416145280c62c5dd5ec9bed89b4cd05">getRealAmp</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, long long int index)</td></tr>
<tr class="memdesc:ga1416145280c62c5dd5ec9bed89b4cd05"><td class="mdescLeft"> </td><td class="mdescRight">Get the real component of the complex probability amplitude at an index in the state vector. <a href="group__calc.html#ga1416145280c62c5dd5ec9bed89b4cd05">More...</a><br /></td></tr>
<tr class="separator:ga1416145280c62c5dd5ec9bed89b4cd05"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6532decd6c404189915563492f090e6f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga6532decd6c404189915563492f090e6f">hadamard</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit)</td></tr>
<tr class="memdesc:ga6532decd6c404189915563492f090e6f"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit Hadamard gate. <a href="group__unitary.html#ga6532decd6c404189915563492f090e6f">More...</a><br /></td></tr>
<tr class="separator:ga6532decd6c404189915563492f090e6f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gada7230491a50cd409f8b00f5ee1db953"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gada7230491a50cd409f8b00f5ee1db953">initBlankState</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gada7230491a50cd409f8b00f5ee1db953"><td class="mdescLeft"> </td><td class="mdescRight">Initialises a qureg to have all-zero-amplitudes. <a href="group__init.html#gada7230491a50cd409f8b00f5ee1db953">More...</a><br /></td></tr>
<tr class="separator:gada7230491a50cd409f8b00f5ee1db953"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0379e21efca0767a22607fc0e26a5a22"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga0379e21efca0767a22607fc0e26a5a22">initClassicalState</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, long long int stateInd)</td></tr>
<tr class="memdesc:ga0379e21efca0767a22607fc0e26a5a22"><td class="mdescLeft"> </td><td class="mdescRight">Initialise <code>qureg</code> into the classical state (also known as a "computational basis state") with index <code>stateInd</code>. <a href="group__init.html#ga0379e21efca0767a22607fc0e26a5a22">More...</a><br /></td></tr>
<tr class="separator:ga0379e21efca0767a22607fc0e26a5a22"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga429f1b90b3ef06c786dec8c7f0eda4ce"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga429f1b90b3ef06c786dec8c7f0eda4ce">initComplexMatrixN</a> (<a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> m, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> real[][1<< m.numQubits], <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> imag[][1<< m.numQubits])</td></tr>
<tr class="memdesc:ga429f1b90b3ef06c786dec8c7f0eda4ce"><td class="mdescLeft"> </td><td class="mdescRight">Initialises a <a class="el" href="structComplexMatrixN.html" title="Represents a general 2^N by 2^N matrix of complex numbers.">ComplexMatrixN</a> instance to have the passed <code>real</code> and <code>imag</code> values. <a href="group__type.html#ga429f1b90b3ef06c786dec8c7f0eda4ce">More...</a><br /></td></tr>
<tr class="separator:ga429f1b90b3ef06c786dec8c7f0eda4ce"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa696c94112e5fbbc996af10dfc4e2c1c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gaa696c94112e5fbbc996af10dfc4e2c1c">initDebugState</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gaa696c94112e5fbbc996af10dfc4e2c1c"><td class="mdescLeft"> </td><td class="mdescRight">Initialises <code>qureg</code> to be in the un-normalised, non-physical state with with <img class="formulaInl" alt="$n$" src="form_60.png"/>-th complex amplitude given by <img class="formulaInl" alt="$2n/10 + i(2n+1)/10$" src="form_61.png"/>. <a href="group__debug.html#gaa696c94112e5fbbc996af10dfc4e2c1c">More...</a><br /></td></tr>
<tr class="separator:gaa696c94112e5fbbc996af10dfc4e2c1c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga12a6c59ebbfba8bdb9453a4138027d46"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga12a6c59ebbfba8bdb9453a4138027d46">initDiagonalOp</a> (<a class="el" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *real, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *imag)</td></tr>
<tr class="memdesc:ga12a6c59ebbfba8bdb9453a4138027d46"><td class="mdescLeft"> </td><td class="mdescRight">Overwrites the entire <a class="el" href="structDiagonalOp.html" title="Represents a diagonal complex operator on the full Hilbert state of a Qureg.">DiagonalOp</a> <code>op</code> with the given <code>real</code> and <code>imag</code> complex elements. <a href="group__type.html#ga12a6c59ebbfba8bdb9453a4138027d46">More...</a><br /></td></tr>
<tr class="separator:ga12a6c59ebbfba8bdb9453a4138027d46"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2ecd67e0de9efcbbe37afbad28a8ffad"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#ga2ecd67e0de9efcbbe37afbad28a8ffad">initDiagonalOpFromPauliHamil</a> (<a class="el" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="el" href="structPauliHamil.html">PauliHamil</a> hamil)</td></tr>
<tr class="memdesc:ga2ecd67e0de9efcbbe37afbad28a8ffad"><td class="mdescLeft"> </td><td class="mdescRight">Populates the diagonal operator <code>op</code> to be equivalent to the given Pauli Hamiltonian <code>hamil</code>, assuming <code>hamil</code> contains only <code>PAULI_Z</code> operators. <a href="group__type.html#ga2ecd67e0de9efcbbe37afbad28a8ffad">More...</a><br /></td></tr>
<tr class="separator:ga2ecd67e0de9efcbbe37afbad28a8ffad"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadbe6701dda1d49168f2f23253e370a7a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gadbe6701dda1d49168f2f23253e370a7a">initPauliHamil</a> (<a class="el" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *coeffs, enum <a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> *codes)</td></tr>
<tr class="memdesc:gadbe6701dda1d49168f2f23253e370a7a"><td class="mdescLeft"> </td><td class="mdescRight">Initialise <a class="el" href="structPauliHamil.html" title="A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represen...">PauliHamil</a> instance <code>hamil</code> with the given term coefficients and Pauli codes (one for every qubit in every term). <a href="group__type.html#gadbe6701dda1d49168f2f23253e370a7a">More...</a><br /></td></tr>
<tr class="separator:gadbe6701dda1d49168f2f23253e370a7a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga234bd34016f08288532791903b9884b5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga234bd34016f08288532791903b9884b5">initPlusState</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga234bd34016f08288532791903b9884b5"><td class="mdescLeft"> </td><td class="mdescRight">Initialise <code>qureg</code> into the plus state. <a href="group__init.html#ga234bd34016f08288532791903b9884b5">More...</a><br /></td></tr>
<tr class="separator:ga234bd34016f08288532791903b9884b5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9a348df3e1df623c3d4c4f12c3ee3fe8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga9a348df3e1df623c3d4c4f12c3ee3fe8">initPureState</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structQureg.html">Qureg</a> pure)</td></tr>
<tr class="memdesc:ga9a348df3e1df623c3d4c4f12c3ee3fe8"><td class="mdescLeft"> </td><td class="mdescRight">Initialise <code>qureg</code> into to a given pure state of an equivalent Hilbert dimension. <a href="group__init.html#ga9a348df3e1df623c3d4c4f12c3ee3fe8">More...</a><br /></td></tr>
<tr class="separator:ga9a348df3e1df623c3d4c4f12c3ee3fe8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4589960486ec43dcd63bd985f1c4f398"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga4589960486ec43dcd63bd985f1c4f398">initStateFromAmps</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *reals, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *imags)</td></tr>
<tr class="memdesc:ga4589960486ec43dcd63bd985f1c4f398"><td class="mdescLeft"> </td><td class="mdescRight">Initialise <code>qureg</code> by specifying all amplitudes. <a href="group__init.html#ga4589960486ec43dcd63bd985f1c4f398">More...</a><br /></td></tr>
<tr class="separator:ga4589960486ec43dcd63bd985f1c4f398"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2f049055d4a51d0ea4d1a43b5234dedb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga2f049055d4a51d0ea4d1a43b5234dedb">initZeroState</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga2f049055d4a51d0ea4d1a43b5234dedb"><td class="mdescLeft"> </td><td class="mdescRight">Initialise <code>qureg</code> into the zero state. <a href="group__init.html#ga2f049055d4a51d0ea4d1a43b5234dedb">More...</a><br /></td></tr>
<tr class="separator:ga2f049055d4a51d0ea4d1a43b5234dedb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga51a64b05d31ef9bcf6a63ce26c0092db"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga51a64b05d31ef9bcf6a63ce26c0092db">invalidQuESTInputError</a> (const char *errMsg, const char *errFunc)</td></tr>
<tr class="memdesc:ga51a64b05d31ef9bcf6a63ce26c0092db"><td class="mdescLeft"> </td><td class="mdescRight">An internal function called when invalid arguments are passed to a QuEST API call, which the user can optionally override by redefining. <a href="group__debug.html#ga51a64b05d31ef9bcf6a63ce26c0092db">More...</a><br /></td></tr>
<tr class="separator:ga51a64b05d31ef9bcf6a63ce26c0092db"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2a3794103125f1e3cfa103f8b1963656"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__normgate.html#ga2a3794103125f1e3cfa103f8b1963656">measure</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int measureQubit)</td></tr>
<tr class="memdesc:ga2a3794103125f1e3cfa103f8b1963656"><td class="mdescLeft"> </td><td class="mdescRight">Measures a single qubit, collapsing it randomly to 0 or 1. <a href="group__normgate.html#ga2a3794103125f1e3cfa103f8b1963656">More...</a><br /></td></tr>
<tr class="separator:ga2a3794103125f1e3cfa103f8b1963656"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae192ac0759e46c7b20a7182020155240"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__normgate.html#gae192ac0759e46c7b20a7182020155240">measureWithStats</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int measureQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *outcomeProb)</td></tr>
<tr class="memdesc:gae192ac0759e46c7b20a7182020155240"><td class="mdescLeft"> </td><td class="mdescRight">Measures a single qubit, collapsing it randomly to 0 or 1, and additionally gives the probability of that outcome. <a href="group__normgate.html#gae192ac0759e46c7b20a7182020155240">More...</a><br /></td></tr>
<tr class="separator:gae192ac0759e46c7b20a7182020155240"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaea8509011985522bae857bd3b13c34ed"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#gaea8509011985522bae857bd3b13c34ed">mixDamping</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:gaea8509011985522bae857bd3b13c34ed"><td class="mdescLeft"> </td><td class="mdescRight">Mixes a density matrix <code>qureg</code> to induce single-qubit amplitude damping (decay to 0 state). <a href="group__decoherence.html#gaea8509011985522bae857bd3b13c34ed">More...</a><br /></td></tr>
<tr class="separator:gaea8509011985522bae857bd3b13c34ed"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga97d563fa8f4bc51f720bbb653f5480b3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga97d563fa8f4bc51f720bbb653f5480b3">mixDensityMatrix</a> (<a class="el" href="structQureg.html">Qureg</a> combineQureg, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob, <a class="el" href="structQureg.html">Qureg</a> otherQureg)</td></tr>
<tr class="memdesc:ga97d563fa8f4bc51f720bbb653f5480b3"><td class="mdescLeft"> </td><td class="mdescRight">Modifies combineQureg to become (1-<code>prob</code>)<code>combineProb</code> + <code>prob</code> <code>otherQureg</code>. <a href="group__decoherence.html#ga97d563fa8f4bc51f720bbb653f5480b3">More...</a><br /></td></tr>
<tr class="separator:ga97d563fa8f4bc51f720bbb653f5480b3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacc2667ac87482a7afdcb711b74bf732e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#gacc2667ac87482a7afdcb711b74bf732e">mixDephasing</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:gacc2667ac87482a7afdcb711b74bf732e"><td class="mdescLeft"> </td><td class="mdescRight">Mixes a density matrix <code>qureg</code> to induce single-qubit dephasing noise. <a href="group__decoherence.html#gacc2667ac87482a7afdcb711b74bf732e">More...</a><br /></td></tr>
<tr class="separator:gacc2667ac87482a7afdcb711b74bf732e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae2ea9255b8b11a4a382231e5604dc4e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">mixDepolarising</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:gae2ea9255b8b11a4a382231e5604dc4e3"><td class="mdescLeft"> </td><td class="mdescRight">Mixes a density matrix <code>qureg</code> to induce single-qubit homogeneous depolarising noise. <a href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">More...</a><br /></td></tr>
<tr class="separator:gae2ea9255b8b11a4a382231e5604dc4e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacb7faa9d8afb0f4270c866424fffbccd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#gacb7faa9d8afb0f4270c866424fffbccd">mixKrausMap</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int target, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> *ops, int numOps)</td></tr>
<tr class="memdesc:gacb7faa9d8afb0f4270c866424fffbccd"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general single-qubit Kraus map to a density matrix, as specified by at most four Kraus operators, <img class="formulaInl" alt="$K_i$" src="form_223.png"/> (<code>ops</code>). <a href="group__decoherence.html#gacb7faa9d8afb0f4270c866424fffbccd">More...</a><br /></td></tr>
<tr class="separator:gacb7faa9d8afb0f4270c866424fffbccd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga65b4c0944090fae78a37ba3b94811ace"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga65b4c0944090fae78a37ba3b94811ace">mixMultiQubitKrausMap</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *targets, int numTargets, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> *ops, int numOps)</td></tr>
<tr class="memdesc:ga65b4c0944090fae78a37ba3b94811ace"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general N-qubit Kraus map to a density matrix, as specified by at most (2N)^2 Kraus operators. <a href="group__decoherence.html#ga65b4c0944090fae78a37ba3b94811ace">More...</a><br /></td></tr>
<tr class="separator:ga65b4c0944090fae78a37ba3b94811ace"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9a77f84e1aa7d25d036b14d7d0cd8b61"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga9a77f84e1aa7d25d036b14d7d0cd8b61">mixPauli</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probX, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probY, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probZ)</td></tr>
<tr class="memdesc:ga9a77f84e1aa7d25d036b14d7d0cd8b61"><td class="mdescLeft"> </td><td class="mdescRight">Mixes a density matrix <code>qureg</code> to induce general single-qubit Pauli noise. <a href="group__decoherence.html#ga9a77f84e1aa7d25d036b14d7d0cd8b61">More...</a><br /></td></tr>
<tr class="separator:ga9a77f84e1aa7d25d036b14d7d0cd8b61"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga14282bdb1dc65760ca9ecbe6305eb770"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga14282bdb1dc65760ca9ecbe6305eb770">mixTwoQubitDephasing</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int qubit1, int qubit2, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:ga14282bdb1dc65760ca9ecbe6305eb770"><td class="mdescLeft"> </td><td class="mdescRight">Mixes a density matrix <code>qureg</code> to induce two-qubit dephasing noise. <a href="group__decoherence.html#ga14282bdb1dc65760ca9ecbe6305eb770">More...</a><br /></td></tr>
<tr class="separator:ga14282bdb1dc65760ca9ecbe6305eb770"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacfc45a8fc86ee18f60866bbd0c874ed0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#gacfc45a8fc86ee18f60866bbd0c874ed0">mixTwoQubitDepolarising</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int qubit1, int qubit2, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:gacfc45a8fc86ee18f60866bbd0c874ed0"><td class="mdescLeft"> </td><td class="mdescRight">Mixes a density matrix <code>qureg</code> to induce two-qubit homogeneous depolarising noise. <a href="group__decoherence.html#gacfc45a8fc86ee18f60866bbd0c874ed0">More...</a><br /></td></tr>
<tr class="separator:gacfc45a8fc86ee18f60866bbd0c874ed0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2cf7dece0efea4207349f872cdcb7e81"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga2cf7dece0efea4207349f872cdcb7e81">mixTwoQubitKrausMap</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int target1, int target2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> *ops, int numOps)</td></tr>
<tr class="memdesc:ga2cf7dece0efea4207349f872cdcb7e81"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general two-qubit Kraus map to a density matrix, as specified by at most sixteen Kraus operators. <a href="group__decoherence.html#ga2cf7dece0efea4207349f872cdcb7e81">More...</a><br /></td></tr>
<tr class="separator:ga2cf7dece0efea4207349f872cdcb7e81"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafd81a9217fb7d21c365443442492b2dc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gafd81a9217fb7d21c365443442492b2dc">multiControlledMultiQubitNot</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *ctrls, int numCtrls, int *targs, int numTargs)</td></tr>
<tr class="memdesc:gafd81a9217fb7d21c365443442492b2dc"><td class="mdescLeft"> </td><td class="mdescRight">Apply a NOT (or Pauli X) gate with multiple control and target qubits. <a href="group__unitary.html#gafd81a9217fb7d21c365443442492b2dc">More...</a><br /></td></tr>
<tr class="separator:gafd81a9217fb7d21c365443442492b2dc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3ad6c477edcdbc845fc1143e860fda08"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">multiControlledMultiQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *ctrls, int numCtrls, int *targs, int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:ga3ad6c477edcdbc845fc1143e860fda08"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general multi-controlled multi-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">More...</a><br /></td></tr>
<tr class="separator:ga3ad6c477edcdbc845fc1143e860fda08"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab2ececaa253252e1b1cdb18a8452704a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gab2ececaa253252e1b1cdb18a8452704a">multiControlledMultiRotatePauli</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int numControls, int *targetQubits, enum <a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> *targetPaulis, int numTargets, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:gab2ececaa253252e1b1cdb18a8452704a"><td class="mdescLeft"> </td><td class="mdescRight">Apply a multi-controlled multi-target multi-Pauli rotation, also known as a controlled Pauli gadget. <a href="group__unitary.html#gab2ececaa253252e1b1cdb18a8452704a">More...</a><br /></td></tr>
<tr class="separator:gab2ececaa253252e1b1cdb18a8452704a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1e5dd165b402e97abaa0b807026527f2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga1e5dd165b402e97abaa0b807026527f2">multiControlledMultiRotateZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int numControls, int *targetQubits, int numTargets, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga1e5dd165b402e97abaa0b807026527f2"><td class="mdescLeft"> </td><td class="mdescRight">Apply a multi-controlled multi-target Z rotation, also known as a controlled phase gadget. <a href="group__unitary.html#ga1e5dd165b402e97abaa0b807026527f2">More...</a><br /></td></tr>
<tr class="separator:ga1e5dd165b402e97abaa0b807026527f2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad76781842af56821ed4e223bd776f057"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gad76781842af56821ed4e223bd776f057">multiControlledPhaseFlip</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int numControlQubits)</td></tr>
<tr class="memdesc:gad76781842af56821ed4e223bd776f057"><td class="mdescLeft"> </td><td class="mdescRight">Apply the multiple-qubit controlled phase flip gate, also known as the multiple-qubit controlled pauliZ gate. <a href="group__unitary.html#gad76781842af56821ed4e223bd776f057">More...</a><br /></td></tr>
<tr class="separator:gad76781842af56821ed4e223bd776f057"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0832e39058d913ad47af44e97a854446"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga0832e39058d913ad47af44e97a854446">multiControlledPhaseShift</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int numControlQubits, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga0832e39058d913ad47af44e97a854446"><td class="mdescLeft"> </td><td class="mdescRight">Introduce a phase factor <img class="formulaInl" alt="$ \exp(i \theta) $" src="form_67.png"/> on state <img class="formulaInl" alt="$ |1 \dots 1 \rangle $" src="form_71.png"/> of the passed qubits. <a href="group__unitary.html#ga0832e39058d913ad47af44e97a854446">More...</a><br /></td></tr>
<tr class="separator:ga0832e39058d913ad47af44e97a854446"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga65c7879947e398690a5428bd43e143e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga65c7879947e398690a5428bd43e143e3">multiControlledTwoQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int numControlQubits, int targetQubit1, int targetQubit2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> u)</td></tr>
<tr class="memdesc:ga65c7879947e398690a5428bd43e143e3"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general multi-controlled two-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga65c7879947e398690a5428bd43e143e3">More...</a><br /></td></tr>
<tr class="separator:ga65c7879947e398690a5428bd43e143e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa700dc9657ade4cf16f1cad1624c5332"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaa700dc9657ade4cf16f1cad1624c5332">multiControlledUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int numControlQubits, int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:gaa700dc9657ade4cf16f1cad1624c5332"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general multiple-control single-target unitary, which can include a global phase factor. <a href="group__unitary.html#gaa700dc9657ade4cf16f1cad1624c5332">More...</a><br /></td></tr>
<tr class="separator:gaa700dc9657ade4cf16f1cad1624c5332"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7e58e8131f219f48e5b7410ca8dfe0c0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga7e58e8131f219f48e5b7410ca8dfe0c0">multiQubitNot</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *targs, int numTargs)</td></tr>
<tr class="memdesc:ga7e58e8131f219f48e5b7410ca8dfe0c0"><td class="mdescLeft"> </td><td class="mdescRight">Apply a NOT (or Pauli X) gate with multiple target qubits, which has the same effect as (but is much faster than) applying each single-qubit NOT gate in turn. <a href="group__unitary.html#ga7e58e8131f219f48e5b7410ca8dfe0c0">More...</a><br /></td></tr>
<tr class="separator:ga7e58e8131f219f48e5b7410ca8dfe0c0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga20bf9b8a71b8a3ee4651e9497e6d1f4f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga20bf9b8a71b8a3ee4651e9497e6d1f4f">multiQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *targs, int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:ga20bf9b8a71b8a3ee4651e9497e6d1f4f"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general multi-qubit unitary (including a global phase factor) with any number of target qubits. <a href="group__unitary.html#ga20bf9b8a71b8a3ee4651e9497e6d1f4f">More...</a><br /></td></tr>
<tr class="separator:ga20bf9b8a71b8a3ee4651e9497e6d1f4f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga34aa4865c92f9aa5d898c91286c9eca5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga34aa4865c92f9aa5d898c91286c9eca5">multiRotatePauli</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *targetQubits, enum <a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> *targetPaulis, int numTargets, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga34aa4865c92f9aa5d898c91286c9eca5"><td class="mdescLeft"> </td><td class="mdescRight">Apply a multi-qubit multi-Pauli rotation, also known as a Pauli gadget, on a selected number of qubits. <a href="group__unitary.html#ga34aa4865c92f9aa5d898c91286c9eca5">More...</a><br /></td></tr>
<tr class="separator:ga34aa4865c92f9aa5d898c91286c9eca5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3250d0d95b5d755cad542a6a2372b894"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga3250d0d95b5d755cad542a6a2372b894">multiRotateZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *qubits, int numQubits, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga3250d0d95b5d755cad542a6a2372b894"><td class="mdescLeft"> </td><td class="mdescRight">Apply a multi-qubit Z rotation, also known as a phase gadget, on a selected number of qubits. <a href="group__unitary.html#ga3250d0d95b5d755cad542a6a2372b894">More...</a><br /></td></tr>
<tr class="separator:ga3250d0d95b5d755cad542a6a2372b894"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga41b946a82982c3fa3dc2a7395665bc90"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga41b946a82982c3fa3dc2a7395665bc90">multiStateControlledUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int *controlState, int numControlQubits, int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:ga41b946a82982c3fa3dc2a7395665bc90"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general single-qubit unitary with multiple control qubits, conditioned upon a specific bit sequence. <a href="group__unitary.html#ga41b946a82982c3fa3dc2a7395665bc90">More...</a><br /></td></tr>
<tr class="separator:ga41b946a82982c3fa3dc2a7395665bc90"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4193c14cfb918fa3291fb0648058d63e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga4193c14cfb918fa3291fb0648058d63e">pauliX</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit)</td></tr>
<tr class="memdesc:ga4193c14cfb918fa3291fb0648058d63e"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit Pauli-X (also known as the X, sigma-X, NOT or bit-flip) gate. <a href="group__unitary.html#ga4193c14cfb918fa3291fb0648058d63e">More...</a><br /></td></tr>
<tr class="separator:ga4193c14cfb918fa3291fb0648058d63e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8e0f03e745778a89d6f59c3c25e32df8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga8e0f03e745778a89d6f59c3c25e32df8">pauliY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit)</td></tr>
<tr class="memdesc:ga8e0f03e745778a89d6f59c3c25e32df8"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit Pauli-Y (also known as the Y or sigma-Y) gate. <a href="group__unitary.html#ga8e0f03e745778a89d6f59c3c25e32df8">More...</a><br /></td></tr>
<tr class="separator:ga8e0f03e745778a89d6f59c3c25e32df8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5d80b490e3910aa737a81bb597cdfcc9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga5d80b490e3910aa737a81bb597cdfcc9">pauliZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit)</td></tr>
<tr class="memdesc:ga5d80b490e3910aa737a81bb597cdfcc9"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit Pauli-Z (also known as the Z, sigma-Z or phase-flip) gate. <a href="group__unitary.html#ga5d80b490e3910aa737a81bb597cdfcc9">More...</a><br /></td></tr>
<tr class="separator:ga5d80b490e3910aa737a81bb597cdfcc9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga26baa057f5db8804825c2d611386753b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga26baa057f5db8804825c2d611386753b">phaseShift</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga26baa057f5db8804825c2d611386753b"><td class="mdescLeft"> </td><td class="mdescRight">Shift the phase between <img class="formulaInl" alt="$ |0\rangle $" src="form_62.png"/> and <img class="formulaInl" alt="$ |1\rangle $" src="form_63.png"/> of a single qubit by a given angle. <a href="group__unitary.html#ga26baa057f5db8804825c2d611386753b">More...</a><br /></td></tr>
<tr class="separator:ga26baa057f5db8804825c2d611386753b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacf139d0a54b1f9e5c2f2feff742b8c76"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__qasm.html#gacf139d0a54b1f9e5c2f2feff742b8c76">printRecordedQASM</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gacf139d0a54b1f9e5c2f2feff742b8c76"><td class="mdescLeft"> </td><td class="mdescRight">Print recorded QASM to stdout. <a href="group__qasm.html#gacf139d0a54b1f9e5c2f2feff742b8c76">More...</a><br /></td></tr>
<tr class="separator:gacf139d0a54b1f9e5c2f2feff742b8c76"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab27234d9ccf440bb5e5d834e8f7e3938"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gab27234d9ccf440bb5e5d834e8f7e3938">reportPauliHamil</a> (<a class="el" href="structPauliHamil.html">PauliHamil</a> hamil)</td></tr>
<tr class="memdesc:gab27234d9ccf440bb5e5d834e8f7e3938"><td class="mdescLeft"> </td><td class="mdescRight">Print the <code><a class="el" href="structPauliHamil.html" title="A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represen...">PauliHamil</a></code> to screen. <a href="group__debug.html#gab27234d9ccf440bb5e5d834e8f7e3938">More...</a><br /></td></tr>
<tr class="separator:gab27234d9ccf440bb5e5d834e8f7e3938"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf8a14ae79c3fb2c0b5f6255cc37bebf9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gaf8a14ae79c3fb2c0b5f6255cc37bebf9">reportQuESTEnv</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:gaf8a14ae79c3fb2c0b5f6255cc37bebf9"><td class="mdescLeft"> </td><td class="mdescRight">Report information about the QuEST environment. <a href="group__debug.html#gaf8a14ae79c3fb2c0b5f6255cc37bebf9">More...</a><br /></td></tr>
<tr class="separator:gaf8a14ae79c3fb2c0b5f6255cc37bebf9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga97d96af7c7ea7b31e32cbe3b25377e09"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga97d96af7c7ea7b31e32cbe3b25377e09">reportQuregParams</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga97d96af7c7ea7b31e32cbe3b25377e09"><td class="mdescLeft"> </td><td class="mdescRight">Report metainformation about a set of qubits: number of qubits, number of probability amplitudes. <a href="group__debug.html#ga97d96af7c7ea7b31e32cbe3b25377e09">More...</a><br /></td></tr>
<tr class="separator:ga97d96af7c7ea7b31e32cbe3b25377e09"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacd5f0ee488157837a8483c1515817f98"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gacd5f0ee488157837a8483c1515817f98">reportState</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gacd5f0ee488157837a8483c1515817f98"><td class="mdescLeft"> </td><td class="mdescRight">Print the current state vector of probability amplitudes for a set of qubits to file. <a href="group__debug.html#gacd5f0ee488157837a8483c1515817f98">More...</a><br /></td></tr>
<tr class="separator:gacd5f0ee488157837a8483c1515817f98"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa33ed720560d051eb4126b4a534bc4c6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gaa33ed720560d051eb4126b4a534bc4c6">reportStateToScreen</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="structQuESTEnv.html">QuESTEnv</a> env, int reportRank)</td></tr>
<tr class="memdesc:gaa33ed720560d051eb4126b4a534bc4c6"><td class="mdescLeft"> </td><td class="mdescRight">Print the current state vector of probability amplitudes for a set of qubits to standard out. <a href="group__debug.html#gaa33ed720560d051eb4126b4a534bc4c6">More...</a><br /></td></tr>
<tr class="separator:gaa33ed720560d051eb4126b4a534bc4c6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4c708f066b244801e10f538b48b90145"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">rotateAroundAxis</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int rotQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="el" href="structVector.html">Vector</a> axis)</td></tr>
<tr class="memdesc:ga4c708f066b244801e10f538b48b90145"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a single qubit by a given angle around a given <a class="el" href="structVector.html">Vector</a> on the Bloch-sphere. <a href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">More...</a><br /></td></tr>
<tr class="separator:ga4c708f066b244801e10f538b48b90145"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8886a3793b21622c48cf3bad6e15082d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga8886a3793b21622c48cf3bad6e15082d">rotateX</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int rotQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga8886a3793b21622c48cf3bad6e15082d"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a single qubit by a given angle around the X-axis of the Bloch-sphere. <a href="group__unitary.html#ga8886a3793b21622c48cf3bad6e15082d">More...</a><br /></td></tr>
<tr class="separator:ga8886a3793b21622c48cf3bad6e15082d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga34312ff52cc28bcab3cbd2ff338fd081"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga34312ff52cc28bcab3cbd2ff338fd081">rotateY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int rotQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga34312ff52cc28bcab3cbd2ff338fd081"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a single qubit by a given angle around the Y-axis of the Bloch-sphere. <a href="group__unitary.html#ga34312ff52cc28bcab3cbd2ff338fd081">More...</a><br /></td></tr>
<tr class="separator:ga34312ff52cc28bcab3cbd2ff338fd081"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab23a8b022ec83b9d423961ca87cd8cb5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gab23a8b022ec83b9d423961ca87cd8cb5">rotateZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int rotQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:gab23a8b022ec83b9d423961ca87cd8cb5"><td class="mdescLeft"> </td><td class="mdescRight">Rotate a single qubit by a given angle around the Z-axis of the Bloch-sphere (also known as a phase shift gate). <a href="group__unitary.html#gab23a8b022ec83b9d423961ca87cd8cb5">More...</a><br /></td></tr>
<tr class="separator:gab23a8b022ec83b9d423961ca87cd8cb5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga555451c697ea4a9d27389155f68fdabc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga555451c697ea4a9d27389155f68fdabc">seedQuEST</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> *env, unsigned long int *seedArray, int numSeeds)</td></tr>
<tr class="memdesc:ga555451c697ea4a9d27389155f68fdabc"><td class="mdescLeft"> </td><td class="mdescRight">Seeds the random number generator with a custom array of key(s), overriding the default keys. <a href="group__debug.html#ga555451c697ea4a9d27389155f68fdabc">More...</a><br /></td></tr>
<tr class="separator:ga555451c697ea4a9d27389155f68fdabc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae53fad7ebafccf236ad62b41e3244214"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gae53fad7ebafccf236ad62b41e3244214">seedQuESTDefault</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> *env)</td></tr>
<tr class="memdesc:gae53fad7ebafccf236ad62b41e3244214"><td class="mdescLeft"> </td><td class="mdescRight">Seeds the random number generator with the (master node) current time and process ID. <a href="group__debug.html#gae53fad7ebafccf236ad62b41e3244214">More...</a><br /></td></tr>
<tr class="separator:gae53fad7ebafccf236ad62b41e3244214"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabc0c64f8adf307d2a44184dc0f8ca66e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gabc0c64f8adf307d2a44184dc0f8ca66e">setAmps</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, long long int startInd, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *reals, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *imags, long long int numAmps)</td></tr>
<tr class="memdesc:gabc0c64f8adf307d2a44184dc0f8ca66e"><td class="mdescLeft"> </td><td class="mdescRight">Overwrites a subset of the amplitudes in state-vector <code>qureg</code>, with those passed in <code>reals</code> and <code>imags</code>. <a href="group__init.html#gabc0c64f8adf307d2a44184dc0f8ca66e">More...</a><br /></td></tr>
<tr class="separator:gabc0c64f8adf307d2a44184dc0f8ca66e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafabb15a6c1cf49f8ecb67e1f35c77c1e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gafabb15a6c1cf49f8ecb67e1f35c77c1e">setDiagonalOpElems</a> (<a class="el" href="structDiagonalOp.html">DiagonalOp</a> op, long long int startInd, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *real, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *imag, long long int numElems)</td></tr>
<tr class="memdesc:gafabb15a6c1cf49f8ecb67e1f35c77c1e"><td class="mdescLeft"> </td><td class="mdescRight">Modifies a subset (starting at index <code>startInd</code>, and ending at index <code>startInd</code> <b>+</b> <code>numElems</code>) of the elements in <a class="el" href="structDiagonalOp.html" title="Represents a diagonal complex operator on the full Hilbert state of a Qureg.">DiagonalOp</a> <code>op</code> with the given complex numbers (passed as <code>real</code> and <code>imag</code> components). <a href="group__type.html#gafabb15a6c1cf49f8ecb67e1f35c77c1e">More...</a><br /></td></tr>
<tr class="separator:gafabb15a6c1cf49f8ecb67e1f35c77c1e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5d0f3f71ea38d3c44597f8c2c2f014d4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga5d0f3f71ea38d3c44597f8c2c2f014d4">setWeightedQureg</a> (<a class="el" href="structComplex.html">Complex</a> fac1, <a class="el" href="structQureg.html">Qureg</a> qureg1, <a class="el" href="structComplex.html">Complex</a> fac2, <a class="el" href="structQureg.html">Qureg</a> qureg2, <a class="el" href="structComplex.html">Complex</a> facOut, <a class="el" href="structQureg.html">Qureg</a> out)</td></tr>
<tr class="memdesc:ga5d0f3f71ea38d3c44597f8c2c2f014d4"><td class="mdescLeft"> </td><td class="mdescRight">Modifies qureg <code>out</code> to the result of (<code>facOut</code> <code>out</code> + <code>fac1</code> <code>qureg1</code> + <code>fac2</code> <code>qureg2</code>), imposing no constraints on normalisation. <a href="group__init.html#ga5d0f3f71ea38d3c44597f8c2c2f014d4">More...</a><br /></td></tr>
<tr class="separator:ga5d0f3f71ea38d3c44597f8c2c2f014d4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga655ffcd4def2e127341c9488f5ca8455"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga655ffcd4def2e127341c9488f5ca8455">sGate</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit)</td></tr>
<tr class="memdesc:ga655ffcd4def2e127341c9488f5ca8455"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit S gate. <a href="group__unitary.html#ga655ffcd4def2e127341c9488f5ca8455">More...</a><br /></td></tr>
<tr class="separator:ga655ffcd4def2e127341c9488f5ca8455"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga75d5e65f87c68403602a669b9c6d52b0"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga75d5e65f87c68403602a669b9c6d52b0">sqrtSwapGate</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int qb1, int qb2)</td></tr>
<tr class="memdesc:ga75d5e65f87c68403602a669b9c6d52b0"><td class="mdescLeft"> </td><td class="mdescRight">Performs a sqrt SWAP gate between <code>qubit1</code> and <code>qubit2</code>. <a href="group__unitary.html#ga75d5e65f87c68403602a669b9c6d52b0">More...</a><br /></td></tr>
<tr class="separator:ga75d5e65f87c68403602a669b9c6d52b0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga65bf1906298ca6355e2942f4923d77b6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__qasm.html#ga65bf1906298ca6355e2942f4923d77b6">startRecordingQASM</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga65bf1906298ca6355e2942f4923d77b6"><td class="mdescLeft"> </td><td class="mdescRight">Enable QASM recording. <a href="group__qasm.html#ga65bf1906298ca6355e2942f4923d77b6">More...</a><br /></td></tr>
<tr class="separator:ga65bf1906298ca6355e2942f4923d77b6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabdaa339967f0955176a4967f01364182"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__qasm.html#gabdaa339967f0955176a4967f01364182">stopRecordingQASM</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gabdaa339967f0955176a4967f01364182"><td class="mdescLeft"> </td><td class="mdescRight">Disable QASM recording. <a href="group__qasm.html#gabdaa339967f0955176a4967f01364182">More...</a><br /></td></tr>
<tr class="separator:gabdaa339967f0955176a4967f01364182"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga820fd139c035136819e371308c206e36"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga820fd139c035136819e371308c206e36">swapGate</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int qubit1, int qubit2)</td></tr>
<tr class="memdesc:ga820fd139c035136819e371308c206e36"><td class="mdescLeft"> </td><td class="mdescRight">Performs a SWAP gate between <code>qubit1</code> and <code>qubit2</code>. <a href="group__unitary.html#ga820fd139c035136819e371308c206e36">More...</a><br /></td></tr>
<tr class="separator:ga820fd139c035136819e371308c206e36"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab75d5cdc622d2778bad24e3a8130aab9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__type.html#gab75d5cdc622d2778bad24e3a8130aab9">syncDiagonalOp</a> (<a class="el" href="structDiagonalOp.html">DiagonalOp</a> op)</td></tr>
<tr class="memdesc:gab75d5cdc622d2778bad24e3a8130aab9"><td class="mdescLeft"> </td><td class="mdescRight">Update the GPU memory with the current values in <code>op.real</code> and <code>op.imag</code>. <a href="group__type.html#gab75d5cdc622d2778bad24e3a8130aab9">More...</a><br /></td></tr>
<tr class="separator:gab75d5cdc622d2778bad24e3a8130aab9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77">syncQuESTEnv</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> env)</td></tr>
<tr class="memdesc:ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77"><td class="mdescLeft"> </td><td class="mdescRight">Guarantees that all code up to the given point has been executed on all nodes (if running in distributed mode) <a href="group__debug.html#ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77">More...</a><br /></td></tr>
<tr class="separator:ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac7e38d768a1bd79019f88cc1e6295092"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gac7e38d768a1bd79019f88cc1e6295092">syncQuESTSuccess</a> (int successCode)</td></tr>
<tr class="memdesc:gac7e38d768a1bd79019f88cc1e6295092"><td class="mdescLeft"> </td><td class="mdescRight">Performs a logical AND on all successCodes held by all processes. <a href="group__debug.html#gac7e38d768a1bd79019f88cc1e6295092">More...</a><br /></td></tr>
<tr class="separator:gac7e38d768a1bd79019f88cc1e6295092"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac15907193da5a7c48b9610a26e669064"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gac15907193da5a7c48b9610a26e669064">tGate</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit)</td></tr>
<tr class="memdesc:gac15907193da5a7c48b9610a26e669064"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit T gate. <a href="group__unitary.html#gac15907193da5a7c48b9610a26e669064">More...</a><br /></td></tr>
<tr class="separator:gac15907193da5a7c48b9610a26e669064"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab525a42d63233f61afeb6be97d89dd36"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gab525a42d63233f61afeb6be97d89dd36">twoQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit1, int targetQubit2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> u)</td></tr>
<tr class="memdesc:gab525a42d63233f61afeb6be97d89dd36"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general two-qubit unitary (including a global phase factor). <a href="group__unitary.html#gab525a42d63233f61afeb6be97d89dd36">More...</a><br /></td></tr>
<tr class="separator:gab525a42d63233f61afeb6be97d89dd36"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga78b814256f851cac70fdf3cbf9cfc206"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">unitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:ga78b814256f851cac70fdf3cbf9cfc206"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general single-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">More...</a><br /></td></tr>
<tr class="separator:ga78b814256f851cac70fdf3cbf9cfc206"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0054955857ce83b88e127d731796c23d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__qasm.html#ga0054955857ce83b88e127d731796c23d">writeRecordedQASMToFile</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, char *filename)</td></tr>
<tr class="memdesc:ga0054955857ce83b88e127d731796c23d"><td class="mdescLeft"> </td><td class="mdescRight">Writes recorded QASM to a file, throwing an error if inaccessible. <a href="group__qasm.html#ga0054955857ce83b88e127d731796c23d">More...</a><br /></td></tr>
<tr class="separator:ga0054955857ce83b88e127d731796c23d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The QuEST API. This file contains the comments used by doxygen for generating API doc. </p>
<p class="definition">Definition in file <a class="el" href="QuEST_8h_source.html">QuEST.h</a>.</p>
</div></div><!-- contents -->
<!-- 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>