<!-- 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 Source File</title>
<!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css"/>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="jquery.smartmenus.js"></script>
<!-- SmartMenus jQuery Bootstrap Addon -->
<script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
<!-- SmartMenus jQuery plugin -->
</head>
<body>
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand"><img alt="Logo" src="logo.png"/></a>
<a class="navbar-brand"><b>QuEST</b> v3.4.0<br>The Quantum Exact Simulation Toolkit</a>
</div>
</div>
</nav>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div class="content" id="content">
<div class="container">
<div class="row">
<div class="col-sm-12 panel " style="padding-bottom: 15px;">
<div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e145b6391efe0b6e575fd5bb5f76dbf8.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_126ffd7f5d49d0bf631a939d5b00372b.html">tests</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">utilities.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="utilities_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>  </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef QUEST_TEST_UTILS_H</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#define QUEST_TEST_UTILS_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="QuEST_8h.html">QuEST.h</a>"</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include "<a class="code" href="QuEST__complex_8h.html">QuEST_complex.h</a>"</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include "catch.hpp"</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <vector></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">extern</span> <a class="code" href="structQuESTEnv.html">QuESTEnv</a> <a class="code" href="utilities_8hpp.html#a718130cc1fc36cde991aff3d4c85c47d">QUEST_ENV</a>;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="utilities_8hpp.html#a2f52338126bb8cdf7fcf68eaf01c546a"> 36</a></span> <span class="preprocessor">#define NUM_QUBITS 5</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  </div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41"> 49</a></span> <span class="keyword">typedef</span> std::vector<std::vector<qcomp>> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94"> 60</a></span> <span class="keyword">typedef</span> std::vector<qcomp> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">/* (Excluded from Doxygen doc)</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"> * Define QVector and QMatrix operator overloads.</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment"> * Note that QMatrix overloads don't simply use QVector </span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment"> * overloads, since the complex vector dot product involves </span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment"> * conjugation, which doesn't occur in complex matrix multiplication.</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment"> * Note too we also avoid defining operators in terms of other operators</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment"> * (e.g. minus is plus(negative times)) since compiler optimisations </span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment"> * may change the order of operations and confuse the overloads invoked.</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment"> * Definition of division using multiplication can furthermore </span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment"> * heighten numerical errors.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"> *</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment"> * @ingroup testutilities</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment"> * @author Tyson Jones</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment"> */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="utilities_8hpp.html#aed39fc3a3108b8aad424c03a4b966158">operator + </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v2);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="utilities_8hpp.html#ade72f855c80218725aa19183723af15c">operator - </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v2);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator * </a>(<span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator * </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="utilities_8hpp.html#a1b8611d2c9af569e1265e8f48d8e0143">operator / </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> <a class="code" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator * </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v2);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#a91e707f38b1844fcbc0529ca41db816a">operator += </a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v2);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#aabfdeb43b039e628f9370507ab27529a">operator -= </a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v2);</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#ac39c5776e942f283ba52e0742a98d63f">operator *= </a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v1, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#a799b92f6c9de52c7c5a4b38e30c5d395">operator /= </a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v1, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="utilities_8hpp.html#aed39fc3a3108b8aad424c03a4b966158">operator + </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m2);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="utilities_8hpp.html#ade72f855c80218725aa19183723af15c">operator - </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m2);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator * </a>(<span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator * </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="utilities_8hpp.html#a1b8611d2c9af569e1265e8f48d8e0143">operator / </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>& a);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator * </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m2);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#a91e707f38b1844fcbc0529ca41db816a">operator += </a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m2);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#aabfdeb43b039e628f9370507ab27529a">operator -= </a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m2);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#ac39c5776e942f283ba52e0742a98d63f">operator *= </a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>& a);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#a799b92f6c9de52c7c5a4b38e30c5d395">operator /= </a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>& a);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">void</span> <a class="code" href="utilities_8hpp.html#ac39c5776e942f283ba52e0742a98d63f">operator *= </a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m2);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator * </a>(<span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>& m, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>& v);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#gade0e7c37811a69f1c21c88c11943a19f">toQVector</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#gade0e7c37811a69f1c21c88c11943a19f">toQVector</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="structComplex.html">Complex</a> alpha, <a class="code" href="structComplex.html">Complex</a> beta);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> src);</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> src);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> src);</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* paulis, <span class="keywordtype">int</span> numQubits, <span class="keywordtype">int</span> numTerms);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  </div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gaaa0ef4062551eb219c5f5c5b2d364ecd">toDiagonalQMatrix</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> <a class="code" href="group__testutilities.html#ga731a7a71755c25ebe96e742e3fbe5812">toComplexMatrix2</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> qm);</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> <a class="code" href="group__testutilities.html#ga216f7c25bbb0cf752d1b6fff5ea8197b">toComplexMatrix4</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> qm);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga7f83695bea7d0332a577bca017dbb03c">toComplexMatrixN</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> qm, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> cm);</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#gaf5a18d4c00dfe0523972be3bfc666362">toQureg</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec);</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#gaf5a18d4c00dfe0523972be3bfc666362">toQureg</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> mat);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#gab5ac6842ba67b8d38bd17385ab179b67">getKroneckerProduct</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> b, <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> a);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga6ccbb15b0f234e926be96a153181b63a">getZeroMatrix</a>(<span class="keywordtype">size_t</span> dim);</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gac0c6339c28256f2aae86d443fae44455">getIdentityMatrix</a>(<span class="keywordtype">size_t</span> dim);</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  </div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gac60cee26113732c491f21dc43066b605">getExponentialOfDiagonalMatrix</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga00f4feec845c019c3390898b0cc7f1ef">getExponentialOfPauliMatrix</a>(<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a);</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  </div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gab5ac6842ba67b8d38bd17385ab179b67">getKroneckerProduct</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> b);</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga37e0f375a6c50721aaf68153f750e842">getSwapMatrix</a>(<span class="keywordtype">int</span> qb1, <span class="keywordtype">int</span> qb2, <span class="keywordtype">int</span> numQb);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga20f041452b43026d876fde17a5999265">getFullOperatorMatrix</a>(<span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> *targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op, <span class="keywordtype">int</span> numQubits);</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  </div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga2de7d3b138728b6beb7753b82df61803">getKetBra</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> ket, <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> bra);</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  </div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga3cf199a7de3bbcb3546503f25be9245a">getConjugateTranspose</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a);</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  </div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <span class="keywordtype">int</span> <a class="code" href="group__testutilities.html#ga7125d0747a44db58115899727ac5f6be">getRandomInt</a>(<span class="keywordtype">int</span> min, <span class="keywordtype">int</span> max);</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  </div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__testutilities.html#gacd5aadbe10ecdedaa625f85171c0a3cd">getRandomReal</a>(<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> min, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> max);</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> <a class="code" href="group__testutilities.html#ga723de136e368b9de0ac391f850d409ac">getRandomComplex</a>();</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#ga27dc818709394cb31247e26850215f8a">getRandomQVector</a>(<span class="keywordtype">int</span> dim);</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  </div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gaa2e8b958e0cba07e01de9f91a5ce3c9c">getRandomQMatrix</a>(<span class="keywordtype">int</span> dim);</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  </div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga1a5e9b668716b91dd8527ce00f7500cf">getRandomUnitary</a>(<span class="keywordtype">int</span> numQb);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  </div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#gae1d2eb70b50267f8186cbd53e300d94f">getRandomStateVector</a>(<span class="keywordtype">int</span> numQb);</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga617b0fd1eb1c395762c937ad3b23e61b">getRandomDensityMatrix</a>(<span class="keywordtype">int</span> numQb);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  </div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#ga10c631a05a1bf151203577076332d288">getRandomPureDensityMatrix</a>(<span class="keywordtype">int</span> numQb);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  </div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gaecd1e4149d03d358fc4e64c335e823ef">getPureDensityMatrix</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> state);</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#ga88dfca8f2ff9ef348a3d431e165e0406">getMatrixDiagonal</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> matr);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> std::vector<QMatrix> <a class="code" href="group__testutilities.html#ga0d3b30625e2350a1e837a0b259dd3b18">getRandomKrausMap</a>(<span class="keywordtype">int</span> numQb, <span class="keywordtype">int</span> numOps);</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  </div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> std::vector<qreal> <a class="code" href="group__testutilities.html#gaa6a22a9144876cee28d54b70ea556527">getRandomProbabilities</a>(<span class="keywordtype">int</span> numProbs);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  </div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> std::vector<QVector> <a class="code" href="group__testutilities.html#ga2ce759464ecc923710890d633c03bcca">getRandomOrthonormalVectors</a>(<span class="keywordtype">int</span> numQb, <span class="keywordtype">int</span> numStates);</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  </div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gad6435da46323045d81e4ba9d9fe5a109">getMixedDensityMatrix</a>(std::vector<qreal> probs, std::vector<QVector> states);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  </div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#ga5438455c2c8ecf5948ca22875313a590">getNormalised</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec);</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  </div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#ga7ed0c22ff6b671eecccef4dac54bd6c1">getDFT</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> in);</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  </div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> <a class="code" href="group__testutilities.html#ga7ed0c22ff6b671eecccef4dac54bd6c1">getDFT</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> in, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs);</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="group__testutilities.html#ga4b013dfd1eb518df4723a4815c46ebb0">getValueOfTargets</a>(<span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> ind, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs);</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga75966a02c618790c1de5f0102ab8398f">setSubMatrix</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &dest, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> sub, <span class="keywordtype">size_t</span> r, <span class="keywordtype">size_t</span> c);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  </div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> *targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> targ1, <span class="keywordtype">int</span> targ2, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  </div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> target, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  </div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span> *targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  </div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> targ, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  </div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  </div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> targ1, <span class="keywordtype">int</span> targ2, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  </div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span> targ, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  </div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> *targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  </div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> targ1, <span class="keywordtype">int</span> targ2, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  </div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> target, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  </div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span> *targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  </div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> targ, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  </div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  </div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span> targ1, <span class="keywordtype">int</span> targ2, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  </div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span> targ, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  </div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga059fea2ee0415bf25929601ba0788164">applyReferenceMatrix</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> *targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  </div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga059fea2ee0415bf25929601ba0788164">applyReferenceMatrix</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &state, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span> *targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> op);</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  </div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="structQureg.html">Qureg</a> qureg1, <a class="code" href="structQureg.html">Qureg</a> qureg2);</div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  </div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec);</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  </div>
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> matr);</div>
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  </div>
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="structQureg.html">Qureg</a> qureg1, <a class="code" href="structQureg.html">Qureg</a> qureg2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> precision);</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  </div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> precision);</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  </div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> matr, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> precision);</div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  </div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> a, <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> b);</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  </div>
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> a, <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> b);</div>
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  </div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* reals, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imags);</div>
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  </div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="keywordtype">bool</span> <a class="code" href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a>(<a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a> vec, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* reals);</div>
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  </div>
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a> <a class="code" href="utilities_8hpp.html#a9dc43d4a0827b56cd004270a9c5b2604">expI</a>(<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> phase);</div>
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  </div>
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__testutilities.html#ga267884197cf7f1d428021cb12a57360c">calcLog2</a>(<span class="keywordtype">long</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> res);</div>
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  </div>
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga11c465ce1a5c238946a9e09d61c94c58">setRandomPauliSum</a>(<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* codes, <span class="keywordtype">int</span> numQubits, <span class="keywordtype">int</span> numTerms);</div>
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  </div>
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga11c465ce1a5c238946a9e09d61c94c58">setRandomPauliSum</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  </div>
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga887d1cd8befe710189cab7f535db3910">setRandomDiagPauliHamil</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  </div>
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="group__testutilities.html#ga49be3b32f7b7a274fc5ecb209fde1189">getTwosComplement</a>(<span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> decimal, <span class="keywordtype">int</span> numBits);</div>
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  </div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="group__testutilities.html#gaf084dee612d6930a9515c43d716af453">getUnsigned</a>(<span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> twosComp, <span class="keywordtype">int</span> numBits);</div>
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  </div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#gaf57b4b82c98e98918f74476741f60e37">setDiagMatrixOverrides</a>(<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> &matr, <span class="keywordtype">int</span>* numQubitsPerReg, <span class="keywordtype">int</span> numRegs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a> encoding, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span>* overrideInds, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* overridePhases, <span class="keywordtype">int</span> numOverrides);</div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  </div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga7c35b1d233b0fb5b42de3bceee26e7e5">setUniqueFilename</a>(<span class="keywordtype">char</span>* outFn, <span class="keywordtype">char</span>* prefix);</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  </div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#ga8efe977bb581c8bc760d2ce2419161d7">writeToFileSynch</a>(<span class="keywordtype">char</span>* fn, <span class="keyword">const</span> <span class="keywordtype">string</span>& contents);</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  </div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="keywordtype">void</span> <a class="code" href="group__testutilities.html#gad2d2691472dbd81bc4b893160a560c50">deleteFilesWithPrefixSynch</a>(<span class="keywordtype">char</span>* prefix);</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  </div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> <span class="comment">// makes below signatures more concise</span></div>
<div class="line"><a name="l01030"></a><span class="lineno"><a class="line" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39"> 1030</a></span> <span class="keyword">template</span><<span class="keyword">class</span> T> <span class="keyword">using</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a> = Catch::Generators::GeneratorWrapper<T>;</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  </div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int*></a> <a class="code" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a>(<span class="keywordtype">int</span>* list, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> sublen);</div>
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  </div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int*></a> <a class="code" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a>(<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int></a>&& gen, <span class="keywordtype">int</span> numSamps, <span class="keyword">const</span> <span class="keywordtype">int</span>* exclude, <span class="keywordtype">int</span> numExclude);</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  </div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int*></a> <a class="code" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a>(<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int></a>&& gen, <span class="keywordtype">int</span> numSamps, <span class="keywordtype">int</span> excluded);</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  </div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int*></a> <a class="code" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a>(<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int></a>&& gen, <span class="keywordtype">int</span> sublen);</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  </div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int*></a> <a class="code" href="group__testutilities.html#ga2e09685323c6b2312a64daf8c74b12b5">bitsets</a>(<span class="keywordtype">int</span> numBits);</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  </div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<int*></a> <a class="code" href="group__testutilities.html#ga181366c4cdc7786bcc066e8ac8342c1d">sequences</a>(<span class="keywordtype">int</span> base, <span class="keywordtype">int</span> numDigits);</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  </div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen<pauliOpType*></a> <a class="code" href="group__testutilities.html#gac102c131efa312dabd5462e6e2642975">pauliseqs</a>(<span class="keywordtype">int</span> numPaulis);</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  </div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="preprocessor">#endif // QUEST_TEST_UTILS_H</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="agroup__type_html_ga1c703cf89629e4e9c7023cd402d67028"><div class="ttname"><a href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a></div><div class="ttdeci">pauliOpType</div><div class="ttdoc">Codes for specifying Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga20f041452b43026d876fde17a5999265"><div class="ttname"><a href="group__testutilities.html#ga20f041452b43026d876fde17a5999265">getFullOperatorMatrix</a></div><div class="ttdeci">QMatrix getFullOperatorMatrix(int *ctrls, int numCtrls, int *targs, int numTargs, QMatrix op, int numQubits)</div><div class="ttdoc">Takes a 2^numTargs-by-2^numTargs matrix op and a returns a 2^numQubits-by-2^numQubits matrix where op...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00304">utilities.cpp:304</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gaf084dee612d6930a9515c43d716af453"><div class="ttname"><a href="group__testutilities.html#gaf084dee612d6930a9515c43d716af453">getUnsigned</a></div><div class="ttdeci">long long int getUnsigned(long long int twosComp, int numBits)</div><div class="ttdoc">Return the unsigned value of a number, made of #numBits bits, which under two's complement,...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01298">utilities.cpp:1298</a></div></div>
<div class="ttc" id="autilities_8hpp_html_a8cc85fff30c23faa2cbed6ca0c01ce39"><div class="ttname"><a href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a></div><div class="ttdeci">Catch::Generators::GeneratorWrapper< T > CatchGen</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8hpp_source.html#l01030">utilities.hpp:1030</a></div></div>
<div class="ttc" id="aQuEST__complex_8h_html"><div class="ttname"><a href="QuEST__complex_8h.html">QuEST_complex.h</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gab5ac6842ba67b8d38bd17385ab179b67"><div class="ttname"><a href="group__testutilities.html#gab5ac6842ba67b8d38bd17385ab179b67">getKroneckerProduct</a></div><div class="ttdeci">QVector getKroneckerProduct(QVector b, QVector a)</div><div class="ttdoc">Returns b (otimes) a.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00143">utilities.cpp:143</a></div></div>
<div class="ttc" id="autilities_8hpp_html_a9dc43d4a0827b56cd004270a9c5b2604"><div class="ttname"><a href="utilities_8hpp.html#a9dc43d4a0827b56cd004270a9c5b2604">expI</a></div><div class="ttdeci">qcomp expI(qreal phase)</div><div class="ttdoc">Returns the unit-norm complex number exp(i*phase).</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00417">utilities.cpp:417</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga2b197ca736a01f05bf18fbc5c5a9bee6"><div class="ttname"><a href="group__testutilities.html#ga2b197ca736a01f05bf18fbc5c5a9bee6">applyReferenceOp</a></div><div class="ttdeci">void applyReferenceOp(QMatrix &state, int *ctrls, int numCtrls, int *targs, int numTargs, QMatrix op)</div><div class="ttdoc">Modifies the density matrix state to be the result of applying the multi-target operator matrix op,...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00784">utilities.cpp:784</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga3cf199a7de3bbcb3546503f25be9245a"><div class="ttname"><a href="group__testutilities.html#ga3cf199a7de3bbcb3546503f25be9245a">getConjugateTranspose</a></div><div class="ttdeci">QMatrix getConjugateTranspose(QMatrix a)</div><div class="ttdoc">Returns the conjugate transpose of the complex square matrix a.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00189">utilities.cpp:189</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga7125d0747a44db58115899727ac5f6be"><div class="ttname"><a href="group__testutilities.html#ga7125d0747a44db58115899727ac5f6be">getRandomInt</a></div><div class="ttdeci">int getRandomInt(int min, int max)</div><div class="ttdoc">Returns a random integer between min (inclusive) and max (exclusive), from the uniform distribution.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00526">utilities.cpp:526</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga0d3b30625e2350a1e837a0b259dd3b18"><div class="ttname"><a href="group__testutilities.html#ga0d3b30625e2350a1e837a0b259dd3b18">getRandomKrausMap</a></div><div class="ttdeci">std::vector< QMatrix > getRandomKrausMap(int numQb, int numOps)</div><div class="ttdoc">Returns a random Kraus map of #numOps 2^numQb-by-2^numQb operators, from an undisclosed distribution.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00578">utilities.cpp:578</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga10c631a05a1bf151203577076332d288"><div class="ttname"><a href="group__testutilities.html#ga10c631a05a1bf151203577076332d288">getRandomPureDensityMatrix</a></div><div class="ttdeci">QMatrix getRandomPureDensityMatrix(int numQb)</div><div class="ttdoc">Returns a random numQb-by-numQb density matrix, from an undisclosed distribution, which is pure (corr...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00511">utilities.cpp:511</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gad6435da46323045d81e4ba9d9fe5a109"><div class="ttname"><a href="group__testutilities.html#gad6435da46323045d81e4ba9d9fe5a109">getMixedDensityMatrix</a></div><div class="ttdeci">QMatrix getMixedDensityMatrix(std::vector< qreal > probs, std::vector< QVector > states)</div><div class="ttdoc">Returns a mixed density matrix formed from mixing the given pure states, which are assumed normalised...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00640">utilities.cpp:640</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga37e0f375a6c50721aaf68153f750e842"><div class="ttname"><a href="group__testutilities.html#ga37e0f375a6c50721aaf68153f750e842">getSwapMatrix</a></div><div class="ttdeci">QMatrix getSwapMatrix(int qb1, int qb2, int numQb)</div><div class="ttdoc">Returns the 2^numQb-by-2^numQb unitary matrix which swaps qubits qb1 and qb2; the SWAP gate of not-ne...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00230">utilities.cpp:230</a></div></div>
<div class="ttc" id="aQuEST_8h_html"><div class="ttname"><a href="QuEST_8h.html">QuEST.h</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga1a5e9b668716b91dd8527ce00f7500cf"><div class="ttname"><a href="group__testutilities.html#ga1a5e9b668716b91dd8527ce00f7500cf">getRandomUnitary</a></div><div class="ttdeci">QMatrix getRandomUnitary(int numQb)</div><div class="ttdoc">Returns a uniformly random (under Haar) 2^numQb-by-2^numQb unitary matrix.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00530">utilities.cpp:530</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga8efe977bb581c8bc760d2ce2419161d7"><div class="ttname"><a href="group__testutilities.html#ga8efe977bb581c8bc760d2ce2419161d7">writeToFileSynch</a></div><div class="ttdeci">void writeToFileSynch(char *fn, const string &contents)</div><div class="ttdoc">Writes contents to the file with filename fn, which is created and/or overwritten.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01362">utilities.cpp:1362</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gacd5aadbe10ecdedaa625f85171c0a3cd"><div class="ttname"><a href="group__testutilities.html#gacd5aadbe10ecdedaa625f85171c0a3cd">getRandomReal</a></div><div class="ttdeci">qreal getRandomReal(qreal min, qreal max)</div><div class="ttdoc">Returns a random real between min (inclusive) and max (exclusive), from the uniform distribution.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00421">utilities.cpp:421</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gaf57b4b82c98e98918f74476741f60e37"><div class="ttname"><a href="group__testutilities.html#gaf57b4b82c98e98918f74476741f60e37">setDiagMatrixOverrides</a></div><div class="ttdeci">void setDiagMatrixOverrides(QMatrix &matr, int *numQubitsPerReg, int numRegs, enum bitEncoding encoding, long long int *overrideInds, qreal *overridePhases, int numOverrides)</div><div class="ttdoc">Modifies the given diagonal matrix such that the diagonal elements which correspond to the coordinate...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01316">utilities.cpp:1316</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga2de7d3b138728b6beb7753b82df61803"><div class="ttname"><a href="group__testutilities.html#ga2de7d3b138728b6beb7753b82df61803">getKetBra</a></div><div class="ttdeci">QMatrix getKetBra(QVector ket, QVector bra)</div><div class="ttdoc">Returns the matrix |ket><bra|, with ith-jth element ket(i) conj(bra(j)), since |ket><bra| = sum_i a_i...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00169">utilities.cpp:169</a></div></div>
<div class="ttc" id="autilities_8hpp_html_a718130cc1fc36cde991aff3d4c85c47d"><div class="ttname"><a href="utilities_8hpp.html#a718130cc1fc36cde991aff3d4c85c47d">QUEST_ENV</a></div><div class="ttdeci">QuESTEnv QUEST_ENV</div><div class="ttdoc">The single QuESTEnv environment created before the Catch tests begin, and destroyed thereafter.</div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00020">main.cpp:20</a></div></div>
<div class="ttc" id="autilities_8hpp_html_a799b92f6c9de52c7c5a4b38e30c5d395"><div class="ttname"><a href="utilities_8hpp.html#a799b92f6c9de52c7c5a4b38e30c5d395">operator/=</a></div><div class="ttdeci">void operator/=(QVector &v1, const qcomp &a)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00073">utilities.cpp:73</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga2ce759464ecc923710890d633c03bcca"><div class="ttname"><a href="group__testutilities.html#ga2ce759464ecc923710890d633c03bcca">getRandomOrthonormalVectors</a></div><div class="ttdeci">std::vector< QVector > getRandomOrthonormalVectors(int numQb, int numStates)</div><div class="ttdoc">Returns a list of random orthonormal complex vectors, from an undisclosed distribution.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00613">utilities.cpp:613</a></div></div>
<div class="ttc" id="astructComplexMatrix4_html"><div class="ttname"><a href="structComplexMatrix4.html">ComplexMatrix4</a></div><div class="ttdoc">Represents a 4x4 matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00175">QuEST.h:175</a></div></div>
<div class="ttc" id="astructQuESTEnv_html"><div class="ttname"><a href="structQuESTEnv.html">QuESTEnv</a></div><div class="ttdoc">Information about the environment the program is running in.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00362">QuEST.h:362</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html"><div class="ttname"><a href="structComplexMatrixN.html">ComplexMatrixN</a></div><div class="ttdoc">Represents a general 2^N by 2^N matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00186">QuEST.h:186</a></div></div>
<div class="ttc" id="agroup__type_html_ga7740e349b4f8bae6451547680f0ce2d6"><div class="ttname"><a href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a></div><div class="ttdeci">#define qreal</div></div>
<div class="ttc" id="agroup__testutilities_html_gaf5a18d4c00dfe0523972be3bfc666362"><div class="ttname"><a href="group__testutilities.html#gaf5a18d4c00dfe0523972be3bfc666362">toQureg</a></div><div class="ttdeci">void toQureg(Qureg qureg, QVector vec)</div><div class="ttdoc">Initialises the state-vector qureg to have the same amplitudes as vec.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01201">utilities.cpp:1201</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga267884197cf7f1d428021cb12a57360c"><div class="ttname"><a href="group__testutilities.html#ga267884197cf7f1d428021cb12a57360c">calcLog2</a></div><div class="ttdeci">unsigned int calcLog2(long unsigned int res)</div><div class="ttdoc">Returns log2 of numbers which must be gauranteed to be 2^n.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__validation_8c_source.html#l00328">QuEST_validation.c:328</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga00f4feec845c019c3390898b0cc7f1ef"><div class="ttname"><a href="group__testutilities.html#ga00f4feec845c019c3390898b0cc7f1ef">getExponentialOfPauliMatrix</a></div><div class="ttdeci">QMatrix getExponentialOfPauliMatrix(qreal angle, QMatrix a)</div><div class="ttdoc">Returns the matrix exponential of a kronecker product of pauli matrices (or of any involutory matrice...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00216">utilities.cpp:216</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga7c35b1d233b0fb5b42de3bceee26e7e5"><div class="ttname"><a href="group__testutilities.html#ga7c35b1d233b0fb5b42de3bceee26e7e5">setUniqueFilename</a></div><div class="ttdeci">void setUniqueFilename(char *outFn, char *prefix)</div><div class="ttdoc">Modifies outFn to be a filename of format prefix_NUM.txt where NUM is a new unique integer so far.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01358">utilities.cpp:1358</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga11c465ce1a5c238946a9e09d61c94c58"><div class="ttname"><a href="group__testutilities.html#ga11c465ce1a5c238946a9e09d61c94c58">setRandomPauliSum</a></div><div class="ttdeci">void setRandomPauliSum(qreal *coeffs, pauliOpType *codes, int numQubits, int numTerms)</div><div class="ttdoc">Populates the coeffs array with random qreals in (-5, 5), and populates codes with random Pauli codes...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01229">utilities.cpp:1229</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga7f83695bea7d0332a577bca017dbb03c"><div class="ttname"><a href="group__testutilities.html#ga7f83695bea7d0332a577bca017dbb03c">toComplexMatrixN</a></div><div class="ttdeci">void toComplexMatrixN(QMatrix qm, ComplexMatrixN cm)</div><div class="ttdoc">Initialises cm with the values of qm.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01033">utilities.cpp:1033</a></div></div>
<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__testutilities_html_ga75966a02c618790c1de5f0102ab8398f"><div class="ttname"><a href="group__testutilities.html#ga75966a02c618790c1de5f0102ab8398f">setSubMatrix</a></div><div class="ttdeci">void setSubMatrix(QMatrix &dest, QMatrix sub, size_t r, size_t c)</div><div class="ttdoc">Modifies dest by overwriting its submatrix (from top-left corner (r, c) to bottom-right corner (r + d...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00222">utilities.cpp:222</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gade0e7c37811a69f1c21c88c11943a19f"><div class="ttname"><a href="group__testutilities.html#gade0e7c37811a69f1c21c88c11943a19f">toQVector</a></div><div class="ttdeci">QVector toQVector(Qureg qureg)</div><div class="ttdoc">Returns an equal-size copy of the given state-vector qureg.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01113">utilities.cpp:1113</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga181366c4cdc7786bcc066e8ac8342c1d"><div class="ttname"><a href="group__testutilities.html#ga181366c4cdc7786bcc066e8ac8342c1d">sequences</a></div><div class="ttdeci">CatchGen< int * > sequences(int base, int numDigits)</div><div class="ttdoc">Returns a Catch2 generator of every numDigits-length sequence in the given base, in increasing lexogr...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01562">utilities.cpp:1562</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_ga216f7c25bbb0cf752d1b6fff5ea8197b"><div class="ttname"><a href="group__testutilities.html#ga216f7c25bbb0cf752d1b6fff5ea8197b">toComplexMatrix4</a></div><div class="ttdeci">ComplexMatrix4 toComplexMatrix4(QMatrix qm)</div><div class="ttdoc">Returns a ComplexMatrix4 copy of QMatix qm.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01027">utilities.cpp:1027</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gaaa0ef4062551eb219c5f5c5b2d364ecd"><div class="ttname"><a href="group__testutilities.html#gaaa0ef4062551eb219c5f5c5b2d364ecd">toDiagonalQMatrix</a></div><div class="ttdeci">QMatrix toDiagonalQMatrix(QVector vec)</div><div class="ttdoc">Returns a diagonal complex matrix formed by the given vector.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01309">utilities.cpp:1309</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gac0737242d0628e61e3b2a9d39ed0acc6"><div class="ttname"><a href="group__testutilities.html#gac0737242d0628e61e3b2a9d39ed0acc6">areEqual</a></div><div class="ttdeci">bool areEqual(Qureg qureg1, Qureg qureg2)</div><div class="ttdoc">Performs a hardware-agnostic comparison of the given quregs, checking whether the difference between ...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00879">utilities.cpp:879</a></div></div>
<div class="ttc" id="astructDiagonalOp_html"><div class="ttname"><a href="structDiagonalOp.html">DiagonalOp</a></div><div class="ttdoc">Represents a diagonal complex operator on the full Hilbert state of a Qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00297">QuEST.h:297</a></div></div>
<div class="ttc" id="astructPauliHamil_html"><div class="ttname"><a href="structPauliHamil.html">PauliHamil</a></div><div class="ttdoc">A Pauli Hamiltonian, expressed as a real-weighted sum of pauli products, and which can hence represen...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00277">QuEST.h:277</a></div></div>
<div class="ttc" id="autilities_8hpp_html_aabfdeb43b039e628f9370507ab27529a"><div class="ttname"><a href="utilities_8hpp.html#aabfdeb43b039e628f9370507ab27529a">operator-=</a></div><div class="ttdeci">void operator-=(QVector &v1, const QVector &v2)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00067">utilities.cpp:67</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gae1d2eb70b50267f8186cbd53e300d94f"><div class="ttname"><a href="group__testutilities.html#gae1d2eb70b50267f8186cbd53e300d94f">getRandomStateVector</a></div><div class="ttdeci">QVector getRandomStateVector(int numQb)</div><div class="ttdoc">Returns a random numQb-length L2-normalised state-vector from an undisclosed distribution.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00468">utilities.cpp:468</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga887d1cd8befe710189cab7f535db3910"><div class="ttname"><a href="group__testutilities.html#ga887d1cd8befe710189cab7f535db3910">setRandomDiagPauliHamil</a></div><div class="ttdeci">void setRandomDiagPauliHamil(PauliHamil hamil)</div><div class="ttdoc">Populates hamil with random coefficients and a random amount number of PAULI_I and PAULI_Z operators.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01241">utilities.cpp:1241</a></div></div>
<div class="ttc" id="autilities_8hpp_html_ade72f855c80218725aa19183723af15c"><div class="ttname"><a href="utilities_8hpp.html#ade72f855c80218725aa19183723af15c">operator-</a></div><div class="ttdeci">QVector operator-(const QVector &v1, const QVector &v2)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00033">utilities.cpp:33</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gaa2e8b958e0cba07e01de9f91a5ce3c9c"><div class="ttname"><a href="group__testutilities.html#gaa2e8b958e0cba07e01de9f91a5ce3c9c">getRandomQMatrix</a></div><div class="ttdeci">QMatrix getRandomQMatrix(int dim)</div><div class="ttdoc">Returns a dim-by-dim complex matrix, where the real and imaginary value of each element are independe...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00379">utilities.cpp:379</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga49be3b32f7b7a274fc5ecb209fde1189"><div class="ttname"><a href="group__testutilities.html#ga49be3b32f7b7a274fc5ecb209fde1189">getTwosComplement</a></div><div class="ttdeci">long long int getTwosComplement(long long int decimal, int numBits)</div><div class="ttdoc">Returns the two's complement signed encoding of the unsigned number decimal, which must be a number b...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01286">utilities.cpp:1286</a></div></div>
<div class="ttc" id="astructQureg_html"><div class="ttname"><a href="structQureg.html">Qureg</a></div><div class="ttdoc">Represents a system of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00322">QuEST.h:322</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gac102c131efa312dabd5462e6e2642975"><div class="ttname"><a href="group__testutilities.html#gac102c131efa312dabd5462e6e2642975">pauliseqs</a></div><div class="ttdeci">CatchGen< pauliOpType * > pauliseqs(int numPaulis)</div><div class="ttdoc">Returns a Catch2 generator of every numPaulis-length set of Pauli-matrix types (or base-4 integers).</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01567">utilities.cpp:1567</a></div></div>
<div class="ttc" id="autilities_8hpp_html_a4e8b82fba42c4fc52bf663082df09443"><div class="ttname"><a href="utilities_8hpp.html#a4e8b82fba42c4fc52bf663082df09443">operator*</a></div><div class="ttdeci">QVector operator*(const qcomp &a, const QVector &v)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00040">utilities.cpp:40</a></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="agroup__testutilities_html_ga731a7a71755c25ebe96e742e3fbe5812"><div class="ttname"><a href="group__testutilities.html#ga731a7a71755c25ebe96e742e3fbe5812">toComplexMatrix2</a></div><div class="ttdeci">ComplexMatrix2 toComplexMatrix2(QMatrix qm)</div><div class="ttdoc">Returns a ComplexMatrix2 copy of QMatix qm.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01021">utilities.cpp:1021</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga35add15146aa606b256df79334b867d5"><div class="ttname"><a href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a></div><div class="ttdeci">CatchGen< int * > sublists(int *list, int len, int sublen)</div><div class="ttdoc">Returns a Catch2 generator of every length-sublen sublist of length-len list, in increasing lexograph...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01488">utilities.cpp:1488</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga5438455c2c8ecf5948ca22875313a590"><div class="ttname"><a href="group__testutilities.html#ga5438455c2c8ecf5948ca22875313a590">getNormalised</a></div><div class="ttdeci">QVector getNormalised(QVector vec)</div><div class="ttdoc">Returns an L2-normalised copy of vec, using Kahan summation for improved accuracy.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00446">utilities.cpp:446</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gaa6a22a9144876cee28d54b70ea556527"><div class="ttname"><a href="group__testutilities.html#gaa6a22a9144876cee28d54b70ea556527">getRandomProbabilities</a></div><div class="ttdeci">std::vector< qreal > getRandomProbabilities(int numProbs)</div><div class="ttdoc">Returns a list of random real scalars, each in [0, 1], which sum to unity.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00472">utilities.cpp:472</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gac0c6339c28256f2aae86d443fae44455"><div class="ttname"><a href="group__testutilities.html#gac0c6339c28256f2aae86d443fae44455">getIdentityMatrix</a></div><div class="ttdeci">QMatrix getIdentityMatrix(size_t dim)</div><div class="ttdoc">Returns a dim-by-dim identity matrix.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00161">utilities.cpp:161</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gaecd1e4149d03d358fc4e64c335e823ef"><div class="ttname"><a href="group__testutilities.html#gaecd1e4149d03d358fc4e64c335e823ef">getPureDensityMatrix</a></div><div class="ttdeci">QMatrix getPureDensityMatrix(QVector state)</div><div class="ttdoc">Returns a density matrix initialised into the given pure state.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00507">utilities.cpp:507</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gad2d2691472dbd81bc4b893160a560c50"><div class="ttname"><a href="group__testutilities.html#gad2d2691472dbd81bc4b893160a560c50">deleteFilesWithPrefixSynch</a></div><div class="ttdeci">void deleteFilesWithPrefixSynch(char *prefix)</div><div class="ttdoc">Deletes all files with filename starting with prefix.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01375">utilities.cpp:1375</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga617b0fd1eb1c395762c937ad3b23e61b"><div class="ttname"><a href="group__testutilities.html#ga617b0fd1eb1c395762c937ad3b23e61b">getRandomDensityMatrix</a></div><div class="ttdeci">QMatrix getRandomDensityMatrix(int numQb)</div><div class="ttdoc">Returns a random numQb-by-numQb density matrix, from an undisclosed distribution, in a very mixed sta...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00490">utilities.cpp:490</a></div></div>
<div class="ttc" id="autilities_8hpp_html_a1b8611d2c9af569e1265e8f48d8e0143"><div class="ttname"><a href="utilities_8hpp.html#a1b8611d2c9af569e1265e8f48d8e0143">operator/</a></div><div class="ttdeci">QVector operator/(const QVector &v, const qcomp &a)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00049">utilities.cpp:49</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga4c4ce1767ee2ef420c0078ea5991aeb0"><div class="ttname"><a href="group__testutilities.html#ga4c4ce1767ee2ef420c0078ea5991aeb0">toQMatrix</a></div><div class="ttdeci">QMatrix toQMatrix(Qureg qureg)</div><div class="ttdoc">Returns an equal-size copy of the given density matrix qureg.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01071">utilities.cpp:1071</a></div></div>
<div class="ttc" id="agroup__testutilities_html_gac60cee26113732c491f21dc43066b605"><div class="ttname"><a href="group__testutilities.html#gac60cee26113732c491f21dc43066b605">getExponentialOfDiagonalMatrix</a></div><div class="ttdeci">QMatrix getExponentialOfDiagonalMatrix(QMatrix a)</div><div class="ttdoc">Returns the matrix exponential of a diagonal, square, complex matrix.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00197">utilities.cpp:197</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga6ccbb15b0f234e926be96a153181b63a"><div class="ttname"><a href="group__testutilities.html#ga6ccbb15b0f234e926be96a153181b63a">getZeroMatrix</a></div><div class="ttdeci">QMatrix getZeroMatrix(size_t dim)</div><div class="ttdoc">Returns a dim-by-dim square complex matrix, initialised to all zeroes.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00153">utilities.cpp:153</a></div></div>
<div class="ttc" id="autilities_8hpp_html_ac39c5776e942f283ba52e0742a98d63f"><div class="ttname"><a href="utilities_8hpp.html#ac39c5776e942f283ba52e0742a98d63f">operator*=</a></div><div class="ttdeci">void operator*=(QVector &v1, const qcomp &a)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00070">utilities.cpp:70</a></div></div>
<div class="ttc" id="astructComplex_html"><div class="ttname"><a href="structComplex.html">Complex</a></div><div class="ttdoc">Represents one complex number.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00103">QuEST.h:103</a></div></div>
<div class="ttc" id="autilities_8hpp_html_a91e707f38b1844fcbc0529ca41db816a"><div class="ttname"><a href="utilities_8hpp.html#a91e707f38b1844fcbc0529ca41db816a">operator+=</a></div><div class="ttdeci">void operator+=(QVector &v1, const QVector &v2)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00064">utilities.cpp:64</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga27dc818709394cb31247e26850215f8a"><div class="ttname"><a href="group__testutilities.html#ga27dc818709394cb31247e26850215f8a">getRandomQVector</a></div><div class="ttdeci">QVector getRandomQVector(int dim)</div><div class="ttdoc">Returns a dim-length vector with random complex amplitudes in the square joining {-1-i,...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00435">utilities.cpp:435</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga059fea2ee0415bf25929601ba0788164"><div class="ttname"><a href="group__testutilities.html#ga059fea2ee0415bf25929601ba0788164">applyReferenceMatrix</a></div><div class="ttdeci">void applyReferenceMatrix(QVector &state, int *ctrls, int numCtrls, int *targs, int numTargs, QMatrix op)</div><div class="ttdoc">Modifies the state-vector state to be the result of left-multiplying the multi-target operator matrix...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00841">utilities.cpp:841</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga7ed0c22ff6b671eecccef4dac54bd6c1"><div class="ttname"><a href="group__testutilities.html#ga7ed0c22ff6b671eecccef4dac54bd6c1">getDFT</a></div><div class="ttdeci">QVector getDFT(QVector in)</div><div class="ttdoc">Returns the discrete fourier transform of vector in.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00652">utilities.cpp:652</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga88dfca8f2ff9ef348a3d431e165e0406"><div class="ttname"><a href="group__testutilities.html#ga88dfca8f2ff9ef348a3d431e165e0406">getMatrixDiagonal</a></div><div class="ttdeci">QVector getMatrixDiagonal(QMatrix matr)</div><div class="ttdoc">Returns the diagonal vector of the given matrix.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00517">utilities.cpp:517</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga2e09685323c6b2312a64daf8c74b12b5"><div class="ttname"><a href="group__testutilities.html#ga2e09685323c6b2312a64daf8c74b12b5">bitsets</a></div><div class="ttdeci">CatchGen< int * > bitsets(int numBits)</div><div class="ttdoc">Returns a Catch2 generator of every numBits-length bit-set, in increasing lexographic order,...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l01557">utilities.cpp:1557</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga723de136e368b9de0ac391f850d409ac"><div class="ttname"><a href="group__testutilities.html#ga723de136e368b9de0ac391f850d409ac">getRandomComplex</a></div><div class="ttdeci">qcomp getRandomComplex()</div><div class="ttdoc">Returns a random complex number within the square closing (-1-i) and (1+i), from a distribution unifo...</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00431">utilities.cpp:431</a></div></div>
<div class="ttc" id="agroup__type_html_ga9c91c41aa42ae537995e89ffc616afe1"><div class="ttname"><a href="group__type.html#ga9c91c41aa42ae537995e89ffc616afe1">bitEncoding</a></div><div class="ttdeci">bitEncoding</div><div class="ttdoc">Flags for specifying how the bits in sub-register computational basis states are mapped to indices in...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00269">QuEST.h:269</a></div></div>
<div class="ttc" id="autilities_8hpp_html_aed39fc3a3108b8aad424c03a4b966158"><div class="ttname"><a href="utilities_8hpp.html#aed39fc3a3108b8aad424c03a4b966158">operator+</a></div><div class="ttdeci">QVector operator+(const QVector &v1, const QVector &v2)</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00026">utilities.cpp:26</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html"><div class="ttname"><a href="structComplexMatrix2.html">ComplexMatrix2</a></div><div class="ttdoc">Represents a 2x2 matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00137">QuEST.h:137</a></div></div>
<div class="ttc" id="agroup__testutilities_html_ga4b013dfd1eb518df4723a4815c46ebb0"><div class="ttname"><a href="group__testutilities.html#ga4b013dfd1eb518df4723a4815c46ebb0">getValueOfTargets</a></div><div class="ttdeci">long long int getValueOfTargets(long long int ind, int *targs, int numTargs)</div><div class="ttdoc">Returns the integer value of the targeted sub-register for the given full state index ind.</div><div class="ttdef"><b>Definition:</b> <a href="utilities_8cpp_source.html#l00670">utilities.cpp:670</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>