quest_bind 0.3.7

Wrapper around the Quantum Exact Simulation Toolkit (QuEST)
Documentation
<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.17"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>QuEST: 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&amp;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>&#160; </div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifndef QUEST_TEST_UTILS_H</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define QUEST_TEST_UTILS_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="QuEST_8h.html">QuEST.h</a>&quot;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="QuEST__complex_8h.html">QuEST_complex.h</a>&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;catch.hpp&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="utilities_8hpp.html#a2f52338126bb8cdf7fcf68eaf01c546a">   36</a></span>&#160;<span class="preprocessor">#define NUM_QUBITS 5</span></div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">   49</a></span>&#160;<span class="keyword">typedef</span> std::vector&lt;std::vector&lt;qcomp&gt;&gt; <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">   60</a></span>&#160;<span class="keyword">typedef</span> std::vector&lt;qcomp&gt; <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">/* (Excluded from Doxygen doc)</span></div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment"> * Define QVector and QMatrix operator overloads.</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment"> * Note that QMatrix overloads don&#39;t simply use QVector </span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<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>&#160;<span class="comment"> * conjugation, which doesn&#39;t occur in complex matrix multiplication.</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment"> * Definition of division using multiplication can furthermore </span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment"> * heighten numerical errors.</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment"> * @ingroup testutilities</span></div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment"> * @author Tyson Jones</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<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>&amp; v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>&amp; v2);</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<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>&amp; v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>&amp; v2);</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<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>&amp; a, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>&amp; v);</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<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>&amp; v, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>&amp; a);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<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>&amp; v, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>&amp; a);</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<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> &amp;v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>&amp; v2);</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<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>&amp; v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>&amp; v2);</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<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>&amp; v1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>&amp; v2);</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<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>&amp; v1, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>&amp; a);</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<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>&amp; v1, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>&amp; a);</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>&amp; m2);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>&amp; m2);</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<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>&amp; a, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>&amp; m);</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<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>&amp; m, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>&amp; a);</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<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>&amp; m, <span class="keyword">const</span> <a class="code" href="group__type.html#gad863c5878a01051a2726ce94bf365428">qcomp</a>&amp; a);</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>&amp; m2);</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>&amp; m2);</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>&amp; m2);</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>&amp; a);</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>&amp; a);</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<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>&amp; m1, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a>&amp; m2);</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<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>&amp; m, <span class="keyword">const</span> <a class="code" href="group__testutilities.html#gac9263a65c96a458b810b20baa81c5b94">QVector</a>&amp; v);</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;std::vector&lt;QMatrix&gt; <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>&#160; </div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;std::vector&lt;qreal&gt; <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>&#160; </div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;std::vector&lt;QVector&gt; <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>&#160; </div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<a class="code" href="group__testutilities.html#gabbc686f5f40eff22e08a2b2012ac4e41">QMatrix</a> <a class="code" href="group__testutilities.html#gad6435da46323045d81e4ba9d9fe5a109">getMixedDensityMatrix</a>(std::vector&lt;qreal&gt; probs, std::vector&lt;QVector&gt; states);</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160; </div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00887"></a><span class="lineno">  887</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;<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>&#160; </div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;<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>&#160; </div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<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> &amp;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>&#160; </div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<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>&#160; </div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<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>&amp; contents);</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; </div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<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>&#160; </div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<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>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">using</span> <a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen</a> = Catch::Generators::GeneratorWrapper&lt;T&gt;;</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; </div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int*&gt;</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>&#160; </div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int*&gt;</a> <a class="code" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a>(<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int&gt;</a>&amp;&amp; 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>&#160; </div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int*&gt;</a> <a class="code" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a>(<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int&gt;</a>&amp;&amp; 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>&#160; </div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int*&gt;</a> <a class="code" href="group__testutilities.html#ga35add15146aa606b256df79334b867d5">sublists</a>(<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int&gt;</a>&amp;&amp; gen, <span class="keywordtype">int</span> sublen);</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; </div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int*&gt;</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>&#160; </div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;int*&gt;</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>&#160; </div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<a class="code" href="utilities_8hpp.html#a8cc85fff30c23faa2cbed6ca0c01ce39">CatchGen&lt;pauliOpType*&gt;</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>&#160; </div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<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&lt; T &gt; 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 &amp;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&lt; QMatrix &gt; 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&lt; qreal &gt; probs, std::vector&lt; QVector &gt; 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 &amp;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 &amp;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&gt;&lt;bra|, with ith-jth element ket(i) conj(bra(j)), since |ket&gt;&lt;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 &amp;v1, const qcomp &amp;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&lt; QVector &gt; 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&lt; qcomp &gt; 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 &amp;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&lt; int * &gt; 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 &amp;v1, const QVector &amp;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 &amp;v1, const QVector &amp;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&lt; pauliOpType * &gt; 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 &amp;a, const QVector &amp;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&lt; std::vector&lt; qcomp &gt; &gt; 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&lt; int * &gt; 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&lt; qreal &gt; 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 &amp;v, const qcomp &amp;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 &amp;v1, const qcomp &amp;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 &amp;v1, const QVector &amp;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 &amp;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&lt; int * &gt; 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 &amp;v1, const QVector &amp;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>