-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable emitting circuit diagrams for unitary quantum kernels in LaTeX #1638
Comments
Hi, I have started working on this for unitary hack! |
Hi, thanks for working on this!
I'm unsure which of the various packages is the most commonly used. I have tried most of them. The main disadvantage of Compare the code to generate: (Image taken from yquant docs) The following are the code taken from the documentation of each package:
\begin{quantikz}
& \gate{H} & \ctrl{1} & \gate{H}\gategroup[2,steps=3,style={innersep=6pt}]{reversed c-{\sc not}} & \ctrl{1} & \gate{H} & \ctrl{1} & & \\
& & \targ{} & \gate{H} & \targ{} & \gate{H} & \targ{} & \gate{H} &
\end{quantikz}
\begin{tikzpicture}
\begin{yquant*}
h a;
cnot b | a;
[name=left]
h -;
cnot b | a;
[name=right]
h -;
cnot b|a;
h b;
\end{yquant*}
\node[fit=(left-0) (left-1) (right-0) (right-1),draw, inner sep=6pt, "reversed c\textsc{not}"] {};
\end{tikzpicture} If there a need to analyze the output latex in order to solve a bug, |
Hm, I am not sure if I would agree: as soon as we reach 8 quantum gates, Also an experience from just having implemented it: But if you wanted to produce simplified I would argue that C++ readability in this case is more important than the readability of intermediate output. |
Add LaTeX circuit diagrams to the cudaq draw() function. this PR addresses #1638
Add LaTeX circuit diagrams to the cudaq draw() function. this PR addresses NVIDIA#1638
Description
The CUDA-Q platform allows users to build and execute hybrid quantum-classical kernels. While learning CUDA-Q and also while developing with CUDA-Q, it is helpful to visualize quantum circuits and states to gain intuition, to spot check code, and to communicate with others. We need to expand the visualization functionality into CUDA-Q. CUDA-Q currently contains the ability to visualize unitary quantum kernels as circuit diagrams. These diagrams are emitted in ASCII. To facilitate incorporating such diagrams in papers and other materials, we would like to add support for emitting them in LaTeX instead.
Details
The documentation of the current
draw
function can be found here (Python) and here (C++).The API is defined in draw.h, with the corresponding implementation of this functionality is in draw.cpp. This implementation should be extended to take an optional argument
format
, i.e. an additional overloadshould be created, where valid values for
format
are "ascii" or "latex", and a new Python binding should be created for that overload in py_draw.cpp.Possible options for LaTeX package to generate circuit diagrams are qcircuit and yquant.
The text was updated successfully, but these errors were encountered: