{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# QuTiP example: Quantum Gates and their usage" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Author: Anubhav Vardhan (anubhavvardhan@gmail.com)\n", "\n", "User-defined gate added by: Boxi Li (etamin1201@gmail.com)\n", "\n", "For more information about QuTiP see [http://qutip.org](http://qutip.org)\n", "\n", "#### Installation: \n", "The circuit image visualization requires LaTeX and [ImageMagick](https://imagemagick.org/index.php) for display. The module automatically process the LaTeX code for plotting the circuit, generate the pdf and convert it to the png format.\n", "On Mac and Linux, ImageMagick can be easily installed with the command `conda install imagemagick` if you have conda installed.\n", "Otherwise, please follow the installation instructions on the ImageMagick documentation.\n", "\n", "On windows, you need to download and install ImageMagick installer. In addition, you also need [perl](https://www.perl.org/get.html) (for pdfcrop) and [Ghostscript](https://www.ghostscript.com/download/gsdnld.html) (additional dependency of ImageMagick for png conversion).\n", "\n", "To test if the installation is complete, try the following three commands working correctly in Command Prompt: `pdflatex`, `pdfcrop` and `magick anypdf.pdf antpdf.png`, where `anypdf.pdf` is any pdf file you have." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from IPython.display import Image" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from numpy import pi\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from qutip import *\n", "from qutip_qip.operations import *\n", "from qutip_qip.circuit import QubitCircuit, Gate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "http://en.wikipedia.org/wiki/Quantum_gate\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gates in QuTiP and their representation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Controlled-PHASE" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0j\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 1.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+1.j]]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cphase(pi/2)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(2, reverse_states=False)\n", "q.add_gate(\"CSIGN\", controls=[0], targets=[1])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rotation about X-axis" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}0.707 & -0.707j\\\\-0.707j & 0.707\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[0.70710678+0.j 0. -0.70710678j]\n", " [0. -0.70710678j 0.70710678+0.j ]]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rx(pi/2)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(1, reverse_states=False)\n", "q.add_gate(\"RX\", targets=[0], arg_value=pi/2, arg_label=r'\\frac{\\pi}{2}')\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rotation about Y-axis" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}0.707 & -0.707\\\\0.707 & 0.707\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[ 0.70710678 -0.70710678]\n", " [ 0.70710678 0.70710678]]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ry(pi/2)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(1, reverse_states=False)\n", "q.add_gate(\"RY\", targets=[0], arg_value=pi/2, arg_label=r'\\frac{\\pi}{2}')\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Rotation about Z-axis" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(0.707-0.707j) & 0.0\\\\0.0 & (0.707+0.707j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[0.70710678-0.70710678j 0. +0.j ]\n", " [0. +0.j 0.70710678+0.70710678j]]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rz(pi/2)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(1, reverse_states=False)\n", "q.add_gate(\"RZ\", targets=[0], arg_value=pi/2, arg_label=r'\\frac{\\pi}{2}')\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### CNOT" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 1.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0.]\n", " [0. 1. 0. 0.]\n", " [0. 0. 0. 1.]\n", " [0. 0. 1. 0.]]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnot()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(2, reverse_states=False)\n", "q.add_gate(\"CNOT\", controls=[0], targets=[1])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### CSIGN" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & -1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = True\n", "Qobj data =\n", "[[ 1. 0. 0. 0.]\n", " [ 0. 1. 0. 0.]\n", " [ 0. 0. 1. 0.]\n", " [ 0. 0. 0. -1.]]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "csign()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(2, reverse_states=False)\n", "q.add_gate(\"CSIGN\", controls=[0], targets=[1])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Berkeley" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}0.924 & 0.0 & 0.0 & 0.383j\\\\0.0 & 0.383 & 0.924j & 0.0\\\\0.0 & 0.924j & 0.383 & 0.0\\\\0.383j & 0.0 & 0.0 & 0.924\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[0.92387953+0.j 0. +0.j 0. +0.j\n", " 0. +0.38268343j]\n", " [0. +0.j 0.38268343+0.j 0. +0.92387953j\n", " 0. +0.j ]\n", " [0. +0.j 0. +0.92387953j 0.38268343+0.j\n", " 0. +0.j ]\n", " [0. +0.38268343j 0. +0.j 0. +0.j\n", " 0.92387953+0.j ]]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "berkeley()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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ffSYie57RKFfKBH0MoSkWEBJ0REQdAe2hnvPDZET8pJGozmZMwEdrQ4loAGzpFi08ls1yCeFMomgxaFGbt9xj8ORlG1E+hftkQTIS62KtQAAAvZJREFUeNrtnDtu20AQQN8EalIZ7NIF2DaVwQO42RyBV5COIJcpqSNQR4iPIB7B6pJWSC4QNgZSTgrSFCVRiuHsUHAwzw29mtnPE7VLWmuKkhKp+MTvpFVOw3u+6yJlhbPEHWz4ovWEQhIhkZi2xnfXHtL/ios1wsUa4WKNmMmSLGF9d3y79pBexQfupExY325GnVTsR56mdpKEJ36Q8mqmmek2Zf8kvlmxP9NeJvoca4SLNcLFGuFijXCxRrhYI1ysES7WCBdrhIs1wsUa4WKNcLFGuFgjXKwRLtYIF2uEizXCxRqReovREQdbd7b6cFIGsCb0JTtq3R1E1VpD+w2q3l/K1fuRNtuYSNhHyJwArNt2zNCkP5TEo5IMJVMUljx2R7EvC1QU+ygyKsouM6CE7njO8mzuIK6LPo2Zo+R9jzbtqwcZZWIT1mIVtD967KXp4PXlsIQMpTiMIn8uuZx7MWbD1/5Nyk7ik4udeo5thr9ILjkcfp+vzXGKBEI7ifwt92LMgkIiSBhrIz2TiZVMKmpdDUsoyOBwZ4OUrIYaZU45onU091KM7lhRScZc11OM13jx6obYLiZbcsmezxaJZO2S0keVQAbDDcBSsCOX5fANGcsdbfMoRu+loGLFNEw6x1ZshmVEotJm9PNptZ/t2gWHyK/h4nQ+V+kXu5OYrnebM/1OPsdOcsb2NIcXQt2mnnAUkw8itqC1rKn4fHRCjOVCMTwjz8RMwrSLVzhdbOT0Q90tMQNWBFmeVjeSG14QMwmT3CB0GyQDDQuQSNGXQcFDH1VrzZq5RILsuqhaa3IalpKxJozk7ksizVj9XV/m5AQpzW8N2tYS/9dMK+Lf6sjI2U0x+EGbkfh855aGaefYF6FN0p2qV8L/CGOEizXCxRrhYo1wsUa4WCNcrBEu1ggXa4SLNcLFGuFijXCxRrhYI1ysES7WCBdrhIs1wp8J0+LPhDHCnwljhD8T5q3gYo1wsUak3rBxw61ce0yv4ZabtBX+ATeXbhfDh8yzAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTA0LTEyVDE3OjQ2OjQ2KzAwOjAwSPs+2wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wNC0xMlQxNzo0Njo0NiswMDowMDmmhmcAAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAE3RFWHRwZGY6VmVyc2lvbgBQREYtMS41UzZawQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(2, reverse_states=False)\n", "q.add_gate(\"BERKELEY\", targets=[0, 1])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SWAPalpha" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & (0.610-0.488j) & (0.390+0.488j) & 0.0\\\\0.0 & (0.390+0.488j) & (0.610-0.488j) & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1. +0.j 0. +0.j 0. +0.j\n", " 0. +0.j ]\n", " [0. +0.j 0.61029202-0.48768399j 0.38970798+0.48768399j\n", " 0. +0.j ]\n", " [0. +0.j 0.38970798+0.48768399j 0.61029202-0.48768399j\n", " 0. +0.j ]\n", " [0. +0.j 0. +0.j 0. +0.j\n", " 1. +0.j ]]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "swapalpha(pi/2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### FREDKIN" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]]" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fredkin()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### TOFFOLI" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "toffoli()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SWAP" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "swap()\n", "q = QubitCircuit(2, reverse_states=False)\n", "q.add_gate(\"SWAP\", targets=[0, 1])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ISWAP" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "iswap()\n", "q = QubitCircuit(2, reverse_states=False)\n", "q.add_gate(\"ISWAP\", targets=[0, 1])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SQRTiSWAP" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.707 & 0.707j & 0.0\\\\0.0 & 0.707j & 0.707 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1. +0.j 0. +0.j 0. +0.j\n", " 0. +0.j ]\n", " [0. +0.j 0.70710678+0.j 0. +0.70710678j\n", " 0. +0.j ]\n", " [0. +0.j 0. +0.70710678j 0.70710678+0.j\n", " 0. +0.j ]\n", " [0. +0.j 0. +0.j 0. +0.j\n", " 1. +0.j ]]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrtiswap()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SQRTSWAP" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & (0.500+0.500j) & (0.500-0.500j) & 0.0\\\\0.0 & (0.500-0.500j) & (0.500+0.500j) & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1. +0.j 0. +0.j 0. +0.j 0. +0.j ]\n", " [0. +0.j 0.5+0.5j 0.5-0.5j 0. +0.j ]\n", " [0. +0.j 0.5-0.5j 0.5+0.5j 0. +0.j ]\n", " [0. +0.j 0. +0.j 0. +0.j 1. +0.j ]]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrtswap()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SQRTNOT" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(0.500+0.500j) & (0.500-0.500j)\\\\(0.500-0.500j) & (0.500+0.500j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[0.5+0.5j 0.5-0.5j]\n", " [0.5-0.5j 0.5+0.5j]]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sqrtnot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### HADAMARD" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}0.707 & 0.707\\\\0.707 & -0.707\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True\n", "Qobj data =\n", "[[ 0.70710678 0.70710678]\n", " [ 0.70710678 -0.70710678]]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "snot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### PHASEGATE" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0\\\\0.0 & 1.0j\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[1.000000e+00+0.j 0.000000e+00+0.j]\n", " [0.000000e+00+0.j 6.123234e-17+1.j]]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phasegate(pi/2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GLOBALPHASE" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0j & 0.0\\\\0.0 & 1.0j\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[6.123234e-17+1.j 0.000000e+00+0.j]\n", " [0.000000e+00+0.j 6.123234e-17+1.j]]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "globalphase(pi/2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Mølmer–Sørensen gate" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}0.707 & 0.0 & 0.0 & -0.707j\\\\0.0 & 0.707 & -0.707j & 0.0\\\\0.0 & -0.707j & 0.707 & 0.0\\\\-0.707j & 0.0 & 0.0 & 0.707\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[0.70710678+0.j 0. +0.j 0. +0.j\n", " 0. -0.70710678j]\n", " [0. +0.j 0.70710678+0.j 0. -0.70710678j\n", " 0. +0.j ]\n", " [0. +0.j 0. -0.70710678j 0.70710678+0.j\n", " 0. +0.j ]\n", " [0. -0.70710678j 0. +0.j 0. +0.j\n", " 0.70710678+0.j ]]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "molmer_sorensen(pi/2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Qubit rotation gate" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}0.707 & (-0.500-0.500j)\\\\(0.500-0.500j) & 0.707\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[ 0.70710678+0.j -0.5 -0.5j]\n", " [ 0.5 -0.5j 0.70710678+0.j ]]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qrot(pi/2, pi/4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Expanding gates to larger qubit registers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The example above show how to generate matrice representations of the gates implemented in QuTiP, in their minimal qubit requirements. If the same gates is to be represented in a qubit register of size $N$, the optional keywork argument `N` can be specified when calling the gate function. For example, to generate the matrix for the CNOT gate for a $N=3$ bit register:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnot(N=3)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(3, reverse_states=False)\n", "q.add_gate(\"CNOT\", controls=[1], targets=[2])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Furthermore, the control and target qubits (when applicable) can also be similarly specified using keyword arguments `control` and `target` (or in some cases `controls` or `targets`):" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cnot(N=3, control=2, target=0)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q = QubitCircuit(3, reverse_states=False)\n", "q.add_gate(\"CNOT\", controls=[0], targets=[2])\n", "q.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup of a Qubit Circuit" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The gates implemented in QuTiP can be used to build any qubit circuit using the class QubitCircuit. The output can be obtained in the form of a unitary matrix or a latex representation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following example, we take a SWAP gate. It is known that a swap gate is equivalent to three CNOT gates applied in the given format." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N = 2\n", "qc0 = QubitCircuit(N)\n", "qc0.add_gate(\"ISWAP\", [0, 1], None)\n", "qc0.png" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0j & 0.0\\\\0.0 & 1.0j & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+1.j 0.+0.j]\n", " [0.+0.j 0.+1.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 1.+0.j]]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U_list0 = qc0.propagators()\n", "U0 = gate_sequence_product(U_list0)\n", "U0" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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ffSYie57RKFfKBH0MoSkWEBJ0REQdAe2hnvPDZET8pJGozmZMwEdrQ4loAGzpFi08ls1yCeFMomgxaFGbt9xj8ORlG1E+hftkQTIS62KtQAAAy1JREFUeNrtnL1qFFEUgL8jtgqTRxiDrWhSpDHVpLeZ4BNsHiE+wuQNnLyAMCsItrOFRLDaRRAsFHdRSCdsIGgnHItMNr/V5p4cR863RW6mOPee/ebM3FvsESXw5Y73ApZFMqllKq/lizQylcJ7PcvTUwWS0zLTB7zkjW6zTSWV95qWpacKqNnTvdN/dKLrFH2tBCMFUspcVKayZhOdIx1euriDSR3YZgJGCiSjJgNyGpNVr3FZADoByXqXCSDU5MmjrvBkMX7Hn+TxN/nQRV1hhW/d1Q0OOexZJugWavAhWwznJvFrim5UUC2utuR9y0RRmweRHrEDwOnf1Ey48uqVjFxnZpkcG2UCGJlVyJiQmcWesnaxCmjYNZvtFc+sviejKujun7kemcXeoTnbhEomFZxtUpPP9oNfNrEB7tqFtkRHsk0tE36zKhUlQ932XtOy9PVodnIcG7LKI2Zs6Qvv9SxPT6vgBB0JFLrvvY6b0dsq+H8IBe6EAndCgTuhwJ1Q4E4ocCcUuBMK3AkF7oQCd0KBO6HAnVDgTihwJxS4EwrcCQXuhAJ3QoE7ocCdUOBOKHAnFLgTCtwJBe6EAndCgTuhwJ1Q4E4ocCcUuBMK3AkF7oQCd0KBO6HAHaNfXEpBwYZUjHTkneINM8kpeM665IzSN1gAkyqQXFoGzPjOjIG0kr7Ty60hu7TkfOKAnFYGJpOY9IcoFYVWUSiZWvWiuNiJxSB6RUOmUFEoZDQWs6V/ENXsn++YpUPJaNiyuk/tkIJC189lciQ7jGWok8QTJb5vcsaLcbsYjdN3Cuoq7Bg97cqSPHqz6HpULUZl+jpI/S4ouO71O6RMPA9d07J7GLZfu2YrMSJ5E8LUjdHWOeZrN37Mx270kPuMk39F1k3LnvK+G60yZ96NNzlIOUnyxmiU1Nc8iKqTF3Tiuazbry22EeceRPlZVv/og0iHFJf7JEpGicHpwLz92pCrm9CBQSbJ751dmotVQGW3cSSjMG2/lp+vAtYsNtgWS6+73XTb7aWTl+5tfShPzjjduWDXZu9ls/QBUxp+0jC1atp3SxJyWsZ85i1Tapt6+wsYAFhmepTpRwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wNC0xMlQxNzo0Njo1MyswMDowMNZpEeIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDQtMTJUMTc6NDY6NTMrMDA6MDCnNKleAAAALXRFWHRpY2M6Y29weXJpZ2h0AENvcHlyaWdodCBBcnRpZmV4IFNvZnR3YXJlIDIwMTEIusW0AAAAMXRFWHRpY2M6ZGVzY3JpcHRpb24AQXJ0aWZleCBTb2Z0d2FyZSBzUkdCIElDQyBQcm9maWxlEwwBhgAAABN0RVh0cGRmOlZlcnNpb24AUERGLTEuNVM2WsEAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc1 = QubitCircuit(N)\n", "qc1.add_gate(\"CNOT\", 0, 1)\n", "qc1.add_gate(\"CNOT\", 1, 0)\n", "qc1.add_gate(\"CNOT\", 0, 1)\n", "qc1.png" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0.]\n", " [0. 0. 1. 0.]\n", " [0. 1. 0. 0.]\n", " [0. 0. 0. 1.]]" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U_list1 = qc1.propagators()\n", "U1 = gate_sequence_product(U_list1)\n", "U1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In place of manually converting the SWAP gate to CNOTs, it can be automatically converted using an inbuilt function in QubitCircuit" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc2 = qc0.resolve_gates(\"CNOT\")\n", "qc2.png" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0j & 0.0\\\\0.0 & 1.0j & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+1.j 0.+0.j]\n", " [0.+0.j 0.+1.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 1.+0.j]]" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U_list2 = qc2.propagators()\n", "U2 = gate_sequence_product(U_list2)\n", "U2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From QuTiP 4.4, we can also add gate at arbitrary position in a circuit." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPkAAABFCAQAAAAiTogVAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAGQAAABkAA+Wxd0AAAAHdElNRQflBAwRLjgL6kEcAAAKeHpUWHRSYXcgcHJvZmlsZSB0eXBlIGljYwAAWIWdl22SZKkNRf+zCi+BTwktBwSK8P434ENWd0+33TNjOyuIzHoPhJCu7hXpn+7pH3zqUEn5fVbJPz7167ccudq1jtq115rHHDZWzX/2SVKkadPcy8gjd//TmX/xCXZ9Hv1w57R6/h9DH4/+x/lLugxt0r758u0E6omDZa3aP/8XnV8v6lQlQvn78/XNTulSZf/xfPfvzxPh/ITx63+fPxboz8+P/2Ho5+eRfzbUycyXqzV/7TCzY+j3z/9kfvr1zN8/tfbyDiwmwvtJ+puECMdV4Y2MmrV9h0a33lJvTCJKbxrLXMbvo/x3ptN/2v5vTf/6+dv06zv6/JYlPh0/yJqxkYkKb9j+efTXcWi15VYakP1diUQbD8zlu0eliPvf1dL3z+/mSaz6OVqb8RWHZr+fWM3e99b5mVfmWf8+72Oo9m/IjfmJxRYPED/Ikvxi8Uek8jP4FsUDI8MwVC6m2isLBkVL0jJ1k9v+WtlZ9HbqLBo8GHg3WPOwJ/MRDil5R1N9RQc8CdrEg4mBdxLDgGHAMLAwsHi4MLDrOySDNc4aZ41vDD3mOCw6GGBevvy+++M1TMPY5OX9KeOQmsYwRuRSB4P3DY9Km4zLUXkIsRWyXnC/YKMIi4V3yju8LhMjeFyMOXhboNaCp2UXDG1+4GJxvg/fh+/L9+U7WBCL4mwMh4Y741AvwghCO8lUYXA0qpnBS3avykNlIdmr8+ZqTCTHdWFks5gNq29yMnJ9OSIEFei0l/6WN+AVklXyo9rGLtQbI3KDd5rwTvFJL4Djf+N/jDcC3zb/u+Z2Goaw3K7nFka2hcJpmfphHApr594nCEAXSHfH447BPp36XqCCd3javafcDxOIyYNJjwvUTh7F8yAboy2gA9zHzIOjD6AygMjAq7EYG+lxxhkJbPGDNH/+OKJUzY/IBU+E7ImsLLrBnmexk2VFFn84LFluo9DgnKwpK5hQdtd24IzIVD4Y7VnZWakxJdC6eX4gLjbVmFDrBr+RJ1Uwu+Q5VgLMN084ZOLuXAtg8z+L5tU8AaMBXgN4xjGNjUx6NrVsk98g3gi4eaRs7GIsWKXkxbEWni0gsTjSomwWEFhkaBGLhZqseHnmD0Ld0MWGk7ZQtJu620ze+5UP3wR+k0EvQLCu7EDBh2cH3Q62fGn2V2YA1zF63l9Fsk9/pbbyIS6HiQfIH2fC4TfxuMDhgr5L9i7Huhr52qYcJV9CcO+lLPEoOH8A84AaAlQHsYrdUOPIcV95E6VKBjqMK5xfcdk2bvP86FtYKOTE4LsHfHtKmV7KIlpupdzJ4bRQV6X2Uar0QumUulqpzriQ+SP0ykDXCuIIATAWmPYBEQxKU0qn8Ho3RHqVPnfp60AOlz0hh1LLaHRCQwqyAVnsVMY+hVO9ait0CEVYLOJFZhTZFUd5Fqso1KC9FJVBr2FF1y1gq2homQVDFHqZvJxzlbkCYuc3Cz+Uw5FMdjFOahvonkNj0suqqyxCs1Sho1uARiqLgOJ42W2XzTE3Bjee7LPKYyAgUHzwrbs48XH34gT4QFqHKj76KMwSHUsrB2O3SLl4d4nJtV4ugLrXSpCNaLeE8JvnsaPEXfVDpcSewqvAPIE6SAOyI1UQ4OTQbL+Ipt/Kqlqr1jpGrZOfK2o9B81ZFd6qcFVt1mvzmmqLx5ZRez90Eo7G7drPetVVB5OHMJD64YxAyetTc8bU17xVuZP84pF2q6pUGQb0OOp26mxB8wdsFo6cXu2JLUYJPKJ7KmxC8eAgbcxio0X6oeOARGrdTaBlq5uJIKI+avNm1eVWx6AfhTO9HuJyVOph43PBJaC53VPFMzhcKzVTOSBcvmpYqcFRImCuNmAvim9RvWdTB0C5kz5CVDbfURu+pValtWob3u+Nma1Bzk2jtT1bI2UdX+mRWrfb+pl0Mq0N+HlM+jOvbcShODQ1UYK/bpNriEVv+kTDvOnRNktvNCBtTm/T52tWPkkyNrLNwQO6w8zSnhpHRVmiceK2BViu1fadZFQbbV9zjuS3tVNro1oaOG0wTLso0mXTiyLBJIn8lBZMoFlqcSvK2KjZ/ijykQ+hBYVCRS8HpRd/UCpcr3sQUCUe7KSHrhaJ6shhpx3tc3Uq/JEGUkZDDSmPc+nSa389oazdJZA2oqS6gR0Sh2BNJLtTyH1Cj0blmBDTZZ1OhrxoX3o6jvQN/Dfx3hjeeE39dZLafa8OpDqzUj9GMo73SxNw5Xag8KWVtMrEssd5Qg9hKxex/ageqkAKoYNBYQ5AMCqXGlCnA1ob5BFhXYOAjd6xSmPZz6bK5hjKQZ1qgVcFaZVlgy55EIyhVBIqnsYEglPPmL6HwTImBuEheVnHYtlajBhjE7VtjIvNxoDE/Mg4eHt0pnHcBtQ0rvi4+wwoHwUvAwGg1cIJLqwIG844/MubBY3iWCWi1bjkoOCPswV0SUNb+ku6denXQA9bGUV+VYTflKBQ5YKsixoYZg6FLaizzOvyLjVitsTiIWVy9KBHUNnsvBffEfip4otrK+J+6DHONqFW5cqW66CBiAdHk4DTaccQevqWS24AfLGh9AgkmGpeOEIH2YgE9QdC+9fd0skSZEPnrsQmvXOpwOwSXD9pgnQ3BAah4Lo+mWx1qU3ahgtrcbEksTQ5XeF33dQRvKo+MeRPVbjfUEP6+tcLBV4mwA50MF3j0mV1LrtrvpZiolGz+IFEMkwHAUeHEjRNqhT9PBOsz34pdhaNtemOXnQrgeGW9c5kMbE4pxhkcKdB2mb4GndSlmkuXxOpn8Rw7vDpAmPw7EBdhzUnYt5Pcu6MhmwafTO9G+0a3QbSQvNZ1kyGfEDay9DyVywGl0A59FSToqNOxggbbp8yJL1GB2UE04iDze42N47VnvAum4UDgmnrAGq4fq8wZNCcOR5qB4ShQobu2V0XtBwOui2CFk9ob89MdAiKtAr0zjBZEDSFz0ApO1VFmVOAc43FXrQqBGCBGVB2F16tiZBM2uMFwTLFaGZ8LUQfRVmbMtvXkHRfTid4Or0IWn7RjovsP/zi0X53O0qSrmulTRuyy0GwOorvMH0j9utyQurUqOTS9piL/gy/1TbEBujmxhtKm/I+3Gbgo20shqX32gNLlx8PZ2W77dfw7ENrywmgcTgtUH6UNIKmklYyXzoKURqHlmCZQPWQBIikHS4DtP3QrY++ORlo6Fz9nRtHfw0J+GjH53ZHP9jLaFCmE4vksIVvbrFYcg7iKJbDZwiH+H2326YeHIDbzMmbtq05h6ENbXG4LR3Y/iA3iTgafkBE/Z5xiNYYRw4sjj3icKYgixdsCg0xeSddZ8Um9jS/3EJ8LtqvnA4zkHA/tDwnaA9icbNBLvPmcee64/Q3Axk7GyfbhbsuMnJ7OFUIzedzxSRd+OICACSRNmA7PRbYPyQUUl0X0oRcNvGGWi997z3mdAnzktcbKF84ffSYie57RKFfKBH0MoSkWEBJ0REQdAe2hnvPDZET8pJGozmZMwEdrQ4loAGzpFi08ls1yCeFMomgxaFGbt9xj8ORlG1E+hftkQTIS62KtQAABGBJREFUeNrtnb+rI1UUxz9HXrHIvoXJoiAIT7KFoCgu02jnyrUS5DV5pWCTYG2R/AEWk8JWSMBCm4UX2EI7M4WVWiQgWCewoIigSbHbiIvXIpPJjyduzLsneXn3fKZ4N8Mw33Pn+y73zB24RzzGZkhCnZR7PGDou/uOZnue2XcAh4I4+iS0+ZEeTvpS3XdEW+Pt2ODAMSD1eOh7PNQYkew7qu0OG+UbIAkdGn64OON7dMn2Hdd2KFkuNZmIl5Gk2h3YiZIjXzYcwLdxkhxij4SU8IHf5EuOAfiVD3QCv6D0Mx+qqXzMT3xTtNs0y7Pf851Cj77gFqD17MZHOAXLTwob4AXe40+FwC8qvaio9DJ/8XfRruCK1h2EZxV6dKto6Ty7XCfZScrmRDmt2okSdbKy3V+0qB5ij1Tmcj+lAcD8rxql0iNVpZza+rwtKVU/VuyR3rNTHH/D3bzGkHCfU2WNjM7yKCdhgFNTO+W+3rNTe0nzUyZ+qnX3NaWHPFbWaJEsll/EMaDnczW5xzzUe3ZHamFfM/yZ1DgXeE1GDDlbf2k7HMzyjfE9epLwwN/bdySXw1bf/hd+ypN9x3BZzPLoMMujwyyPDrM8Oszy6DDLo8Msjw6zPDrM8ugwy6PDLI8Oszw6zPLoMMujwyyPDrM8Oszy6DDLo8Msjw6zPDrM8ugwy6PDLI8Oszw6zPLoMMujwyyPDrM8Oszy6DDLo8Msjw6zPDrM8ugwy6PDLI8Oszw6DnJHKHl7Le4T7srqJU/8t/uO8qpykJbzGV+t/L5BldsrZ97nlX0HeVU5TMt/8a3/vkB/H/jDxeby6FAZ5ZJQx/GW9Mnp7mYn1+uCOBynPC8Jue9pKChYLo4OPVpkNKgzkJZO6IXacoWToaaSPpLQxNHmB94kpyk1GgoDJvjG0ularaEqo9nvgBr9pfaEWqEzWWyXvXyFnnbwexdbgONmW/7T1FALP5d3aK3UGhrToKM4NLrFyO6QK26XvQPE4fzKtvu+zVTqoXUCWy4p0/UH73PGihl0D0BqpNoVHma1jXBqtY1qtC+ca1ELLXMkYSsofcTvMi83Uylbj/hEPg2oUlk0/bCoY9ZamfUW2uG4yeccA1W+Fo3aRu/QK6K+y0kZ/xuBexK8gtLr/FFWGFrUGnqV24QMvLL2u3mhCmklqN4M7bpQz5Uxn/BS2b4RuCehKyiRcn4x0aEzS7F0Uigck1ktI+qaSZZ2bSPO52nuPH2b1XC54umbH5KuF4CVKk715alDt6hlpFKdsOybdm2jvCy6t6BJ8JQ0fMbe4Hy5wNRsng2usrh/xnS2/CpVXcvBd6nwLnd0/oF9l2Q1P5f0X1O6SxLccp/TYzBPOcTR11wgkSpNxpJJJhkDLZWl3k19rriaeEZdstmAkUQyzjk7gKWY+YzOiAmjxfykN5dvd8VVPcgYMOY3RmQ6tdJU1tj9kDO1kXDNedo3wstjX9Ki4zC/lx8/dXnieKP7RMk/vyGLwX5k4gkAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDQtMTJUMTc6NDY6NTUrMDA6MDC1uSTYAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTA0LTEyVDE3OjQ2OjU1KzAwOjAwxOScZAAAAC10RVh0aWNjOmNvcHlyaWdodABDb3B5cmlnaHQgQXJ0aWZleCBTb2Z0d2FyZSAyMDExCLrFtAAAADF0RVh0aWNjOmRlc2NyaXB0aW9uAEFydGlmZXggU29mdHdhcmUgc1JHQiBJQ0MgUHJvZmlsZRMMAYYAAAATdEVYdHBkZjpWZXJzaW9uAFBERi0xLjVTNlrBAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc1.add_gate(\"CSIGN\", index=[1], targets=[0], controls=[1])\n", "qc1.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example of basis transformation" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc3 = QubitCircuit(3)\n", "qc3.add_gate(\"CNOT\", 1, 0)\n", "qc3.add_gate(\"RX\", 0, None, pi/2, r\"\\pi/2\")\n", "qc3.add_gate(\"RY\", 1, None, pi/2, r\"\\pi/2\")\n", "qc3.add_gate(\"RZ\", 2, None, pi/2, r\"\\pi/2\")\n", "qc3.add_gate(\"ISWAP\", [1, 2])\n", "qc3.png" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(0.354-0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0\\\\(0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354+0.354j)\\\\0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j)\\\\(-0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\(0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0\\\\0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354+0.354j)\\\\0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\n", "Qobj data =\n", "[[ 0.35355339-0.35355339j 0. +0.j -0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339+0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j -0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j]\n", " [-0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j ]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]]" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U3 = gate_sequence_product(qc3.propagators())\n", "U3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The transformation can either be only in terms of 2-qubit gates:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc4 = qc3.resolve_gates(\"CNOT\")\n", "qc4.png" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(0.354-0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0\\\\(0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354+0.354j)\\\\0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j)\\\\(-0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\(0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0\\\\0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354+0.354j)\\\\0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\n", "Qobj data =\n", "[[ 0.35355339-0.35355339j 0. +0.j -0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339+0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j -0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j]\n", " [-0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j ]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]]" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U4 = gate_sequence_product(qc4.propagators())\n", "U4" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc5 = qc3.resolve_gates(\"ISWAP\")\n", "qc5.png" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(0.354-0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0\\\\(0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354+0.354j)\\\\0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j)\\\\(-0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\(0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0\\\\0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354+0.354j)\\\\0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\n", "Qobj data =\n", "[[ 0.35355339-0.35355339j 0. +0.j -0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339+0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j -0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j]\n", " [-0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j ]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]]" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U5 = gate_sequence_product(qc5.propagators())\n", "U5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Or the transformation can be in terms of any 2 single qubit rotation gates along with the 2-qubit gate." ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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qlR06p2liAAAAAAAQMsssqG9sMQLFfon+8SGFvukejCvZjqIFuWC+XUIqReabCoiWKJE41PvN0UEAAAAAADalvmtIkWSX+tW0lCfzm9SyJVZZLGmypXMbmiYiyTlim0xoaJsZCMbKtV3fXrq3WZiRQAAAAAA2pZbpGR27cFsrQV7oaE+kiQvbKpMpeeSFcpsquoaBcs0tVTSRNnd1yRNfHLo0x+LKxEAAAAAAGiZl8qUS5bOrym40eKag3y+dGOubOlmhsTHPvGJxltmRTg5iggAAAAAALRvoLFl0rxcEGlxM8Ji6sRcydLPVMUEzyULUkbgdgYAAAAAANpXVuWByIYqJGW6uXvICys8lySfWjG7ccFSDRRb4RPJRio1tEQTpZIyU1s3NFBEAAAAAACgdX5tsU8tUuGlpZI/v/fwR/PPrmc3M/hkMQuC38wLDpNF6aENFBEAAAAAAAjAp3ezHaxfR7BYZ2E+H0InMCcCAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACohSICAAAAAACo5VHoHcCp2W/1OvQ+VJ7ox/7TxnL9SP++M8mu/DvNbcz+QU/0desZ/tyftv6cAHrIfq/PQu9D5an/eYO5fqR/qzehI1Ua7bHtF/q23raeodmR81f6pvUE0jv+VwGetcP68FoCUAdFhP577dehd2HGRvqywc290s/8JnSmKtnLRjf3Sh/75MwzALhcn3Vm1Gm6b/55T0edzzU5+1HnmxCvOkbONX14LQGogdsZAAAAAABALRQRAAAAAABALZ0pIlh8yKMWWRR6j/tsd2vU+4kuttHhufqR7DwyALhcfR11+pusD6NOHzL0Ae0AnKMTz4lgqdL5P3Ivqq+s3S9lQ413bmig+X2IFvvUSxva2MsT732Yqfuu9BP/+ESJIg2rT0tNvNjyXftaY5OqhSxSMmvddtrokGRH5epHssAZANQVZFLCx/rKf3CyRKfqnc+gb+5vsq6POn3I0Ae0A9BfJy4i+MQKvdVjLyUb2kgf+WRWRlj+LstU7OoMLNJyzfETPZM01lCnnuAoyNR9NtKrU23bS92Y65kXFmloA3++4fn3tMbGfa5ayAaSSnup3Mdqp41qJzsmVz+Shc8AoLYAkxLeK/c37jS9c/h+jfGUDNiHdgD66+S3M3g5+0/yW0UabPymwZ6ZXLNFldIG8+2WlrT3i+oLS1R6IXmpWw02/gb3tcYmmcaSxYp97LnGGkltt9HeZMfk6keyDmQAcLlO0jt3oF9jPCUD9qEdgL5qd06EUhvuYrJExZ6fS+4ugbJYU91VLCfKWt37flhcBZLNOvb7arTGJrMWijS0SPJckc3Oa7XZRjuTHZmrH8m6kAHA5TpF79yFfo3xlAzYh3YAeurEtzMss0SJZhcyRZap1EDPvZSU3nUhNlKqSFNFKlXc3UhgsRYXOiWeW3V/lRc2Cv3rO0NVh22pMm26aDbd3aFvaqO7FvJCJkmWqazuW2uzjXYnS/cNVH1I1uEMAC7Xg3rnDvdrjKdkwD60A9BTrRQRbCSplPTdu/uePJdsqEQTSdGsi7BMud/YwMc29NulH5/fzGDZ/bkUxOysh0s1tZGkeMt9t5F23Zu2uY2ylUlxlqbBbLGNdifbmasfyTqdAcDlekDv3Ol+7eLHUzJgL9oB6KlH9kJHLHu31ZW+0PrdTaurMdwfVmelhFlhIdHUYk3vPR77VJrdyrAy+cr68PyBru1tY2ke66sGfzd1/WWjGaSrxaeWSFV196UNfNN8uMld+9lg5ZUx8cmWNqpaqPq5UTXtzcxyGzWb7F7r7E2WLF6XJ0j21F42lku60q+PSfbADN9rNEMznuhN6F04iXf1rV4luwqwik1/M1w9fBMHe18/bPT+4nsZ6vdhJ+ibrxrt1x7rfx+Q67TJmu2x7x27tTbqNDtyPl3+x5lmOF53RpU+vJaa+k10ZVRpwhP9UV+H3oneZHj68E0c86zN/pX49aNN8wkf76iVBZYv9xv4c0uXO4al+6VSxZZJSmxUlSXWq5C/WV8+8gFpTjpj9VafN5lBuveSWdybNl/xYrZojqXV/Ljz1vBtS+6stNH9O9osU+G5xVLV8S+3UaPJVlpnU7JEpU8li7xc3scTJGt0PnUb6Ztdyba12AMz/K/254QHsCrIoXDDKxGtZFjvw5b75tOOOq8b7Zv3jzrtjaeN9tgrx24HjKcPytDsyLnvVXeakTPAaird1ofXEnBagUpejf+VtDux4h4WVbX65WE6Uz77xMd+4zd+o8hvqreirBF7qEWHnKiQLLFImQr7VJqv5bvThjaat5BkqaaeS0rmteO22mg9WSrphWSDepPvnE2y729vsc5mAHC5VvuwH6mfffNFjqdnk4GRM4w+vJYAbHTiIoKlNpKUWbr4ihIlltpAcfX1fN5hDKqK5b3LKpdvYbDYRpKNLJUsPnK+/QtliY2UKq7aoqimt5SPFWvik+o8VL7n6osNbXTXQhbrE31qbq7R/CsttNGWZIVmzz67WG5frvNJ9ocdLdbBDAAu18Y+7Ff3+uY+jTqXOJ6eSwZGztb14bUEYAdv9EMjpUf81CfV/6Pq//H8kUzZ1p8aKmnm+bc+Q6pRs7+f0/0Od2zv5cavRkoV++wCs6Ey191v8641tmxtpY12tdBqG7XTOnfJ7p7vLv/uXA9M9rLePj/sFTBLtqvFupOBDz74OO4jxF9i02Pdtgzzcede33zSUafZvnnPqNPqeNriqLP4jvXxtEMZdr7qGDnb+ujDa4kPPk77Eeb12vyzduN2hnxWp5yv3bCYRiXxfOtPxU4V8mhe+sSnkgYaKlJs6Xwqm9zSXT9X/f/uu3e1UJA2mieTpkpsUC/XGSXb0WLdzwDgcs175/t9c39GnQscT88mAyNnYH14LQFY1soSj/t4bkMrVlZekGQ7lm+xkRqcBupy3VtMc/aVLa2xie1cYCd8G/mtjRYz/9bP1eVk9VusuxkAXLblvrk/ow7jaXczMHJ2yXm/loAHe2KjEM/a9AY7UUSQ/Pb+HKyVSFtmNLZI47pvB3GoLa2xydYWCt9GFim2QTURz6G5Op1s3aF/P13MAOAyrPfNfRl1NulHstrjaYczrOtDhvPTz9cScJAf68sAz/o/m95gR4oI0qbLkpZXh115pGRW1lOqe5HY9hYK30Zertep61/81uVkG/fpoL+fbmYAcAk29c39GHW27FUPktUdT7ucYeM+9SDDuenrawmoz38aeg+a0Y05EQAAAAAAQOdRRAAAAAAAALV05nYGnMxTexl6FypX+mIxldaD/YU+DDIxySbNTlbyga7tbesZvtf6MwLop6vO9M1XjW7tqX5oycM304hme+z39De71y86iWZHzqsgxzrNvsL6oA+vJQA1UETov/e7Mv2MRY3uyS/1rl6FzlT5otGt/XWIFts9EzIA1PYf9VnoXaj83yY35n9rf9+d8bTRzf03/Ym+aT1EsyPnv2Tk7IQ+vJYA1EARofe6csjT9J747/Rx6ERzzV1foVAt1p3XCYDz5n8beg/mGu2bu9RPNjye/jxICEbOHurDawlAHcyJAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAaqGIAAAAAAAAankUegfOlUXKFKvUWKnnNlAsSX6z+Eyy0fyzRKnfzn82VTrfUO5F6CwAgK5j1AEAAN1AEeFAluiFP5P0Qs+9rA7Zch/bSKk/k3xsQw39sSTpViPdSJIyZZofzvnECr3VYy8lG9pIH3kZOhcAoIsYdQAAQLdwO8OBvPBnkiWKqkOwu4O0XIlFkqRCkc3OC5Uq5gdqsSVLWyln/0l+q0iD0KkAAN3EqAMAALqFIsKxqoM3LzWRJC80VSZJilXMPrNMuSRZolx59ei6UlHoMACAjmPUAQAAnUAR4QAW2dBeWCJ5oUL/ZJ/Y0GKfVA/n1T2n0eLQrTojlHqhyebDOUuUaBw6GQCgexh1AABA91BEOETmt4pmZ3D8WreShvp0fsForswiizVVrmR2aWklkpQrtnR5YzaykQ2V6rs+DR0MANBBjDoAAKBzmFjxELlFSu7OAc3mvbYXGuojSfLCpspUei5Zocyms0tOLdPUUkkTZZosbW3ik8OeHgBwURh1AABA53AlwgG81N39pun8/M6NFmd/8vkiWrmy+WWliY994hONt96fCgDAGkYdAADQPRQRDjPQ2GYHZXcHbpEWl4UuprHKtZgVu5op23PJOKADANTHqAMAADqG2xkOU84P0yIbqpCUVWtyS/LCCs8lyadWaCJZqoFiK3wi2Uilhpb4jaVKJWUmLi0FAOzAqAMAADrGvNnNjcLec9ns81uq1G9Wvhb7VLJI8tJSrRyQzR6VJIvma3UHzQAAOB/20q9XvnL6UWfDWAcAALANVyIcaHa4NjtUW3+rv5jx+tiDOQAAFhh1AABAtzAnAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqIUiAgAAAAAAqOVR6B0A0D/2C31bb0PvhSTpsb7yHzSY7Ld6HTpS5Yn+zj9uMNnv9VnrGa70k+Yy2L/Rf9Cb1jM80Y/9p60/K4Desf+q9/V160975d8JnRzA+aGIAKB5n2vik9A7IUmWKm10g6/9OnSmKtlIrxrd4GftJ2s4w5f6ud8EyPBl288JoJfe6L+0P3Lay9CxAZwjbmcAAAAAAAC1UEQAAAAAAAC1UEQA0AkWN/EzFlkUOskpknUx1+5k59E2+1rnPNoBwKU6rAejDwPQFOZEAHBiFmlYfVpq4sXG7xlqfMSmB7qpniGZ3UnqpQ1t7GXfknUv195kZ9A2NVpnoJtwGQBcrkbGl8D9MID+oogA4MS81I25nnlhkYY28Oer32GZisMPaixSJEk2kFTaS+U+ljTWUC1Nr9dqsk7l2pfsHNpmf+vMUoTLAOByPXx8Cd8PA+gviggATs4SlV5IXtqt3tp47ZzK4KiVATKNJYsV+41k0guNJS+ttGTbmefzTdaxXPuSnUPb7G+dTOOwGQBcrgePLx3ohwH0FXMiADi9VHfLVmWzg6Jllui4w5nZYVCkoUWS54pstpzjRFkvk3UmV41knW+bWq2TeBE4A4DL9dDxpQv9MICe4koEAKdXHexYqkzrZ07S3YdCNlKqSFNFKlV4dRmmxSolyQuZJFmmsrrns7BRH5N1KNdSsk0ZzqJt9mS4SxE4A4DLVXt86XA/DKCnKCIAOL1UUxtJijdefBlp112dmXK/sYGPbei3Sw9kKxNKDZbu8mxv9ul2k3Ul1zzZlgzn0Db7MqymCJMBwOWqOb50uh8G0FOP7IWOWH5sqyt9Mb/4KoQPdG1vG9vaY30VIMNfNpqhGe/qW3oTeidO4om+1D+H3onGdKed7vUElkjVmZGXNvD1uaSTpe8drPRIE88lSzS1WNN7j8S+9G8bVVNGzSzeur+vH1rSaLIl9ZNtyHVMsuWSxHu6bbSnWEq2N9c82ZYM9dqm6d7uXo/94Az3UrSWYeUV1pKm/0qa8K7+VF0bCZvxnt4w6nRKdzIcOXI+sB++spehg0vqUjs040qvQ+9Cg57oj/o69E6QQY+lroyMfv1o04zVx7ORXgVN9BtNvLEihqVKA2T4vMkMQAgrPcHivs7o7vyHJSp9Klnk5fIl/755uaqBP7d0+bDn/t2glqnw3GKpOmhanGV5pZ95g/NQrxxsrSWbLaRlaTVn9nwffdsyXIclWz579IX+c5M9xb1k+1pM927TWMlQu20a7u1WeuxNGba0zr52aC/D2iusHQ3/lQA4xr6Rc0cP9pB++PVR0/8CuHBMrAjg1BYHM4kKyRJLJb2QbFBneieLqrP4y28RM+Xzx1NNPZeUzM+7tLUG9mqy7ytTYZ9K8/W9m00WKteOFtuQoZttk1i0rXV2t0PADAAu1wHjS2f7YQC9RREBwAlZYiOliqs5oQtFlqlUoViF7i7HzPdc8zOozsfcu+D6bnVsi/WJPjU312j+lRYWr9qY7A8+VqyJT6rzuo0mC5hrtcWWk23I0Mm2KaWtrbOjHUJlAHC5Dh5fOtgPA+g3JlYEcEJeqFiazOlaiaY+lWz2ZjT2qeSF7T5vP/ZS8okt7lDPlm4UmOrxyvcvnYFpN5lKi2YzZs9W4W44WbBcqy12L9lKhq62jU8t2to6O9ohVAYAl+vg8aWD/TCAfqOIAKA1Xs7v8ZwqWZoEKrd0+33ld+dTliaJSnbewR1762dZZslsqEhSbIult5pMFiyXpNUWmydby9DRtpE02NY63W8HAJdr//jS/X4YQN80XUR4T39jISYjvPOhft3g1v5CHwZYS/dD/WPrzwm0zm9ttJhb2oZWeM27NG3n4lQ2UrAp4u4tENhwspC57tItWmxbsu62zSGtE7QdrgKMOu+1/owADtRMDxa6HwbQF00XEf6TIn0TMM8/6n80uLVfSvo/ATL8svXnBFplkWIbVFM9SZL89v5c0jtF2rbWgSyaXdbZHc0kC51rvcW2JDurttnaOiHb4ScB1jh6h2nWgHN0aA/WzX4YwDlquIjgTb6FD85/p9+F3gegj7xcPxNS//LK5bWvN2y5c4dHTSQLnWtTi21Kdm5ts7l1QraDfxz6NwLgfBzWg3W1HwZwflidAQAAAAAA1EIRAQAAAAAA1MLqDACa92d6aqH3Yeap/qzR7YWY9m6zD/WFJg/fzNzjAJPivqd3GtwaU+ECOGdhJie/Ch0bwDn6/2f1hsjp7aRwAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTA0LTEyVDE3OjQ3OjAxKzAwOjAw5tRlkQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0wNC0xMlQxNzo0NzowMSswMDowMJeJ3S0AAAAtdEVYdGljYzpjb3B5cmlnaHQAQ29weXJpZ2h0IEFydGlmZXggU29mdHdhcmUgMjAxMQi6xbQAAAAxdEVYdGljYzpkZXNjcmlwdGlvbgBBcnRpZmV4IFNvZnR3YXJlIHNSR0IgSUNDIFByb2ZpbGUTDAGGAAAAE3RFWHRwZGY6VmVyc2lvbgBQREYtMS41UzZawQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc6 = qc3.resolve_gates([\"ISWAP\", \"RX\", \"RY\"])\n", "qc6.png" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(0.354-0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0\\\\(0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354+0.354j)\\\\0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j)\\\\(-0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\(0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0\\\\0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354+0.354j)\\\\0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\n", "Qobj data =\n", "[[ 0.35355339-0.35355339j 0. +0.j -0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339+0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j -0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j]\n", " [-0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j ]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]]" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U6 = gate_sequence_product(qc6.propagators())\n", "U6" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc7 = qc3.resolve_gates([\"CNOT\", \"RZ\", \"RX\"])\n", "qc7.png" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(0.354-0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0\\\\(0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354+0.354j)\\\\0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j)\\\\(-0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (-0.354+0.354j) & 0.0 & (0.354-0.354j) & 0.0\\\\(0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j) & 0.0\\\\0.0 & (0.354+0.354j) & 0.0 & (-0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (-0.354+0.354j)\\\\0.0 & (0.354-0.354j) & 0.0 & (0.354-0.354j) & 0.0 & (0.354+0.354j) & 0.0 & (0.354+0.354j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = False\n", "Qobj data =\n", "[[ 0.35355339-0.35355339j 0. +0.j -0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339+0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j -0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339-0.35355339j]\n", " [-0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j ]\n", " [ 0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " 0.35355339+0.35355339j 0. +0.j ]\n", " [ 0. +0.j 0.35355339+0.35355339j 0. +0.j\n", " -0.35355339-0.35355339j 0. +0.j 0.35355339-0.35355339j\n", " 0. +0.j -0.35355339+0.35355339j]\n", " [ 0. +0.j 0.35355339-0.35355339j 0. +0.j\n", " 0.35355339-0.35355339j 0. +0.j 0.35355339+0.35355339j\n", " 0. +0.j 0.35355339+0.35355339j]]" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U7 = gate_sequence_product(qc7.propagators())\n", "U7" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Resolving non-adjacent interactions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Interactions between non-adjacent qubits can be resolved by QubitCircuit to a series of adjacent interactions, which is useful for systems such as spin chain models." ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFwAAABeCAQAAAAELrvYAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAGQAAABkAA+Wxd0AAAAHdElNRQflBAwRLwQ9ngzaAAAKeHpUWHRSYXcgcHJvZmlsZSB0eXBlIGljYwAAWIWdl22SZKkNRf+zCi+BTwktBwSK8P434ENWd0+33TNjOyuIzHoPhJCu7hXpn+7pH3zqUEn5fVbJPz7167ccudq1jtq115rHHDZWzX/2SVKkadPcy8gjd//TmX/xCXZ9Hv1w57R6/h9DH4/+x/lLugxt0r758u0E6omDZa3aP/8XnV8v6lQlQvn78/XNTulSZf/xfPfvzxPh/ITx63+fPxboz8+P/2Ho5+eRfzbUycyXqzV/7TCzY+j3z/9kfvr1zN8/tfbyDiwmwvtJ+puECMdV4Y2MmrV9h0a33lJvTCJKbxrLXMbvo/x3ptN/2v5vTf/6+dv06zv6/JYlPh0/yJqxkYkKb9j+efTXcWi15VYakP1diUQbD8zlu0eliPvf1dL3z+/mSaz6OVqb8RWHZr+fWM3e99b5mVfmWf8+72Oo9m/IjfmJxRYPED/Ikvxi8Uek8jP4FsUDI8MwVC6m2isLBkVL0jJ1k9v+WtlZ9HbqLBo8GHg3WPOwJ/MRDil5R1N9RQc8CdrEg4mBdxLDgGHAMLAwsHi4MLDrOySDNc4aZ41vDD3mOCw6GGBevvy+++M1TMPY5OX9KeOQmsYwRuRSB4P3DY9Km4zLUXkIsRWyXnC/YKMIi4V3yju8LhMjeFyMOXhboNaCp2UXDG1+4GJxvg/fh+/L9+U7WBCL4mwMh4Y741AvwghCO8lUYXA0qpnBS3avykNlIdmr8+ZqTCTHdWFks5gNq29yMnJ9OSIEFei0l/6WN+AVklXyo9rGLtQbI3KDd5rwTvFJL4Djf+N/jDcC3zb/u+Z2Goaw3K7nFka2hcJpmfphHApr594nCEAXSHfH447BPp36XqCCd3javafcDxOIyYNJjwvUTh7F8yAboy2gA9zHzIOjD6AygMjAq7EYG+lxxhkJbPGDNH/+OKJUzY/IBU+E7ImsLLrBnmexk2VFFn84LFluo9DgnKwpK5hQdtd24IzIVD4Y7VnZWakxJdC6eX4gLjbVmFDrBr+RJ1Uwu+Q5VgLMN084ZOLuXAtg8z+L5tU8AaMBXgN4xjGNjUx6NrVsk98g3gi4eaRs7GIsWKXkxbEWni0gsTjSomwWEFhkaBGLhZqseHnmD0Ld0MWGk7ZQtJu620ze+5UP3wR+k0EvQLCu7EDBh2cH3Q62fGn2V2YA1zF63l9Fsk9/pbbyIS6HiQfIH2fC4TfxuMDhgr5L9i7Huhr52qYcJV9CcO+lLPEoOH8A84AaAlQHsYrdUOPIcV95E6VKBjqMK5xfcdk2bvP86FtYKOTE4LsHfHtKmV7KIlpupdzJ4bRQV6X2Uar0QumUulqpzriQ+SP0ykDXCuIIATAWmPYBEQxKU0qn8Ho3RHqVPnfp60AOlz0hh1LLaHRCQwqyAVnsVMY+hVO9ait0CEVYLOJFZhTZFUd5Fqso1KC9FJVBr2FF1y1gq2homQVDFHqZvJxzlbkCYuc3Cz+Uw5FMdjFOahvonkNj0suqqyxCs1Sho1uARiqLgOJ42W2XzTE3Bjee7LPKYyAgUHzwrbs48XH34gT4QFqHKj76KMwSHUsrB2O3SLl4d4nJtV4ugLrXSpCNaLeE8JvnsaPEXfVDpcSewqvAPIE6SAOyI1UQ4OTQbL+Ipt/Kqlqr1jpGrZOfK2o9B81ZFd6qcFVt1mvzmmqLx5ZRez90Eo7G7drPetVVB5OHMJD64YxAyetTc8bU17xVuZP84pF2q6pUGQb0OOp26mxB8wdsFo6cXu2JLUYJPKJ7KmxC8eAgbcxio0X6oeOARGrdTaBlq5uJIKI+avNm1eVWx6AfhTO9HuJyVOph43PBJaC53VPFMzhcKzVTOSBcvmpYqcFRImCuNmAvim9RvWdTB0C5kz5CVDbfURu+pValtWob3u+Nma1Bzk2jtT1bI2UdX+mRWrfb+pl0Mq0N+HlM+jOvbcShODQ1UYK/bpNriEVv+kTDvOnRNktvNCBtTm/T52tWPkkyNrLNwQO6w8zSnhpHRVmiceK2BViu1fadZFQbbV9zjuS3tVNro1oaOG0wTLso0mXTiyLBJIn8lBZMoFlqcSvK2KjZ/ijykQ+hBYVCRS8HpRd/UCpcr3sQUCUe7KSHrhaJ6shhpx3tc3Uq/JEGUkZDDSmPc+nSa389oazdJZA2oqS6gR0Sh2BNJLtTyH1Cj0blmBDTZZ1OhrxoX3o6jvQN/Dfx3hjeeE39dZLafa8OpDqzUj9GMo73SxNw5Xag8KWVtMrEssd5Qg9hKxex/ageqkAKoYNBYQ5AMCqXGlCnA1ob5BFhXYOAjd6xSmPZz6bK5hjKQZ1qgVcFaZVlgy55EIyhVBIqnsYEglPPmL6HwTImBuEheVnHYtlajBhjE7VtjIvNxoDE/Mg4eHt0pnHcBtQ0rvi4+wwoHwUvAwGg1cIJLqwIG844/MubBY3iWCWi1bjkoOCPswV0SUNb+ku6denXQA9bGUV+VYTflKBQ5YKsixoYZg6FLaizzOvyLjVitsTiIWVy9KBHUNnsvBffEfip4otrK+J+6DHONqFW5cqW66CBiAdHk4DTaccQevqWS24AfLGh9AgkmGpeOEIH2YgE9QdC+9fd0skSZEPnrsQmvXOpwOwSXD9pgnQ3BAah4Lo+mWx1qU3ahgtrcbEksTQ5XeF33dQRvKo+MeRPVbjfUEP6+tcLBV4mwA50MF3j0mV1LrtrvpZiolGz+IFEMkwHAUeHEjRNqhT9PBOsz34pdhaNtemOXnQrgeGW9c5kMbE4pxhkcKdB2mb4GndSlmkuXxOpn8Rw7vDpAmPw7EBdhzUnYt5Pcu6MhmwafTO9G+0a3QbSQvNZ1kyGfEDay9DyVywGl0A59FSToqNOxggbbp8yJL1GB2UE04iDze42N47VnvAum4UDgmnrAGq4fq8wZNCcOR5qB4ShQobu2V0XtBwOui2CFk9ob89MdAiKtAr0zjBZEDSFz0ApO1VFmVOAc43FXrQqBGCBGVB2F16tiZBM2uMFwTLFaGZ8LUQfRVmbMtvXkHRfTid4Or0IWn7RjovsP/zi0X53O0qSrmulTRuyy0GwOorvMH0j9utyQurUqOTS9piL/gy/1TbEBujmxhtKm/I+3Gbgo20shqX32gNLlx8PZ2W77dfw7ENrywmgcTgtUH6UNIKmklYyXzoKURqHlmCZQPWQBIikHS4DtP3QrY++ORlo6Fz9nRtHfw0J+GjH53ZHP9jLaFCmE4vksIVvbrFYcg7iKJbDZwiH+H2326YeHIDbzMmbtq05h6ENbXG4LR3Y/iA3iTgafkBE/Z5xiNYYRw4sjj3icKYgixdsCg0xeSddZ8Um9jS/3EJ8LtqvnA4zkHA/tDwnaA9icbNBLvPmcee64/Q3Axk7GyfbhbsuMnJ7OFUIzedzxSRd+OICACSRNmA7PRbYPyQUUl0X0oRcNvGGWi997z3mdAnzktcbKF84ffSYie57RKFfKBH0MoSkWEBJ0REQdAe2hnvPDZET8pJGozmZMwEdrQ4loAGzpFi08ls1yCeFMomgxaFGbt9xj8ORlG1E+hftkQTIS62KtQAAAYdJREFUeNrt2jFSwkAYhuF3HUotgo02OoOFB4hHCJU1rWVqW2/gFbC01CNsjhCOkLR2WDgWVGsBBLD+f2aZ+d40W2UfIAvM7IaEfWFCTcUdSz55S73DFJw5sGdEeqa0PNATQ+0BJxlflHRMEgliIkFBS2U9S3KAt5SbUdy9FHu48aMSSvq0+PeZLmhCZf2kjEJJYXi/Z34G5HgYjXgJpuzUjKhM4TesGODD6J5LbN/zxn5pfgzjOIzm9svTfnF2x1mc9jesaCl28JP5OkxQ01FTELdj+zlc4AkmvNLxS8d8/WNkfwWP/yrrQkxTt5t7/Fc5ToILLnimCS644JkmuOCCZ5rgggueaYILLnimCS644JkmuOCCZ9rJwq0PIex3ZX9mYpv9IYQDuPHBg/0a7XMeO8EFFzzTBBdc8EwTXHDBM01wwQXPNMEFFzzTBBdc8EwTXHDBM03ww8IsLKlCF0oveMBjg/acdy4A+OLJg+21QXu7YcM1j6wc5D4btKFguRl+p7HDBMAfWxecZ7mhoQ4AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDQtMTJUMTc6NDc6MDQrMDA6MDC07Eo2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTA0LTEyVDE3OjQ3OjA0KzAwOjAwxbHyigAAAC10RVh0aWNjOmNvcHlyaWdodABDb3B5cmlnaHQgQXJ0aWZleCBTb2Z0d2FyZSAyMDExCLrFtAAAADF0RVh0aWNjOmRlc2NyaXB0aW9uAEFydGlmZXggU29mdHdhcmUgc1JHQiBJQ0MgUHJvZmlsZRMMAYYAAAATdEVYdHBkZjpWZXJzaW9uAFBERi0xLjVTNlrBAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc8 = QubitCircuit(3)\n", "qc8.add_gate(\"CNOT\", 2, 0)\n", "qc8.png" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]]" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U8 = gate_sequence_product(qc8.propagators())\n", "U8" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Gate(SWAP, targets=[0, 1], controls=None, classical controls=None, control_value=None),\n", " Gate(CNOT, targets=[2], controls=[1], classical controls=None, control_value=None),\n", " Gate(SWAP, targets=[0, 1], controls=None, classical controls=None, control_value=None)]" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc9 = qc8.adjacent_gates()\n", "qc9.gates" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]]" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U9 = gate_sequence_product(qc9.propagators())\n", "U9" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc10 = qc9.resolve_gates(\"CNOT\")\n", "qc10.png" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 1.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2, 2], [2, 2, 2]], shape = (8, 8), type = oper, isherm = True\n", "Qobj data =\n", "[[1. 0. 0. 0. 0. 0. 0. 0.]\n", " [0. 1. 0. 0. 0. 0. 0. 0.]\n", " [0. 0. 1. 0. 0. 0. 0. 0.]\n", " [0. 0. 0. 1. 0. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 1. 0. 0.]\n", " [0. 0. 0. 0. 1. 0. 0. 0.]\n", " [0. 0. 0. 0. 0. 0. 0. 1.]\n", " [0. 0. 0. 0. 0. 0. 1. 0.]]" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "U10 = gate_sequence_product(qc10.propagators())\n", "U10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding gate in the middle of a circuit\n", "From QuTiP 4.4 one can add a gate at an arbitrary position of a circuit. All one needs to do is to specify the parameter index. With this, we can also add the same gate at multiple positions at the same time." ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Gate(RY, targets=[1], controls=None, classical controls=None, control_value=None),\n", " Gate(RX, targets=[1], controls=None, classical controls=None, control_value=None),\n", " Gate(RX, targets=[1], controls=None, classical controls=None, control_value=None)]" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qc = QubitCircuit(1)\n", "qc.add_gate(\"RX\", targets=1, arg_value=np.pi/2)\n", "qc.add_gate(\"RX\", targets=1, arg_value=np.pi/2)\n", "qc.add_gate(\"RY\", targets=1, arg_value=np.pi/2, index=[0])\n", "qc.gates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## User defined gates\n", "From QuTiP 4.4 on, user defined gates can be defined by a python function that takes at most one parameter and return a `Qobj`, the dimension of the `Qobj` has to match the qubit system." ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "def user_gate1(arg_value):\n", " # controlled rotation X\n", " mat = np.zeros((4, 4), dtype=np.complex)\n", " mat[0, 0] = mat[1, 1] = 1.\n", " mat[2:4, 2:4] = rx(arg_value)\n", " return Qobj(mat, dims=[[2, 2], [2, 2]])\n", "\n", "def user_gate2():\n", " # S gate\n", " mat = np.array([[1., 0],\n", " [0., 1.j]])\n", " return Qobj(mat, dims=[[2], [2]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To let the `QubitCircuit` process those gates, we need to modify its attribute `QubitCircuit.user_gates`, which is a python dictionary in the form `{name: gate_function}`." ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "qc = QubitCircuit(2)\n", "qc.user_gates = {\"CTRLRX\": user_gate1, \n", " \"S\" : user_gate2}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When calling the `add_gate` method, the target qubits and the argument need to be given." ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ ":3: DeprecationWarning: `np.complex` is a deprecated alias for the builtin `complex`. To silence this warning, use `complex` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.complex128` here.\n", "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n", " mat = np.zeros((4, 4), dtype=np.complex)\n" ] } ], "source": [ "# qubit 0 controls qubit 1\n", "qc.add_gate(\"CTRLRX\", targets=[0,1], arg_value=pi/2)\n", "# qubit 1 controls qubit 0\n", "qc.add_gate(\"CTRLRX\", targets=[1,0], arg_value=pi/2)\n", "# a gate can also be added using the Gate class\n", "g_T = Gate(\"S\", targets=[1])\n", "qc.add_gate(\"S\", targets=[1])\n", "props = qc.propagators()" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.707 & -0.707j\\\\0.0 & 0.0 & -0.707j & 0.707\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1. +0.j 0. +0.j 0. +0.j\n", " 0. +0.j ]\n", " [0. +0.j 1. +0.j 0. +0.j\n", " 0. +0.j ]\n", " [0. +0.j 0. +0.j 0.70710678+0.j\n", " 0. -0.70710678j]\n", " [0. +0.j 0. +0.j 0. -0.70710678j\n", " 0.70710678+0.j ]]" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "props[0] # qubit 0 controls qubit 1" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.707 & 0.0 & -0.707j\\\\0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & -0.707j & 0.0 & 0.707\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1. +0.j 0. +0.j 0. +0.j\n", " 0. +0.j ]\n", " [0. +0.j 0.70710678+0.j 0. +0.j\n", " 0. -0.70710678j]\n", " [0. +0.j 0. +0.j 1. +0.j\n", " 0. +0.j ]\n", " [0. +0.j 0. -0.70710678j 0. +0.j\n", " 0.70710678+0.j ]]" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "props[1] # qubit 1 controls qubit 0" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0j & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0j\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2, 2], [2, 2]], shape = (4, 4), type = oper, isherm = False\n", "Qobj data =\n", "[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+1.j 0.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 1.+0.j 0.+0.j]\n", " [0.+0.j 0.+0.j 0.+0.j 0.+1.j]]" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "props[2] # S gate acts on qubit 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Software versions" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
SoftwareVersion
QuTiP4.6.0+c003ff5
Numpy1.20.1
SciPy1.5.3
matplotlib3.3.0
Cython0.29.21
Number of CPUs12
BLAS InfoGeneric
IPython7.16.1
Python3.8.6 | packaged by conda-forge | (default, Oct 7 2020, 18:22:52) [MSC v.1916 64 bit (AMD64)]
OSnt [win32]
Mon Apr 12 19:47:05 2021 W. Europe Daylight Time
" ], "text/plain": [ "" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from qutip.ipynbtools import version_table\n", "version_table()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.4" } }, "nbformat": 4, "nbformat_minor": 1 }