##// END OF EJS Templates
Fix menubar action after @Carreau's suggestion.
Fix menubar action after @Carreau's suggestion.

File last commit:

r4637:d919e2ec
r5081:78280fce
Show More
quantum_computing.ipynb
424 lines | 76.1 KiB | text/plain | TextLexer
/ docs / examples / notebooks / quantum_computing.ipynb
Brian E. Granger
Converting notebooks to JSON format.
r4634 {
"nbformat": 2,
Brian E. Granger
Implemented metadata for notebook format.
r4637 "metadata": {
"name": "quantum_computing"
},
Brian E. Granger
Converting notebooks to JSON format.
r4634 "worksheets": [
{
"cells": [
{
"source": "<h1>Symbolic Quantum Computing</h1>",
"cell_type": "markdown"
},
{
"cell_type": "code",
"language": "python",
"outputs": [],
"collapsed": true,
"prompt_number": 1,
"input": "%load_ext sympyprinting"
},
{
"cell_type": "code",
"language": "python",
"outputs": [],
"collapsed": true,
"prompt_number": 2,
"input": "from sympy import sqrt, symbols, Rational\nfrom sympy import expand, Eq, Symbol, simplify, exp, sin\nfrom sympy.physics.quantum import *\nfrom sympy.physics.quantum.qubit import *\nfrom sympy.physics.quantum.gate import *\nfrom sympy.physics.quantum.grover import *\nfrom sympy.physics.quantum.qft import QFT, IQFT, Fourier\nfrom sympy.physics.quantum.circuitplot import circuit_plot"
},
{
"source": "<h2>Qubits</h2>",
"cell_type": "markdown"
},
{
"source": "The state of a set of qubits (Two state systems) is the quantum state that is of interest in Quantum Computing.",
"cell_type": "markdown"
},
{
"cell_type": "code",
"language": "python",
"outputs": [],
"collapsed": true,
"prompt_number": 3,
"input": "alpha, beta = symbols('alpha beta',real=True)"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$\\alpha {\\left|00\\right\\rangle } + \\beta {\\left|11\\right\\rangle }$$",
"prompt_number": 4,
"png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAAXCAYAAAAIqmGLAAAABHNCSVQICAgIfAhkiAAAA7JJREFU\naIHt2FuIVVUcx/FPTiWkDaFpGkRlRTeawgqjrMaY6IJ0oSCNpKCHogsF2bwEQVFQWnQxsCAwuiHE\nFF2xly4vQTesMSpCoqay8aHCSrtIYw//vZk9+6wzc/aZ45mS84XD2ue/f+vy32v9140OHZqkH3tN\ndSPaTF2fu5os8AgswRelsu7ENTgFF2AHvkvU2YjuOGxusn2TZQWuQy9uxjaMqPU5Z28M4Gd8PU65\nE+la6vMxWFay3YO3Ma1Q4S84ahK6djMdq7CoYFuInThTrc9dYqANYBfOr1Nuo7qkz9NSxiboxk14\nWow4+Bxf4YkmdERkHdJEW2bh0Cbywe1Yh/cLtl9FBPQk9OtxtYi08WhU16zPScqRtFKMkINLurvE\nKOyuqJM99zfRtqVZPVXpwyUJ+/X4E2eojaScZcaPkEZ1SZ9bFUkni3VlS8m+WYzCxRV1xAjeL7O3\ngwvxSsk2W3y0lfipDW1I+pzqpAW4A4/jRaw1doSndiDz8HvCvj1L51fU5bwsPbpbzRx8K6bgXjE9\nbcAmPIXH2tCGnBqfy53Ug3ewUYT55aJTni9oH04UPM/ohy6S2w6oqMvZKBbu3c0SvFVoy3YMYwg3\nGDtIdzc1PhfD6ki8KSLnjcw2glfxmtid/CAd9n9hn4Q9t41U1OWchE8S+lZzLF7Inj/MfnC2GLQX\n4aM2tIOEz8VIujtLHyxlGszSRbgWTyYK3lSnwhlZ+mNFXc6leKlOnlazK2H7JkvntqkNJHzOI2ka\nzsXraqej/JB5mmj0FrXhPygW3jIzs3S4og72xx9i15diBW5L2LvFeeeqxLv1uK9kO6hUb5Gjs/Tj\nOu9bTdLnvJOOx4H4bJwCThCRlGJQnE9mGNvJp2YVfllRB1eKtbAez2S/MkvFEeGBcfIW6cX3dd4t\nx1Z8oPmzVxWSPufT3ZAI962JjDPFWrFBnBdSfJql5f1/H54zOlIb1RGHuqE69bWSxaJjyxyGK3Cj\nGN3tIOlz3knbxJXFeaX3fVgtTuBzM31qSzyMR3Ar9s1sZ+FwY6eXRnWn472JfWoJv+EfnFiwzRZn\npnvFd5mIWVk60do1nq4hn6djjZi3V4sNxGXZux68i/uz5wW4uJS/S9w9DeAhsUM8J1FPI7p+zR+0\nq9w4zMct4gC5SlxXrcWzYmdXJOXzOrET2ylmor+z/2ua0E3G5/8dVTppufacwybFnthzO6RvNVIs\nNLpOdviP8uhUN6AR9sRIapQ5ai96O3To0KHD1PEvn5jpFWKUSuUAAAAASUVORK5CYII=\n",
"text": "\u03b1\u22c5\u275800\u27e9 + \u03b2\u22c5\u275811\u27e9"
}
],
"collapsed": false,
"prompt_number": 4,
"input": "psi = alpha*Qubit('00') + beta*Qubit('11'); psi\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$\\alpha {\\left\\langle 00\\right|} + \\beta {\\left\\langle 11\\right|}$$",
"prompt_number": 5,
"png": "iVBORw0KGgoAAAANSUhEUgAAAGgAAAAXCAYAAADnaAq1AAAABHNCSVQICAgIfAhkiAAAA6NJREFU\naIHt2FuMXVMcx/GPKpOUiBoz1SJENG4xoiHtQ0VLEbQiIWFEE0EQJCKqjadOJOJSEoroQ0WCTDzg\nwS28uD64RYR6E0LRS0KkdFqiZjz810737NnnzN4zc86M5nyTnbX3Wr+91vrvtf//daHDAc/a6e7A\nNNA2m2dP8v2z8W1J/nLcmcqG8QuenqBuLR6ZZD/rshpLMIRTsQlvpbJGNmdchxW4cZw2mummzOb1\nxg7y6diDhel5Nj7GPRPUDUxFRyvSJT7M4lzeIvyDnvRcZjMcj7uwDy82aaOKbiC7mVWh0404ArtT\nQ3nuEx86+8v2YRAP4YQJ6Opy1CTevxfP4dNc3h9iQPo0tvkOPIhDcVCT+qvqpoRbsaCQd5z424ox\neiFGcEtNHfU9aCXW1HyHCDdXluTfhr/QrdzmIuN5UBXdQHYzGQ9agG2FvLPE31aM0d+ldFlNXTu5\nDK8V8rrFT7QGvym3uaWUxdKT0C9iZS92Yp1wdcI1l+KjknePSenuQv4w9mJ+TV276MGPqf1lwmuO\nFGFtE57CecptbilFD+rD+/hSdPJqMSCDOe3juBDvltSXffihkrIhYXQdXbtYbr89Q+naga24Xcw9\njWxuKfkBOhnvYLP9S8phvI7LcQ6OFa7+Hi4oqe/v3HtFDsnlV9W1i9PwTbr/HDfhBhE55uEKjW1u\nKfkBuj+ljxU0X6d0sej4ZnyA80vq29KkrcOwvaaunYyU5P2Q0l6NbW4p2Rw0CxfhTWPDzk8pXSI6\nnE2S24ydNLPBnFuooyu1taOmrhmrjd0zEeGoC9eXlL0klvF55jVp75SUfpHSMptbSjZAZ+Bo+928\njDOFB2UM4majPW47fhULjDznpnRLTV0zXkhXkZVi9/9ohTqIRcHPDcr6xSLps/RcZnNLyULcVuHi\nO0s0h4s54W2xH8jYlcoOLui/wqWFvBX4Hc9OQNdqlopBLXIirhGby70pr5HNLSMboF14BZcUyldg\ng9hZ9yZ9fjP3BlYV3lmPi8XEC3NwLTYavayuqms1f+JfsTfL6BZ7ogfEd8lTZnPGXLHq7dH8pKCq\nbhRdeFLE6Q3Cja9KZX1iknw43edZV1LXKryKJ/CyGIyyv66K7u6qBiTqnCTMF+dic8QZ3PN4Ruzw\nmy0Iijb34xMRtkfS9T0+NHpPV1VX1+b/FXUGqF8chs5YJnPUM1PZo3qIXCTmwg4zlI3T3YHxOBA9\nqCo92nzw2aFDhw4dRvEfMafj+g/WzT4AAAAASUVORK5CYII=\n",
"text": "\u03b1\u22c5\u27e800\u2758 + \u03b2\u22c5\u27e811\u2758"
}
],
"collapsed": false,
"prompt_number": 5,
"input": "Dagger(psi)\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$\\alpha$$",
"prompt_number": 6,
"png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAYAAACZ3F9/AAAABHNCSVQICAgIfAhkiAAAAMlJREFU\nKJHV0TFOQlEQheHP12CCLRYQGkLrK4kL0JBIY+si6Ejs3AA0hMYNaGdnoRsw0LoETDSUkJhQAQXz\nErh5lZ3TzJ0z+WfOzfDHOCnRWrhDE+dY4B6rA2abQjnmuIk6wyNe4w3jFGrjBw+J3osNHTRK+p4D\nrCZ6M8B+QPXCSpGv8Y7fBPyKfIkKvg+bFzF1kNqI2OITp4VQbJxHc1ECnWGDN6xTcIkXdBPoCkPM\n7E+T4ZbjO1YwQi3+leEjBuaYYIqnsP1fYgcPriV+6UcWLAAAAABJRU5ErkJggg==\n",
"text": "\u03b1"
}
],
"collapsed": false,
"prompt_number": 6,
"input": "qapply(Dagger(Qubit('00'))*psi)\n"
},
{
"source": "SymPy supports many different types of measurements.",
"cell_type": "markdown"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "display_data",
"latex": "$${\\left|00\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAB8AAAATCAYAAABobNZCAAAABHNCSVQICAgIfAhkiAAAAWdJREFU\nSInt1btLHUEUx/EPEjU+ICbiozBqq2AaCWKa1IqVpdX9A2xsJLWFhWhhmzqlpQqCTSzsDekUCULw\nURgCXvMQrhazN4x7181umkDID4Yze853+A07Z3b5x/XmocKjaD6H9/iMLqyhiks8xlscp9YX4aro\nxUXeDisYTua7WEnVPqI9taYI142FPOPYfAK3GIlqbfiG5ShXlIMlNBUx38BJRn0HH6Lnohy8wnQa\nzNrNOA4z8kcYE15jGQ72kw381rwPVxn5ahL7S3J1nWAoz/yJcG5VjarnukpwsTYxk2d+g1oy0mpO\nYq0EF2sGW3nm1xrvcl0dSTwtwcUaxqc8c0KnPs3IdybxrCQHk0LT3dND5s8z8i+FTv5ekoMpbBcx\nP8AoBqNcD15g9Q+4Z/giuz9+qSKcSwv2sB7VFoVvfmuUK8rNC9eyQfGP5Ro/kzErfCLf4SsG8Bo/\nIr4o14nzLPP/+iu6A4BqY/+ZKkASAAAAAElFTkSuQmCC\n",
"text": "\u275800\u27e9"
},
{
"output_type": "display_data",
"latex": "$$\\frac{\\alpha^{2}}{\\alpha^{2} + \\beta^{2}}$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAAtCAYAAAAdtGNyAAAABHNCSVQICAgIfAhkiAAAAl1JREFU\naIHt2jtoFEEcx/GPSRAjBnwhCGrQQEQRHyAiGNBGELFI6SMIii+iTaIWgsiJYGOTQtBGEMEyVVp7\nBUFRRDEgSMogEhQlvqLFbOJqYu68vd0psl9YbmZvmN9/bnb/O/PbYw4yL6L2eTRhAa5FjKMwdmNH\nUr6DnUWKNxUplmItupPyG3RGiqNQWrA4KQ8qeNCxZvo7xrAVrzEcKY7CacVV8X74KJwWBt6EA5Fj\nyY3mVHk/PuId3qOryECKeE73J58TQtbuE2Z4GUYK0J9Gc/UmmRjAOG7gEU6iDeuEBPY5Z/0Zacmx\n704cRHvq3HPswhPh0o5CnplzLx7jS+rcJ2H1dT9H3arkOegRfE3VF2IjXghJbH6O2rOS5z09jA5s\nxvrkuIV9WIJn+JGjfknJXGRycfIzahQlJSWNIuuGI5a5F81UjGXuZdbNsgyNZe5FNRVjmXuZdbPM\ndCxzL7qpWKS5146VEXSnUa+51/ofbbfghJDA+nAmg25msph7V2ps1yFsRSfZg9EMunXRqP13pcZ2\nx5PPVcJ+fAjbsorX6pHFcDTX4KUwyMPowQM8zUnvDwZwKVUfFO6xQ1heZ5+VGtp0+73qOopeYTe4\nuk7NKarNdKMczX6sSNW7hMGkuY23qfpEcozjXnLuOr7VqFk3Z4X7KM0FvMLSDP1Wamhz6q/6djzM\noDlFtedcLEdzk5CpJxNnGy7jWCM6r3Z5DyUB9OKDcLldxE0hs95tRBAzsAHnhIQ5hkXCzI/mpFcI\nR6p835OneKx3w7O94WgW9w9AUegQLu+SkpKSkn/xC5fPb/BMrkVFAAAAAElFTkSuQmCC\n",
"text": "2 \n \u03b1 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2\n\u03b1 + \u03b2"
},
{
"output_type": "display_data",
"latex": "$${\\left|11\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAB8AAAATCAYAAABobNZCAAAABHNCSVQICAgIfAhkiAAAAOZJREFU\nSInt1TFOAkEUxvFfiLEkCIkFFkDCJTThABpqCiquYAWFtzHhBGBja0ws7KysjD2xkRYodo2w2d3Z\nRicxfs28vPle/m8mkzf8cc2KNmp78Rhnmf06ntALAMp8a5yGOpygm8bHGOABW/QLaqr4WrjOKz7K\nyTVwi1esSpqt6lvhRHLLmyLTxPfJv3Sj/ORVfRe4yiZrOcaf0GPaQBQ4vKMTC77AMBZ8iGUseBdv\nMeDnkkd3oN+CX+IuBryJDzkDJgRvpmtoNpf5xpgH6o3QTuN7vEim1hafeMY0U1PFV/ir/SuKdqio\nK05yzo7kAAAAAElFTkSuQmCC\n",
"text": "\u275811\u27e9"
},
{
"output_type": "display_data",
"latex": "$$\\frac{\\beta^{2}}{\\alpha^{2} + \\beta^{2}}$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAD0AAAAwCAYAAACi/HI3AAAABHNCSVQICAgIfAhkiAAAAnhJREFU\naIHt2U2IjVEcx/HPvBSDCXeY1BRpRAlZEQ1NZmZhg0jZSImslGRhystkJ7spZSUryoosLcZKFhLG\nZhZTSlmRt7wsGBbnmVw3M/fOfeaeI/N8N8855znP8/ufzv8559zfZQ7SlFD7FFrRjosJ44jGVuzM\nylfRG1O8OaZYGauxLyuPY22iOKLSgqVZ+SY2xhRPNdM/8A7r8RqjMcVbY4qhG/34hvnowtnIMURl\nOwbK6p/9Tus9MQOJld4lLMf9rH4AExjBW3yJFEdUDgqf0iGcxxNsShVMrJluwnesErarldgdSTsJ\n7dhV0TaIWwliQZyZ7sHDirYOIcX/W65gTVm9hMdCBiQhxj79DIfxVFixB4SF7VME7SR0oi8rd2FF\nwliisR8LUwdRSaMXspJw8ppTdKQOoGAuM+mR/UwaRUFBwWyR1/dO5V0n88xTede5dfOcyFJ510k9\n81TedW7dPDOdyrtO6pnDPFzS+N/l3TiBI9k1lu5fOY5FWXkm3vVMMqzSL7+Lk3Xq5qZPcD/eCN51\n/wyePVdjvxL2ltWXCOn8s07dGdOExbP0rqEa+zXEL6/lm2jGBXwQZnaHkNZtWCZsG41iKr/8eZ6X\n1jLoG4J7OZzVB4RBf8S9POJVaBdSGC5n10FszvviaoPeIBj1R8vaRrENj/C+Rp3Tgkk4SY/wr2U5\n1/Cyos9IRZ8ofvlJ3KloO4MXfq+e9TBUQ5+G+eXVZnrMn6tjSTgUjAmHhDZ8zRvEFDTML2+pcn9c\n2Ca2YJ3gXQ8Li9lkqk3UoduLB9Pc78QCXBcG+Qq31f45/ZMcr3L/n/TLG82x1AGkoPDLCwoKCqbj\nFwnubvhneA5lAAAAAElFTkSuQmCC\n",
"text": "2 \n \u03b2 \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2\n\u03b1 + \u03b2"
}
],
"collapsed": false,
"prompt_number": 7,
"input": "for state, prob in measure_all(psi):\n display(state)\n display(prob)\n"
},
{
"source": "Qubits can be represented in the computational basis.",
"cell_type": "markdown"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$\\left(\\begin{smallmatrix}\\alpha\\\\0\\\\0\\\\\\beta\\end{smallmatrix}\\right)$$",
"prompt_number": 8,
"text": "\u23a1\u03b1\u23a4\n\u23a2 \u23a5\n\u23a20\u23a5\n\u23a2 \u23a5\n\u23a20\u23a5\n\u23a2 \u23a5\n\u23a3\u03b2\u23a6"
}
],
"collapsed": false,
"prompt_number": 8,
"input": "represent(psi)\n"
},
{
"source": "<h2>Gates</h2>",
"cell_type": "markdown"
},
{
"source": "Gate objects are the operators which act on a quantum state.",
"cell_type": "markdown"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$X_{0}$$",
"prompt_number": 9,
"png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAABHNCSVQICAgIfAhkiAAAAXxJREFU\nSInl1T9IVmEUBvDf9yl8iJNDEYhGSKBgIDQIiYMOQdGom4mDIBhtIRS0O+TSoA2FELiINLTW0JCD\nEdqfRUGQQhISWiLBRR3u++HL7cLV2w0HH7hwznPO+zzvv3svZ4gFbOMwPNsYieqzUW0P71ApYtSI\nzSDUkapVsIVHaCgiHmMqmDxO8TO4/a/idVzAPr6hGriHGD2NSN5S99CNPnxEP2qYO43JSTAg2bIN\nPClbPMZ6MLpcZHA1v0UnDkI8XsQkD61YQpvkfH5IrnZpaMEryQ2DecmWDZVl0IRFXIm43mDyNqO/\ngjHcxzTu5Bk04iV6MmprkvO5muKH8TzEVXzBNRERowPv8RWfMkwWwqwnU/wUXof4QLLau+nBtxx/\npw6xixupnhf4E/V8xkSo/cb1qPcB3mRMsjBqwbQr4u7hQz05yXuSh33sBKM6mvGrTBNYxcUov4Tv\nZZusYDDKb+JZPSn0N8tAUxBdRjt+4mlJ2n+h9r+EzxGOAGtDSS7Kxo8ZAAAAAElFTkSuQmCC\n",
"text": "X \n 0"
}
],
"collapsed": false,
"prompt_number": 9,
"input": "g = X(0); g\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$\\left(\\begin{smallmatrix}0 & 1 & 0 & 0\\\\1 & 0 & 0 & 0\\\\0 & 0 & 0 & 1\\\\0 & 0 & 1 & 0\\end{smallmatrix}\\right)$$",
"prompt_number": 10,
"text": "\u23a10 1 0 0\u23a4\n\u23a2 \u23a5\n\u23a21 0 0 0\u23a5\n\u23a2 \u23a5\n\u23a20 0 0 1\u23a5\n\u23a2 \u23a5\n\u23a30 0 1 0\u23a6"
}
],
"collapsed": false,
"prompt_number": 10,
"input": "represent(g, nqubits=2)\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$H_{0} {\\left|00\\right\\rangle }$$",
"prompt_number": 11,
"png": "iVBORw0KGgoAAAANSUhEUgAAADYAAAAZCAYAAAB6v90+AAAABHNCSVQICAgIfAhkiAAAArlJREFU\nWIXt1juIlUcUB/Df+mDBF76SrIWKkCDYCEZBWKNRQRvFUkQbQSSYWFioSEAuiIWNxErQRgsxnSls\nRDEmJgSx8YGoGBUM0RXBF1po1E0xM+53v71z937XlbXYf3O+c85/vjln5pyZYRifLDZjUqvkE7iB\nXvyHSzgcfTPxK/6N/ue4iO+b/G9HA9smHMde7MOazNiBeF0DzN0PC4XAD2T8u6J/bQv/qpX0DbiN\n8VH/DD1Y1iZvTwsxvMd2IfCVGf8pvNVaGdQK3x24Jqx+EUeFKuioyCMkWk42i5N4jbENfKPxQijR\nVlArfK8SFqwcyLpon1eRl1C3ayMygYxAt9A7Lxv4FwgJ/54Z3wxfR3mrZP87ym8r8hIeCv2GfGJz\nMRHnMv6lUf6W8TdDmvxFyZ4WcFpFXsIxrE/KqMzki6NcoW/lipgfZTs7lgIuV0LSJ1bkJTzBlKTk\nElsiHAxL9V+xUXiG63iUGd8Mr6J8V7KPLtlb5SVMEpJD41LswDe4rH9ShKYdo73dgqsZezqkHlTk\nJawXyhGNE5uDqTif+fGiKNvpL7gSZfmaGBdlT0VewjTcT0qjUkz99UcmsO4oizs2EhvRiRk4g9OZ\n8Sng6epLeUGUVyvyCFfC2cx87/GzcE90Zfw9+o7chI34KX6PxE18VfDXSvyn+LFkO4m/2uTtUX9h\n90OnEPjtjH+ukPSRkv26+ov0EHYX9FqJ/x3+wYSozxL6eVUbvC/wQyZeM4XSuqvv4fsntkT/amGV\nHkX/Y6HHuoU+fYPZpUROFPRtDebcil+wX9iFDZnYBuJtxuRcYh+CKUKy0wu2nVqo+Y+J3MujCh4L\n91pvwTY22ocMg5FYr/AY/rxg68K9Qfh32xiMxOCC+sNjuXCADBmaHpEVMB4HhUfzl7hjiBMbbHQO\ndQDDGMYnhv8BbkWjYKG8VMEAAAAASUVORK5CYII=\n",
"text": "H \u22c5\u275800\u27e9\n 0"
}
],
"collapsed": false,
"prompt_number": 11,
"input": "c = H(0)*Qubit('00'); c\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$\\frac{1}{2} \\sqrt{2} {\\left|00\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|01\\right\\rangle }$$",
"prompt_number": 12,
"png": "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\n",
"text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n\u2572\u2571 2 \u22c5\u275800\u27e9 \u2572\u2571 2 \u22c5\u275801\u27e9\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 2 2"
}
],
"collapsed": false,
"prompt_number": 12,
"input": "qapply(c)\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "display_data",
"latex": "$$H_{0} {\\left|0\\right\\rangle } = \\frac{1}{2} \\sqrt{2} {\\left|0\\right\\rangle } + \\frac{1}{2} \\sqrt{2} {\\left|1\\right\\rangle }$$",
"png": "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\nRU5ErkJggg==\n",
"text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n \u2572\u2571 2 \u22c5\u27580\u27e9 \u2572\u2571 2 \u22c5\u27581\u27e9\nH \u22c5\u27580\u27e9 = \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 0 2 2"
},
{
"output_type": "display_data",
"latex": "$$H_{0} {\\left|1\\right\\rangle } = \\frac{1}{2} \\sqrt{2} {\\left|0\\right\\rangle } - \\frac{1}{2} \\sqrt{2} {\\left|1\\right\\rangle }$$",
"png": "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\n",
"text": "\u23bd\u23bd\u23bd \u23bd\u23bd\u23bd \n \u2572\u2571 2 \u22c5\u27580\u27e9 \u2572\u2571 2 \u22c5\u27581\u27e9\nH \u22c5\u27581\u27e9 = \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 - \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n 0 2 2"
},
{
"output_type": "display_data",
"latex": "$$X_{0} {\\left|0\\right\\rangle } = {\\left|1\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAFQAAAAZCAYAAACvrQlzAAAABHNCSVQICAgIfAhkiAAAA0BJREFU\naIHt2EuIHEUcx/HPJpFlSQyKUbIs6iFKDBjwgZfgQTwoERUxqPhWVokmJ9EEEpDMQRRfCAqiogjB\nHBRBDd4UFFFQwefiQQ1kTQIRRQ+aRFbUzaGq2e6anp7p7Vl3decLQ3X9q/pfv/lPPf41DFg03IKx\n+RZRQS19e3AI0/FzKDrIeDbXdgzvY6jC3/YS2414DQ/jUdyQtK/Etl4FN6RMX8YmIR4ptfUtwz4h\naGuStiHsx04s7cFXK6lficM4JSduEteUvLesR71NaJXYxrAFf+L1ivcK+pZUDPIXXojPNyVtT2Cr\nMLv+rpRazk7sxS+x/hvewssYzvXbi6tm4b8pd+MxrMA/Ff1q6zsVU/jBTPB34LaaAlu554uFWX9t\n0mdjtF+a2B+qOdZsaFW0HdF5hpLoq5qh8DPewBm4AuPCzN3dVWJnLozl94l9XywvKbGf1WC8uaag\nr1tA4flYPol1eLyhgNWxPJLYj8ZyNLG/qv3AWkgU9PWy4b+Hb7EWz/RBQBbQo4k9q5+U2P/A8g6+\n1gurpSrDSDmAq2v070ZBXy8BPcfMxnwXHmwoYCqW6WZ/Qgf7iCC6jAmc31BPUwr6ui35MWHTvTy+\nNK55GjPRwZ79yocT+/XCslqoFPRVBfRkYYnfi4PxpVHtuWJdvs75z7Milj8m9rX4ruGYc0lBX6fZ\nNiIcRvcLJz08hztwj/Y0Ygi340RhVn+Itzv4zgJ6uuJJf1Es8zP4AnzWwQ+cK+SudffQNGWbLd30\nIQR5N84raftC2OPOTuzX4cX4vEQI2vpceyvpP6k9W3gF3ygGZ5f5uyllVOWhbfrSJb9GmF0T+LLE\nwR7hC29J7NuFWwMh4O/i1gqRO3AnVsX6qJDYPyIk94TZfkzIe+eLlcLVepX2VVCpb6OZe/u0sMw3\nJH1eElKbrM9X2BzbfjeTsMMDeCdXv69kzHG8iaeEH2Nz0n6zsC38G6T6NuFjIQ7Z953EBzhzrvUN\nxwHX5Wxb8elcDLbQ6eWm1I0pIdWZztmW49c++P7P0Y+Awuc4LVdfLZymi45+BfQTxX+JLhPSrEVH\nnfytihEhgB8J/0z9hKf75HtRM9y9y4ABAwb8bzgOJqKj+ElYpHwAAAAASUVORK5CYII=\n",
"text": "X \u22c5\u27580\u27e9 = \u27581\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$X_{0} {\\left|1\\right\\rangle } = {\\left|0\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAFQAAAAZCAYAAACvrQlzAAAABHNCSVQICAgIfAhkiAAAA0JJREFU\naIHt2FuIVVUYB/DfmHEY1CEDQ5GisDIhIQtfeooeukHRPegOJmk+RWUoRechIsjALkRFERhCQReI\n3grsoaCCrvNkGpEJRUFBZTVgMz18a5p9lvvss8/FIzXnD4e11/9b61v/+eb71l5rM8K8wc1YeaxF\nVKArfbtxEDPpdzA5mMUzBdsfeA9jFf62Vtg2YWcJP4H76gruE2X6LsHreDT9Nmb2rvUtxH4RtFWZ\nbQzfYDuOq+GrWcKdhm2YxtMV8xbW8N8vmll/PX7FKanfwBe4s2Rei74FFYscxvPp+cbMtgNb8Aj+\nriE4x/3m/oiqzH4Ll/fgv19sxx4cSP0pvIIncFJhXNf6liVn35oL/jbc2qXAZht+saiAdhkKD3e5\nVi9oFp7PFFVzVzZmndCaJ1eLvqoMhZ/wpkj9y7BBZO6uruT2h/04fYjrrRNVs69EB1xQwv+rr1NA\n4bnUPo41eKxrif3hVdwwxPWWp/b3jD+U2hUZ36Kvzoa/B3uxGk/1ILBf/IlFbWxrRbVU7cM5DuCK\nCvtsQA9l/DT+wglV+uoE9KzkDO7AgzXmDBLjQnQZJkWJDhJTqZ0usR1fwrfo61TyK8Wme3GatMFw\njjFFXC/KaliYbMM3xBHx+4xv0VcV0KWixDfjuzRpBa7sVWmPWI2vhrjel6ldmvGLU/tDxrfoa5dt\n4+JldI9408OzuF3cbF7Lxo/hNiwRWf0+3q6jvgPOxScV9rPxku730Ksr7F+L/fPkjF+f2mIGd9KH\nCPIunFNi+0zsIWdk/HV4IT0vEP/ltQV7s81anc6hDzk2N6UP8XLG7RDl3ihwR+jLS36VyK5JfF6y\n8G6RDfmhd6u4NRABfxe3tFNfwImpXVZiWyK+Exyu4WfQeABX4dTUn8A14ug4+9Kq1HepuXv7jCjz\n87MxL4pSmB1TvNv+hvMKY+/FO4X+3ZmvjfgYvxT87RMfWSbSmJscWXZHC7k+uFZcanbiDXFdLibg\nUdPXEAFZU+C2iIDNO9S5KXXClNhbZgrcIvw8AN//OQwioPCp1q8wy819qZlXGFRAP8KFhf5F4pg1\n79DN+a0K4yKAH4gvUz/iyQH5ntdodB4ywggjjPC/wT+UDKQb+BPLoQAAAABJRU5ErkJggg==\n",
"text": "X \u22c5\u27581\u27e9 = \u27580\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$Y_{0} {\\left|0\\right\\rangle } = \\mathbf{\\imath} {\\left|1\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAFYAAAAZCAYAAACrWNlOAAAABHNCSVQICAgIfAhkiAAAA3lJREFU\naIHt2F2MXVMUB/BfP8bX0KJSxTTUk/BES+LBEF8RSYmEphlE0HgYPIgE4yNuhCYi8SRBeJKQIVGC\nBPWVNiJFpFIJQtOI74eWFBMRTD2sfTNn9j1n7j23d1rp3P/LPvu/19n7f9ZZZ+29Dn0c0FiHJftb\nRBdoq3sVPsDf2IMJbMJgZncsfkk2k9iG4zKbO0rmvx7jeAgP44psfClubfMQs40y3XAo3sXpJWMd\n675WOO2ZNjZbMFQx3sj6a/ENFqX+EvyIizK7BzCvE5GzhEbWH8DZ2Ch8sqrivlLd87P+BhGtl+Hg\nkklWYDXOxfcdiJ2HMbyI3xK3C6+Ll1dc/22tzt5fGBC+WINf29h2rPtZ8YauzPhFeAlHt7m/Ubi+\nJM11cWZzVeLPyvgHOxE4S2hU8LeYOWIp0Z1HLOFYuLrALcATuFPk2E6xMrVfZ/z21J6X8T/ghBrz\n/1/QorvMsRuxE5fiqMQ9gqfwVc0Fl6X2j4yfSG2+8T2HkZpr1MWICJJx5c/fDVp0Lywx+gcvYFSk\ng4PwOd7rYsGmYycyvtk/MuN3m3qZOVbiafU2uO2mp7TV4uRzs8j5F+CtGvNVoUV3mWOJdDCKu8Wb\nHetywb9SO5nxAxX84iSyDJ8oP/LUweXi7HkODsN3ezlfEy26qz6FLcIpu3DPXiz4WQXfPB//lPEj\n4rOaLaxP7Y3iGb/s0bwtuqsce6o4br2hNarqYFtq88/78NT+nPFDehdFZdghomuN2DN6hRbdValg\nOLWbSsbmi0rqECwXuffNinmajl1uenSemdpiRA9jc8U8cAaeVD/Hrs24a8Q+8rxw8kLxZXaLdrqn\nYVwk+bykJSqvx9L1AnyBUwrjjcx+J+7PuJfxUcbtq8rrY1PRep+pDbZRYd/uHNtR5UU4axifat3N\niZr6lXT9r4jYmY5Id+EmER1wotiN1xdsjhFRs2eGeXqFIbyD48UmmqejHM2CaGnJWEe6TxIhvSMZ\n/o73xafTxDyxqZ1W4O7Fq4X+bSVzj4oofRSv4bpsfF0SuS9wgwiMMRxR4HPdG0QqmxT++BNbTa+y\neqZ7cVpkRYG7XY0cM1dQt/LYbeq3YROD6pW5cwLdlHRbTc83y/Btb+QcOOjGsR/i/EL/QnEM6qOA\nbo43g+InxmacLKL18V6Kmuso+xHeRx999NHHFP4D70iuykbrxK8AAAAASUVORK5CYII=\n",
"text": "Y \u22c5\u27580\u27e9 = \u2148\u22c5\u27581\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$Y_{0} {\\left|1\\right\\rangle } = - \\mathbf{\\imath} {\\left|0\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAGUAAAAZCAYAAAAonOB1AAAABHNCSVQICAgIfAhkiAAAA51JREFU\naIHt2VuMnVMUwPHftLRiRIsaI6YoHlyelEZ4GEK9EH1wT10S0fShcYnUJUriRAjCw0iaqJBIJKQR\nIUHiEiJthIoKWiGqRFxCBMmEEdeOh7WPOWef7zuXmTntTHr+yWR/3/rWt7+19jp77bX30KNHCatw\nyJ42Yg/Q1O9T8Tb+xjjGsAn9md5h+CXp7MI2HJ7p3NrEiLW4t0A+gOubvDcbKPL7fDyL+3A/rs2e\nt+X3VWLAn2yhswVDJc8rBbLjknw8GVfE3ehrZeAMppLdn45RE+O0H7ZrDEyD33MyhefELFmB+QUf\nXoILcCa+bdPYu3CHCEgzXse5bfY5G1gnfKqO0x94BuvVp6y2/H5KDODFmfxAPI+DW7xfKZEPaj5T\n4J5Wxs1gKjXXJ4j0vjrTWSbG4NJMXud3PlOIoMAVNbK52IDbxJrSLb7DEV3sf3exVKSkzzP5ztSe\nlcnr/C4Kymv4CefhoCR7EI9hx9RsbcnTWNnlb0yVo8TC/RLOKdEZTO1vmXwstXlxVOf3PgUd/iNy\n3xqRwubhE7zZrtVTYNTEDyHnFDyus2Jgp8Y0PBX6RLa4ObXr8EaBXjUoY5n8LzG+CzN5nd9FQSFS\n2Jr00Y24vQPDp8ICYWAR7+Pk3WRHGSvwMn7Hco3pqcqfqd2VyfvEUpDL6/wuC8qW1PHPonLaXawU\nU3mm8hG+xvE4Q/xoi9heIt9fBOb7TF7nd1lQThQl8Ssao9pNhvBNl7/xME7rQP86bE3XX6V2tVhf\nN5W8sy21eSo+ILU/ZPI6v8uCMpzaoo/OwTViM7RYrDWvlvTTCcPY3OT5Ujyq8zXl8kx2Y4d25czH\n1Xgg3R+LLzKdHWJfshjv1MiXpbZ2JrXy+382iiOX/JiF2NGvT9dz8amYzlUqJX222qfMlh39RWKx\nHsAiE/5WMr2teCKTjYjN5LwaWcsdPTHQw/hQY/VAnPG8kK7/FTOlnTK2uukcKHi2SKxfrXb9M4Eh\nfIwfxazbUKJ3Jy7Bkel+IS7EQ6IKow2/jxbT6Muk9CvewpU1On2iADgp+/iLNfc3Zf3egPdEdTGe\n/j4Twdw36axKBs4GDhV7uRGx2FfJ/YbLxCnISGpvUT8rpsXvBWJQl9TI1mozJ/Zoj6L01YxRE0f3\nVfp19+hlr6PToMAH6teFQVG795gmJhOUd3F2zf1yUar2mCYmU4L2i4pjM44Rs+SR6TSqx+Qp+idY\njx49evTYe/kP0yK1Sgfn/IEAAAAASUVORK5CYII=\n",
"text": "Y \u22c5\u27581\u27e9 = -\u2148\u22c5\u27580\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$Z_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAFEAAAAZCAYAAABJhMI3AAAABHNCSVQICAgIfAhkiAAAAvlJREFU\nWIXt2F2IVkUcx/HPo65LWppS65ZFWUFXiRGiJKYI1RIlQlem+dabC4IXQnkRqEghXqkZXob2RkFQ\nRCFIEXXpnVJGhm+wrVEp+BYq7nYxs3WaznN2z3OedVOfLzzMmd+c88yPmf/M+c+hxXVHNyaMtIkC\nSvnrwCX04zIOYx/2xt8fse3ZOs+Pxroc/RV8iDewFc8k7VOxeqgmK3BV/K3ERaxFW9K2CFewo+D5\nMXg90VbgJ4yP9Q78innJfZuHarICV8XfJ3g6R5+FC/gMo0qYHIUfhRnO8j6Oo5bRnsBjQzXaIMPu\nbyy+ydHvE2ZmP8aVNLlIWP5p589HfXpGqxn+aGyqv7xo6vTfGZmML/GnEKEXSpp+JJaHE/3nWM7P\naP34DbeX7KMKlfzlDeIJ4SUyQDs+xRQ8JURjWTpjeS7Rz8fyjkT/AEsb6KdRKvkbM8if1/AOZqML\nPzTm8W+T5xN9oH5rov+ufiTOxVsl+z+AZQXtlfwNNohvYjGW4+tB7i3iYiz7Er2tjn6bkEbl8R1m\nVPCSRyV/RW/Yl7EeG7Eno9+EBSVNHqyjD6QTvYm+BO+V7KMKlfzVG8QuvI3d2JS0LcbEch4diOWk\nRL85liczWk1YKo3svY1SyV/ecp6Bj/EtXsppX4UnhVBfJWT/0/CF/NQoa/JunM7oM2OZjYTH/fvF\nljIH2wva8zgoHCDq0Ux/7kIPvpcfbc/h83jdjS3xuk1IB+6N9TQPq+EsXkv+b6+wx2UZiRNL0/xN\nEGakF/ckbXcK+2MfXozaUTyauWcPXq1jEtbgGG6J9QeEfLMr6ae7yGSTaKq/7HLehoeESPwoamNx\nv3++XFwWIrFdiLqezPO/4OF43YczSV87Y3/v4ggexAvCbA+wUPgAMNz8L/xNFTL3bC63QTjV3HAU\npThFnBSOgP0ZbTxOVXZ0DdLoIF4R9s+OjNYpHBlblGC7sBkT3m4nhC89Nxy1wW+py0TswlfCJnxI\nOGe3aID2kTbQokWLFk3iL4dftLkOERIkAAAAAElFTkSuQmCC\n",
"text": "Z \u22c5\u27580\u27e9 = \u27580\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$Z_{0} {\\left|1\\right\\rangle } = - {\\left|1\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAGEAAAAZCAYAAAAhd0APAAAABHNCSVQICAgIfAhkiAAAAt1JREFU\naIHt2F+oFVUUx/HPuf65WGAheTUNNKF8NQgKRB8kSaong8CUQiFTkBAS6SFJEcVXkainpBCDIKjI\nCCINRRGEHhL0wRdJi8L+UFCBEqeHNVfHOXuOZ+45586V5gvD2Wft2Xuv3+xZe689NDQU2IrZdTsx\nJCprG8N1tHEDl/AVvsyuX7O650vaT8PrXfp/E7sS9oXYUsXRmuimr7K2kZKOnhUPeTvuwSNYjTV4\nF/fjED4uad/CrIT9UezHXiGkyA+Zs1OdlL4Ja5teMshz4i3/vGB/Akcz+/be/L3JPjyIq3e47xRW\n4mTF/utk4Npm4puEfQl+xjkRHd2YLsIyxWIRZbtL6lvibZrKlOlbbALaUsvRfDGzeebgC/wjouTv\nnlydGG1cw9whjlEXSW2pSfhebMLjjOITzMMzIhqGzVFsmIRx6qBDW9meME4Lh/Gk2JQvDMevDn5R\nHgkrRFJQhe/wUl8eDY4ObXeahP1Yh5dxfEhOpXhApMEpTmHZJPoyaDq0laWosBlviE3mg5x9FlYN\n2rMC63FkyGPURYe2skhYg7fxPvYU6tbh94G7douWCNdh7z3v4LEe723jVbGs9UNSW2oSluEjkcu+\nkqjfhKcxIytPw8M4Jp3aVmW12xODIstxsGKf57GxYNtasY9BkNRWnISHxMO8grXik0WeF0UU/CVE\nLBJL1gxcxFO43KejK6SP/eOcxuN9jlEXSW35PWG2OAuMiFT0j1zdAvGwj+DTzLYTn2XlGziDF3pw\nZE72O5aoW4Afe+hjqtK3tvfE2ncVZ7PrWzEZ7ey6Ls4Lo9n/Rbn2B/BhVh7Ba4X+d4jT9p+5/i7i\nRO6eLeK71FSnqK8WbQuzgfL57lsikhoq0i1F7cZP4hNGO2e7F7/17dH/kIlOwr8iXcuvffPFJ4+G\nSeQgtmXllpiAJfW5c/fS6qPtfeLA8zWWio3o8CCcaqjOaN0ONDQ0NDQMhP8A5tyQhDNNGmcAAAAA\nSUVORK5CYII=\n",
"text": "Z \u22c5\u27581\u27e9 = -\u27581\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$S_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAFAAAAAZCAYAAACmRqkJAAAABHNCSVQICAgIfAhkiAAAAxFJREFU\nWIXt2FuIVVUcx/HPNGMoE1qBNRoRGpHVQ/SgFYSXwEKofCmwgp566iVIiMKgE1pEShAEPgiCqFTY\ng1BgF3opCO3Bl6HQLkxRjEk3jSYvXcaH/z7MdrX39uyzz2gj5wuHfdZ/3X5n7bX+//869LloWIDH\nLrSICgr1DVV0GMITWJZ9n4138Cbewn0VfZ/GK4ntFryAMZzAaWzByaz+CG44x4/oFdOubw7exXO4\nJGd/FofFIlbRSsrzcAz35Gy7sC1ptxZLOxXZgFZS7rm+PQWd24zj8ZoCN+CHxLYak7g7ZxsUu2C6\naSXlrvXld1ebeWKl95RMPoqPOhQKl+JJfJDYP8afznYF/+B3XF5j/KY00le0gHdhlvLz/onwE51y\nLebjq8R+Srz1lYn9DTxSY/ymNNJXFEQOiJV+FYuwN7P9ldVvqilwJHv+UVA3IaJbnnEsrDlHExrp\nK1rAn0Ww2IT12WcCO4SvONalwIkSgUXH9UvcKAJWyodix3TKJB7C19OhryyN2SxSloexCneIlOZq\nPNiR7ClOZc9/C+pmldiXYGfJeKtrzn8uGukr8oFtDuF5LMdt+F4El9k1BY5W1A2L/CrPAnFMJmvO\n0y2N9KUL+EzJQJ9jd9ZpoKbA73AcVxTUXYYfE9uj2Vzni0b6hpLGK/FyyURzcVBk6XAnVojgMgcv\nKt81oyLa5ZmP6/BezjaYzfNbyTiwT30fuA7fVLTpib41+BvXF9RdhaPCH8KVwsG3X8AWcT1q00r6\nv44vEts6Ee3z6dID4uo43bSSck/0bRa50Nu4OWdfjP0iGrfZgO258nIRmcoELsJPuD8rD+B9/70S\nbiwT12NaSblrffkjPILbcSteE+H7F3Fkn8KnubZL8G2uPC7e1LAI/ceTecZERr9e7PS54kjld+2I\n6mPWSy64vn0iV2xzjfA15zMB/l9QlcZUMebsgDGcPX9tJmfm0e0CHhSBpc2I8CEni5tfvHS7gJ+Z\nishwL7Y2lzPzGOyy31Hxt9ca3CR24EumrkV9OmRA/J/Wp0+fPjORMyCOwRiXS9e4AAAAAElFTkSu\nQmCC\n",
"text": "S \u22c5\u27580\u27e9 = \u27580\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$S_{0} {\\left|1\\right\\rangle } = \\mathbf{\\imath} {\\left|1\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAFYAAAAZCAYAAACrWNlOAAAABHNCSVQICAgIfAhkiAAAAwpJREFU\naIHt2F+oVFUUx/GPXpO8lkWQXdMHKSUzTXxQKqK8QYWQ/6CHNIggS+ohEEHqSSH7Z9JbCEGiqdSb\nkcINTLwgIlqYIEIFpiIUWmlEUFF5e1jnNmemc840M+coXecLw72z99pr/WbtffZe+9BlxDMJT11p\nEW2QqXt0wYAxeBE78CE+wjMYjz1Ngq0t6LsbRzLav8P0Jn6rpjTdeYkdJxI5QczGE1iKiTiKX5oI\n7M1ouxHL8GniJ4vPMa+J7yopTXdeYt8XM7EBl1Ltr+P6JEgrLMB7mIMLBXZ78FiLvqtkgTZ1j8kw\nugFLGg1THMe+FgUOJh9C7NQcu7/ws1glP7UYowoGtak7a8Xej2vk73cHcKodlf+RD7CiQv9VUac7\nK7GHxQy8jU1qiR5mQ5Xq8C1urTjGLLyFAfGYl0Gd7qzE/oCXk//XiBV6Ee+IpX45+Bp35PTtxbEW\nPl9gWmp8L1aJ33heVD6l687aY4nZ3I3l6Mc9eAG34PESheQxA9tz+h7u0PezeFccyv3Y0qG/NP/o\nLqpjv8Q6PIC5OCsOtWtLFJLFJPFYDVXkf7c4gB/BFGwtyW+d7sbEvpQz6AR2JoNGlSQkjyeTWFXx\nTfL3OVE2ni7Jb53u9FZwnSgp3sgZOEFcDn5Nvt+LB/GHuFC8qvNV1pPEuVhgM4CbW/A5JC44J1Nt\nfVikdorf3tDfKoW6F+LPJEgjE3FO7ElwE75Sm5hN6q+D6wtEDMpfJYsxv2BsWazBjxiL2eIwo0Td\n6a3gIVGfvomZqfbb8DE2Yn/S9jwOiomQ9K8sEDVMj7iA9Ip3Do3Mk30fL5spotq5JN5/bGti35Hu\n7WIl9ouS5jN8gl24L8P2ldT3aeKRGw66usF+dvJDziR2Q+IJOKR2yvfh6TxxJTND3B434q5U+xXX\nPaBW68LkJGjVhf3/hqJyq4hT6g+q4ZVa9KLiqqLdxB5V/wqtD9/jt44VjRDaTewRtQoBHsXmzuWM\nHHraHHdOnJILcadYsa/h95J0XfWMErVgly5dunT5N38DiqamQGdaPfcAAAAASUVORK5CYII=\n",
"text": "S \u22c5\u27581\u27e9 = \u2148\u22c5\u27581\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$T_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAE8AAAAZCAYAAABw43NsAAAABHNCSVQICAgIfAhkiAAAAvNJREFU\nWIXt2E2IVlUcx/GPo43ju7YQqzFxFEJFMiVcREPUMnQr6SbSQDAGhISWLhRFaKeQEGRQiREVLSp7\nWfi20ZBSCEILq0ldpClWvqYtzr1xPN77zB3vHYex57s55/7uvf/ze849L//z0GbE04dxw22iBYX+\nRkX1hfguq/+AnzEVS3EDh3AFU/A4ujANF6MY47Aa25M2+vAkTqETX+GL6Jm5eApv38UPGwxD5m8z\nPsCkSFuAW9iVPLsQFwpiTMSrifYKjgmdDd04l5mN2VRmrEEa9dcR1ZfgBVyKtN6s/DJ577gwEgfi\nAWzAbmHUQj8OuvMrHsXiCjGbpJa/vPOewAFcT17IO29/oo/G7xXMrcCj2Jvon2MeeiLtEyyvELNJ\navnLO2863ioI3iusA78meic+rWBuSVaeSPSTWflMpN3A35hcIW5T1PKXd95enE4CzMXD7hx1cBl7\nKpibkZV/JXp+/VCiv4dVFeI2RS1/Y1oEzqfsvru2Fsxdxs0Sc1MTvR8zS2I9h9cH2f4RvDxU/qp0\nXtHIq8rVAmOEhVrBvW7BYBFfY1ENL0XU8tehnF5hKp9s8cxAHC/RJ2TlmURfKUyNe0Utf2Wd143Z\nwg5ch2MYL2wwMROz8mykjRFMF+WPQ0Utf2XTttWUHYuXhMy8Bx8LeVGZuVHCx/gp0vMENP7yy4R0\noIxnsa3F/SK+wdoW95v09x9vCCeLBQX31mNjVu/KGn0ku04z+E5cw7okxkF8lmjDccJo3N94/Ig/\n3H72zTnj9kz7feFsWGQOXsP3WVzCB7mGp6Nn5uDFKuZq0qi/fNp24CPhXNuDWZl+WJjjbwp53RRh\ne/8tinFaOKHAP/gzaWOrMIrfFRLux4TMPl5Pn8/aGGqG1d+crKH4z4Mt+LBu4JFIq1SliH7h/Hsr\n0ibgfGOORhCD7byrwvowPdJm4JfGHN3n7MSarD5aWPPKjlT3NUW76UA8iB3Cf3zz8S3eadLU/4Gx\nw22gTZs2bQbJv2c0thLwHEogAAAAAElFTkSuQmCC\n",
"text": "T \u22c5\u27580\u27e9 = \u27580\u27e9\n 0"
},
{
"output_type": "display_data",
"latex": "$$T_{0} {\\left|1\\right\\rangle } = e^{\\frac{1}{4} \\mathbf{\\imath} \\pi} {\\left|1\\right\\rangle }$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAlCAYAAACJdC37AAAABHNCSVQICAgIfAhkiAAABFZJREFU\neJzt2nuoFHUUwPGP3u2ppvmosJCLFFmYWNGL8hFlYRFlJIlRiAQKFZVESUUY9oaQ6J8C/UfsXaRF\nkAQRFoRID+hBZEaRPS0yzbKbZn+cWe64d2bv7r27d/de5gvDzP7mzG/OnDO/3znnN0tBQYE1rVag\noDl04FZ81WpFCprLO61WoK8Mb7UCBc2lcPAQp3DwEKdw8BCno9UKDAJuxtUYhc+xp7XqFBSkGNZq\nBYYgJVyGiXgKnbgFx1fI7cdi/DOQyrWKa7XPy3agn9t1GIOPMQmrMAOPY3pqP6XBemfasJQ6nojn\nReJ1QMSaw3BIcr4r2Y5MZP7D5did6uPQpO3VHCXmJf29WNH+PS7Bxlqfpon090U7ExOELUq4Q+Q6\nM4XTr0/2eTTNhrfjU1yKcUnbicLZb+rOuEu4AX/rmYWPTB6okmEiUenKOQ8r8xQbhDyGZanfCzFX\n2OfZXq5tqA3TDro42Tbit6TtnGT/mhixsA9rsSXVVo1HsQlLdc8GWWzHCTX01wo68GSNsiXh0LWY\nn7QtETaYIKbneumzDcsOnoRt+KnigpnJflNOZ7Vwj4hBy3qRe04Yph2ZjdNqlD0CvybyO8Sz/ylC\n3g5MFmGuHvpsw3IMnoHVGRfMFKP5s4r2EWI6r4V9NcrtEg9equOagWA09tYhv1uM3C58i2NFtkw4\n+iz8VacOfbZh2cHPZAhPEJneehGH0+zBQ3UqWQsbcCVeaULflZyCOThGlCqr8WOG3CwRoupha+r4\n54pzn9TZV70cZMNSFcFq03Oz+AjXyHbw+SIRrIcvcG9G+4MigVyCnaJWXYkbK+Qmi1E4mDjIhu3m\n4FFiGsviAyyvs7/dGW3340LxwpRnpgV4K0N2KsbidBwnRnyWXDtxkA17c/Au1Wu2RrNAJApZ7NX/\nf1Z04j5R9j0sas4O8fK8kCGfnpoXaX/nUmHDPAePwTRRMu0fAKXKdOKbJvY/J9kvlh1v81gu8pEr\n8HqjlWownVI2zHPwBaKEypuep+NsURK8hB8aoNh5eL/K+UbE4HLJUo9z4ZFka3d62DDPwdXi7zyx\norJIJCFv6DZcf5iLFVXOb5G/gpNHpU7b5ZcoS/G0nhXDYKKHDfMcPFssRW7JOLcCt4mpeyt+wVVY\n18vNy2u8Wd+gx+J31VfGuvR/+t6AO0UGXY7nw8TofE/7O7duG5YdPBx3iSl3qijGu8Sa6k68jXdx\nuIjNX6b62CpG8DrdX1TSzBfT60XJ77vFyP8ODyRtC/W+RtsINuMmsVC/RnzCG5Hce/MA3L8WGmrD\n9JeTc+WP6G0ibk1OjkeLDJvIRk8StZfk3B+pa6dgfEaf+3XHi/FieW+gKOFk8aL+O4D3rZWW2fAo\nMQWMTLWtEgvrBW1IvX+624WvxRtW5miNyaILmkBf/lX5Ic5I/Z6FlxujTkE7ME2s6JwqPmM90Vp1\nCprBKFFKjetFrqCgoKCgoKCgoGDo8T+sAvYh0KrrKgAAAABJRU5ErkJggg==\n",
"text": "\u2148\u22c5\u03c0 \n \u2500\u2500\u2500 \n 4 \nT \u22c5\u27581\u27e9 = \u212f \u22c5\u27581\u27e9\n 0"
}
],
"collapsed": false,
"prompt_number": 13,
"input": "for gate in [H,X,Y,Z,S,T]:\n for state in [Qubit('0'),Qubit('1')]:\n lhs = gate(0)*state\n rhs = qapply(lhs)\n display(Eq(lhs,rhs))"
},
{
"source": "<h2>Symbolic gate rules and circuit simplification</h2>",
"cell_type": "markdown"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "display_data",
"latex": "$$\\left[Y_{0},Z_{0}\\right] = 2 \\mathbf{\\imath} X_{0}$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAHYAAAAZCAYAAADkBdqeAAAABHNCSVQICAgIfAhkiAAABSZJREFU\naIHt2XnsXFMUB/DPb0FpiQpR0kYpiYoqGgSNoJbiD2JfSqwVqVgihEotsaRiiVDUEmIXaxDRWCcR\n4RdibdIosdZSFRJ7tc3PH+eNvnm/N/PmTec3kvb3TV5m7jnv3nPfuffcs1yGsFqiK9N+AmPwJU7H\nhhn+3/gpQxuGjVPtf/BjC3MZieEF7/yBX+rwevAmevEyLmlhDq1iffzWYt/h4tvTWIolyf+sfiW8\npWWEVFL/T8SLWIF+zMdlOX2mio/qx9eYU0ZgCl8kY/yMt/EQ7kme+QnvqibG2RZzW5xDWUxHH57D\nx7gN65Yc42g8LwyiXxjFDSn+/liU8H7BK5hUdqKVHNrcZNCTG/R7HDPLCkthApbjcnRneLsIS31e\nWGUROrWwZ+FmK+c0CovxhrDgspgp9DwrhzcH9yk+0eqikkPbKxH4Up0+M3BGqwITzMRFOfSx+AHv\nav6jOrGw3fjMwAU8U7ER1MMoLMPnal3kUbiihfFqUMmhdeErYVGbZXgH4rpVFYoXDFTSSCxIZGfl\nNkInFnYbsYBvZ+gTE/pDLY77ZNJ/atKeokXXlj328tCPR8WRc2yKvh2maU+Qcrfa4GNtPCMW9GB8\n3wYZ7cQiYVnZAKY/+c362V7N6bq6Ic/EzsLyz21tirWo1KHvICb9btLeBE9jRDuEZtCFh0UwMaWF\n/s1YbLdQdrNPnm/Po50k9HRBinYwrhfWvWPBvLrEEb9MbOyygdh/6G3yvY9EZDpJLPIssZN+b1Vw\nA1yN48VufXUQxu/Fa1ivRJ8VOEztybEi571zRGZwZ9LeHLviQuFuTtHYAvvF6TUbH+CvEnNsiEoD\n3sWJ4K9EpDoYOC2RceUqjNHJdCeN00X0PjlFuxabisDvN5EeNcJwPCXqBd9oLgtoCpUGvClC6auS\n1jTCAeIIeiCHd1KJcf6PhZ0gUp19MvRq4eE0segbNBhjLTyC8SL46seh7ZpgpQHv0kTYYFjrRPwq\njsi1M7ydcE2JsTrlY6vYVLiqyQ3e6RN5aD104S7snrT3FLp+seA76qJZH0vks7/jvRzeFjhV+KCd\ncYvwyVVMxEL5PmO08D+LcLgImtKYIT66WVlF6BElx7I+9giRU6exngj0pqtNfc4TxQsiJtkV54sF\n3MlAHc7Gs3grab8pKlkHYEtRlcuilB4qdeg9wqLm1eE/i32T/+NEKrBW0h4rP+cjctcPhcLG5vD3\nFlFiOmFvJIvOHcXdeFBYVxojhJKruAGfJP8PwiGZ9y+WX9CYIfQ2u478Ij3UoFKHPjkRklcr3kpY\nctr6F1rpb4YJC3lfrY/pFRvlD7XH+zrYXkSYS3FHCVl0bmFvEqdMJfPMF3OvYi7uFf729hR9DB7D\nO3XG31LofLGBlwSFeihKmo8SlvYAvsVxeF0or4pxonC/PEVbLBaHiPD2F9Fe+ig+IXnnO9yayOkT\nu3ueKDEuEXXoZmV1CuOFbmDrzLOhOEaruFFEu2eLNHG4+M63hMGMMjALOFb4129FQNknbt6qKNRD\nkY99IjNgHjbCnxna3waWCNdNJlnF/clTBs3KGmwsEBbXDD7FMRnabgV9HkueeijUQzNlriIsNPBe\nd4Tae9v91O7iwZS1JqBQD+1Y2PliB6UxWjjzKiZpvAPbKWtNQKEe2rGwy4Rf3CNpTxAXwulyYDtu\ngJqVtSagUA9ZH7tEFPq/xJElBE0TBYwdRAAxzcqbjnajnqweEWT0qJ+WrU7opM6HMIQhDGEIQxhC\ngn8B8whCyP5F+H8AAAAASUVORK5CYII=\n",
"text": "\u23a1Y ,Z \u23a4 = 2\u22c5\u2148\u22c5X \n\u23a3 0 0\u23a6 0"
},
{
"output_type": "display_data",
"latex": "$$- \\left[H_{0},Y_{0}\\right] = - \\sqrt{2} \\mathbf{\\imath} \\left(- X_{0} + Z_{0}\\right)$$",
"png": "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\nQmCC\n",
"text": "\u23bd\u23bd\u23bd \n-\u23a1H ,Y \u23a4 = -\u2572\u2571 2 \u22c5\u2148\u22c5\u239b- X + Z \u239e\n \u23a3 0 0\u23a6 \u239d 0 0\u23a0"
},
{
"output_type": "display_data",
"latex": "$$- \\left[Y_{0},Z_{0}\\right] = - 2 \\mathbf{\\imath} X_{0}$$",
"png": "iVBORw0KGgoAAAANSUhEUgAAAJUAAAAZCAYAAAA40GzsAAAABHNCSVQICAgIfAhkiAAABVhJREFU\naIHt2neoHFUUwOEvPmOMsUZDFBWNXVGxYRR7Q6Niw95rFIJdJPaKiooYCxKJLdiwtySIIrZYsMUS\nS+yCwS7YEo0x/nFmefMmu7Mz++bFLO4PBnbuzD3n7pkz55577tChQ8X0q0jOtrgRv+JMfIIFMvd8\ni1mZtqHonzr/Hn+2OIYFsWyB+6bjn0zbiTgES2Nj/NLiGP4LFhN2b7XvEpm2Gfgx+T1Q2CTNd/ir\nRX2l2AWjk9+DcRe+whzMxANYo06/F5J7ZuB5bNKLMRyfyJqFaXgC45Lj7uTad1gqR8YjWLIXY5hX\n9MMZeBkT8TauFC9WGY7EJPwt7DMdF6Wu7yWCwRz8gCexdi/GXYq0U9UYlgzmw5x+m2AKVq5gDBPw\nFtbMtC8gnOUPDG8io12c6jycr3s2WFVE1wkY0IK8K8WzOrHOtTtxfYtye0U9p4KXxGA3qnNtCB7G\nohXoXwSfinCdZQxmY58CctrBqRbDR3qmDXCOsPXuLchcTaQEb2Xaj8FpLcirhEZONUr80Wsy7QPE\nlLhiRfr3ENNBllMS/UUN0w5Otbn4TxMy7Tsk7de2KPfppP9myfmeuKJFWZXQyKmGiBxnup6J+1hs\nWqH+HcQbnGZvEaFuKCGnHZxqGWHPBzPt2wunGJtpz0a0Ruyb9L8NW+Fm1S3kWqKRUxGJ5BzsmJyf\njf36eDzDRQ71GLpK9GvmVP1EMlzm6IsHU+8/nSbsfESqbX+RL70m8q48+uMbYbd7FXfGuSi7WmiF\nuzBCLNlrK6/7+1DfKngc7+MgEa2q4jiMLNnnPvFgqyT7n7pEqjEV9yRta2F5UeJ5FQfjkhyZs0SU\nGi1WldnyzzwnL1INwm/JkQ3NVTNYrDa/UKxmlaUdpr96jMZPWD/VNkYsgoYKB2m2UFlKRPbZ4oVs\nmXSkWk+5eXQKTihw3+/4ACvhpFKjK8cA4RTLYgsRymtsLepmX/Sh/jJUaestcSp2wjup9gvFizwK\nP4vo3YiB4oU/SeS+u2EbPFdwfH1CXqQaKKrk2cSySvqJsP+XSFizPISFC8hpl5yqxjAx5W2QM96P\ncVWOjC6M1x3ldhO52T0NezRhXuRUm2EhUTHP4zixZTBIOGF6Obs4VtA4LF+OA0WF+JnMtdVFDWZm\nAT3NOAbHlrifKJ1cXbJPEZbEHSIZn5pqP0V3WWE7UYMaJ57Bmng3I2cMbtEd5SbhSzFdDhFbZ/Xo\njR0LkRepzhee3+htIpawE1PnDwknqXG/yAu2rdN3ZCL/ojrXBop6zuEF9bRLTrWQcNb1M+0r4uLU\n+e2YnPw+1Nw7Cpepn2vVCqmNnmkzO1ZCnlO9KOb27AZzmgf13CIYqWdx72hhnLMy/UYIZxufaV9O\nTIMvi32t2qZoMz3t4lR34HM8mzk+Equ8Gg+IledQEZFqDBM51lMN5G8gnOoz9Xc8cu2Y96B7Q5fY\nfHxP7Ov9LJziwgb3ryY2Lmt8i3VT57eK7YcZGR1XJfeug1eSY6qoy4wXb+4junfdm+lpB7YQxd7+\n4v+kj0F6ToWXigXSUThXTGdviI38DcV0eHpG/rGiDPK1iIivC/unybVjX+VUs7FzifsHi6JbjZnm\nrpAPFwZJ6yjrEEX0zO9MFvllEabggNT5r+LTnjxqX3bkkWvHvopUZZmm5yppUfGpRY0uEale6mM9\nHYqRa8f5xane1LNYuYKYz2vsLvbwelsdb6anQzFy7Ti/ONVkkXTX2FXP3fZH5X+XVZWeDsXItWOV\nnxPfJKrnp2utEnuBmKcHiA/OrqtobEX0nIzDxMpvI+31OfF/xbx6Xh06dOjQoUOHDv9L/gUVIj0T\n0uphewAAAABJRU5ErkJggg==\n",
"text": "-\u23a1Y ,Z \u23a4 = -2\u22c5\u2148\u22c5X \n \u23a3 0 0\u23a6 0"
},
{
"output_type": "display_data",
"latex": "$$- \\left[H_{0},Z_{0}\\right] = \\sqrt{2} \\mathbf{\\imath} Y_{0}$$",
"png": "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\n5G+hAAAAAElFTkSuQmCC\n",
"text": "\u23bd\u23bd\u23bd \n-\u23a1H ,Z \u23a4 = \u2572\u2571 2 \u22c5\u2148\u22c5Y \n \u23a3 0 0\u23a6 0"
},
{
"output_type": "display_data",
"latex": "$$\\left[H_{0},Y_{0}\\right] = \\sqrt{2} \\mathbf{\\imath} \\left(- X_{0} + Z_{0}\\right)$$",
"png": "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\n",
"text": "\u23bd\u23bd\u23bd \n\u23a1H ,Y \u23a4 = \u2572\u2571 2 \u22c5\u2148\u22c5\u239b- X + Z \u239e\n\u23a3 0 0\u23a6 \u239d 0 0\u23a0"
},
{
"output_type": "display_data",
"latex": "$$\\left[H_{0},Z_{0}\\right] = - \\sqrt{2} \\mathbf{\\imath} Y_{0}$$",
"png": "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\nTAL/A1YPiWUFvKFfAAAAAElFTkSuQmCC\n",
"text": "\u23bd\u23bd\u23bd \n\u23a1H ,Z \u23a4 = -\u2572\u2571 2 \u22c5\u2148\u22c5Y \n\u23a3 0 0\u23a6 0"
}
],
"collapsed": false,
"prompt_number": 14,
"input": "for g1 in (Y,Z,H):\n for g2 in (Y,Z,H):\n e = Commutator(g1(0),g2(0))\n if g1 != g2:\n display(Eq(e,e.doit()))\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$H_{0} X_{1} \\left(H_{0}\\right)^{2} CNOT_{0,1} X_{1} X_{0}$$",
"prompt_number": 15,
"png": "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\n",
"text": "2 \nH \u22c5X \u22c5\u239bH \u239e \u22c5CNOT \u22c5X \u22c5X \n 0 1 \u239d 0\u23a0 0,1 1 0"
}
],
"collapsed": false,
"prompt_number": 15,
"input": "c = H(0)*X(1)*H(0)**2*CNOT(0,1)*X(1)**3*X(0)*Z(1)**2; c\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 16,
"text": "&lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x48cd350&gt;"
},
{
"output_type": "display_data",
"png": "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\n"
}
],
"collapsed": false,
"prompt_number": 16,
"input": "circuit_plot(c, nqubits=2)"
},
{
"source": "This performs a commutator/anticommutator aware bubble sort algorithm to simplify a circuit.",
"cell_type": "markdown"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"latex": "$$H_{0} CNOT_{0,1} X_{0}$$",
"prompt_number": 17,
"png": "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\n/AdptX/0ndrekwAAAABJRU5ErkJggg==\n",
"text": "H \u22c5CNOT \u22c5X \n 0 0,1 0"
}
],
"collapsed": false,
"prompt_number": 17,
"input": "gate_simp(c)\n"
},
{
"cell_type": "code",
"language": "python",
"outputs": [
{
"output_type": "pyout",
"prompt_number": 18,
"text": "&lt;sympy.physics.quantum.circuitplot.CircuitPlot object at 0x3da1990&gt;"
},
{
"output_type": "display_data",
"png": "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\nDRHxyMelS5cwZsyYNp/zq+Oz2Wy4du2a6cfyJ4+0tDT4+vr+cA79/f3x9OlT02f71cOVx48fo6am\nBuPHj3e6fv36dQDAxIkTXe7DzL/PXvfbwoSEBNjtdjx+/Lhd25eUlKC6uhpjx47t4Ml07dy5E0lJ\nSfDx8UHPnj0RGBiInJwcREdHmz1au317vZWQkOB0vbi4GAD+ytdbgJd+cHfjxo2ora3Fnj17nK63\n9UHOlJQUDBgwwGPfTK6qqkJVVRWio6PRrVs3s8f5La7Ox5w5c5Cbm4t3794hLCys1XpERAQCAgLw\n/Pnzdu1fnXihyspKsVqtLt8MdnXYDx8+lODgYHn37p3mePQTZ+ejsbFRwsPDZdCgQU63KSkpEcMw\nZMGCBe3avzt4ZVwiItnZ2RIVFSVlZWWt1pz9sF++fCmRkZFy5MgRd4xHLbQ8HxUVFTJhwgSJiooS\ni8Ui3bt3l3Hjxsm+fftERCQvL0/i4+MlNDRULBaLWK1WmThxohQXF//W/t3Ja+MSEdm7d6/06dNH\njh49Ko2Njd//vOUPu6GhQQ4fPiwRERFy4MABM8bs9LT/8psVl1e+5mrp0qVL2Lp1K0pLS7F48WLE\nx8djxowZyMvLQ3FxMbKzs2Gz2ZCRkYHExESzx+2UvPU/S3p9XN88e/YMBw8exJMnT3Du3DkkJSUh\nNjYWS5cuxeDBg80er1NjXERKvDUur3ufi+hv4XWfLSTPZBiG2r6Dg4PV9t0WxkWm89ZXJrwtJFLC\nuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnj\nIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyLSAnjIlLCuIiUMC4iJYyL\nSAnjIlLCuIiU/A99uOsAb0dipwAAAABJRU5ErkJggg==\n"
}
],
"collapsed": false,
"prompt_number": 18,
"input": "circuit_plot(gate_simp(c),nqubits=2)"
}
]
}
]
}