<!-- 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: utilities.hpp 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_e791dcdec8c5d319683d04485e4067ac.html">tests</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">utilities.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include "<a class="el" href="QuEST_8h_source.html">QuEST.h</a>"</code><br />
<code>#include "<a class="el" href="QuEST__complex_8h_source.html">QuEST_complex.h</a>"</code><br />
<code>#include "catch.hpp"</code><br />
<code>#include <vector></code><br />
</div>
<p><a href="utilities_8hpp_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="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a2f52338126bb8cdf7fcf68eaf01c546a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a2f52338126bb8cdf7fcf68eaf01c546a">NUM_QUBITS</a>   5</td></tr>
<tr class="memdesc:a2f52338126bb8cdf7fcf68eaf01c546a"><td class="mdescLeft"> </td><td class="mdescRight">The default number of qubits in the registers created for unit testing (both statevectors and density matrices). <a href="utilities_8hpp.html#a2f52338126bb8cdf7fcf68eaf01c546a">More...</a><br /></td></tr>
<tr class="separator:a2f52338126bb8cdf7fcf68eaf01c546a"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a8cc85fff30c23faa2cbed6ca0c01ce39"><td class="memTemplParams" colspan="2">template<class T > </td></tr>
<tr class="memitem:a8cc85fff30c23faa2cbed6ca0c01ce39"><td class="memTemplItemLeft" align="right" valign="top">using </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a> = Catch::Generators::GeneratorWrapper< T ></td></tr>
<tr class="separator:a8cc85fff30c23faa2cbed6ca0c01ce39"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabbc686f5f40eff22e08a2b2012ac4e41"><td class="memItemLeft" align="right" valign="top">typedef std::vector< std::vector< <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a></td></tr>
<tr class="memdesc:gabbc686f5f40eff22e08a2b2012ac4e41"><td class="mdescLeft"> </td><td class="mdescRight">A complex square matrix. <a href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">More...</a><br /></td></tr>
<tr class="separator:gabbc686f5f40eff22e08a2b2012ac4e41"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac9263a65c96a458b810b20baa81c5b94"><td class="memItemLeft" align="right" valign="top">typedef std::vector< <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a></td></tr>
<tr class="memdesc:gac9263a65c96a458b810b20baa81c5b94"><td class="mdescLeft"> </td><td class="mdescRight">A complex vector, which can be zero-initialised with QVector(numAmps). <a href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">More...</a><br /></td></tr>
<tr class="separator:gac9263a65c96a458b810b20baa81c5b94"><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:ga2b197ca736a01f05bf18fbc5c5a9bee6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int *ctrls, int numCtrls, int *targs, int numTargs, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga2b197ca736a01f05bf18fbc5c5a9bee6"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the multi-target operator matrix <code>op</code>, with the specified control and target qubits (in <code>ctrls</code> and <code>targs</code> respectively). <a href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">More...</a><br /></td></tr>
<tr class="separator:ga2b197ca736a01f05bf18fbc5c5a9bee6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2263bdcb61d571c5ea23d1b6cc5f78cb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga2263bdcb61d571c5ea23d1b6cc5f78cb">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int *ctrls, int numCtrls, int targ1, int targ2, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga2263bdcb61d571c5ea23d1b6cc5f78cb"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the two-target operator matrix <code>op</code>, with the specified control qubits (in <code>ctrls</code>). <a href="group__testutilities.html#ga2263bdcb61d571c5ea23d1b6cc5f78cb">More...</a><br /></td></tr>
<tr class="separator:ga2263bdcb61d571c5ea23d1b6cc5f78cb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad6816cb8ec41212e2702b04e10de09e8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gad6816cb8ec41212e2702b04e10de09e8">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int *ctrls, int numCtrls, int target, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:gad6816cb8ec41212e2702b04e10de09e8"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the single-target operator matrix <code>op</code>, with the specified control qubits (in <code>ctrls</code>). <a href="group__testutilities.html#gad6816cb8ec41212e2702b04e10de09e8">More...</a><br /></td></tr>
<tr class="separator:gad6816cb8ec41212e2702b04e10de09e8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac5ee60392d5eb40641862976d7578487"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gac5ee60392d5eb40641862976d7578487">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int *targs, int numTargs, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:gac5ee60392d5eb40641862976d7578487"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the multi-target operator matrix <code>op</code>, with no control qubits. <a href="group__testutilities.html#gac5ee60392d5eb40641862976d7578487">More...</a><br /></td></tr>
<tr class="separator:gac5ee60392d5eb40641862976d7578487"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga891d3dc21ce0159754e8084069e6618b"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga891d3dc21ce0159754e8084069e6618b">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int ctrl, int *targs, int numTargs, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga891d3dc21ce0159754e8084069e6618b"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the multi-target operator matrix <code>op</code>, with a single control qubit <code>ctrl</code>. <a href="group__testutilities.html#ga891d3dc21ce0159754e8084069e6618b">More...</a><br /></td></tr>
<tr class="separator:ga891d3dc21ce0159754e8084069e6618b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga93f82b4874355a5df3f052a0bae6e021"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga93f82b4874355a5df3f052a0bae6e021">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int ctrl, int targ, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga93f82b4874355a5df3f052a0bae6e021"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the single-control single-target operator matrix <code>op</code>. <a href="group__testutilities.html#ga93f82b4874355a5df3f052a0bae6e021">More...</a><br /></td></tr>
<tr class="separator:ga93f82b4874355a5df3f052a0bae6e021"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaea411c5c551f15872bf72592798c6151"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gaea411c5c551f15872bf72592798c6151">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int ctrl, int targ1, int targ2, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:gaea411c5c551f15872bf72592798c6151"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the two-target operator matrix <code>op</code>, with a single control qubit <code>ctrl</code>. <a href="group__testutilities.html#gaea411c5c551f15872bf72592798c6151">More...</a><br /></td></tr>
<tr class="separator:gaea411c5c551f15872bf72592798c6151"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga74eef70cd0948faa81ea80d0111a2d12"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga74eef70cd0948faa81ea80d0111a2d12">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, int targ, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga74eef70cd0948faa81ea80d0111a2d12"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the density matrix <code>state</code> to be the result of applying the single-target operator matrix <code>op</code>, with no control qubit. <a href="group__testutilities.html#ga74eef70cd0948faa81ea80d0111a2d12">More...</a><br /></td></tr>
<tr class="separator:ga74eef70cd0948faa81ea80d0111a2d12"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga731c2de4d491629d806a03e0aea2f3a3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga731c2de4d491629d806a03e0aea2f3a3">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int *ctrls, int numCtrls, int *targs, int numTargs, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga731c2de4d491629d806a03e0aea2f3a3"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the multi-target operator matrix <code>op</code>, with the specified control and target qubits (in <code>ctrls</code> and <code>targs</code> respectively). <a href="group__testutilities.html#ga731c2de4d491629d806a03e0aea2f3a3">More...</a><br /></td></tr>
<tr class="separator:ga731c2de4d491629d806a03e0aea2f3a3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac49c2a7cb2c041f2ec9fcf65337ada74"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gac49c2a7cb2c041f2ec9fcf65337ada74">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int *ctrls, int numCtrls, int targ1, int targ2, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:gac49c2a7cb2c041f2ec9fcf65337ada74"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the two-target operator matrix <code>op</code>, with the specified control qubits (in <code>ctrls</code>). <a href="group__testutilities.html#gac49c2a7cb2c041f2ec9fcf65337ada74">More...</a><br /></td></tr>
<tr class="separator:gac49c2a7cb2c041f2ec9fcf65337ada74"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabc5d0ff4b92368b8c095c0246387f52f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gabc5d0ff4b92368b8c095c0246387f52f">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int *ctrls, int numCtrls, int target, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:gabc5d0ff4b92368b8c095c0246387f52f"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the single-target operator matrix <code>op</code>, with the specified control qubits (in <code>ctrls</code>). <a href="group__testutilities.html#gabc5d0ff4b92368b8c095c0246387f52f">More...</a><br /></td></tr>
<tr class="separator:gabc5d0ff4b92368b8c095c0246387f52f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga757cf0030f27b9df62789df273bbb1e3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga757cf0030f27b9df62789df273bbb1e3">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int *targs, int numTargs, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga757cf0030f27b9df62789df273bbb1e3"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the multi-target operator matrix <code>op</code>, with no contorl qubits. <a href="group__testutilities.html#ga757cf0030f27b9df62789df273bbb1e3">More...</a><br /></td></tr>
<tr class="separator:ga757cf0030f27b9df62789df273bbb1e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga25dbf51127ac7528c7f36f7b84286680"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga25dbf51127ac7528c7f36f7b84286680">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int ctrl, int *targs, int numTargs, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga25dbf51127ac7528c7f36f7b84286680"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the multi-target operator matrix <code>op</code>, with a single control qubit (<code>ctrl</code>) This updates <code>state</code> under. <a href="group__testutilities.html#ga25dbf51127ac7528c7f36f7b84286680">More...</a><br /></td></tr>
<tr class="separator:ga25dbf51127ac7528c7f36f7b84286680"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaadab07060aba3146d82f0c2d1a9cd673"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gaadab07060aba3146d82f0c2d1a9cd673">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int ctrl, int targ, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:gaadab07060aba3146d82f0c2d1a9cd673"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the single-target operator matrix <code>op</code>, with a single control qubit (<code>ctrl</code>). <a href="group__testutilities.html#gaadab07060aba3146d82f0c2d1a9cd673">More...</a><br /></td></tr>
<tr class="separator:gaadab07060aba3146d82f0c2d1a9cd673"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9f194f89bf433b816e4e033eb082b03e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga9f194f89bf433b816e4e033eb082b03e">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int ctrl, int targ1, int targ2, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga9f194f89bf433b816e4e033eb082b03e"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the two-target operator matrix <code>op</code>, with a single control qubit (<code>ctrl</code>). <a href="group__testutilities.html#ga9f194f89bf433b816e4e033eb082b03e">More...</a><br /></td></tr>
<tr class="separator:ga9f194f89bf433b816e4e033eb082b03e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga79d4e260c948c347200ba82922777abc"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga79d4e260c948c347200ba82922777abc">applyReferenceOp</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, int targ, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op)</td></tr>
<tr class="memdesc:ga79d4e260c948c347200ba82922777abc"><td class="mdescLeft"> </td><td class="mdescRight">Modifies the state-vector <code>state</code> to be the result of applying the single-target operator matrix <code>op</code>, with no contorl qubits. <a href="group__testutilities.html#ga79d4e260c948c347200ba82922777abc">More...</a><br /></td></tr>
<tr class="separator:ga79d4e260c948c347200ba82922777abc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8e8781b9483d2ce7fdac542bb96d1e01"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga8e8781b9483d2ce7fdac542bb96d1e01">areEqual</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> b)</td></tr>
<tr class="memdesc:ga8e8781b9483d2ce7fdac542bb96d1e01"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the absolute value of the difference between every amplitude in matrices <code>a</code> and <code>b</code> is less than <code>REAL_EPS</code>. <a href="group__testutilities.html#ga8e8781b9483d2ce7fdac542bb96d1e01">More...</a><br /></td></tr>
<tr class="separator:ga8e8781b9483d2ce7fdac542bb96d1e01"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaef0526d5c35d20ac42befaa3067188d9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gaef0526d5c35d20ac42befaa3067188d9">areEqual</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> matr)</td></tr>
<tr class="memdesc:gaef0526d5c35d20ac42befaa3067188d9"><td class="mdescLeft"> </td><td class="mdescRight">Performs a hardware-agnostic comparison of density-matrix <code>qureg</code> to <code>matr</code>, checking whether the difference between the real and imaginary components of every amplitude is smaller than the QuEST_PREC-specific REAL_EPS (defined in QuEST_precision) precision. <a href="group__testutilities.html#gaef0526d5c35d20ac42befaa3067188d9">More...</a><br /></td></tr>
<tr class="separator:gaef0526d5c35d20ac42befaa3067188d9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga89c312b37e763aa224a008bea7cc381e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga89c312b37e763aa224a008bea7cc381e">areEqual</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> matr, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> precision)</td></tr>
<tr class="memdesc:ga89c312b37e763aa224a008bea7cc381e"><td class="mdescLeft"> </td><td class="mdescRight">Performs a hardware-agnostic comparison of density-matrix <code>qureg</code> to <code>matr</code>, checking whether the difference between the real and imaginary components of every amplitude is smaller than <code>precision</code>. <a href="group__testutilities.html#ga89c312b37e763aa224a008bea7cc381e">More...</a><br /></td></tr>
<tr class="separator:ga89c312b37e763aa224a008bea7cc381e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga451bbbc6b21cd9c1dbf7a5099edd6077"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga451bbbc6b21cd9c1dbf7a5099edd6077">areEqual</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec)</td></tr>
<tr class="memdesc:ga451bbbc6b21cd9c1dbf7a5099edd6077"><td class="mdescLeft"> </td><td class="mdescRight">Performs a hardware-agnostic comparison of state-vector <code>qureg</code> to <code>vec</code>, checking whether the difference between the real and imaginary components of every amplitude is smaller than the QuEST_PREC-specific REAL_EPS (defined in QuEST_precision) precision. <a href="group__testutilities.html#ga451bbbc6b21cd9c1dbf7a5099edd6077">More...</a><br /></td></tr>
<tr class="separator:ga451bbbc6b21cd9c1dbf7a5099edd6077"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga448f07d8e8fbc1bd2fb68c614fecdb4c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga448f07d8e8fbc1bd2fb68c614fecdb4c">areEqual</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> precision)</td></tr>
<tr class="memdesc:ga448f07d8e8fbc1bd2fb68c614fecdb4c"><td class="mdescLeft"> </td><td class="mdescRight">Performs a hardware-agnostic comparison of state-vector <code>qureg</code> to <code>vec</code>, checking whether the difference between the real and imaginary components of every amplitude is smaller than <code>precision</code>. <a href="group__testutilities.html#ga448f07d8e8fbc1bd2fb68c614fecdb4c">More...</a><br /></td></tr>
<tr class="separator:ga448f07d8e8fbc1bd2fb68c614fecdb4c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac0737242d0628e61e3b2a9d39ed0acc6"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a> (<a class="el" href="structQureg.html">Qureg</a> qureg1, <a class="el" href="structQureg.html">Qureg</a> qureg2)</td></tr>
<tr class="memdesc:gac0737242d0628e61e3b2a9d39ed0acc6"><td class="mdescLeft"> </td><td class="mdescRight">Performs a hardware-agnostic comparison of the given quregs, checking whether the difference between the real and imaginary components of every amplitude is smaller than the QuEST_PREC-specific REAL_EPS (defined in QuEST_precision) precision. <a href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">More...</a><br /></td></tr>
<tr class="separator:gac0737242d0628e61e3b2a9d39ed0acc6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5df082edc3f71b08ef8f420d109fa175"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga5df082edc3f71b08ef8f420d109fa175">areEqual</a> (<a class="el" href="structQureg.html">Qureg</a> qureg1, <a class="el" href="structQureg.html">Qureg</a> qureg2, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> precision)</td></tr>
<tr class="memdesc:ga5df082edc3f71b08ef8f420d109fa175"><td class="mdescLeft"> </td><td class="mdescRight">Performs a hardware-agnostic comparison of the given quregs, checking whether the difference between the real and imaginary components of every amplitude is smaller than <code>precision</code>. <a href="group__testutilities.html#ga5df082edc3f71b08ef8f420d109fa175">More...</a><br /></td></tr>
<tr class="separator:ga5df082edc3f71b08ef8f420d109fa175"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga45cc399adad2e2a67b0124851189fae5"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga45cc399adad2e2a67b0124851189fae5">areEqual</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> a, <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> b)</td></tr>
<tr class="memdesc:ga45cc399adad2e2a67b0124851189fae5"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the absolute value of the difference between every amplitude in vectors <code>a</code> and <code>b</code> is less than <code>REAL_EPS</code>. <a href="group__testutilities.html#ga45cc399adad2e2a67b0124851189fae5">More...</a><br /></td></tr>
<tr class="separator:ga45cc399adad2e2a67b0124851189fae5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2e09685323c6b2312a64daf8c74b12b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int * > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga2e09685323c6b2312a64daf8c74b12b5">bitsets</a> (int numBits)</td></tr>
<tr class="memdesc:ga2e09685323c6b2312a64daf8c74b12b5"><td class="mdescLeft"> </td><td class="mdescRight">Returns a Catch2 generator of every <code>numBits-length</code> bit-set, in increasing lexographic order, where left-most (zero index) bit is treated as LEAST significant (opposite typical convention). <a href="group__testutilities.html#ga2e09685323c6b2312a64daf8c74b12b5">More...</a><br /></td></tr>
<tr class="separator:ga2e09685323c6b2312a64daf8c74b12b5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga267884197cf7f1d428021cb12a57360c"><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga267884197cf7f1d428021cb12a57360c">calcLog2</a> (long unsigned int res)</td></tr>
<tr class="memdesc:ga267884197cf7f1d428021cb12a57360c"><td class="mdescLeft"> </td><td class="mdescRight">Returns log2 of numbers which must be gauranteed to be 2^n. <a href="group__testutilities.html#ga267884197cf7f1d428021cb12a57360c">More...</a><br /></td></tr>
<tr class="separator:ga267884197cf7f1d428021cb12a57360c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9dc43d4a0827b56cd004270a9c5b2604"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a9dc43d4a0827b56cd004270a9c5b2604">expI</a> (<a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> phase)</td></tr>
<tr class="memdesc:a9dc43d4a0827b56cd004270a9c5b2604"><td class="mdescLeft"> </td><td class="mdescRight">Returns the unit-norm complex number exp(i*<code>phase</code>). <a href="utilities_8hpp.html#a9dc43d4a0827b56cd004270a9c5b2604">More...</a><br /></td></tr>
<tr class="separator:a9dc43d4a0827b56cd004270a9c5b2604"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3cf199a7de3bbcb3546503f25be9245a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga3cf199a7de3bbcb3546503f25be9245a">getConjugateTranspose</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a)</td></tr>
<tr class="memdesc:ga3cf199a7de3bbcb3546503f25be9245a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the conjugate transpose of the complex square matrix <code>a</code>. <a href="group__testutilities.html#ga3cf199a7de3bbcb3546503f25be9245a">More...</a><br /></td></tr>
<tr class="separator:ga3cf199a7de3bbcb3546503f25be9245a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac60cee26113732c491f21dc43066b605"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gac60cee26113732c491f21dc43066b605">getExponentialOfDiagonalMatrix</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a)</td></tr>
<tr class="memdesc:gac60cee26113732c491f21dc43066b605"><td class="mdescLeft"> </td><td class="mdescRight">Returns the matrix exponential of a diagonal, square, complex matrix. <a href="group__testutilities.html#gac60cee26113732c491f21dc43066b605">More...</a><br /></td></tr>
<tr class="separator:gac60cee26113732c491f21dc43066b605"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga00f4feec845c019c3390898b0cc7f1ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga00f4feec845c019c3390898b0cc7f1ef">getExponentialOfPauliMatrix</a> (<a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a)</td></tr>
<tr class="memdesc:ga00f4feec845c019c3390898b0cc7f1ef"><td class="mdescLeft"> </td><td class="mdescRight">Returns the matrix exponential of a kronecker product of pauli matrices (or of any involutory matrices), with exponent factor (-i <code>angle</code> / 2). <a href="group__testutilities.html#ga00f4feec845c019c3390898b0cc7f1ef">More...</a><br /></td></tr>
<tr class="separator:ga00f4feec845c019c3390898b0cc7f1ef"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga20f041452b43026d876fde17a5999265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga20f041452b43026d876fde17a5999265">getFullOperatorMatrix</a> (int *ctrls, int numCtrls, int *targs, int numTargs, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op, int numQubits)</td></tr>
<tr class="memdesc:ga20f041452b43026d876fde17a5999265"><td class="mdescLeft"> </td><td class="mdescRight">Takes a 2^<code>numTargs-by-2^<code>numTargs</code> matrix</code> <code>op</code> and a returns a 2^<code>numQubits-by-2^<code>numQubits</code> matrix</code> where <code>op</code> is controlled on the given <code>ctrls</code> qubits. <a href="group__testutilities.html#ga20f041452b43026d876fde17a5999265">More...</a><br /></td></tr>
<tr class="separator:ga20f041452b43026d876fde17a5999265"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac0c6339c28256f2aae86d443fae44455"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gac0c6339c28256f2aae86d443fae44455">getIdentityMatrix</a> (size_t dim)</td></tr>
<tr class="memdesc:gac0c6339c28256f2aae86d443fae44455"><td class="mdescLeft"> </td><td class="mdescRight">Returns a dim-by-dim identity matrix. <a href="group__testutilities.html#gac0c6339c28256f2aae86d443fae44455">More...</a><br /></td></tr>
<tr class="separator:gac0c6339c28256f2aae86d443fae44455"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2de7d3b138728b6beb7753b82df61803"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga2de7d3b138728b6beb7753b82df61803">getKetBra</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> ket, <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> bra)</td></tr>
<tr class="memdesc:ga2de7d3b138728b6beb7753b82df61803"><td class="mdescLeft"> </td><td class="mdescRight">Returns the matrix |<code>ket><<code>bra|</code>,</code> with ith-jth element <code>ket(i)</code> conj(<code>bra(j)</code>), since |<code>ket><<code>bra|</code> =</code> sum_i a_i|i> sum_j b_j* <j| = sum_{ij} a_i b_j* |i><j|. <a href="group__testutilities.html#ga2de7d3b138728b6beb7753b82df61803">More...</a><br /></td></tr>
<tr class="separator:ga2de7d3b138728b6beb7753b82df61803"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga50616e813b0d0aa4f8220785d780cdff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga50616e813b0d0aa4f8220785d780cdff">getKroneckerProduct</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> b)</td></tr>
<tr class="memdesc:ga50616e813b0d0aa4f8220785d780cdff"><td class="mdescLeft"> </td><td class="mdescRight">Returns the kronecker product of <code>a</code> and <code>b</code>, where <code>a</code> and <code>b</code> are square but possibly differently-sized complex matrices. <a href="group__testutilities.html#ga50616e813b0d0aa4f8220785d780cdff">More...</a><br /></td></tr>
<tr class="separator:ga50616e813b0d0aa4f8220785d780cdff"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5438455c2c8ecf5948ca22875313a590"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga5438455c2c8ecf5948ca22875313a590">getNormalised</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec)</td></tr>
<tr class="memdesc:ga5438455c2c8ecf5948ca22875313a590"><td class="mdescLeft"> </td><td class="mdescRight">Returns an L2-normalised copy of <code>vec</code>, using Kahan summation for improved accuracy. <a href="group__testutilities.html#ga5438455c2c8ecf5948ca22875313a590">More...</a><br /></td></tr>
<tr class="separator:ga5438455c2c8ecf5948ca22875313a590"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga617b0fd1eb1c395762c937ad3b23e61b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga617b0fd1eb1c395762c937ad3b23e61b">getRandomDensityMatrix</a> (int numQb)</td></tr>
<tr class="memdesc:ga617b0fd1eb1c395762c937ad3b23e61b"><td class="mdescLeft"> </td><td class="mdescRight">Returns a random <code>numQb-by-<code>numQb</code> density</code> matrix, from an undisclosed distribution, in a very mixed state. <a href="group__testutilities.html#ga617b0fd1eb1c395762c937ad3b23e61b">More...</a><br /></td></tr>
<tr class="separator:ga617b0fd1eb1c395762c937ad3b23e61b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7125d0747a44db58115899727ac5f6be"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga7125d0747a44db58115899727ac5f6be">getRandomInt</a> (int min, int max)</td></tr>
<tr class="memdesc:ga7125d0747a44db58115899727ac5f6be"><td class="mdescLeft"> </td><td class="mdescRight">Returns a random integer between <code>min</code> (inclusive) and <code>max</code> (exclusive), from the uniform distribution. <a href="group__testutilities.html#ga7125d0747a44db58115899727ac5f6be">More...</a><br /></td></tr>
<tr class="separator:ga7125d0747a44db58115899727ac5f6be"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0d3b30625e2350a1e837a0b259dd3b18"><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga0d3b30625e2350a1e837a0b259dd3b18">getRandomKrausMap</a> (int numQb, int numOps)</td></tr>
<tr class="memdesc:ga0d3b30625e2350a1e837a0b259dd3b18"><td class="mdescLeft"> </td><td class="mdescRight">Returns a random Kraus map of <code>#numOps</code> 2^<code>numQb-by-2^<code>numQb</code> operators</code>, from an undisclosed distribution. <a href="group__testutilities.html#ga0d3b30625e2350a1e837a0b259dd3b18">More...</a><br /></td></tr>
<tr class="separator:ga0d3b30625e2350a1e837a0b259dd3b18"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa2e8b958e0cba07e01de9f91a5ce3c9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gaa2e8b958e0cba07e01de9f91a5ce3c9c">getRandomQMatrix</a> (int dim)</td></tr>
<tr class="memdesc:gaa2e8b958e0cba07e01de9f91a5ce3c9c"><td class="mdescLeft"> </td><td class="mdescRight">Returns a <code>dim-by-<code>dim</code> complex</code> matrix, where the real and imaginary value of each element are independently random, under the standard normal distribution (mean 0, standard deviation 1). <a href="group__testutilities.html#gaa2e8b958e0cba07e01de9f91a5ce3c9c">More...</a><br /></td></tr>
<tr class="separator:gaa2e8b958e0cba07e01de9f91a5ce3c9c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga27dc818709394cb31247e26850215f8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga27dc818709394cb31247e26850215f8a">getRandomQVector</a> (int dim)</td></tr>
<tr class="memdesc:ga27dc818709394cb31247e26850215f8a"><td class="mdescLeft"> </td><td class="mdescRight">Returns a <code>dim-length</code> vector with random complex amplitudes in the square joining {-1-i, 1+i}, of an undisclosed distribution. <a href="group__testutilities.html#ga27dc818709394cb31247e26850215f8a">More...</a><br /></td></tr>
<tr class="separator:ga27dc818709394cb31247e26850215f8a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacd5aadbe10ecdedaa625f85171c0a3cd"><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__testutilities.html#gacd5aadbe10ecdedaa625f85171c0a3cd">getRandomReal</a> (<a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> min, <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> max)</td></tr>
<tr class="memdesc:gacd5aadbe10ecdedaa625f85171c0a3cd"><td class="mdescLeft"> </td><td class="mdescRight">Returns a random real between <code>min</code> (inclusive) and <code>max</code> (exclusive), from the uniform distribution. <a href="group__testutilities.html#gacd5aadbe10ecdedaa625f85171c0a3cd">More...</a><br /></td></tr>
<tr class="separator:gacd5aadbe10ecdedaa625f85171c0a3cd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae1d2eb70b50267f8186cbd53e300d94f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gae1d2eb70b50267f8186cbd53e300d94f">getRandomStateVector</a> (int numQb)</td></tr>
<tr class="memdesc:gae1d2eb70b50267f8186cbd53e300d94f"><td class="mdescLeft"> </td><td class="mdescRight">Returns a random <code>numQb-length</code> L2-normalised state-vector from an undisclosed distribution. <a href="group__testutilities.html#gae1d2eb70b50267f8186cbd53e300d94f">More...</a><br /></td></tr>
<tr class="separator:gae1d2eb70b50267f8186cbd53e300d94f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1a5e9b668716b91dd8527ce00f7500cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga1a5e9b668716b91dd8527ce00f7500cf">getRandomUnitary</a> (int numQb)</td></tr>
<tr class="memdesc:ga1a5e9b668716b91dd8527ce00f7500cf"><td class="mdescLeft"> </td><td class="mdescRight">Returns a uniformly random (under Haar) 2^<code>numQb-by-2^<code>numQb</code> unitary</code> matrix. <a href="group__testutilities.html#ga1a5e9b668716b91dd8527ce00f7500cf">More...</a><br /></td></tr>
<tr class="separator:ga1a5e9b668716b91dd8527ce00f7500cf"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga37e0f375a6c50721aaf68153f750e842"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga37e0f375a6c50721aaf68153f750e842">getSwapMatrix</a> (int qb1, int qb2, int numQb)</td></tr>
<tr class="memdesc:ga37e0f375a6c50721aaf68153f750e842"><td class="mdescLeft"> </td><td class="mdescRight">Returns the 2^<code>numQb-by-2^<code>numQb</code> unitary</code> matrix which swaps qubits <code>qb1</code> and <code>qb2</code>; the SWAP gate of not-necessarily-adjacent qubits. <a href="group__testutilities.html#ga37e0f375a6c50721aaf68153f750e842">More...</a><br /></td></tr>
<tr class="separator:ga37e0f375a6c50721aaf68153f750e842"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6ccbb15b0f234e926be96a153181b63a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga6ccbb15b0f234e926be96a153181b63a">getZeroMatrix</a> (size_t dim)</td></tr>
<tr class="memdesc:ga6ccbb15b0f234e926be96a153181b63a"><td class="mdescLeft"> </td><td class="mdescRight">Returns a dim-by-dim square complex matrix, initialised to all zeroes. <a href="group__testutilities.html#ga6ccbb15b0f234e926be96a153181b63a">More...</a><br /></td></tr>
<tr class="separator:ga6ccbb15b0f234e926be96a153181b63a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0c677f35ecb3e88eba5e001fb6ed9ac5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a0c677f35ecb3e88eba5e001fb6ed9ac5">operator*</a> (const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a, const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m)</td></tr>
<tr class="separator:a0c677f35ecb3e88eba5e001fb6ed9ac5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4e8b82fba42c4fc52bf663082df09443"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator*</a> (const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a, const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v)</td></tr>
<tr class="separator:a4e8b82fba42c4fc52bf663082df09443"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a293961c8fa461ccf37b7b5351880070d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a293961c8fa461ccf37b7b5351880070d">operator*</a> (const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m, const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a)</td></tr>
<tr class="separator:a293961c8fa461ccf37b7b5351880070d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a83bf6308d94642de4416e26e19e3ad00"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a83bf6308d94642de4416e26e19e3ad00">operator*</a> (const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m, const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v)</td></tr>
<tr class="separator:a83bf6308d94642de4416e26e19e3ad00"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a59ee16722b772c6f8ebf8fa83ded714b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a59ee16722b772c6f8ebf8fa83ded714b">operator*</a> (const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m2)</td></tr>
<tr class="separator:a59ee16722b772c6f8ebf8fa83ded714b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a16c67de049d1e68b950bbd6e3d67bd6c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a16c67de049d1e68b950bbd6e3d67bd6c">operator*</a> (const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v, const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a)</td></tr>
<tr class="separator:a16c67de049d1e68b950bbd6e3d67bd6c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a48dd911ac2c9b071e6d1497074e44051"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a48dd911ac2c9b071e6d1497074e44051">operator*</a> (const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v2)</td></tr>
<tr class="separator:a48dd911ac2c9b071e6d1497074e44051"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a46927798eee7a62bff6fe76d3ed78e33"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a46927798eee7a62bff6fe76d3ed78e33">operator*=</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m2)</td></tr>
<tr class="separator:a46927798eee7a62bff6fe76d3ed78e33"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af6df034d8adce07289a78a0b80ebffd2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#af6df034d8adce07289a78a0b80ebffd2">operator*=</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> &a)</td></tr>
<tr class="separator:af6df034d8adce07289a78a0b80ebffd2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac39c5776e942f283ba52e0742a98d63f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#ac39c5776e942f283ba52e0742a98d63f">operator*=</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a)</td></tr>
<tr class="separator:ac39c5776e942f283ba52e0742a98d63f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a83bd85cc91272c8d457a0f233a354fb8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a83bd85cc91272c8d457a0f233a354fb8">operator+</a> (const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m2)</td></tr>
<tr class="separator:a83bd85cc91272c8d457a0f233a354fb8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aed39fc3a3108b8aad424c03a4b966158"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#aed39fc3a3108b8aad424c03a4b966158">operator+</a> (const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v2)</td></tr>
<tr class="separator:aed39fc3a3108b8aad424c03a4b966158"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9353a8cc912e65453fa54a83558dce1a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a9353a8cc912e65453fa54a83558dce1a">operator+=</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m2)</td></tr>
<tr class="separator:a9353a8cc912e65453fa54a83558dce1a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a91e707f38b1844fcbc0529ca41db816a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a91e707f38b1844fcbc0529ca41db816a">operator+=</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v2)</td></tr>
<tr class="separator:a91e707f38b1844fcbc0529ca41db816a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac169eaefbce666c4f282fd2799c658a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#ac169eaefbce666c4f282fd2799c658a0">operator-</a> (const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m2)</td></tr>
<tr class="separator:ac169eaefbce666c4f282fd2799c658a0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ade72f855c80218725aa19183723af15c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#ade72f855c80218725aa19183723af15c">operator-</a> (const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v2)</td></tr>
<tr class="separator:ade72f855c80218725aa19183723af15c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae94c0855c09cdbc87a894ba6003c0944"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#ae94c0855c09cdbc87a894ba6003c0944">operator-=</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m2)</td></tr>
<tr class="separator:ae94c0855c09cdbc87a894ba6003c0944"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aabfdeb43b039e628f9370507ab27529a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#aabfdeb43b039e628f9370507ab27529a">operator-=</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v2)</td></tr>
<tr class="separator:aabfdeb43b039e628f9370507ab27529a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a710aa3cc5b80f470d68e094941a303c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a710aa3cc5b80f470d68e094941a303c3">operator/</a> (const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m, const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a)</td></tr>
<tr class="separator:a710aa3cc5b80f470d68e094941a303c3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1b8611d2c9af569e1265e8f48d8e0143"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a1b8611d2c9af569e1265e8f48d8e0143">operator/</a> (const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v, const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a)</td></tr>
<tr class="separator:a1b8611d2c9af569e1265e8f48d8e0143"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1e6b08e4c0e1a376f6ef04edfb5c3f54"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a1e6b08e4c0e1a376f6ef04edfb5c3f54">operator/=</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &m1, const <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> &a)</td></tr>
<tr class="separator:a1e6b08e4c0e1a376f6ef04edfb5c3f54"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a799b92f6c9de52c7c5a4b38e30c5d395"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="utilities_8hpp.html#a799b92f6c9de52c7c5a4b38e30c5d395">operator/=</a> (<a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> &a)</td></tr>
<tr class="separator:a799b92f6c9de52c7c5a4b38e30c5d395"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac102c131efa312dabd5462e6e2642975"><td class="memItemLeft" align="right" valign="top"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< <a class="el" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gac102c131efa312dabd5462e6e2642975">pauliseqs</a> (int numPaulis)</td></tr>
<tr class="memdesc:gac102c131efa312dabd5462e6e2642975"><td class="mdescLeft"> </td><td class="mdescRight">Returns a Catch2 generator of every <code>numPaulis-length</code> set of Pauli-matrix types (or base-4 integers). <a href="group__testutilities.html#gac102c131efa312dabd5462e6e2642975">More...</a><br /></td></tr>
<tr class="separator:gac102c131efa312dabd5462e6e2642975"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga181366c4cdc7786bcc066e8ac8342c1d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int * > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga181366c4cdc7786bcc066e8ac8342c1d">sequences</a> (int base, int numDigits)</td></tr>
<tr class="memdesc:ga181366c4cdc7786bcc066e8ac8342c1d"><td class="mdescLeft"> </td><td class="mdescRight">Returns a Catch2 generator of every <code>numDigits-length</code> sequence in the given <code>base</code>, in increasing lexographic order, where left-most (zero index) bit is treated as LEAST significant (opposite typical convention). <a href="group__testutilities.html#ga181366c4cdc7786bcc066e8ac8342c1d">More...</a><br /></td></tr>
<tr class="separator:ga181366c4cdc7786bcc066e8ac8342c1d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga75966a02c618790c1de5f0102ab8398f"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga75966a02c618790c1de5f0102ab8398f">setSubMatrix</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &dest, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> sub, size_t r, size_t c)</td></tr>
<tr class="memdesc:ga75966a02c618790c1de5f0102ab8398f"><td class="mdescLeft"> </td><td class="mdescRight">Modifies <code>dest</code> by overwriting its submatrix (from top-left corner (<code>r</code>, <code>c</code>) to bottom-right corner (<code>r</code> + <code>dest.size()</code>, <code>c</code> + <code>dest.size()</code>) with the complete elements of sub. <a href="group__testutilities.html#ga75966a02c618790c1de5f0102ab8398f">More...</a><br /></td></tr>
<tr class="separator:ga75966a02c618790c1de5f0102ab8398f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab724b72e679a9be95ff5e01b076928df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int * > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gab724b72e679a9be95ff5e01b076928df">sublists</a> (<a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int > &&gen, int numSamps, const int *exclude, int numExclude)</td></tr>
<tr class="memdesc:gab724b72e679a9be95ff5e01b076928df"><td class="mdescLeft"> </td><td class="mdescRight">Returns a Catch2 generator of every length-<code>sublen</code> sublist of the elements generated by <code>gen</code>, which exclude all elements in <code>exclude</code>, in increasing lexographic order. <a href="group__testutilities.html#gab724b72e679a9be95ff5e01b076928df">More...</a><br /></td></tr>
<tr class="separator:gab724b72e679a9be95ff5e01b076928df"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae479aa71f65fce301d64ed8cd9118e95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int * > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gae479aa71f65fce301d64ed8cd9118e95">sublists</a> (<a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int > &&gen, int numSamps, int excluded)</td></tr>
<tr class="memdesc:gae479aa71f65fce301d64ed8cd9118e95"><td class="mdescLeft"> </td><td class="mdescRight">Returns a Catch2 generator of every length-<code>sublen</code> sublist of the elements generated by <code>gen</code> which exclude element <code>excluded</code>, in increasing lexographic order. <a href="group__testutilities.html#gae479aa71f65fce301d64ed8cd9118e95">More...</a><br /></td></tr>
<tr class="separator:gae479aa71f65fce301d64ed8cd9118e95"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabe5be8b856a9f67e392db86a62d8cf31"><td class="memItemLeft" align="right" valign="top"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int * > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gabe5be8b856a9f67e392db86a62d8cf31">sublists</a> (<a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int > &&gen, int sublen)</td></tr>
<tr class="memdesc:gabe5be8b856a9f67e392db86a62d8cf31"><td class="mdescLeft"> </td><td class="mdescRight">Returns a Catch2 generator of every length-<code>sublen</code> sublist of the elements generated by <code>gen</code>, in increasing lexographic order. <a href="group__testutilities.html#gabe5be8b856a9f67e392db86a62d8cf31">More...</a><br /></td></tr>
<tr class="separator:gabe5be8b856a9f67e392db86a62d8cf31"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga35add15146aa606b256df79334b867d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a>< int * > </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a> (int *list, int len, int sublen)</td></tr>
<tr class="memdesc:ga35add15146aa606b256df79334b867d5"><td class="mdescLeft"> </td><td class="mdescRight">Returns a Catch2 generator of every length-<code>sublen</code> sublist of length-<code>len</code> <code>list</code>, in increasing lexographic order. <a href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">More...</a><br /></td></tr>
<tr class="separator:ga35add15146aa606b256df79334b867d5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga731a7a71755c25ebe96e742e3fbe5812"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga731a7a71755c25ebe96e742e3fbe5812">toComplexMatrix2</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> qm)</td></tr>
<tr class="memdesc:ga731a7a71755c25ebe96e742e3fbe5812"><td class="mdescLeft"> </td><td class="mdescRight">Returns a <code><a class="el" href="structComplexMatrix2.html" title="Represents a 2x2 matrix of complex numbers.">ComplexMatrix2</a></code> copy of QMatix <code>qm</code>. <a href="group__testutilities.html#ga731a7a71755c25ebe96e742e3fbe5812">More...</a><br /></td></tr>
<tr class="separator:ga731a7a71755c25ebe96e742e3fbe5812"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga216f7c25bbb0cf752d1b6fff5ea8197b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga216f7c25bbb0cf752d1b6fff5ea8197b">toComplexMatrix4</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> qm)</td></tr>
<tr class="memdesc:ga216f7c25bbb0cf752d1b6fff5ea8197b"><td class="mdescLeft"> </td><td class="mdescRight">Returns a <code><a class="el" href="structComplexMatrix4.html" title="Represents a 4x4 matrix of complex numbers.">ComplexMatrix4</a></code> copy of QMatix <code>qm</code>. <a href="group__testutilities.html#ga216f7c25bbb0cf752d1b6fff5ea8197b">More...</a><br /></td></tr>
<tr class="separator:ga216f7c25bbb0cf752d1b6fff5ea8197b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7f83695bea7d0332a577bca017dbb03c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga7f83695bea7d0332a577bca017dbb03c">toComplexMatrixN</a> (<a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> qm, <a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> cm)</td></tr>
<tr class="memdesc:ga7f83695bea7d0332a577bca017dbb03c"><td class="mdescLeft"> </td><td class="mdescRight">Initialises <code>cm</code> with the values of <code>qm</code>. <a href="group__testutilities.html#ga7f83695bea7d0332a577bca017dbb03c">More...</a><br /></td></tr>
<tr class="separator:ga7f83695bea7d0332a577bca017dbb03c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad552153e13f45cf6c7d6447ae6d9551a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gad552153e13f45cf6c7d6447ae6d9551a">toQMatrix</a> (<a class="el" href="structComplex.html">Complex</a> alpha, <a class="el" href="structComplex.html">Complex</a> beta)</td></tr>
<tr class="memdesc:gad552153e13f45cf6c7d6447ae6d9551a"><td class="mdescLeft"> </td><td class="mdescRight">Returns the matrix (where a=<code>alpha</code>, b=<code>beta</code>) {{a, -conj(b)}, {b, conj(a)}} using the <code>qcomp</code> complex type. <a href="group__testutilities.html#gad552153e13f45cf6c7d6447ae6d9551a">More...</a><br /></td></tr>
<tr class="separator:gad552153e13f45cf6c7d6447ae6d9551a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga253946523907014c4f198d2bb38d4913"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga253946523907014c4f198d2bb38d4913">toQMatrix</a> (<a class="el" href="structComplexMatrix2.html">ComplexMatrix2</a> src)</td></tr>
<tr class="memdesc:ga253946523907014c4f198d2bb38d4913"><td class="mdescLeft"> </td><td class="mdescRight">Returns a copy of the given 2-by-2 matrix. <a href="group__testutilities.html#ga253946523907014c4f198d2bb38d4913">More...</a><br /></td></tr>
<tr class="separator:ga253946523907014c4f198d2bb38d4913"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3dbd53326151e3c6c5e0de579f6554a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga3dbd53326151e3c6c5e0de579f6554a7">toQMatrix</a> (<a class="el" href="structComplexMatrix4.html">ComplexMatrix4</a> src)</td></tr>
<tr class="memdesc:ga3dbd53326151e3c6c5e0de579f6554a7"><td class="mdescLeft"> </td><td class="mdescRight">Returns a copy of the given 4-by-4 matrix. <a href="group__testutilities.html#ga3dbd53326151e3c6c5e0de579f6554a7">More...</a><br /></td></tr>
<tr class="separator:ga3dbd53326151e3c6c5e0de579f6554a7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadbcd76cb251c802e7f81803bdd23064b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gadbcd76cb251c802e7f81803bdd23064b">toQMatrix</a> (<a class="el" href="structComplexMatrixN.html">ComplexMatrixN</a> src)</td></tr>
<tr class="memdesc:gadbcd76cb251c802e7f81803bdd23064b"><td class="mdescLeft"> </td><td class="mdescRight">Returns a copy of the given 2^<code>N-by-2^<code>n</code> matrix</code>. <a href="group__testutilities.html#gadbcd76cb251c802e7f81803bdd23064b">More...</a><br /></td></tr>
<tr class="separator:gadbcd76cb251c802e7f81803bdd23064b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4c4ce1767ee2ef420c0078ea5991aeb0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:ga4c4ce1767ee2ef420c0078ea5991aeb0"><td class="mdescLeft"> </td><td class="mdescRight">Returns an equal-size copy of the given density matrix <code>qureg</code>. <a href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">More...</a><br /></td></tr>
<tr class="separator:ga4c4ce1767ee2ef420c0078ea5991aeb0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5e1bcff9f5867273c4d413a60dc78e8e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#ga5e1bcff9f5867273c4d413a60dc78e8e">toQureg</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> mat)</td></tr>
<tr class="memdesc:ga5e1bcff9f5867273c4d413a60dc78e8e"><td class="mdescLeft"> </td><td class="mdescRight">Initialises the density matrix <code>qureg</code> to have the same amplitudes as <code>mat</code>. <a href="group__testutilities.html#ga5e1bcff9f5867273c4d413a60dc78e8e">More...</a><br /></td></tr>
<tr class="separator:ga5e1bcff9f5867273c4d413a60dc78e8e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf5a18d4c00dfe0523972be3bfc666362"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gaf5a18d4c00dfe0523972be3bfc666362">toQureg</a> (<a class="el" href="structQureg.html">Qureg</a> qureg, <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec)</td></tr>
<tr class="memdesc:gaf5a18d4c00dfe0523972be3bfc666362"><td class="mdescLeft"> </td><td class="mdescRight">Initialises the state-vector <code>qureg</code> to have the same amplitudes as <code>vec</code>. <a href="group__testutilities.html#gaf5a18d4c00dfe0523972be3bfc666362">More...</a><br /></td></tr>
<tr class="separator:gaf5a18d4c00dfe0523972be3bfc666362"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gade0e7c37811a69f1c21c88c11943a19f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__testutilities.html#gade0e7c37811a69f1c21c88c11943a19f">toQVector</a> (<a class="el" href="structQureg.html">Qureg</a> qureg)</td></tr>
<tr class="memdesc:gade0e7c37811a69f1c21c88c11943a19f"><td class="mdescLeft"> </td><td class="mdescRight">Returns an equal-size copy of the given state-vector <code>qureg</code>. <a href="group__testutilities.html#gade0e7c37811a69f1c21c88c11943a19f">More...</a><br /></td></tr>
<tr class="separator:gade0e7c37811a69f1c21c88c11943a19f"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a718130cc1fc36cde991aff3d4c85c47d"><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="utilities_8hpp.html#a718130cc1fc36cde991aff3d4c85c47d">QUEST_ENV</a></td></tr>
<tr class="memdesc:a718130cc1fc36cde991aff3d4c85c47d"><td class="mdescLeft"> </td><td class="mdescRight">The single <a class="el" href="structQuESTEnv.html" title="Information about the environment the program is running in.">QuESTEnv</a> environment created before the Catch tests begin, and destroyed thereafter. <a href="utilities_8hpp.html#a718130cc1fc36cde991aff3d4c85c47d">More...</a><br /></td></tr>
<tr class="separator:a718130cc1fc36cde991aff3d4c85c47d"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Unoptimised, analytic implementations of matrix operations used by QuEST's unit tests </p>
<p class="definition">Definition in file <a class="el" href="utilities_8hpp_source.html">utilities.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a2f52338126bb8cdf7fcf68eaf01c546a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f52338126bb8cdf7fcf68eaf01c546a">◆ </a></span>NUM_QUBITS</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define NUM_QUBITS   5</td>
</tr>
</table>
</div><div class="memdoc">
<p>The default number of qubits in the registers created for unit testing (both statevectors and density matrices). </p>
<p>Creation of non-NUM_QUBITS sized Quregs should be justified in a comment. Note that the smaller this number is, the fewer nodes can be employed in distribution testing, since each node must contain at least one amplitude. Furthermore, the larger this number is, the greater the deviation of correct results from their expected value, due to numerical error; this is especially apparent for density matrices. </p>
<p class="definition">Definition at line <a class="el" href="utilities_8hpp_source.html#l00036">36</a> of file <a class="el" href="utilities_8hpp_source.html">utilities.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="a8cc85fff30c23faa2cbed6ca0c01ce39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cc85fff30c23faa2cbed6ca0c01ce39">◆ </a></span>CatchGen</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template<class T > </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a> = Catch::Generators::GeneratorWrapper<T></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8hpp_source.html#l00790">790</a> of file <a class="el" href="utilities_8hpp_source.html">utilities.hpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a9dc43d4a0827b56cd004270a9c5b2604"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9dc43d4a0827b56cd004270a9c5b2604">◆ </a></span>expI()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> expI </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> </td>
<td class="paramname"><em>phase</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the unit-norm complex number exp(i*<code>phase</code>). </p>
<p>This function uses the Euler formula, and avoids problems with calling exp(<b>complex</b>) in a platform agnostic way </p>
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00406">406</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keywordflow">return</span> cos(phase) + 1i*sin(phase);</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> }</div>
</div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="test__unitaries_8cpp_source.html#l00046">TEST_CASE()</a>.</p>
</div>
</div>
<a id="a0c677f35ecb3e88eba5e001fb6ed9ac5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c677f35ecb3e88eba5e001fb6ed9ac5">◆ </a></span>operator*() <span class="overload">[1/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00092">92</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> out = m;</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> r=0; r<m.size(); r++)</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> c=0; c<m.size(); c++)</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  out[r][c] *= a;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4e8b82fba42c4fc52bf663082df09443"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e8b82fba42c4fc52bf663082df09443">◆ </a></span>operator*() <span class="overload">[2/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00040">40</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> out = v;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<v.size(); i++)</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  out[i] *= a;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a293961c8fa461ccf37b7b5351880070d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a293961c8fa461ccf37b7b5351880070d">◆ </a></span>operator*() <span class="overload">[3/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00099">99</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> a * m;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a83bf6308d94642de4416e26e19e3ad00"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83bf6308d94642de4416e26e19e3ad00">◆ </a></span>operator*() <span class="overload">[4/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00134">134</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( m.size() == v.size() );</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> prod = <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>(v.size());</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> r=0; r<v.size(); r++)</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> c=0; c<v.size(); c++)</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  prod[r] += m[r][c] * v[c];</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> prod;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>.</p>
</div>
</div>
<a id="a59ee16722b772c6f8ebf8fa83ded714b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59ee16722b772c6f8ebf8fa83ded714b">◆ </a></span>operator*() <span class="overload">[5/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00109">109</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> prod = m1; <span class="comment">// will be completely overwritten</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> r=0; r<m1.size(); r++)</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> c=0; c<m1.size(); c++) {</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  prod[r][c] = 0;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> k=0; k<m1.size(); k++)</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  prod[r][c] += m1[r][k] * m2[k][c];</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> prod;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a16c67de049d1e68b950bbd6e3d67bd6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16c67de049d1e68b950bbd6e3d67bd6c">◆ </a></span>operator*() <span class="overload">[6/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00046">46</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  {</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">return</span> a * v;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a48dd911ac2c9b071e6d1497074e44051"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48dd911ac2c9b071e6d1497074e44051">◆ </a></span>operator*() <span class="overload">[7/7]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> operator* </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00056">56</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// this is sum_i v1_i conj(v2_i)</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( v1.size() == v2.size() );</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> out = 0;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<v1.size(); i++)</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  out += v1[i] * conj(v2[i]);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>, and <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>.</p>
</div>
</div>
<a id="a46927798eee7a62bff6fe76d3ed78e33"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46927798eee7a62bff6fe76d3ed78e33">◆ </a></span>operator*=() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator*= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00131">131</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  m1 = m1 * m2;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af6df034d8adce07289a78a0b80ebffd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6df034d8adce07289a78a0b80ebffd2">◆ </a></span>operator*=() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator*= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00125">125</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  m1 = m1 * a;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac39c5776e942f283ba52e0742a98d63f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac39c5776e942f283ba52e0742a98d63f">◆ </a></span>operator*=() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator*= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00070">70</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  v1 = v1 * a;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a83bd85cc91272c8d457a0f233a354fb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83bd85cc91272c8d457a0f233a354fb8">◆ </a></span>operator+() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> operator+ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00076">76</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( m1.size() == m2.size() );</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> out = m1;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> r=0; r<m1.size(); r++)</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> c=0; c<m1.size(); c++)</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  out[r][c] += m2[r][c];</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>.</p>
</div>
</div>
<a id="aed39fc3a3108b8aad424c03a4b966158"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed39fc3a3108b8aad424c03a4b966158">◆ </a></span>operator+() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> operator+ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00026">26</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( v1.size() == v2.size() );</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> out = v1;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<v2.size(); i++)</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  out[i] += v2[i];</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>.</p>
</div>
</div>
<a id="a9353a8cc912e65453fa54a83558dce1a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9353a8cc912e65453fa54a83558dce1a">◆ </a></span>operator+=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator+= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00119">119</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  m1 = m1 + m2;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a91e707f38b1844fcbc0529ca41db816a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91e707f38b1844fcbc0529ca41db816a">◆ </a></span>operator+=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator+= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00064">64</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  { <span class="comment">// these violate += returns (fine)</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  v1 = v1 + v2;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac169eaefbce666c4f282fd2799c658a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac169eaefbce666c4f282fd2799c658a0">◆ </a></span>operator-() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> operator- </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00084">84</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( m1.size() == m2.size() );</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> out = m1;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> r=0; r<m1.size(); r++)</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> c=0; c<m1.size(); c++)</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  out[r][c] -= m2[r][c];</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>.</p>
</div>
</div>
<a id="ade72f855c80218725aa19183723af15c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade72f855c80218725aa19183723af15c">◆ </a></span>operator-() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> operator- </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00033">33</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( v1.size() == v2.size() );</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> out = v1;</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<v2.size(); i++)</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  out[i] -= v2[i];</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>.</p>
</div>
</div>
<a id="ae94c0855c09cdbc87a894ba6003c0944"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae94c0855c09cdbc87a894ba6003c0944">◆ </a></span>operator-=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator-= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00122">122</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  m1 = m1 - m2;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aabfdeb43b039e628f9370507ab27529a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabfdeb43b039e628f9370507ab27529a">◆ </a></span>operator-=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator-= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00067">67</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  v1 = v1 - v2;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a710aa3cc5b80f470d68e094941a303c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a710aa3cc5b80f470d68e094941a303c3">◆ </a></span>operator/() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> operator/ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00102">102</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  {</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> out = m;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> r=0; r<m.size(); r++)</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> c=0; c<m.size(); c++)</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  out[r][c] /= a;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a1b8611d2c9af569e1265e8f48d8e0143"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b8611d2c9af569e1265e8f48d8e0143">◆ </a></span>operator/() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> operator/ </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00049">49</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a>( abs(a) != 0 );</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> out = v;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i=0; i<v.size(); i++)</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  out[i] /= a;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div>
</div><!-- fragment -->
<p class="reference">References <a class="el" href="utilities_8cpp_source.html#l00024">DEMAND</a>.</p>
</div>
</div>
<a id="a1e6b08e4c0e1a376f6ef04edfb5c3f54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e6b08e4c0e1a376f6ef04edfb5c3f54">◆ </a></span>operator/=() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator/= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> & </td>
<td class="paramname"><em>m1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00128">128</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  m1 = m1 / a;</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a799b92f6c9de52c7c5a4b38e30c5d395"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a799b92f6c9de52c7c5a4b38e30c5d395">◆ </a></span>operator/=() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void operator/= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> & </td>
<td class="paramname"><em>v1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> & </td>
<td class="paramname"><em>a</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="utilities_8cpp_source.html#l00073">73</a> of file <a class="el" href="utilities_8cpp_source.html">utilities.cpp</a>.</p>
<div class="fragment"><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  v1 = v1 / a;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a718130cc1fc36cde991aff3d4c85c47d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a718130cc1fc36cde991aff3d4c85c47d">◆ </a></span>QUEST_ENV</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structQuESTEnv.html">QuESTEnv</a> QUEST_ENV</td>
</tr>
</table>
</div><div class="memdoc">
<p>The single <a class="el" href="structQuESTEnv.html" title="Information about the environment the program is running in.">QuESTEnv</a> environment created before the Catch tests begin, and destroyed thereafter. </p>
<p>The single <a class="el" href="structQuESTEnv.html" title="Information about the environment the program is running in.">QuESTEnv</a> environment created before the Catch tests begin, and destroyed thereafter. </p>
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00020">20</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="utilities_8cpp_source.html#l00681">areEqual()</a>, <a class="el" href="main_8cpp_source.html#l00034">main()</a>, <a class="el" href="test__calculations_8cpp_source.html#l00015">TEST_CASE()</a>, <a class="el" href="utilities_8cpp_source.html#l00862">toQMatrix()</a>, <a class="el" href="utilities_8cpp_source.html#l00946">toQureg()</a>, and <a class="el" href="utilities_8cpp_source.html#l00904">toQVector()</a>.</p>
</div>
</div>
</div><!-- contents -->
<div class="ttc" id="agroup__testutilities_html_gac9263a65c96a458b810b20baa81c5b94"><div class="ttname"><a href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a></div><div class="ttdeci">std::vector< qcomp > QVector</div><div class="ttdoc">A complex vector, which can be zero-initialised with QVector(numAmps).</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8hpp_source.html#l00060">utilities.hpp:60</a></div></div>
<div class="ttc" id="agroup__type_html_gad863c5878a01051a2726ce94bf365428"><div class="ttname"><a href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a></div><div class="ttdeci">#define qcomp</div></div>
<div class="ttc" id="agroup__testutilities_html_gabbc686f5f40eff22e08a2b2012ac4e41"><div class="ttname"><a href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a></div><div class="ttdeci">std::vector< std::vector< qcomp > > QMatrix</div><div class="ttdoc">A complex square matrix.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8hpp_source.html#l00049">utilities.hpp:49</a></div></div>
<div class="ttc" id="autilities_8cpp_html_aba8ab64f4403dbfbd5a38902939535ff"><div class="ttname"><a href="utilities_8cpp.html#aba8ab64f4403dbfbd5a38902939535ff">DEMAND</a></div><div class="ttdeci">#define DEMAND(cond)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00024">utilities.cpp:24</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>