Skip to content

Commit b2ea9ca

Browse files
Docs preview for PR #2735.
1 parent dc1c722 commit b2ea9ca

File tree

10 files changed

+623
-13
lines changed

10 files changed

+623
-13
lines changed

pr-2735/_sources/api/languages/cpp_api.rst.txt

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ Operators
77
.. doxygenclass:: cudaq::spin_op
88
:members:
99

10+
.. doxygenclass:: cudaq::scalar_callback
11+
:members:
12+
13+
.. doxygenclass:: cudaq::scalar_operator
14+
:members:
15+
1016
Quantum
1117
=========
1218

pr-2735/api/languages/cpp_api.html

+556
Large diffs are not rendered by default.

pr-2735/applications/python/adapt_qaoa.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,7 @@ <h1>ADAPT-QAOA algorithm<a class="headerlink" href="#ADAPT-QAOA-algorithm" title
774774
parameter</p>
775775
<p>3- Optimize all parameters currently in the Ansatz <span class="math notranslate nohighlight">\(\beta_m, \gamma_m = 1, 2, ...k\)</span> such that <span class="math notranslate nohighlight">\(\braket{\psi (k)|H_C|\psi(k)}\)</span> is minimized, and return to the second step.</p>
776776
<p>Below is a schematic representation of the ADAPT-QAOA algorithm explained above.</p>
777-
<div><p><img alt="1a066c5fc5d649eeb0e121d39ebf1138" class="no-scaled-link" src="../../_images/adapt-qaoa.png" style="width: 600px;" /></p>
777+
<div><p><img alt="7964b7536e0e4b30998178683306b6aa" class="no-scaled-link" src="../../_images/adapt-qaoa.png" style="width: 600px;" /></p>
778778
</div><div class="nbinput nblast docutils container">
779779
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[ ]:
780780
</pre></div>

pr-2735/applications/python/deutschs_algorithm.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,7 @@ <h2>XOR <span class="math notranslate nohighlight">\(\oplus\)</span><a class="he
831831
</section>
832832
<section id="Quantum-oracles">
833833
<h2>Quantum oracles<a class="headerlink" href="#Quantum-oracles" title="Permalink to this heading"></a></h2>
834-
<p><img alt="2034fc5ec94f4222a7eb176b34a1c265" class="no-scaled-link" src="../../_images/oracle.png" style="width: 300px; height: 150px;" /></p>
834+
<p><img alt="da5e8f821104429b800e0034e7bc0861" class="no-scaled-link" src="../../_images/oracle.png" style="width: 300px; height: 150px;" /></p>
835835
<p>Suppose we have <span class="math notranslate nohighlight">\(f(x): \{0,1\} \longrightarrow \{0,1\}\)</span>. We can compute this function on a quantum computer using oracles which we treat as black box functions that yield the output with an appropriate sequence of logical gates.</p>
836836
<p>Above you see an oracle represented as <span class="math notranslate nohighlight">\(U_f\)</span> which allows us to transform the state <span class="math notranslate nohighlight">\(\ket{x}\ket{y}\)</span> into:</p>
837837
<div class="math notranslate nohighlight">
@@ -879,7 +879,7 @@ <h2>Quantum parallelism<a class="headerlink" href="#Quantum-parallelism" title="
879879
<h2>Deutsch’s Algorithm:<a class="headerlink" href="#Deutsch's-Algorithm:" title="Permalink to this heading"></a></h2>
880880
<p>Our aim is to find out if <span class="math notranslate nohighlight">\(f: \{0,1\} \longrightarrow \{0,1\}\)</span> is a constant or a balanced function? If constant, <span class="math notranslate nohighlight">\(f(0) = f(1)\)</span>, and if balanced, <span class="math notranslate nohighlight">\(f(0) \neq f(1)\)</span>.</p>
881881
<p>We step through the circuit diagram below and follow the math after the application of each gate.</p>
882-
<p><img alt="136afc00f9d14442ab8d5850bfbc1048" class="no-scaled-link" src="../../_images/deutsch.png" style="width: 500px; height: 210px;" /></p>
882+
<p><img alt="1d10204f61b44a039c2cd197b0a59008" class="no-scaled-link" src="../../_images/deutsch.png" style="width: 500px; height: 210px;" /></p>
883883
<div class="math notranslate nohighlight">
884884
\[\ket{\psi_0} = \ket{01}
885885
\tag{1}\]</div>

pr-2735/applications/python/quantum_transformer.html

+5-5
Large diffs are not rendered by default.

pr-2735/examples/python/performance_optimizations.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -759,9 +759,9 @@ <h1>Optimizing Performance<a class="headerlink" href="#Optimizing-Performance" t
759759
<section id="Gate-Fusion">
760760
<h2>Gate Fusion<a class="headerlink" href="#Gate-Fusion" title="Permalink to this heading"></a></h2>
761761
<p>Gate fusion is an optimization technique where consecutive gates are combined into a single gate operation to improve the efficiency of the simulation (See figure below). By targeting the <code class="docutils literal notranslate"><span class="pre">nvidia-mgpu</span></code> backend and setting the <code class="docutils literal notranslate"><span class="pre">CUDAQ_MGPU_FUSE</span></code> environment variable, you can select the degree of fusion that takes place. A full command line example would look like <code class="docutils literal notranslate"><span class="pre">CUDAQ_MGPU_FUSE=4</span> <span class="pre">python</span> <span class="pre">c2h2VQE.py</span> <span class="pre">--target</span> <span class="pre">nvidia</span> <span class="pre">--target-option</span> <span class="pre">fp64,mgpu</span></code></p>
762-
<p><img alt="6269d921be9846ceb3daf9c210c2f79c" src="../../_images/gate-fuse.png" /></p>
762+
<p><img alt="ec1d7f1083464d6bac6a953717cca7e3" src="../../_images/gate-fuse.png" /></p>
763763
<p>The importance of gate fusion is system dependent, but can have a large influence on the performance of the simulation. See the example below for a 24 qubit VQE experiment where changing the fusion level resulted in significant performance boosts.</p>
764-
<p><img alt="37b919ed45d24bfa9f6b6daf2fca9539" src="../../_images/gatefusion.png" /></p>
764+
<p><img alt="f910502a999b40a7b21be6a2126f262e" src="../../_images/gatefusion.png" /></p>
765765
</section>
766766
</section>
767767

pr-2735/genindex.html

+44-2
Original file line numberDiff line numberDiff line change
@@ -1298,8 +1298,6 @@ <h2 id="C">C</h2>
12981298
</li>
12991299
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq18phase_flip_channelE">cudaq::phase_flip_channel (C++ class)</a>
13001300
</li>
1301-
</ul></td>
1302-
<td style="width: 33%; vertical-align: top;"><ul>
13031301
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq3QPUE">cudaq::QPU (C++ class)</a>
13041302
</li>
13051303
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq3QPU7enqueueER11QuantumTask">cudaq::QPU::enqueue (C++ function)</a>
@@ -1320,6 +1318,8 @@ <h2 id="C">C</h2>
13201318
</li>
13211319
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq3QPU29launchSerializedCodeExecutionERKNSt6stringERN5cudaq30SerializedCodeExecutionContextE">cudaq::QPU::launchSerializedCodeExecution (C++ function)</a>
13221320
</li>
1321+
</ul></td>
1322+
<td style="width: 33%; vertical-align: top;"><ul>
13231323
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq3QPU15onRandomSeedSetENSt6size_tE">cudaq::QPU::onRandomSeedSet (C++ function)</a>
13241324
</li>
13251325
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq3QPU3QPUENSt6size_tE">cudaq::QPU::QPU (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq3QPU3QPUERR3QPU">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq3QPU3QPUEv">[2]</a>
@@ -1577,6 +1577,48 @@ <h2 id="C">C</h2>
15771577
<li><a href="api/languages/cpp_api.html#_CPPv4NK5cudaq13sample_result6to_mapEKNSt11string_viewE">cudaq::sample_result::to_map (C++ function)</a>
15781578
</li>
15791579
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq13sample_resultD0Ev">cudaq::sample_result::~sample_result (C++ function)</a>
1580+
</li>
1581+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_callbackE">cudaq::scalar_callback (C++ class)</a>
1582+
</li>
1583+
<li><a href="api/languages/cpp_api.html#_CPPv4NK5cudaq15scalar_callbackclERKNSt13unordered_mapINSt6stringENSt7complexIdEEEE">cudaq::scalar_callback::operator() (C++ function)</a>
1584+
</li>
1585+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_callbackaSERK15scalar_callback">cudaq::scalar_callback::operator= (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_callbackaSERR15scalar_callback">[1]</a>
1586+
</li>
1587+
<li><a href="api/languages/cpp_api.html#_CPPv4I0_NSt11enable_if_tINSt16is_invocable_r_vINSt7complexIdEE8CallableRKNSt13unordered_mapINSt6stringENSt7complexIdEEEEEEbEEEN5cudaq15scalar_callback15scalar_callbackERR8Callable">cudaq::scalar_callback::scalar_callback (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_callback15scalar_callbackERK15scalar_callback">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_callback15scalar_callbackERR15scalar_callback">[2]</a>
1588+
</li>
1589+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorE">cudaq::scalar_operator (C++ class)</a>
1590+
</li>
1591+
<li><a href="api/languages/cpp_api.html#_CPPv4NK5cudaq15scalar_operator8evaluateERKNSt13unordered_mapINSt6stringENSt7complexIdEEEE">cudaq::scalar_operator::evaluate (C++ function)</a>
1592+
</li>
1593+
<li><a href="api/languages/cpp_api.html#_CPPv4NK5cudaq15scalar_operator11is_constantEv">cudaq::scalar_operator::is_constant (C++ function)</a>
1594+
</li>
1595+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormlENSt7complexIdEERK15scalar_operator">cudaq::scalar_operator::operator* (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormlENSt7complexIdEERR15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormlEdRK15scalar_operator">[2]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormlEdRR15scalar_operator">[3]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatormlENSt7complexIdEE">[4]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatormlERK15scalar_operator">[5]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatormlEd">[6]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatormlENSt7complexIdEE">[7]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatormlERK15scalar_operator">[8]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatormlEd">[9]</a>
1596+
</li>
1597+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormLENSt7complexIdEE">cudaq::scalar_operator::operator*= (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormLERK15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormLEd">[2]</a>
1598+
</li>
1599+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorplENSt7complexIdEERK15scalar_operator">cudaq::scalar_operator::operator+ (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorplENSt7complexIdEERR15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorplEdRK15scalar_operator">[2]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorplEdRR15scalar_operator">[3]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatorplENSt7complexIdEE">[4]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatorplERK15scalar_operator">[5]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatorplEd">[6]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatorplEv">[7]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatorplENSt7complexIdEE">[8]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatorplERK15scalar_operator">[9]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatorplEd">[10]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatorplEv">[11]</a>
1600+
</li>
1601+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorpLENSt7complexIdEE">cudaq::scalar_operator::operator+= (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorpLERK15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorpLEd">[2]</a>
1602+
</li>
1603+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormiENSt7complexIdEERK15scalar_operator">cudaq::scalar_operator::operator- (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormiENSt7complexIdEERR15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormiEdRK15scalar_operator">[2]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormiEdRR15scalar_operator">[3]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatormiENSt7complexIdEE">[4]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatormiERK15scalar_operator">[5]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatormiEd">[6]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatormiEv">[7]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatormiENSt7complexIdEE">[8]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatormiERK15scalar_operator">[9]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatormiEd">[10]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatormiEv">[11]</a>
1604+
</li>
1605+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormIENSt7complexIdEE">cudaq::scalar_operator::operator-= (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormIERK15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatormIEd">[2]</a>
1606+
</li>
1607+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatordvENSt7complexIdEERK15scalar_operator">cudaq::scalar_operator::operator/ (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatordvENSt7complexIdEERR15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatordvEdRK15scalar_operator">[2]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatordvEdRR15scalar_operator">[3]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatordvENSt7complexIdEE">[4]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatordvERK15scalar_operator">[5]</a>, <a href="api/languages/cpp_api.html#_CPPv4NKR5cudaq15scalar_operatordvEd">[6]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatordvENSt7complexIdEE">[7]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatordvERK15scalar_operator">[8]</a>, <a href="api/languages/cpp_api.html#_CPPv4NO5cudaq15scalar_operatordvEd">[9]</a>
1608+
</li>
1609+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatordVENSt7complexIdEE">cudaq::scalar_operator::operator/= (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatordVERK15scalar_operator">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatordVEd">[2]</a>
1610+
</li>
1611+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatoraSERK15scalar_operator">cudaq::scalar_operator::operator= (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatoraSERR15scalar_operator">[1]</a>
1612+
</li>
1613+
<li><a href="api/languages/cpp_api.html#_CPPv4NK5cudaq15scalar_operatoreqE15scalar_operator">cudaq::scalar_operator::operator== (C++ function)</a>
1614+
</li>
1615+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operator15scalar_operatorENSt7complexIdEE">cudaq::scalar_operator::scalar_operator (C++ function)</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operator15scalar_operatorERK15scalar_callback">[1]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operator15scalar_operatorERK15scalar_operator">[2]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operator15scalar_operatorERR15scalar_callback">[3]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operator15scalar_operatorERR15scalar_operator">[4]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operator15scalar_operatorEd">[5]</a>, <a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operator15scalar_operatorEv">[6]</a>
1616+
</li>
1617+
<li><a href="api/languages/cpp_api.html#_CPPv4NK5cudaq15scalar_operator9to_matrixERKNSt13unordered_mapINSt6stringENSt7complexIdEEEE">cudaq::scalar_operator::to_matrix (C++ function)</a>
1618+
</li>
1619+
<li><a href="api/languages/cpp_api.html#_CPPv4NK5cudaq15scalar_operator9to_stringEv">cudaq::scalar_operator::to_string (C++ function)</a>
1620+
</li>
1621+
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq15scalar_operatorD0Ev">cudaq::scalar_operator::~scalar_operator (C++ function)</a>
15801622
</li>
15811623
<li><a href="api/languages/cpp_api.html#_CPPv4N5cudaq30SerializedCodeExecutionContextE">cudaq::SerializedCodeExecutionContext (C++ class)</a>
15821624
</li>

pr-2735/objects.inv

4.05 KB
Binary file not shown.

pr-2735/searchindex.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pr-2735/sphinx/api/languages/cpp_api.rst

+6
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ Operators
77
.. doxygenclass:: cudaq::spin_op
88
:members:
99

10+
.. doxygenclass:: cudaq::scalar_callback
11+
:members:
12+
13+
.. doxygenclass:: cudaq::scalar_operator
14+
:members:
15+
1016
Quantum
1117
=========
1218

0 commit comments

Comments
 (0)