Created
December 6, 2022 11:04
-
-
Save terasakisatoshi/ed83e42c9ad938dc7188a6308ef73ee4 to your computer and use it in GitHub Desktop.
Kyulacs.jl + qulacsvis
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"id": "bc977fe5-f7f6-46de-9baf-688c4e39d463", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"using Kyulacs\n", | |
"using PyPlot\n", | |
"using Kyulacs.Vis" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "c3011877-d2a5-4e3b-93b9-2121d36a83d4", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Construct a quantum circuit\n", | |
"circuit = QuantumCircuit(3)\n", | |
"circuit.add_X_gate(0)\n", | |
"circuit.add_Y_gate(1)\n", | |
"circuit.add_Z_gate(2)\n", | |
"circuit.add_dense_matrix_gate(\n", | |
" [0, 1], [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0]]\n", | |
")\n", | |
"circuit.add_CNOT_gate(2, 0)\n", | |
"circuit.add_X_gate(2)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "ef805c4f-d059-4730-bc0f-f1282d33a08b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" ___ ___ ___ \n", | |
" | X | |DeM| |CX | \n", | |
"--| |---| |---| |----------\n", | |
" |___| | | |___| \n", | |
" ___ | | | \n", | |
" | Y | | | | \n", | |
"--| |---| |-----|------------\n", | |
" |___| |___| | \n", | |
" ___ | ___ \n", | |
" | Z | | | X | \n", | |
"--| |-------------●-----| |--\n", | |
" |___| |___| \n" | |
] | |
} | |
], | |
"source": [ | |
"circuit_drawer(circuit)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"id": "b3a2e9de-6e14-4d90-86e3-9fd552b5b09b", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" ___ ___ ___ \n", | |
" | X | |DeM| |CX | \n", | |
"--| |---| |---| |----------\n", | |
" |___| | | |___| \n", | |
" ___ | | | \n", | |
" | Y | | | | \n", | |
"--| |---| |-----|------------\n", | |
" |___| |___| | \n", | |
" ___ | ___ \n", | |
" | Z | | | X | \n", | |
"--| |-------------●-----| |--\n", | |
" |___| |___| \n" | |
] | |
} | |
], | |
"source": [ | |
"drawer = TextCircuitDrawer(circuit)\n", | |
"drawer.draw(verbose=false)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"id": "26490651-e3c5-47fc-a0a3-31b5b219aa96", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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", | |
"text/plain": [ | |
"Figure(PyObject <Figure size 388.8x280.8 with 1 Axes>)" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"drawer = MPLCircuitlDrawer(circuit)\n", | |
"Figure(drawer.draw());" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Julia 1.8.3", | |
"language": "julia", | |
"name": "julia-1.8" | |
}, | |
"language_info": { | |
"file_extension": ".jl", | |
"mimetype": "application/julia", | |
"name": "julia", | |
"version": "1.8.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment