+ @endhtmlonly
*
* @see
* - sGate()
@@ -2469,7 +2501,9 @@ qreal calcTotalProb(Qureg qureg);
* which is general up to a global phase factor.
* Valid \f$\alpha\f$, \f$\beta\f$ satisfy \f$|\alpha|^2 + |\beta|^2 = 1\f$.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - controlledCompactUnitary()
@@ -2502,7 +2538,9 @@ void compactUnitary(Qureg qureg, int targetQubit, Complex alpha, Complex beta);
/** Apply a general single-qubit unitary (including a global phase factor).
* The passed 2x2 ComplexMatrix must be unitary, otherwise an error is thrown.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* If \p qureg is a state-vector, then the resulting state is \f$ u \, |\text{qureg}\rangle \f$.\n
* If \p qureg is a density-matrix \f$ \rho \f$, then the resulting state is \f$ u \, \rho \, u^\dagger \f$.
@@ -2548,7 +2588,9 @@ void unitary(Qureg qureg, int targetQubit, ComplexMatrix2 u);
* \end{pmatrix}
* \f]
* with circuit diagram:
- \f[
+ @htmlonly
+
+ @endhtmlonly
*
* @see
* - multiRotateZ()
@@ -2688,7 +2740,9 @@ void rotateAroundAxis(Qureg qureg, int rotQubit, qreal angle, Vector axis);
/** Applies a controlled rotation by a given angle around the X-axis of the Bloch-sphere.
* The target qubit is rotated in states where the control qubit has value 1.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - rotateX()
@@ -2728,7 +2784,9 @@ void controlledRotateX(Qureg qureg, int controlQubit, int targetQubit, qreal ang
/** Applies a controlled rotation by a given angle around the Y-axis of the Bloch-sphere.
* The target qubit is rotated in states where the control qubit has value 1.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* - rotateY()
* - controlledRotateX()
@@ -2767,7 +2827,9 @@ void controlledRotateY(Qureg qureg, int controlQubit, int targetQubit, qreal ang
/** Applies a controlled rotation by a given angle around the Z-axis of the Bloch-sphere.
* The target qubit is rotated in states where the control qubit has value 1.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - rotateZ()
@@ -2810,7 +2874,9 @@ void controlledRotateZ(Qureg qureg, int controlQubit, int targetQubit, qreal ang
* For angle \f$\theta\f$ and axis vector \f$\vec{n}\f$, applies \f$R_{\hat{n}} = \exp \left(- i \frac{\theta}{2} \hat{n} \cdot \vec{\sigma} \right) \f$ to states where the target qubit is 1
* (\f$\vec{\sigma}\f$ is the vector of Pauli matrices).
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - rotateAroundAxis()
@@ -2858,7 +2926,9 @@ void controlledRotateAroundAxis(Qureg qureg, int controlQubit, int targetQubit,
* Valid \f$\alpha\f$, \f$\beta\f$ satisfy \f$|\alpha|^2 + |\beta|^2 = 1\f$.
* The target unitary is general up to a global phase factor.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - compactUnitary()
@@ -2908,7 +2980,9 @@ void controlledCompactUnitary(Qureg qureg, int controlQubit, int targetQubit, Co
* \f]
* on the control and target qubits.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - ::ComplexMatrix2
@@ -2962,7 +3038,9 @@ void controlledUnitary(Qureg qureg, int controlQubit, int targetQubit, ComplexMa
* on the control and target qubits.
* The given 2x2 ComplexMatrix must be unitary, otherwise an error is thrown.
*
- \f[
+ @htmlonly
+
+ @endhtmlonly
*
* @ingroup unitary
* @param[in,out] qureg object representing the set of all qubits
@@ -3166,7 +3262,9 @@ void hadamard(Qureg qureg, int targetQubit);
* \f]
* on the control and target qubits.
*
- \f[
+ @htmlonly
+
+ @endhtmlonly
* > In distributed mode, this operation requires at most a single round of pair-wise
* > communication between nodes, and hence is as efficient as pauliX().
*
@@ -3292,7 +3396,9 @@ void multiControlledMultiQubitNot(Qureg qureg, int* ctrls, int numCtrls, int* ta
* \end{pmatrix}
* \f]
* and circuit diagram:
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
* > In distributed mode, this operation requires at most a single round of pair-wise
* > communication between nodes, and hence is as efficient as pauliX().
*
@@ -3343,7 +3451,9 @@ void multiQubitNot(Qureg qureg, int* targs, int numTargs);
* \f]
* on the control and target qubits.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @ingroup unitary
* @param[in,out] qureg object representing the set of all qubits
@@ -3418,20 +3530,20 @@ qreal calcProbOfOutcome(Qureg qureg, int measureQubit, int outcome);
* where \f$|\alpha_j|^2\f$ are the probabilities of the respective outcome states (interpreting
* \p qubits as ordered least to most significant)
* \f[
- * |\dots\textbf{c\,b\,a}\rangle_i \; \; = \;\; |000\rangle, \;\; |001\rangle \;\; |010\rangle \;\; |011\rangle, \;\; \dots
+ * |\dots\textbf{c}\,\textbf{b}\,\textbf{a}\rangle_i \; \; = \;\; |000\rangle, \;\; |001\rangle \;\; |010\rangle \;\; |011\rangle, \;\; \dots
* \f]
* understood in a state-vector \p qureg \f$|\psi\rangle\f$ as
* \f[
- * |\psi\rangle = \sum\limits_i^{\text{numQubits}} \alpha_i \; |\dots\textbf{c\,b\,a}\rangle_i
+ * |\psi\rangle = \sum\limits_i^{\text{numQubits}} \alpha_i \; |\dots\textbf{c}\,\textbf{b}\,\textbf{a}\rangle_i
* \; \otimes \; |\phi\rangle_i,
* \f]
* or in a density matrix \p qureg \f$\rho\f$ as
* \f[
* \begin{aligned}
- * \rho &= \sum\limits_{i,j}^{\text{numQubits}} \; \beta_{ij} \; |\dots\textbf{c\,b\,a}\rangle_i\,\langle\dots\textbf{c\,b\,a}|_j
+ * \rho &= \sum\limits_{i,j}^{\text{numQubits}} \; \beta_{ij} \; |\dots\textbf{c}\,\textbf{b}\,\textbf{a}\rangle_i\,\langle\dots\textbf{c}\,\textbf{b}\,\textbf{a}|_j
* \; \otimes \; \mu_{ij} \\
- * &= \sum\limits_i^{\text{numQubits}} \; |\alpha_i|^2 \; |\dots\textbf{c\,b\,a}\rangle\langle\dots\textbf{c\,b\,a}|_i \;\; + \,
- * \sum\limits_{i \ne j}^{\text{numQubits}} \; \beta_{ij} \; |\dots\textbf{c\,b\,a}\rangle_i\,\langle\dots\textbf{c\,b\,a}|_j
+ * &= \sum\limits_i^{\text{numQubits}} \; |\alpha_i|^2 \; |\dots\textbf{c}\,\textbf{b}\,\textbf{a}\rangle\langle\dots\textbf{c}\,\textbf{b}\,\textbf{a}|_i \;\; + \,
+ * \sum\limits_{i \ne j}^{\text{numQubits}} \; \beta_{ij} \; |\dots\textbf{c}\,\textbf{b}\,\textbf{a}\rangle_i\,\langle\dots\textbf{c}\,\textbf{b}\,\textbf{a}|_j
* \; \otimes \; \mu_{ij},
* \end{aligned}
* \f]
@@ -4152,7 +4264,9 @@ qreal calcFidelity(Qureg qureg, Qureg pureState);
* \f]
* on the designated qubits, though is performed internally by three CNOT gates.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - sqrtSwapGate()
@@ -4197,7 +4313,9 @@ void swapGate(Qureg qureg, int qubit1, int qubit2);
* \f]
* on the designated qubits, though is performed internally by three CNOT gates.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - swapGate()
@@ -4244,7 +4364,9 @@ void sqrtSwapGate(Qureg qureg, int qb1, int qb2);
* > which are conditioned on outcome `0`, calling multiControlledUnitary(), then
* > re-appplying pauliX() on the same qubits.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* @see
* - ::ComplexMatrix2
@@ -4393,7 +4517,9 @@ void multiRotatePauli(Qureg qureg, int* targetQubits, enum pauliOpType* targetPa
* where the Pauli Z gates operate upon the qubits in `targetQubits`, and cause
* rotations of \f$\theta =\f$ \p angle.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* > All qubits not appearing in \p targetQubits and \p controlQubits are assumed to receive the identity operator.
*
@@ -4464,7 +4596,9 @@ void multiControlledMultiRotateZ(Qureg qureg, int* controlQubits, int numControl
* where \f$\hat{\sigma}_j\f$ are the Pauli operators (::pauliOpType) in `targetPaulis`, which operate
* upon the corresponding qubits in `targetQubits`.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* > All qubits not appearing in \p targetQubits and \p controlQubits are assumed to receive the identity operator.
*
@@ -4703,7 +4844,9 @@ qreal calcExpecPauliHamil(Qureg qureg, PauliHamil hamil, Qureg workspace);
/** Apply a general two-qubit unitary (including a global phase factor).
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* \p targetQubit1 is treated as the \p least significant qubit in \p u, such that
* a row in \p u is dotted with the vector
@@ -4792,7 +4937,9 @@ void twoQubitUnitary(Qureg qureg, int targetQubit1, int targetQubit2, ComplexMat
*
* The passed 4x4 ComplexMatrix must be unitary, otherwise an error is thrown.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* Note that in distributed mode, this routine requires that each node contains at least 4 amplitudes.
* This means an q-qubit register (state vector or density matrix) can be distributed
@@ -4859,7 +5008,9 @@ void controlledTwoQubitUnitary(Qureg qureg, int controlQubit, int targetQubit1,
*
* The passed 4x4 ComplexMatrix must be unitary, otherwise an error is thrown.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* Note that in distributed mode, this routine requires that each node contains at least 4 amplitudes.
* This means an q-qubit register (state vector or density matrix) can be distributed
@@ -4954,7 +5107,9 @@ void multiControlledTwoQubitUnitary(Qureg qureg, int* controlQubits, int numCont
*
* > To specify only the diagonal elements of the matrix, use diagonalUnitary().
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* Note that in multithreaded mode, each thread will clone 2^\p numTargs amplitudes,
* and store these in the runtime stack.
@@ -5027,7 +5184,9 @@ void multiQubitUnitary(Qureg qureg, int* targs, int numTargs, ComplexMatrixN u);
* The passed ComplexMatrix must be unitary and be a compatible size with the specified number of
* target qubits, otherwise an error is thrown.
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* Note that in multithreaded mode, each thread will clone 2^\p numTargs amplitudes,
* and store these in the runtime stack.
@@ -5102,7 +5263,9 @@ void controlledMultiQubitUnitary(Qureg qureg, int ctrl, int* targs, int numTargs
* > To left-multiply a non-unitary ::ComplexMatrixN, including control qubits,
* > use applyMultiControlledMatrixN()
*
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
*
* Note that in multithreaded mode, each thread will clone 2^\p numTargs amplitudes,
* and store these in the runtime stack.
@@ -6985,7 +7150,9 @@ void applyParamNamedPhaseFuncOverrides(Qureg qureg, int* qubits, int* numQubitsP
/** Applies the quantum Fourier transform (QFT) to the entirety of \p qureg.
* The effected unitary circuit (shown here for 4 qubits, bottom qubit is 0) resembles
- \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
* though is performed more efficiently.
*
* - If \p qureg is a state-vector, the output amplitudes are the discrete Fourier
@@ -7085,7 +7254,9 @@ void applyFullQFT(Qureg qureg);
* qubit in increasing order.
*
* The effected unitary circuit (shown here for \p numQubits = 4) resembles
- * \f[
+ @htmlonly
+
+
+
+ @endhtmlonly
* though is performed more efficiently.
*
* - If \p qureg is a state-vector, the output amplitudes are a kronecker product of
diff --git a/doxyconfig/config b/doxyconfig/config
index 9d289f4f..0f659c58 100644
--- a/doxyconfig/config
+++ b/doxyconfig/config
@@ -231,12 +231,6 @@ TAB_SIZE = 8
ALIASES =
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
@@ -643,7 +637,7 @@ SHOW_USED_FILES = YES
# (if specified).
# The default value is: YES.
-SHOW_FILES = YES
+SHOW_FILES = NO
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
# page. This will remove the Namespaces entry from the Quick Index and from the
@@ -906,13 +900,13 @@ USE_MDFILE_AS_MAINPAGE = README.md
# also VERBATIM_HEADERS is set to NO.
# The default value is: NO.
-SOURCE_BROWSER = YES
+SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body of functions,
# classes and enums directly into the documentation.
# The default value is: NO.
-INLINE_SOURCES = YES
+INLINE_SOURCES = NO
STRIP_FROM_PATH = $(QTDIR)/
@@ -934,7 +928,7 @@ REFERENCED_BY_RELATION = YES
# all documented entities called/used by that function will be listed.
# The default value is: NO.
-REFERENCES_RELATION = YES
+REFERENCES_RELATION = NO
# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
@@ -995,13 +989,6 @@ VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = NO
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1141,7 +1128,7 @@ HTML_TIMESTAMP = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_DYNAMIC_SECTIONS = NO
+HTML_DYNAMIC_SECTIONS = YES
# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
# shown in the various tree structured indices initially; the user can expand
@@ -1405,17 +1392,6 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 12
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT = YES
-
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using prerendered bitmaps. Use this if you do not have LaTeX
@@ -1425,7 +1401,7 @@ FORMULA_TRANSPARENT = YES
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
-USE_MATHJAX = NO
+USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
@@ -1566,7 +1542,7 @@ GENERATE_LATEX = NO
# The default directory is: latex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
-LATEX_OUTPUT = latex
+LATEX_OUTPUT = .
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
@@ -1601,7 +1577,7 @@ COMPACT_LATEX = YES
# The default value is: a4.
# This tag requires that the tag GENERATE_LATEX is set to YES.
-PAPER_TYPE = a4wide
+PAPER_TYPE = a4
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. To get the times font for
@@ -1678,16 +1654,6 @@ LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE = NO
-
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
@@ -2021,15 +1987,6 @@ EXTERNAL_PAGES = NO
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
-# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS = YES
-
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
@@ -2062,23 +2019,6 @@ HAVE_DOT = NO
DOT_NUM_THREADS = 0
-# When you want a differently looking font n the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE = 10
-
# By default doxygen will tell dot to use the default font as specified with
# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
# the path where dot can find it using this tag.
@@ -2267,18 +2207,6 @@ DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT = NO
-
# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
diff --git a/doxyconfig/header.html b/doxyconfig/header.html
index cde4139c..5f223e77 100644
--- a/doxyconfig/header.html
+++ b/doxyconfig/header.html
@@ -11,6 +11,14 @@
+
+
+
+
+
+
+
+
$projectname: $title$title