quest_bind 0.3.7

Wrapper around the Quantum Exact Simulation Toolkit (QuEST)
Documentation
<!-- 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: Main Page</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="style.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand"><img alt="Logo" src="logo.png"/></a>
                    <a class="navbar-brand"><b>QuEST</b> v3.4.0<br>The Quantum Exact Simulation Toolkit</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="PageDoc"><div class="header">
  <div class="headertitle">
<div class="title">QuEST Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a href="https://quest.qtechtheory.org"><img src="https://github.com/QuEST-Kit/QuEST/blob/master/doxyconfig/banner.png?raw=true" alt="The QuEST logo" width="500" class="inline"/></a></p>
<p><a href="https://GitHub.com/QuEST-Kit/QuEST/releases/"><img src="https://img.shields.io/github/release/QuEST-Kit/QuEST" alt="GitHub release" class="inline"/></a> <a href="https://quest-kit.github.io/QuEST/modules.html"><object type="image/svg+xml" data="https://img.shields.io/badge/doc-Github.io-orange.svg" style="pointer-events: none;">Doc</object></a> <a href="https://github.com/QuEST-Kit/QuEST/actions"><img src="https://action-badges.now.sh/QuEST-Kit/QuEST" alt="unit tests" class="inline"/></a> <a href="LICENCE.txt"><object type="image/svg+xml" data="https://img.shields.io/badge/license-MIT-lightgrey.svg" style="pointer-events: none;">MIT license</object></a></p>
<p>The <b>Quantum Exact Simulation Toolkit</b> is a high performance simulator of quantum circuits, state-vectors and density matrices. QuEST uses <b>multithreading</b>, <b>GPU acceleration</b> and <b>distribution</b> to run lightning first on laptops, desktops and networked supercomputers. QuEST <em>just works</em>; it is stand-alone, requires no installation, and trivial to compile and getting running.</p>
<p><a href="http://www.open-std.org/jtc1/sc22/wg14/www/standards.html#9899"><object type="image/svg+xml" data="https://img.shields.io/badge/C-99-ff69b4.svg" style="pointer-events: none;">Languages</object></a> <a href="https://isocpp.org/wiki/faq/cpp11"><object type="image/svg+xml" data="https://img.shields.io/badge/C++-11-ff69b4.svg" style="pointer-events: none;">Languages</object></a> <object type="image/svg+xml" data="https://img.shields.io/badge/os-MacOS-9cbd3c.svg" style="pointer-events: none;">OS</object> <object type="image/svg+xml" data="https://img.shields.io/badge/os-Linux-9cbd3c.svg" style="pointer-events: none;">OS</object> <object type="image/svg+xml" data="https://img.shields.io/badge/os-Windows-9cbd3c.svg" style="pointer-events: none;">OS</object> <a href="https://www.openmp.org/"><object type="image/svg+xml" data="https://img.shields.io/badge/multithreaded-OpenMP-6699ff.svg" style="pointer-events: none;">Platforms</object></a> <a href="https://developer.nvidia.com/cuda-zone"><object type="image/svg+xml" data="https://img.shields.io/badge/GPU-CUDA-6699ff.svg" style="pointer-events: none;">Platforms</object></a> <a href="https://www.mpi-forum.org/"><object type="image/svg+xml" data="https://img.shields.io/badge/distributed-MPI-6699ff.svg" style="pointer-events: none;">Platforms</object></a></p>
<p>QuEST is developed by the <a href="http://qtechtheory.org/">QTechTheory</a> group at the University of Oxford, and <a href="https://github.com/QuEST-Kit/QuEST/blob/master/AUTHORS.txt">these authors</a>. To learn more:</p><ul>
<li>see the <a href="https://github.com/QuEST-Kit/QuEST/blob/master/examples/README.md">tutorial</a></li>
<li>view the <a href="https://quest-kit.github.io/QuEST/modules.html">documentation</a></li>
<li>visit our <a href="https://quest.qtechtheory.org/">website</a></li>
<li>see some <a href="https://github.com/QuEST-Kit/QuEST/blob/master/examples/">examples</a></li>
<li>read our <a href="https://www.nature.com/articles/s41598-019-47174-9">whitepaper</a>, which featured in Scientific Report's <a href="https://www.nature.com/collections/ecehgdfcba/">Top 100 in Physics</a> :trophy:</li>
</ul>
<p><a href="https://doi.org/10.1038/s41598-019-47174-9"><object type="image/svg+xml" data="https://img.shields.io/badge/DOI-10.1038%2Fs41598--019--47174--9-yellow.svg" style="pointer-events: none;">DOI</object></a> <a href="#" onclick="location.href='mai'+'lto:'+'que'+'st'+'@ma'+'te'+'ria'+'ls'+'.ox'+'.a'+'c.u'+'k'; return false;"><object type="image/svg+xml" data="https://img.shields.io/badge/email-quest@materials.ox.ac.uk-red.svg" style="pointer-events: none;">Email</object></a></p>
<hr  />
<h2><a class="anchor" id="autotoc_md1"></a>
:tada:  Introduction</h2>
<p>QuEST has a simple interface, which is agnostic to its runtime environment, between CPUs, GPUs and over networks. </p><div class="fragment"><div class="line"><a class="code" href="group__unitary.html#ga6532decd6c404189915563492f090e6f">hadamard</a>(qubits, 0);</div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">controlledRotateX</a>(qubits, 0, 1, angle);</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">double</span> prob = <a class="code" href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">calcProbOfOutcome</a>(qubits, 0, outcome);</div>
</div><!-- fragment --><p>Yet, it is flexible </p><div class="fragment"><div class="line"><a class="code" href="structVector.html">Vector</a> v;</div>
<div class="line">v.<a class="code" href="structVector.html#a0d0459a5b731ac5fb3dff2c6134e6e88">x</a> = 1; v.<a class="code" href="structVector.html#abc3cfc6c8e297b1153a373d84b981e6b">y</a> = .5; v.<a class="code" href="structVector.html#ab33976d8fda2e44b770f71269d698a25">z</a> = 0;</div>
<div class="line"><a class="code" href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">rotateAroundAxis</a>(qubits, 0, angle, v);</div>
<div class="line"> </div>
<div class="line"><a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u = {</div>
<div class="line">    .<a class="code" href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f">real</a> = {{.5, .5}, { .5,.5}},</div>
<div class="line">    .imag = {{.5,-.5}, {-.5,.5}}};</div>
<div class="line"><a class="code" href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">unitary</a>(qubits, 0, u);</div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">mixDepolarising</a>(qubits, 0, prob);</div>
</div><!-- fragment --><p>and extremely powerful </p><div class="fragment"><div class="line"><a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u = <a class="code" href="group__type.html#ga815103261fb22ea9690e1427571df00e">createComplexMatrixN</a>(5);</div>
<div class="line"><span class="keywordtype">int</span> ctrls[] = {0, 1, 2};</div>
<div class="line"><span class="keywordtype">int</span> targs[] = {5, 20, 15, 10, 25};</div>
<div class="line"><a class="code" href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">multiControlledMultiQubitUnitary</a>(qubits, ctrls, 3, targs, 5, u);</div>
<div class="line"> </div>
<div class="line"><a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> k1, k2, k3 = ...</div>
<div class="line">mixMultiQubitKrausMap(qubits, targs, 5, {k1, k2, k3}, 3);</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">double</span> val = <a class="code" href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">calcExpecPauliHamil</a>(qubits, hamiltonian, workspace);</div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">applyTrotterCircuit</a>(qubits, hamiltonian, time, order, repetitions);</div>
</div><!-- fragment --><hr  />
<h2><a class="anchor" id="autotoc_md3"></a>
:white_check_mark:  Features</h2>
<p>QuEST supports: <br  />
</p><ul>
<li>:ballot_box_with_check: &#160; <b>density matrices</b> for precise simulation of noisy quantum computers <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>general unitaries</b> with any number of control and target qubits <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>general decoherence channels</b> of any dimension <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>general Hermitian operators</b> in the Pauli basis <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>many <em>many</em> operators</b>, including even <a href="https://quest-kit.github.io/QuEST-develop-doc/group__unitary.html#ga34aa4865c92f9aa5d898c91286c9eca5">Pauli gadgets</a>, <a href="https://quest-kit.github.io/QuEST-develop-doc/group__operator.html#ga467f517abd18dbc3d6fced84c6589161">analytic phase functions</a> and <a href="https://quest-kit.github.io/QuEST-develop-doc/group__operator.html#ga35b6321c578a8c69470132b5ee95f930">Trotter circuits</a> <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>many tools to analyse</b> quantum states, such as calculations of <a href="https://quest-kit.github.io/QuEST-develop-doc/group__calc.html#gad0cc08d52cad5062553d6f78126780cc">probability</a>, <a href="https://quest-kit.github.io/QuEST-develop-doc/group__calc.html#gaa266ed6c8ae5d0d0f49e1ac50819cffc">fidelity</a>, and <a href="https://quest-kit.github.io/QuEST-develop-doc/group__calc.html#ga82f17e96a4cb7612fb9c6ef856df3810">expected value</a> <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>variable precision</b> through a <code>qreal</code> numerical type which can use single, double or quad precision <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>QASM output</b> to verify simulated circuits <br  />
</li>
<li>:ballot_box_with_check: &#160; <b>direct access to amplitudes</b> for rapid custom modification of the quantum state</li>
<li>:ballot_box_with_check: &#160; <b>native compilation</b> on MacOS, Linux and Windows, through Clang, GNU, Intel, and MSVC compilers</li>
</ul>
<hr  />
<h2><a class="anchor" id="autotoc_md5"></a>
:book:  Documentation</h2>
<ul>
<li>The tutorial includes instructions for<ul>
<li><a href="/examples/README.md#compiling">compiling</a> QuEST</li>
<li><a href="/examples/README.md#running">running</a> QuEST locally and on supercomputers</li>
<li><a href="/examples/README.md#testing">testing</a> QuEST using the comprehensive <a href="https://quest-kit.github.io/QuEST/group__unittest.html">unit tests</a> <br  />
<br  />
</li>
</ul>
</li>
<li>The <a href="https://quest-kit.github.io/QuEST/modules.html">documentation</a> is divided into the following modules (collated <a href="https://quest-kit.github.io/QuEST/QuEST_8h.html">here</a>)<ul>
<li><a href="https://quest-kit.github.io/QuEST/group__type.html">data structures</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__init.html">initialisations</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__unitary.html">unitaries</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__normgate.html">gates</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__decoherence.html">decoherence</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__operator.html">operators</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__calc.html">calculations</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__qasm.html">QASM</a> <br  />
<br  />
</li>
</ul>
</li>
<li>Additional utilities for debugging and testing are documented below<ul>
<li><a href="https://quest-kit.github.io/QuEST/group__debug.html">debugging</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__unittest.html">unit tests</a></li>
<li><a href="https://quest-kit.github.io/QuEST/group__testutilities.html">testing utilities</a></li>
</ul>
</li>
</ul>
<blockquote class="doxtable">
<p><b>For developers</b>: To regenerate the doc after making changes to the code, run <code>doxygen doxyconfig/config</code> in the root directory. This will generate documentation in <code>Doxygen_doc/html</code>, the contents of which should be copied into <a href="/docs/"><code>docs/</code></a> </p>
</blockquote>
<hr  />
<h2><a class="anchor" id="autotoc_md7"></a>
:rocket:  Getting started</h2>
<p>To rocket right in, download QuEST with <a href="https://git-scm.com/">git</a> at the terminal </p><div class="fragment"><div class="line">git clone https://github.com/quest-kit/QuEST.git</div>
<div class="line">cd QuEST</div>
</div><!-- fragment --><p>Compile the tutorial example (<a href="/examples/tutorial_example.c">source</a>) using <a href="https://cmake.org/">cmake</a> and <a href="https://www.gnu.org/software/make/">make</a> </p><div class="fragment"><div class="line">mkdir build</div>
<div class="line">cd build</div>
<div class="line">cmake ..</div>
<div class="line">make</div>
</div><!-- fragment --><p>then run it with </p><div class="fragment"><div class="line">./demo</div>
</div><!-- fragment --><p><br  />
</p>
<blockquote class="doxtable">
<p><b>Windows</b> users should install <a href="https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019">Build Tools</a> for Visual Studio, and <a href="https://cmake.org/download/">CMake</a>, and run the above commmands in the <em>Developer Command Prompt for VS</em>, though using build commands </p><div class="fragment"><div class="line">cmake .. -G &quot;NMake Makefiles&quot;</div>
<div class="line">nmake</div>
</div><!-- fragment --><p>If using MSVC and NMake in this way fails, users can forego GPU acceleration, download <a href="https://sourceforge.net/projects/mingw-w64/">MinGW-w64</a>, and compile via </p><div class="fragment"><div class="line">cmake .. -G &quot;MinGW Makefiles&quot;</div>
<div class="line">make</div>
</div><!-- fragment --><p></p>
</blockquote>
<hr  />
<h2><a class="anchor" id="autotoc_md9"></a>
:heart:  Acknowledgements</h2>
<p>We sincerely thank the following external contributors to QuEST.</p>
<ul>
<li><a href="https://quantumsimulations.de/">HQS Quantum simulations</a> for contributing <code>mixDamping</code> on CPU.</li>
<li><a href="https://github.com/kshitijc">Kshitij Chhabra</a> for patching some validation bugs.</li>
<li><a href="https://github.com/drewsilcock">Drew Silcock</a> for patching the multithreaded build on MacOS.</li>
<li><a href="https://github.com/zv-io">Zach van Rijn</a> for patching the multithreading code for GCC-9 OpenMP-5 compatibility.</li>
<li><a href="https://github.com/SchineCompton">SchineCompton</a> for patching the GPU CMake release build.</li>
<li><a href="https://github.com/chr5tphr">Christopher J. Anders</a> for patching the multithreading (when default off) and GPU builds (revising min cmake).</li>
<li><a href="https://github.com/glebx-f">Gleb Struchalin</a> for patching the cmake standalone build</li>
<li><a href="https://github.com/Milos9304">Milos Prokop</a> for serial prototyping of <code>initDiagonalOpFromPauliHamil</code></li>
</ul>
<p>QuEST uses the <a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html">mt19937ar</a> Mersenne Twister algorithm for random number generation, under the BSD licence. QuEST optionally (by additionally importing <code><a class="el" href="QuEST__complex_8h.html">QuEST_complex.h</a></code>) integrates the <a href="http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/CUJ/2003/0303/cuj0303meyers/index.htm">language agnostic complex type</a> by Randy Meyers and Dr. Thomas Plum</p>
<hr  />
<h2><a class="anchor" id="autotoc_md11"></a>
:newspaper:  Related projects</h2>
<ul>
<li><a href="https://questlink.qtechtheory.org">QuESTlink</a> <br  />
 a Mathematica package enabling symbolic circuit manipulation, analytic simulation, visualisation and high performance simulation with remote accelerated hardware.</li>
<li><a href="https://github.com/rrmeister/pyQuEST/tree/master">pyQuEST</a> <br  />
 a python interface to QuEST, based on Cython, developed within the <a href="https://qtechtheory.org">QTechTheory</a> group. Please note, pyQuEST is currently in the alpha stage.</li>
<li><a href="https://github.com/HQSquantumsimulations/PyQuEST-cffi">PyQuEST-cffi</a> <br  />
 a python interface to QuEST based on cffi developed by HQS Quantum Simulations. Please note, PyQuEST-cffi is currently in the alpha stage and not an official QuEST project. </li>
</ul>
</div></div><!-- PageDoc -->
</div><!-- contents -->
<div class="ttc" id="astructVector_html"><div class="ttname"><a href="structVector.html">Vector</a></div><div class="ttdoc">Represents a 3-vector of real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00198">QuEST.h:198</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga13f904b417f647c70d163770e65906fc"><div class="ttname"><a href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">controlledRotateX</a></div><div class="ttdeci">void controlledRotateX(Qureg qureg, int controlQubit, int targetQubit, qreal angle)</div><div class="ttdoc">Applies a controlled rotation by a given angle around the X-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00220">QuEST.c:220</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga4c708f066b244801e10f538b48b90145"><div class="ttname"><a href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">rotateAroundAxis</a></div><div class="ttdeci">void rotateAroundAxis(Qureg qureg, int rotQubit, qreal angle, Vector axis)</div><div class="ttdoc">Rotate a single qubit by a given angle around a given Vector on the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00601">QuEST.c:601</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gae2ea9255b8b11a4a382231e5604dc4e3"><div class="ttname"><a href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">mixDepolarising</a></div><div class="ttdeci">void mixDepolarising(Qureg qureg, int targetQubit, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce single-qubit homogeneous depolarising noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01272">QuEST.c:1272</a></div></div>
<div class="ttc" id="agroup__type_html_ga815103261fb22ea9690e1427571df00e"><div class="ttname"><a href="group__type.html#ga815103261fb22ea9690e1427571df00e">createComplexMatrixN</a></div><div class="ttdeci">ComplexMatrixN createComplexMatrixN(int numQubits)</div><div class="ttdoc">Allocate dynamic memory for a square complex matrix of any size, which can be passed to functions lik...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01348">QuEST.c:1348</a></div></div>
<div class="ttc" id="astructVector_html_ab33976d8fda2e44b770f71269d698a25"><div class="ttname"><a href="structVector.html#ab33976d8fda2e44b770f71269d698a25">Vector::z</a></div><div class="ttdeci">qreal z</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00200">QuEST.h:200</a></div></div>
<div class="ttc" id="agroup__calc_html_ga2a7946e6fa4f44c9ae0c6c9f683229ad"><div class="ttname"><a href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">calcProbOfOutcome</a></div><div class="ttdeci">qreal calcProbOfOutcome(Qureg qureg, int measureQubit, int outcome)</div><div class="ttdoc">Gives the probability of a specified qubit being measured in the given outcome (0 or 1).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01166">QuEST.c:1166</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga78b814256f851cac70fdf3cbf9cfc206"><div class="ttname"><a href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">unitary</a></div><div class="ttdeci">void unitary(Qureg qureg, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general single-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00348">QuEST.c:348</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html"><div class="ttname"><a href="structComplexMatrixN.html">ComplexMatrixN</a></div><div class="ttdoc">Represents a general 2^N by 2^N matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00186">QuEST.h:186</a></div></div>
<div class="ttc" id="agroup__calc_html_ga5544d2833a69941b8820797b79daf79f"><div class="ttname"><a href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">calcExpecPauliHamil</a></div><div class="ttdeci">qreal calcExpecPauliHamil(Qureg qureg, PauliHamil hamil, Qureg workspace)</div><div class="ttdoc">Computes the expected value of qureg under Hermitian operator hamil.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01219">QuEST.c:1219</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga3ad6c477edcdbc845fc1143e860fda08"><div class="ttname"><a href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">multiControlledMultiQubitUnitary</a></div><div class="ttdeci">void multiControlledMultiQubitUnitary(Qureg qureg, int *ctrls, int numCtrls, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general multi-controlled multi-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00330">QuEST.c:330</a></div></div>
<div class="ttc" id="astructVector_html_abc3cfc6c8e297b1153a373d84b981e6b"><div class="ttname"><a href="structVector.html#abc3cfc6c8e297b1153a373d84b981e6b">Vector::y</a></div><div class="ttdeci">qreal y</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00200">QuEST.h:200</a></div></div>
<div class="ttc" id="astructVector_html_a0d0459a5b731ac5fb3dff2c6134e6e88"><div class="ttname"><a href="structVector.html#a0d0459a5b731ac5fb3dff2c6134e6e88">Vector::x</a></div><div class="ttdeci">qreal x</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00200">QuEST.h:200</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html_a3ea98d545b67a190ee6abe936c72076f"><div class="ttname"><a href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f">ComplexMatrix2::real</a></div><div class="ttdeci">qreal real[2][2]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00139">QuEST.h:139</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga6532decd6c404189915563492f090e6f"><div class="ttname"><a href="group__unitary.html#ga6532decd6c404189915563492f090e6f">hadamard</a></div><div class="ttdeci">void hadamard(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Hadamard gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00176">QuEST.c:176</a></div></div>
<div class="ttc" id="agroup__operator_html_ga35b6321c578a8c69470132b5ee95f930"><div class="ttname"><a href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">applyTrotterCircuit</a></div><div class="ttdeci">void applyTrotterCircuit(Qureg qureg, PauliHamil hamil, qreal time, int order, int reps)</div><div class="ttdoc">Applies a trotterisation of unitary evolution  to qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01070">QuEST.c:1070</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html"><div class="ttname"><a href="structComplexMatrix2.html">ComplexMatrix2</a></div><div class="ttdoc">Represents a 2x2 matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00137">QuEST.h:137</a></div></div>
<!-- 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>