<!-- 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.1.0<br>The Quantum Exact Simulation Toolkit</a>
</div>
</div>
</nav>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div class="content" id="content">
<div class="container">
<div class="row">
<div class="col-sm-12 panel " style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_70834f0dcd10de01d2e35ab402a2238e.html">tysonjones</a></li><li class="navelem"><a class="el" href="dir_1957401ef452be7528010ba0f4832a45.html">Desktop</a></li><li class="navelem"><a class="el" href="dir_dee4414d5d72b49a9429e079789ffd08.html">GithubRepos</a></li><li class="navelem"><a class="el" href="dir_a89b43d59316bb5045aa22bb53a67d29.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_f1fe56bf5ef15ff22696c757278c6962.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_a9e976136714c36d9c92c62eb1305fc4.html">include</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="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="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: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>
</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: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: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: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 statevector or density matrix) against a reference pure state (necessarily a statevector). <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_82.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:ga2a0fbd65f42d35dcd5ae966c48826920"><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#ga2a0fbd65f42d35dcd5ae966c48826920">calcProbOfOutcome</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int measureQubit, int outcome)</td></tr>
<tr class="memdesc:ga2a0fbd65f42d35dcd5ae966c48826920"><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#ga2a0fbd65f42d35dcd5ae966c48826920">More...</a><br /></td></tr>
<tr class="separator:ga2a0fbd65f42d35dcd5ae966c48826920"><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">Set targetQureg to be a clone of copyQureg. <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:gab164930b260718d85ed3f55f50c76a59"><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#gab164930b260718d85ed3f55f50c76a59">collapseToOutcome</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int measureQubit, int outcome)</td></tr>
<tr class="memdesc:gab164930b260718d85ed3f55f50c76a59"><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#gab164930b260718d85ed3f55f50c76a59">More...</a><br /></td></tr>
<tr class="separator:gab164930b260718d85ed3f55f50c76a59"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0cbd92af48fe641522e62eea1a76a7c3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga0cbd92af48fe641522e62eea1a76a7c3">compactUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const 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:ga0cbd92af48fe641522e62eea1a76a7c3"><td class="mdescLeft"> </td><td class="mdescRight">Apply a single-qubit unitary parameterised by two given complex scalars. <a href="group__unitary.html#ga0cbd92af48fe641522e62eea1a76a7c3">More...</a><br /></td></tr>
<tr class="separator:ga0cbd92af48fe641522e62eea1a76a7c3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa854e4b76cfd4000a32c06c990960bd9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaa854e4b76cfd4000a32c06c990960bd9">controlledCompactUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const 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:gaa854e4b76cfd4000a32c06c990960bd9"><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#gaa854e4b76cfd4000a32c06c990960bd9">More...</a><br /></td></tr>
<tr class="separator:gaa854e4b76cfd4000a32c06c990960bd9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6375f658bd7cb24d25e0603b5b947bbd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga6375f658bd7cb24d25e0603b5b947bbd">controlledMultiQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int ctrl, int *targs, const int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:ga6375f658bd7cb24d25e0603b5b947bbd"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general controlled multi-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga6375f658bd7cb24d25e0603b5b947bbd">More...</a><br /></td></tr>
<tr class="separator:ga6375f658bd7cb24d25e0603b5b947bbd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadf4927a3d5dd8cd6d7400f2e810b4f05"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gadf4927a3d5dd8cd6d7400f2e810b4f05">controlledNot</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const int targetQubit)</td></tr>
<tr class="memdesc:gadf4927a3d5dd8cd6d7400f2e810b4f05"><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#gadf4927a3d5dd8cd6d7400f2e810b4f05">More...</a><br /></td></tr>
<tr class="separator:gadf4927a3d5dd8cd6d7400f2e810b4f05"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga811e9b47126c83ff859059106f66cf96"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga811e9b47126c83ff859059106f66cf96">controlledPauliY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const int targetQubit)</td></tr>
<tr class="memdesc:ga811e9b47126c83ff859059106f66cf96"><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#ga811e9b47126c83ff859059106f66cf96">More...</a><br /></td></tr>
<tr class="separator:ga811e9b47126c83ff859059106f66cf96"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4dcb9c6660d7a5f74c9597bc467d39ef"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga4dcb9c6660d7a5f74c9597bc467d39ef">controlledPhaseFlip</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int idQubit1, const int idQubit2)</td></tr>
<tr class="memdesc:ga4dcb9c6660d7a5f74c9597bc467d39ef"><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#ga4dcb9c6660d7a5f74c9597bc467d39ef">More...</a><br /></td></tr>
<tr class="separator:ga4dcb9c6660d7a5f74c9597bc467d39ef"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga69e074c8174e198ca014d9905b98b43d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga69e074c8174e198ca014d9905b98b43d">controlledPhaseShift</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int idQubit1, const int idQubit2, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga69e074c8174e198ca014d9905b98b43d"><td class="mdescLeft"> </td><td class="mdescRight">Introduce a phase factor <img class="formulaInl" alt="$ \exp(i \theta) $" src="form_19.png"/> on state <img class="formulaInl" alt="$ |11\rangle $" src="form_20.png"/> of qubits <code>idQubit1</code> and <code>idQubit2</code>. <a href="group__unitary.html#ga69e074c8174e198ca014d9905b98b43d">More...</a><br /></td></tr>
<tr class="separator:ga69e074c8174e198ca014d9905b98b43d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga82bf9aaf01430d3ecfde52b7731421d7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga82bf9aaf01430d3ecfde52b7731421d7">controlledRotateAroundAxis</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const 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:ga82bf9aaf01430d3ecfde52b7731421d7"><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#ga82bf9aaf01430d3ecfde52b7731421d7">More...</a><br /></td></tr>
<tr class="separator:ga82bf9aaf01430d3ecfde52b7731421d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7dc4ed5d9fd2872a04fea6ef13b65c3d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga7dc4ed5d9fd2872a04fea6ef13b65c3d">controlledRotateX</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga7dc4ed5d9fd2872a04fea6ef13b65c3d"><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#ga7dc4ed5d9fd2872a04fea6ef13b65c3d">More...</a><br /></td></tr>
<tr class="separator:ga7dc4ed5d9fd2872a04fea6ef13b65c3d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf99ba5356a6c20d3d047b36874fc0a50"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaf99ba5356a6c20d3d047b36874fc0a50">controlledRotateY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:gaf99ba5356a6c20d3d047b36874fc0a50"><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#gaf99ba5356a6c20d3d047b36874fc0a50">More...</a><br /></td></tr>
<tr class="separator:gaf99ba5356a6c20d3d047b36874fc0a50"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9afcf34f7c6ae127452b503c074a9b7b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga9afcf34f7c6ae127452b503c074a9b7b">controlledRotateZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga9afcf34f7c6ae127452b503c074a9b7b"><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#ga9afcf34f7c6ae127452b503c074a9b7b">More...</a><br /></td></tr>
<tr class="separator:ga9afcf34f7c6ae127452b503c074a9b7b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80">controlledTwoQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const int targetQubit1, const int targetQubit2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> u)</td></tr>
<tr class="memdesc:ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general controlled two-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80">More...</a><br /></td></tr>
<tr class="separator:ga8a718f1a8cc3a0ea3f5bbdb2c5a99d80"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf2ad34c9659292d32c6c725e4bd668cf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaf2ad34c9659292d32c6c725e4bd668cf">controlledUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int controlQubit, const int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:gaf2ad34c9659292d32c6c725e4bd668cf"><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#gaf2ad34c9659292d32c6c725e4bd668cf">More...</a><br /></td></tr>
<tr class="separator:gaf2ad34c9659292d32c6c725e4bd668cf"><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 statevector 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">Create (dynamically) a square complex matrix which can be passed to the multi-qubit general unitary functions. <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">Create a <a class="el" href="structQureg.html" title="Represents a system of qubits.">Qureg</a> for qubits which are represented by a density matrix, and can be in 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: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">Create a <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="Create (dynamically) a square complex matrix which can be passed to the multi-qubit general unitary f...">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: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> object representing a set of qubits. <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:ga2d955c6e51067371eee69795532a2d62"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga2d955c6e51067371eee69795532a2d62">getEnvironmentString</a> (<a class="el" href="structQuESTEnv.html">QuESTEnv</a> env, <a class="el" href="structQureg.html">Qureg</a> qureg, char str[200])</td></tr>
<tr class="memdesc:ga2d955c6e51067371eee69795532a2d62"><td class="mdescLeft"> </td><td class="mdescRight">Sets <code>str</code> to a string containing the number of qubits in <code>qureg</code>, and the hardware facilities used (e.g. <a href="group__debug.html#ga2d955c6e51067371eee69795532a2d62">More...</a><br /></td></tr>
<tr class="separator:ga2d955c6e51067371eee69795532a2d62"><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">Get the number of probability amplitudes in a qureg object, given by 2^numQubits. <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">Get the number of qubits in a qureg object. <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: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:ga2f3bec8d06e7bf7314c581a5b837641f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga2f3bec8d06e7bf7314c581a5b837641f">hadamard</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit)</td></tr>
<tr class="memdesc:ga2f3bec8d06e7bf7314c581a5b837641f"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit Hadamard gate. <a href="group__unitary.html#ga2f3bec8d06e7bf7314c581a5b837641f">More...</a><br /></td></tr>
<tr class="separator:ga2f3bec8d06e7bf7314c581a5b837641f"><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 a set of <img class="formulaInl" alt="$ N $" src="form_0.png"/> qubits to 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 n-th complex amplitude (2n/10 + i(2n+1)/10). <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: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 a set of <img class="formulaInl" alt="$ N $" src="form_0.png"/> qubits to the plus state <img class="formulaInl" alt="$ {| + \rangle}^{\otimes N} = \frac{1}{\sqrt{2^N}} (| 0 \rangle + | 1 \rangle)^{\otimes N} $" src="form_2.png"/> (and similarly <img class="formulaInl" alt="$ |+\rangle \langle+| $" src="form_3.png"/> for density matrices). <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 a set of <img class="formulaInl" alt="$ N $" src="form_0.png"/> qubits, which can be a state vector or density matrix, to a given pure state. <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 qureg by specifying the complete statevector. <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 a set of <img class="formulaInl" alt="$ N $" src="form_0.png"/> qubits to the classical zero state <img class="formulaInl" alt="$ {| 0 \rangle}^{\otimes N} $" src="form_1.png"/>. <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:ga3e39405eb2ce05ce4bb88c0f00dace45"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga3e39405eb2ce05ce4bb88c0f00dace45">mixDamping</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:ga3e39405eb2ce05ce4bb88c0f00dace45"><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#ga3e39405eb2ce05ce4bb88c0f00dace45">More...</a><br /></td></tr>
<tr class="separator:ga3e39405eb2ce05ce4bb88c0f00dace45"><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-prob)combineProb + prob otherQureg. <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:ga91edd6320f517810a58afd4b845edf12"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga91edd6320f517810a58afd4b845edf12">mixDephasing</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:ga91edd6320f517810a58afd4b845edf12"><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#ga91edd6320f517810a58afd4b845edf12">More...</a><br /></td></tr>
<tr class="separator:ga91edd6320f517810a58afd4b845edf12"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga556fe013915bca4626367d98db948f5e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoherence.html#ga556fe013915bca4626367d98db948f5e">mixDepolarising</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob)</td></tr>
<tr class="memdesc:ga556fe013915bca4626367d98db948f5e"><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#ga556fe013915bca4626367d98db948f5e">More...</a><br /></td></tr>
<tr class="separator:ga556fe013915bca4626367d98db948f5e"><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_154.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:gadad71b27575fd7d9baf110ff780ee0a1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gadad71b27575fd7d9baf110ff780ee0a1">multiControlledMultiQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *ctrls, const int numCtrls, int *targs, const int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:gadad71b27575fd7d9baf110ff780ee0a1"><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#gadad71b27575fd7d9baf110ff780ee0a1">More...</a><br /></td></tr>
<tr class="separator:gadad71b27575fd7d9baf110ff780ee0a1"><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_19.png"/> on state <img class="formulaInl" alt="$ |1 \dots 1 \rangle $" src="form_23.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:ga4183dc6cb8fd996fb790a711bf3e4871"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga4183dc6cb8fd996fb790a711bf3e4871">multiControlledTwoQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, const int numControlQubits, const int targetQubit1, const int targetQubit2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> u)</td></tr>
<tr class="memdesc:ga4183dc6cb8fd996fb790a711bf3e4871"><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#ga4183dc6cb8fd996fb790a711bf3e4871">More...</a><br /></td></tr>
<tr class="separator:ga4183dc6cb8fd996fb790a711bf3e4871"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga18c44cb3b947147951590dea2f6b25f7"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga18c44cb3b947147951590dea2f6b25f7">multiControlledUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, const int numControlQubits, const int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:ga18c44cb3b947147951590dea2f6b25f7"><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#ga18c44cb3b947147951590dea2f6b25f7">More...</a><br /></td></tr>
<tr class="separator:ga18c44cb3b947147951590dea2f6b25f7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab5828a9f0518951451d9fec9370199ae"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gab5828a9f0518951451d9fec9370199ae">multiQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *targs, const int numTargs, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> u)</td></tr>
<tr class="memdesc:gab5828a9f0518951451d9fec9370199ae"><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#gab5828a9f0518951451d9fec9370199ae">More...</a><br /></td></tr>
<tr class="separator:gab5828a9f0518951451d9fec9370199ae"><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 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 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:ga09a08f98955e75d942fdc88d4dca3e33"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga09a08f98955e75d942fdc88d4dca3e33">multiStateControlledUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, int *controlQubits, int *controlState, const int numControlQubits, const int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:ga09a08f98955e75d942fdc88d4dca3e33"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general multiple-control, conditioned on a specific bit sequence, single-target unitary, which can include a global phase factor. <a href="group__unitary.html#ga09a08f98955e75d942fdc88d4dca3e33">More...</a><br /></td></tr>
<tr class="separator:ga09a08f98955e75d942fdc88d4dca3e33"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga84cd118c44b9d3866f56b865dbb9bd7d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga84cd118c44b9d3866f56b865dbb9bd7d">pauliX</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit)</td></tr>
<tr class="memdesc:ga84cd118c44b9d3866f56b865dbb9bd7d"><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#ga84cd118c44b9d3866f56b865dbb9bd7d">More...</a><br /></td></tr>
<tr class="separator:ga84cd118c44b9d3866f56b865dbb9bd7d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa064fcf40fd02b21f98a9a83dc6cea13"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gaa064fcf40fd02b21f98a9a83dc6cea13">pauliY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit)</td></tr>
<tr class="memdesc:gaa064fcf40fd02b21f98a9a83dc6cea13"><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#gaa064fcf40fd02b21f98a9a83dc6cea13">More...</a><br /></td></tr>
<tr class="separator:gaa064fcf40fd02b21f98a9a83dc6cea13"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadf988ee16f38ddaf404552c41ea2b745"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gadf988ee16f38ddaf404552c41ea2b745">pauliZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit)</td></tr>
<tr class="memdesc:gadf988ee16f38ddaf404552c41ea2b745"><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#gadf988ee16f38ddaf404552c41ea2b745">More...</a><br /></td></tr>
<tr class="separator:gadf988ee16f38ddaf404552c41ea2b745"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga05c7b8c9491410215e277ea83c0dfef8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga05c7b8c9491410215e277ea83c0dfef8">phaseShift</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga05c7b8c9491410215e277ea83c0dfef8"><td class="mdescLeft"> </td><td class="mdescRight">Shift the phase between <img class="formulaInl" alt="$ |0\rangle $" src="form_14.png"/> and <img class="formulaInl" alt="$ |1\rangle $" src="form_15.png"/> of a single qubit by a given angle. <a href="group__unitary.html#ga05c7b8c9491410215e277ea83c0dfef8">More...</a><br /></td></tr>
<tr class="separator:ga05c7b8c9491410215e277ea83c0dfef8"><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: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:gac5c485fe330636966effc0642ba2bd99"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#gac5c485fe330636966effc0642ba2bd99">rotateAroundAxis</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const 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:gac5c485fe330636966effc0642ba2bd99"><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#gac5c485fe330636966effc0642ba2bd99">More...</a><br /></td></tr>
<tr class="separator:gac5c485fe330636966effc0642ba2bd99"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5fb1514d67ab43917dc64a357e711425"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga5fb1514d67ab43917dc64a357e711425">rotateX</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int rotQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga5fb1514d67ab43917dc64a357e711425"><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#ga5fb1514d67ab43917dc64a357e711425">More...</a><br /></td></tr>
<tr class="separator:ga5fb1514d67ab43917dc64a357e711425"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga680f90d42e56950f40d11d695596a363"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga680f90d42e56950f40d11d695596a363">rotateY</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int rotQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga680f90d42e56950f40d11d695596a363"><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#ga680f90d42e56950f40d11d695596a363">More...</a><br /></td></tr>
<tr class="separator:ga680f90d42e56950f40d11d695596a363"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga30675e80b054d5adf556ae00f98377d9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga30675e80b054d5adf556ae00f98377d9">rotateZ</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int rotQubit, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle)</td></tr>
<tr class="memdesc:ga30675e80b054d5adf556ae00f98377d9"><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#ga30675e80b054d5adf556ae00f98377d9">More...</a><br /></td></tr>
<tr class="separator:ga30675e80b054d5adf556ae00f98377d9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga95012dad46509b4b461974c34cfd7b3d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#ga95012dad46509b4b461974c34cfd7b3d">seedQuEST</a> (unsigned long int *seedArray, int numSeeds)</td></tr>
<tr class="memdesc:ga95012dad46509b4b461974c34cfd7b3d"><td class="mdescLeft"> </td><td class="mdescRight">Seed the Mersenne Twister used for random number generation in the QuEST environment with a user defined seed. <a href="group__debug.html#ga95012dad46509b4b461974c34cfd7b3d">More...</a><br /></td></tr>
<tr class="separator:ga95012dad46509b4b461974c34cfd7b3d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa8437ef3bf135231e2916e64dde1c94e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__debug.html#gaa8437ef3bf135231e2916e64dde1c94e">seedQuESTDefault</a> (void)</td></tr>
<tr class="memdesc:gaa8437ef3bf135231e2916e64dde1c94e"><td class="mdescLeft"> </td><td class="mdescRight">Seed the Mersenne Twister used for random number generation in the QuEST environment with an example defualt seed. <a href="group__debug.html#gaa8437ef3bf135231e2916e64dde1c94e">More...</a><br /></td></tr>
<tr class="separator:gaa8437ef3bf135231e2916e64dde1c94e"><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 <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: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:ga67a83cdbd8d6ae77f91aa011cf09907a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga67a83cdbd8d6ae77f91aa011cf09907a">sGate</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit)</td></tr>
<tr class="memdesc:ga67a83cdbd8d6ae77f91aa011cf09907a"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit S gate. <a href="group__unitary.html#ga67a83cdbd8d6ae77f91aa011cf09907a">More...</a><br /></td></tr>
<tr class="separator:ga67a83cdbd8d6ae77f91aa011cf09907a"><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: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:ga3c500a891a522fd3045c379489f0252a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga3c500a891a522fd3045c379489f0252a">tGate</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit)</td></tr>
<tr class="memdesc:ga3c500a891a522fd3045c379489f0252a"><td class="mdescLeft"> </td><td class="mdescRight">Apply the single-qubit T gate. <a href="group__unitary.html#ga3c500a891a522fd3045c379489f0252a">More...</a><br /></td></tr>
<tr class="separator:ga3c500a891a522fd3045c379489f0252a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga81cf22c68db66bf9b4593a5d1b3f528c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga81cf22c68db66bf9b4593a5d1b3f528c">twoQubitUnitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit1, const int targetQubit2, <a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> u)</td></tr>
<tr class="memdesc:ga81cf22c68db66bf9b4593a5d1b3f528c"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general two-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga81cf22c68db66bf9b4593a5d1b3f528c">More...</a><br /></td></tr>
<tr class="separator:ga81cf22c68db66bf9b4593a5d1b3f528c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5a117f81298e8ed894d964198e737757"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__unitary.html#ga5a117f81298e8ed894d964198e737757">unitary</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, const int targetQubit, <a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> u)</td></tr>
<tr class="memdesc:ga5a117f81298e8ed894d964198e737757"><td class="mdescLeft"> </td><td class="mdescRight">Apply a general single-qubit unitary (including a global phase factor). <a href="group__unitary.html#ga5a117f81298e8ed894d964198e737757">More...</a><br /></td></tr>
<tr class="separator:ga5a117f81298e8ed894d964198e737757"><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>