{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Symbolic Quantum Computing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from IPython.display import display" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sympy import init_printing\n", "init_printing(use_latex=True)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sympy import sqrt, symbols, Rational\n", "from sympy import expand, Eq, Symbol, simplify, exp, sin, srepr\n", "from sympy.physics.quantum import *\n", "from sympy.physics.quantum.qubit import *\n", "from sympy.physics.quantum.gate import *\n", "from sympy.physics.quantum.grover import *\n", "from sympy.physics.quantum.qft import QFT, IQFT, Fourier\n", "from sympy.physics.quantum.circuitplot import circuit_plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Qubits" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "alpha, beta = symbols('alpha beta', real=True)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHYAAAAWBAMAAADnfXV4AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiXaZRCLdEO9Uu81m\nqzIdlvb2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACBklEQVQ4EaWTMWhTQRjH/315L2dqkiYhwUqG\nBjoUoba1OAhBDLg52Ewi4tChpR0fBScH69BVXzsUtxRKEUqVTC6PQnRyKBjQVc0iLpYoDp0K/b67\n9+Xde7j5Df/8+d/3u7vc3QOi+imGfgPL29buyVkDVct/sbxY76QNu6fQkhFQrm68Hxg5jeORu6be\nJthifzRE+eVArRrJ+nEeufwA9zT7isdY1uKeKj4CdSNOT/IdMY+BXd7b5+++EczKEO/5DdDxtaiu\n5CO2AXzV687zuixPpYfZc2Ap0IIDyS3W3Uqy421qqky3SKvqL7EzLA1sp1n3x+I7P8nmSsCDltry\nAlS9P8CwxlJCNs06qnxrkGSxDDwH9h2a06MlhzWWEjKtCJY9jwFON8XeROYMaNJQYs/m8uphuB6G\nxzyNA7i/U+wpLu0Bk1eis+rwWXUC8H/RJeveB/KbKXYbz6htKmD2EPjka4E+Q4aFpaZCP8UeYKJH\nLHXpt9Hkt9EEHjHHJWwXeNhOst4eMn3k7xR9yrOBemEEVzVosUcorvD85lnotzFGmy2f9DIVzlXl\nOn0LLHz8pqJ13V+Vsq/Z2y+Pe9AyukczpxDugriIpXvgsr9B3DVZOi8MJH9izL/Yb9KTnNN65qZh\nw/zY68bfS5L9EE9pHF0vl83mGzrSMhdbvLa8be2ecTq7/6gLyNGDwpXbGDUAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\alpha {\\left|00\\right\\rangle } + \\beta {\\left|11\\right\\rangle }$$" ], "text/plain": [ "α⋅❘00⟩ + β⋅❘11⟩" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "psi = alpha*Qubit('00') + beta*Qubit('11'); psi" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHcAAAAWBAMAAAAIvx5GAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiXaZRCLdEO9Uu81m\nqzIdlvb2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB3klEQVQ4EZWTv0sDMRTHv+1drVfP/kJQULTo\nJIgUcRBELLg5SCdxEHRw0K0qiiCiDsW1dXAuSDeRmwQpQv+ADjc6qHQRQRzUpRQXX3KXNrm4+IZv\nXpPvJ0lf3gGdqHcy4E3K5VT2xAvdlbjbzTEg5V4aaeQBxRPKdU1GDvsjo/BEhyejtwB5uiHDPcA9\nDvOeaLDdxDJAHlgXvshwGfYZQg6XzrUvxUHrwBVQBk4WWr7IcBUxF1aLiw5ngGegSnuFCeYiwREH\nCRdmm8tfsFkEeYJweiJHc6E6TrMwv7losPk6c1dgngC8mosWIyVWi40k4l9cNDgcTc01eb3Ua58D\n1+EClgjOMpiJBofoRId51JMN+v/ztDYL7drDtdp2rfbACcD8ZB4V7q0AQ4PAFFjBLFYwq62dvAL2\nkORR4dMkMFYCjoFYBXaLiwaTqd9lHhVO1AmmuVie7W2wJjEcDaY3WsszjwobLuxF+kAs2nwHR01P\nRHuKDrtBfIs6kzxqtVONupGmyU1gd/zFlwBsfqRTBc9jPP48gYvUYV4pycAjANNr8ODl9nPI8LuY\nZKOAD7xJASseGe5j9xIhYP/3nj8qHhm2M4KkMQDTM/NQPDIcdXwHG6alXEoVT7gprfw//QV6l4sg\neXrXawAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\alpha {\\left\\langle 00\\right|} + \\beta {\\left\\langle 11\\right|}$$" ], "text/plain": [ "α⋅⟨00❘ + β⋅⟨11❘" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Dagger(psi)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJBAMAAAAbVLtZAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiXaZRCLdEO9Uu81m\nqzIdlvb2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAATElEQVQIHWNgYBBSdmAAgjAH9lbWCQwMjQwM\ni5kKGJi/MzBYMzIwcCxgYJAQZ2CoF2BgkAdK8x8A0kDlzBcYeOz5ChgYBM8cYBZiAAB+ygtKXUvq\n0wAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\alpha$$" ], "text/plain": [ "α" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qapply(Dagger(Qubit('00'))*psi)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAWBAMAAAAlTTH8AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMhCJRHaZZs1U3SLv\nu6tsAoCUAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAuUlEQVQYGV3OzQoBURTA8b+PZro0yANIKUkK\npWytrFnIdhYeZLZ2ygvIzs4b8Aj2NuMVyMLOOWfUzLiLf/fX/ejQJF1OtpOU1Gbm7nQMmkJs3tI/\nYzmq/SulyMJaHcS4p4Weuh5T/lgIzuJhSPltwY3ElxGFlwUO6lCtgU3+Pi2xfOX0P/eBvTi44T8t\ncBfLKJ7O40VUb2JODBpJSjt1Z/X4paLzZdb8z3Ive16M8vYXsMw8D9oZJNsvCfg4ksvwWEUAAAAA\nSUVORK5CYII=\n", "text/latex": [ "$${\\left|00\\right\\rangle }$$" ], "text/plain": [ "❘00⟩" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABIBAMAAAD7Se1QAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAiXaZRCLdEO9Uu81m\nqzIdlvb2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADhElEQVRIDb1WTWgTQRh9+dlskjZp2h5qpeDa\nIoIV2oIe/CMrinjQulCwiIIRBI/dKogoUor0oIVSRURPLhTxWkr9I5cUKXgoEjzoSawIevBgpFZR\nlPjNZndmdzZNG6gOzM5775u3OzOb/fIBojWV19DE9HVBn2vcpXXKDEQ/vA5IXAgZqWlOOLjDUQDE\njPRyQEQtg658q8sAJH7UaYhpdRpag/Nr7QGNvXUa9qM/6LgblFwl/ezeQxfzcWDoFcce0NKlA/Fy\nueTRasHjujqmTNaaIcVGgamwKYk1aITe155QZcLqHwQtO24BG9pq3FEOjWSATdIWlJ6VPj16QlOB\nDNJdUrokeGmkiMZs2vRKOOljMmleKERa/OKuCk03P/Dp7zcaPs6JmqvAJA5xjQErmvNxTiLOGTRg\nRCy1cy+m1SqfDHNd5FbxiYbMuIlEjkd8oMNl6iOGiuwyDzJcqb4HdwvAVXtFFjNkcAvqG4aCLVwg\nraUVprpzmEUt6srtGQsXBjOM+9pBYjHW9ZSWiZW/s6BFPWGgHUPlHEFfC48T7aS+G42zuhOyaKRf\nZ5dDfcNgjw7kSLqO6DU7ksrnx/MzCAN9NpcvIxYa2UKXkeZnbhE/D0zIc20eWUaMHc0shkv2ERG2\nqB9AJLhh0qEsYY6NA9u1vkkGqFnUt3S2M1ilvTPPyapFgiaLnH9p7+XYARaNmoODQ8O4u3QeM4C0\nzpkMEkuyshq3f2+rTfq38ZUSygp66d+u5v/fPbvCRr2yd1WK5WVrwDwFV6tTmF/W3RRcvU6h71qu\nX3Y4q6hap5yah6yr066hSp0Snry8GJN0NwWTLVinvETUknWRguHWKQnNeahSsBOxq1dUnoLpOJx5\n3EBpKVUUuh0WKVjUKV7DYUPotsFOwaFOdlS8TuGG/oFuSiZctw0sBStncck4IeoUbtCGWycgdJU5\nWAqOZ5Ds3SrqFG7IAN2iflHOMEOOetZEZJqCdgvl84/H83naq52WjlVUdj3ylC52Cr5B73/UFBH3\nCdFF4IWQcb9A/yA0T/1Khp+egGsIkfbWo8dzwE3Gf5Oh5Am4hgY6jzGPHqYS9wnj+4DnpU8i4hqS\nBXzUhQz1FxK9jIc6FtCniYhr6J/b3CZUQlmjwfAJDnENGTl4OnNUlmyuOrcJGJKlmilY1eTbRf8U\nZcnL2WuQ2lBQkmZIdJvE15P+BWK+XXz6xaLmAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{\\alpha^{2} \\overline{\\frac{1}{\\sqrt{\\alpha^{2} + \\beta^{2}}}}}{\\sqrt{\\alpha^{2} + \\beta^{2}}}$$" ], "text/plain": [ " ____________\n", " 2 1 \n", "α ⋅────────────\n", " _________\n", " ╱ 2 2 \n", " ╲╱ α + β \n", "───────────────\n", " _________ \n", " ╱ 2 2 \n", " ╲╱ α + β " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAWBAMAAAAlTTH8AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMhCJRHZU76uZzWbd\nuyLr89xdAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAeklEQVQYGWMQYkAANiDTBMFl4HBA5TM2QPjp\nCkBFIOIQiM/U2a8AIRiiIfLxIHkQoYXG530ANh8uz2aAymc4gMafgsaXQOMno/HvofL5LqDymRNA\n/Bn1KzZACB6I+4CuhQBPNH4jKp9pASqfO4CBIRCmF0jzKiBxIEwAsJUfsxazGPcAAAAASUVORK5C\nYII=\n", "text/latex": [ "$${\\left|11\\right\\rangle }$$" ], "text/plain": [ "❘11⟩" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAABIBAMAAABisTTlAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAImZ2VBC7MkTdq++Z\nzYkDIcvSAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADmElEQVRIDcVWS2gUQRB9+xlndrNZF0EhKCR6\nVlk/NwMGIqIgZCQnRc0oiBfB6F2dkyKIRkQQPJiLIIIQQRDBT/yCirqigh8WRqJejDER4u+Qtbqn\ne2a7ZzoqBCzYqapX9Wq6m96aAmJp/IWMx+kzYdk1c5XR3W4iaD8cSGASKFeKKdXyZkKhYk9Icqyn\nI/iZH3GitEyEzKIKkJ+UabE2EVZau4BCNU6UloGQ7cchYFRmNWkDYQ6wHtnhpkRpGgi0lgs4hsMy\nLdb5odhusqpwLtkv1uxsgkIz8+BXysbg7L3z2m1pNMYTBAOQs8Ye9RtiqXAZyNVSIwYwBzhiOX/+\nP7AadDrZIUOxVDgAioNqpN30Kr4SWv/8iko4r7qatwP2aRXKUA2zOPtGxlw1XOrivj22XcEPfOQL\noVPVZVMIzMIRJeI5A8xPIdwN81rRF796xW3ULP6X6VWqMMfihZi1nj24lN0WF+HlTV7ScofIsp4x\nY5A9FoIIW/kemKuK2AKwma/IY9EA3bDOqXmRt5yskVG41q1tDPPol1n33MOWuQGZqjg++bSFgl+s\nBoXGTxb16Jev4D3ONiiiyaoaXd0qcB/ZV76IeaTpKDuFq6hMLzWnAkGX4VzjkWK9fr3+HHSjnyiZ\n0rG+AUvJmYAdtSmPfDr7KzJH1U8rOEXIK2wbd0XEI30UpUC4mmofzrLIguXVJ10i5JFetuK98HRV\nnCzIyjLkkUHnYBB7aoMe8QgwE/D2pU6oALavg7HfMxzbf2W1UsH/LaaOYsDH//d6Z/j9JcM+m2Fl\nz/P+dQGyBZfv30ul6njUgt/hYipBx0u+SDuBg4kLxaYLHd8qy55Gu+RKCGy60HHRgllOjxtlhkaW\nTxcqHrdg4KTI75Y8Pl3EOIejFkxta1gnVNl0EeM8HLVgYLHIpwYshE0XTThHWQvGSKdPX+3A6edQ\nRODTRRPOowP0bPOtS5mu/WvWik3LN4TTRYyzMGvBuAHszrk3Gw1eAtEbqBfTdBHhbQHFWQsuUT99\nTMFQPtfrZ+r1N8zJxdMFec6SIXqyFtziAZ8+kCFFLkmbLvJfKYG14L4A+NJFhhRJCLTp4ip9YgjD\n7A4ikI5EEmradLHaRyvbeGkQ2ac2s4RIgj5d9HkIW/DYoo7SiMwmLQiJ6aI0Af5FbkoNTUGIDk4m\nZKacQWkremPoJQjYM30LTk4Xx+kqTiPJ6aLwfZr0tFDOS0NnCPsNlql6XT/vpUsAAAAASUVORK5C\nYII=\n", "text/latex": [ "$$\\frac{\\beta^{2} \\overline{\\frac{1}{\\sqrt{\\alpha^{2} + \\beta^{2}}}}}{\\sqrt{\\alpha^{2} + \\beta^{2}}}$$" ], "text/plain": [ " ____________\n", " 2 1 \n", "β ⋅────────────\n", " _________\n", " ╱ 2 2 \n", " ╲╱ α + β \n", "───────────────\n", " _________ \n", " ╱ 2 2 \n", " ╲╱ α + β " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for state, prob in measure_all(psi):\n", " display(state)\n", " display(prob)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Qubits can be represented in the computational basis." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB0AAABkCAMAAABNYMs0AAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRIki3e+7zWZ8bMzn8loAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAG5SURBVEgN\n7ZbbbsMgDEBNILTD5MLG/3/rwMZZTcikvlSbVF5IOLHxBRyDyTQmeBwLLwKYbF0Z8yOEVJemXKlR\n4Ocl/QuKztlwGK1tjkshfo0Q2XlNV6ximwXnSV5Rm2nR7kBfASi6biSBK7Kooj6zCGYJuZLNiWVL\ndHkoaimJyWYwA6sAMaUib9ENZEXhMSvNx6o8vKlEos59NLzFhMfV6OleUuuX2BR0NK11Hfcx3SjD\nM5+v076ZaJCjozX7bKvOkIfZj3zuTDt+nUeRZS/oSPMt35oHwFbNYtWnrgwb3YZ04RFHo1wkHtoj\ngKVGcpVA99SX6z0J7DwS42TuZWV9vO/fob7VH21RfYslz6+pz+/Tfrt/SAK60/51V1l4n/YXnUlJ\nB89P3+6Y0kV9LgpLN+S3VldOmlMFgX/xp5oT6fc9L2OruDBPrRPrNRMNpR+h0dFgonX70hqKfl8H\nHtFe1UluONxFjWWjgjQcet/AUeAqXezStDU/4lBHeb8oDnV0q5EytQXjoTQHk9ChtE/lA0XbtiL5\nDPXs7Y+o0ty8vaAPy+1RWXXCTH/rvX1ts507YkAqqPd2Dr4Bpkwjw7PPo8UAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}\\alpha\\\\0\\\\0\\\\\\beta\\end{matrix}\\right]$$" ], "text/plain": [ "⎡α⎤\n", "⎢ ⎥\n", "⎢0⎥\n", "⎢ ⎥\n", "⎢0⎥\n", "⎢ ⎥\n", "⎣β⎦" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "represent(psi)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gates" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Gate objects are the operators which act on a quantum state." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAARBAMAAADalBo9AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZrvddhDNVKsyIu+J\nmUR+edwkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAn0lEQVQIHWNgYBD6b8IQ9l+dAQr6BRgYW2Ec\nhvkJDDPgHAa2n1wNCB77jxUIDgPDflVk3nkHII/lyAGIWP8GIC3DUAHm8a74DqTtGPgDQNybnJ8Y\nGFh/MnAXADk8DxjsFzBw/mJgFgDy/BgY5C8wcH5lYHZgYOC4wMDA/xUkx+3AMO3/Tga+/M8NQH38\nD4AqoQBmJoTrC7UPwuO5c5UBAEc9JWXSEMgrAAAAAElFTkSuQmCC\n", "text/latex": [ "$$X_{0}$$" ], "text/plain": [ "X \n", " 0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g = X(0)\n", "g" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHgAAABkCAMAAAB6rgQAAAAAP1BMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFBd4eAAAAFHRS\nTlMAMquZdlQQQO0wRIlmzd0i77t8bBwggJIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAMnSURBVGgF\n7Zptl5owEIUjIG4VV23z/39rE6gy96bMbAyx9ix8MXCZeTLDixcObufHpXEvWj4nnnM733Zh2b+I\n64ZIa3wE717FnDkDgPv2NJyenoURjTKCz6Hd/edlnheP9teeN83rRjTKAB6uMcvpPOeCUd+0jV8G\nG9EkA/g2nth7JXmnaEY0yQD2I/jol89vDWxEkyzBvW9ja4++gw7LFQVsRLMswRd/ipDd9CN5j7EC\nNqJZRvBY8dNgNfoytfORXIK5G48654FSsRHNsgS76fjvi06uxWhKDuDbLdY2KJeMUrEzokkG8HSN\nt0s3kDApDWxEkwxg9xlvmVflZq2BrWhMjuD+FP6vlrltc/XnZpjPNRwZ0SgjGBNVXdvAVdsrk2+t\nlt2oOt5aXbW9Mvn/0Wq05HL+4zhL5orXc+zJvBRDv6pjZ7Bm6MO+2h8uWXLOnCdzqzUwWXIG58kZ\nYPaJBM6UM8BsyQmcKWeBsxx7Mi+MzgBn9pLAHB3BB3947GWfXF917I+UfwZk6H/CqwjjctL9Pjl2\nBpOc0WpHlpwz58k54DzHzvOiaASv6dgT8Gbo3+LNXnJc6m3Ak6seJ8n8PcF9t/yCMmnRWhsu4S3e\nG7yvXqucL+R5k5Mry5InZRnRuD9WjJ4b9wxrZbJz8mkBwOS5GVwm09MCgPMsOc/LiA67S18F4DxL\nzmAjWgGzEaTMZXJMtlRxpiWneRnROhg9d5K5RNbAZb00ov8GPnz8mIojz00VWy/wjeiQTR7jXx/i\nT4I8N4PLZALD5ZRnyXleRrQGJs/NmQtlbDVU7NBzJ+AyGZ8WEJyg6m3YwPV6S5m3VlND6q1ura7X\nW8r8Jq02LLkhU028itFY8ZqOnbn0OADgVR07gyk5gA1LbsiBJL0NgykawIYlN2QDTNESbPhEQ44V\nKhVztAQbltyQDTBHI3hNxx4nIpaCT264WSLrffhkq9d17PfJ3H/J78tWZ340c88ofpWKOTmADUtu\nyGECGpiiAbyqYxeNmIYFn9wYhh4dewLGaKw42bnehg1cr7eU+bu2+h99Ud7HL7y77khHodrq+EV5\n17nfTrVBsv3zzEcAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left[\\begin{matrix}0 & 1 & 0 & 0\\\\1 & 0 & 0 & 0\\\\0 & 0 & 0 & 1\\\\0 & 0 & 1 & 0\\end{matrix}\\right]$$" ], "text/plain": [ "⎡0 1 0 0⎤\n", "⎢ ⎥\n", "⎢1 0 0 0⎥\n", "⎢ ⎥\n", "⎢0 0 0 1⎥\n", "⎢ ⎥\n", "⎣0 0 1 0⎦" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "represent(g, nqubits=2)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADoAAAAWBAMAAABj+5JWAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZqvNmRDdRHYyiVS7\n7yJfG51DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABVUlEQVQoFXWQPU7DQBCFXyBx7LWDESVVlI4u\nQnQUcYOQqCxAFEiINIiCxgU9RqKgI+IEoYOKiJIqJ8AcITcAEQzkR8DbXW+cIDHSvJ2Zz7ueGWDG\nnDBP3TzMIhHlpTkVL/2sga5uke7e3EGJU1Vf9qkf+g7pOvZ6Wo5krfwFOO+GFp4h6kpwLmtiANgj\nQ70q3FQJdmRt/hXwUkP9KsojJfB6LPpdepMBTUSHAX+lBG6blbPVWi0JYN8yEdFLG85QCdAkvW8B\nVx0s40HRQFIpwCZpg56EOIYfzr6Ma5IxvY/SAJUOKRtyZVcup3jMxh3C+Ya1SOp1UUiVAE/ZuJ9w\nUlgxKRdRlNso1rHQBSw9Lu9WJMUJDlpaRAfbjbe4mIxj/tePJN2/XIEWiw0Zy3o2Kc/TqfhCzztV\n4RsTE1sbchuTHKV6Hutomhbiv9TmVo15oYn+OX8BKLNoFzTki84AAAAASUVORK5CYII=\n", "text/latex": [ "$$H_{0} {\\left|00\\right\\rangle }$$" ], "text/plain": [ "H ⋅❘00⟩\n", " 0 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c = H(0)*Qubit('00')\n", "c" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAJsAAAAvBAMAAAAGFKXcAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAInarRM2ZVBDdiWbv\nuzJCz3LGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADkElEQVRIDZVWPWgUQRT+9n529y7JJQqKFpJT\nwUbRKywUxVwhtncWQQXBBf9AEK+ySJPFoBARjFgoNh5yKiSgwVIEbQIKIoqNTeRAELvE/zOg8e3M\nzs7sujsTp3g/8775ZmbnzewDwrZ6OWiLwjVoy4TeaSCIh/P1uJ/0rGayR+uv0UYBu2UAxMOn4+4/\n3uQ/PboOd0oXpRhNt/bsewMoCtNetGiazq3hYT0aoDcmDejyLPI++p/pWaLojAFNn65/Cvk/0QCt\nQXvRo7cCxd6K6XKz2ehCnVbCT6rU0y6KBfeTLDErHb2NEjhXZYBGmymdyM1RdBNDpKKtC9/EdLiu\nI+KxdTvqYi/paPc38JhhbY8P0cqrr9HXDhBZ6HNDuMkYtjBpEPZnlPwAk4Ue9vh0jodVBi4KWz/4\nXjLR+R6f7iOw0UyHEZ/tJRNdWTofsFi3po9TvnxSGB3FjsyF+x7ZIbriR/1Ai9tHDwe6SA8s0XWU\neOojWZzzJbpcV+DhCzzuKX1Ed2nmAReVmhIQpvNDWKSJzj3zuMt7PnBVHOKaSaI7hMkhLviJK9HA\nPKj4RFdsudcA5zllr69EQrODvmcoN5kAXWXenKqw4prongB3MXG8R3drNh4MvA4GanB6TOCiiGvo\n3gLjPnJE5zYFXOoOBmso/GQCA+IzaOi+Ao0Wo8MbSSOsDq56KHxhAk477M6mc+lkGlVONyZIpO5g\nuI3KEhPistOXrkqEapXr1hKw0OZ0/OFS4/Tthr2ALhDAiTCmoaPVCTq7DlYdRCI4CmWzYKlUHh09\nMjc6WiPqwQgZGIuUd+pmU/KUHYUTHIXzExgzrg50FOPhUUSfWu6XEoVetB4TiM4qe7OYB57yRJGJ\noNJRBttBGttNWK/Nq6M0Pgl+FBskjbDokt3AlS4X5ZaZrtRyX4V09wWJ1ER3edO+UEQnr9mse2dz\nF/be73tkWlmn5rshI9HJdkCYcTpZn9Cdla3ghfYEyvQ/Yy1GR6vkzRW3LXCVaiZGl+9yMHYBL0NT\npUu70wRTqpkYXfRgvABGQmqVrq8azhFXSn0So3skYMf8iG676CM94CuONJVqJteV3Xin2Ld9xTGa\n6fWJHFag+/4frdHWg0vBBV95S69P5PhT0lyBZXt6UM4QT4zekvCT7nlYaqImwwnfMVQzFQ+5/6D7\naKhm1k/f251YgcYN65NsxLHl5V/Z0WQkrGaS3YH/Fzv3CzPK8ShkAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{\\sqrt{2}}{2} {\\left|00\\right\\rangle } + \\frac{\\sqrt{2}}{2} {\\left|01\\right\\rangle }$$" ], "text/plain": [ "√2⋅❘00⟩ √2⋅❘01⟩\n", "─────── + ───────\n", " 2 2 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "qapply(c)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANcAAAAvBAMAAACCkkLyAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZqvNmRDdRHYyiVS7\n7yJfG51DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEB0lEQVRYCZWWPWgUQRTH/8ndXu527yNYSUA8\nbcRCDEZsBLNERIgWRxQLQTwEFRTkCsHyTkkRGxMk1rlgcVELF8s0CYKFIEYIFnYBtRMNxqiJor75\n2L3d29nZceB2Zt77vfe/mZ2ZHeA/S/kvK+vpUcagJlV/Q+MMu4zBcFBP+31PP7FrDCZmAE5pfBGX\nMRiJinSseqSb3DEGk1Mg6+HD6ZcawHcZg36Aoj4Hq4qnBovEGFSI+KZ59NdQeuN3k2tjMDkFvYlS\nHf1byYT0GIOaTPlBZDZNxIzBBLFbZM9xX24zARFmYzA5S36VfFPc32wnY4AxqEnycZrWYJ0DlzQY\nYAzqslxcRl+bAVmXPZOLMZicAtk/yNWYf1IDMZcxqMlT/oYh5nZcfNZggDGoy3Kwdpm5Z4F7Ogww\nBB+ILI4y2dwTl+zla4/H6kCBzyjgKVBDsCNC1R++zCoTyNCHmsTshkD3iSry1IA7/h4G/fg/JbGz\n849QqEaCZcf5FrKSmDU+NIP7IZvf7AW5XYIb1PkuQBI7inNr4C/Hjw3qY0GLjyzjWTfkAg05WLMH\nhPOWDh8+moGf9Abkn+6g7w3sYdzuiY53aWS7gIegQ1AUpxWHmIXAiTE63wRo0xme/yXIDopVOJs4\now4MWSnHc2CpZg1Lo0YMeRITYGYdKFKPlQ4qVQz8QnGNdzUPEvsKND28llCamAAry0ClLkI6uOiC\n5tVpi37y025YNPXNFhYlkyrGweahvXtXXOQXSKCDL20UtuWJa4/w4qok7UaZsLm2/OrQwdJSYWKP\nsGkU4NMZYNqjo+gZF3O52El1ZNdKYjQyEss2hDFVjIOjBK/UcBWVGo1MTGN8+1T4tdt/rNMik9PI\n9yTNwZHVkZEqpYqDtP7YyDj4mxobsLZQ8sQCcWhpLpJRW8QCWfKC15s6MrYO+DbbRoE+IIMkVqSv\nFv0PvsbsK7xUVaok9grYXQsWbqoYW+F8m/1AYRO5FonRps4Oo7ysEgjbSIw29XHgk7SmijEwJ7YZ\njazExHAdF2Zge+HEqjaJ5TzrHfDEVIzAidGvrezK7xa9s0qDiZ2f2i+XqUojsJGYtXCHFnI9XSx7\nYGNPF2S8XI0i9KbM0Ft17/kkxsuAK5noNGpAxk+KfSZCaXCqErrn+2L9NDherDXZYJUOZH57/ATb\n1LwEp6voBs/QPd8XUx/ZRqAU62sF+SONUvee74vtjAB+xwi8K+hizY+K1qF7fl5O34soIXvGoDI6\nMKbc8wMOxmA3JNZqtmMmtcEYVIdzq/6eHwo0BkMxPc20e36AG4NBRLyRds8PIozBICLWcNLu+X6E\nMegHKOrZ1Hu+DDIGFSLSJO/5yYDvMQb9AEUt7/kKT49JDf4DGi5EsiWmsw8AAAAASUVORK5CYII=\n", "text/latex": [ "$$H_{0} {\\left|0\\right\\rangle } = \\frac{\\sqrt{2}}{2} {\\left|0\\right\\rangle } + \\frac{\\sqrt{2}}{2} {\\left|1\\right\\rangle }$$" ], "text/plain": [ " √2⋅❘0⟩ √2⋅❘1⟩\n", "H ⋅❘0⟩ = ────── + ──────\n", " 0 2 2 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAANcAAAAvBAMAAACCkkLyAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZqvNmRDdRHYyiVS7\n7yJfG51DAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD2ElEQVRYCZWXPWgUQRTH/7m7Pe/2cnfBSgJi\nDIJYSCSKpTkiIkSLJYKth2IEC7lCsLxTUmhjgsQ6JxYJpshiKUiCYCGIEYKFlYLaiYR8qInB+GZm\nP2Z3Z2fHgezOe+/33n935+MmwH+22h5ra9lZxqCmVK6lCcohY1BOivW/xOxU0xhMrQBc0MQiIWMw\nkhUxrGbETDeMwfQSKLj4evGNBvBDxqCfoLhfhjWARYNJYgwqRHzXE+QcVN/7ZvrdGEwvQSNRbSK3\nnU54EWNQU6nUh/yWiZgxmCJ2h/xFHitupSDCbQymVymtUuw+j7e76RhgDGqKfJuiOdjkwFUNBhiD\nuipXltHTZUChwa7pzRhML4HCXxQdFp/UQCxkDGrq1DbRz8KVBn5oMMAY1FUZcq6z8AzwUIcBhuBj\nUaWiLDa70CB/7eaz0SZQ5l8UcBWoITgnUtU/fPlVJpCnH2oSs1sCPSpukasG3L93CvTHn9QTKw9E\nkj2jsil5Scwa65/GI8nnd+Mg93vgBhk/BcjEXpIsHxzhkq5npD6J5V3rljdBpQDrxkBUPtDmw99m\n328aAe+h52AdGSLv3Vh20iSxg8BT0CaobwSOj9L+JkCb9vDSH5HB3myKxC7pC1CUarwClhzrRAZK\nIEokJsD8GtBLFmu+WO9nbmouVGMdaLt4p4FYyBcTYH0ZqDeZPxSrdLmpudgtiz59u4MXGoiFAjEO\ntocHB1caKM13QzGx49oneWuwnHizW7UdYLbr/erEw6EdiPGfp8VpGieXtqLnktj5kFb3SIzejMQK\nNCa6FohxcITQFQc3UHeCMUsunzo/dvuXNfo63mfka9I6PUHtGj02kqCYIODgLhEbsLZRdUMx/oEz\nHpgmyJKLrOEN3oyBfJntoEw/IH2hGJ9jNnvciYkBlSjVeAsccpA1cQMxBvJl9gvlLRQ7gVhtWSUg\n+6gGLeqzwHfZq+gHYgwsimVGb1YNxWxXkRZxUY2ia30EFiLupBGIETg+st4prOx2aMzqLfZmo5+G\n+zLnM18+1vw9mhHNZP2Ih8QKxzcOR8FgNjL0doQPjfCczx6YtX0NfotfMsBJf52xvGPxZGFL53xf\nLEcvl2xZoD12TixqSk3bXaVzvi+m3rKNQLYRU+vp8FviUg3P+b7YgQTEHEbgA5Ha6yhLyOf8kvf5\nXitJ6R8CPajMDpwZ5/yAgzEYpiR67W7CpXYYg+p07tWf86VEY1DKiXWzzvkBbgwGGclO1jk/yDAG\ng4xEp5J1zvczjEE/QXGfyTzne0nGoELEc3nn/HTAjxiDfoLi7p3zFZGYSw3+A1QJNQiRpRnHAAAA\nAElFTkSuQmCC\n", "text/latex": [ "$$H_{0} {\\left|1\\right\\rangle } = \\frac{\\sqrt{2}}{2} {\\left|0\\right\\rangle } - \\frac{\\sqrt{2}}{2} {\\left|1\\right\\rangle }$$" ], "text/plain": [ " √2⋅❘0⟩ √2⋅❘1⟩\n", "H ⋅❘1⟩ = ────── - ──────\n", " 0 2 2 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGUAAAAWBAMAAAAr5E+TAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZrvddhDNVKsyIu+J\nmUR+edwkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABqElEQVQ4EX2Svy8DYRjHv9yd9rTVRmyaSCRC\nTBIGMdDRQm5qjCabuNEgUYNJop3EVjEZLYZOmmhq1IWQdLj/QEKKCqnnufdH7w3nGfr++Hw/7/P2\n7gCjXE8sfWOXF/EkHYjwsRgivyYZ7S2g2JsOORGnna/gNJIWU+VIUs5h4FCTId9ZgiXv2FfZSVxB\nkeqmPpfIONCEneun9Wkbjx0oMtQdLskIOTPAvudsyg09cB+bHEkSHxcKEfkAnn3Mqh01KkeR66k+\ncb7JKWBP7ahRO5LcFYjYjTqQDoa/gGodVphtbnFt81w7gqB8SZt57IYO9SEnE3AwUtoRJHPxTnAZ\nWY9Ok3dzS5E8T7UjyJP7Qs+ji5TPhJ7Bvo9EPc4JCeVWzuB+wsqxMwlMeBg8Y+dmnmuRp7pPSNYp\n1ILbgVVgQu/0ATjnXLS0wyTZArId7pMKHct3asBtNM9z7RA56dUwsvNaov+TDZg4jdUKMPeHkzl6\nOzCJfG4iO0LNzeI+XAZZE+9HkCS1Mks5Bkm378WtOVs0BVopJ56MxTq/iS3vpD9a7cYTHflv8gOz\nvIcFcN7TUgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$X_{0} {\\left|0\\right\\rangle } = {\\left|1\\right\\rangle }$$" ], "text/plain": [ "X ⋅❘0⟩ = ❘1⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGUAAAAWBAMAAAAr5E+TAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAZrvddhDNVKsyIu+J\nmUR+edwkAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABrUlEQVQ4EX2SPUvDUBSGX03TNv1G3CwIgihO\ngg7ioB1dlEzFsZObmNFBaB2cBNtJ3FqcOro4dLJg0dEuikKH/ANBqbai1HOS3OReajxD77nnOc/9\nSgElDNOdWkqVJ+EkZbvNZ+4g/apkarSK4mjB4YJcSN1uSkTv5WvwSDWHiROfIHYNaN4ZA5WcqKWv\nC1IvCRtEdp/7QCQXdPurzQB3gkSHiYrXwmeLkKOXvII/EFkEyqZHYoOmQMLBkqiIkcgAeLUEuZmX\niLMPjkRFjClb/yGnIMhDgUik0wbfx3U0qtDx9zj2OU3ZiW+g3oZLUL2iYh6HkpO2uVEKcmgfclyS\nbn4S3EDWDPYxKlI/p/7ZXPJivNFLDZG0AifWHnP4DcoWHEJ32GzA+IKWC5zJBju3KxxrnFLXHDBr\nwiE7lHZh9KEVAueS++Qgh77pE8Ak3gWyfd4nKTn3cj/n5GiW3gKInI9ayBy8V+g+WZtJ+vTjGFj+\nw9E7WzWV+O/G3RnaXA1azQmFbIvvwyhOC6ohHIWkeo/OqZ3WoirQTDjhZDrUGScR70z+n9Z3w4nf\n8l/yC/jnhwWWx5iYAAAAAElFTkSuQmCC\n", "text/latex": [ "$$X_{0} {\\left|1\\right\\rangle } = {\\left|0\\right\\rangle }$$" ], "text/plain": [ "X ⋅❘1⟩ = ❘0⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGcAAAAWBAMAAAAvEZ+uAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEKvvIlR2Ms3diURm\nu5nMxUtJAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB9UlEQVQ4EY2Sv2sUURDHvxuze9zu7d0SG01h\nViwMeIIWps01dhFTp8lVBkIIp6XNLUIgpRYKAYtrxGJDuL9A0mhrAlY2WWxtTPREtEi+M29f9sc1\nDtx7M995n5vZeQ8o2VPjuyWpcBuR8VcLSb3UxDPjmq6hn6t3GM0tn/XgLi9JgtCN/fdoxBJU7S4s\n9EwSw4TLjngC7eB6D680qixdhdz7QDNiovkL9l9StO7BT7BVOZ8HrDT37RTwDil4f4GP3Gkpwhju\nKa6ZsLpKex4hJ6Hu/ETQN/kUnRjBBGHPxJXVQvgi8sn4eZ5NsZAh+A13lAt2c7b7+glSCWuirt/M\ngM1Neikej9Bguy9F93fVmIQf8Fvz9tCUZOcMaI3cWKFMoe+il+xhOymgNmmEHF9zDFa27UHvogRF\nnVJ7eo1XEmBhgAcCcRDuJG+7BGE9Kiq5I2b4HRj28Fag8AgtltQB+XtqMY/ghVNAOtvP7HEY4Y1A\nvFy2P3skB0vmTPwCeiSJE/5Yia+Pz+g1rg7gr5YAcYMfKwX0jsLi+Vf9pn8KzT+5zbHUGKB7KFD7\n1p9ufh9ywk7PnP4wBVGQexILMt24eJm5JxOz2LRZaGZwmTs4iLQ9EfRJXmasY6H6a+YgxFp93WqL\nhT7V9A0Thyw6bV7e1vF06r+UC4KdfqZ5799uAAAAAElFTkSuQmCC\n", "text/latex": [ "$$Y_{0} {\\left|0\\right\\rangle } = i {\\left|1\\right\\rangle }$$" ], "text/plain": [ "Y ⋅❘0⟩ = ⅈ⋅❘1⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHcAAAAWBAMAAAAIvx5GAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEKvvIlR2Ms3diURm\nu5nMxUtJAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB6klEQVQ4EX2Sv2sUQRTHv6Puxt0zlyWVXRJs\nArmAKTRlrkkXces0d6QJpJDTMs0dASF2FiI5sLgmQQiE+w88CLGwCYqVIDlShVT5JYiC+n1vd24n\ne25eMT/efD4z82YXcOJ5Mo6d1PBwJPo/tZukZ4YNJxN2M2p84aIKb+GxZFL5hYPmh7OgbE4/NaBU\ns0XgpUKUvTkgSC+WF2VeEflubN4kVHAFSUjsYvz4HPB7HBcG2X3gPfweEf8XcMCewZN9yqals4KG\n8hegFillLlGqJ2Aq42uBp2nKF8CHOKGOuuspbOXlItk8q7NE84dyHUrVpvrA2hoFKwcqh5saXBxE\nWHpI+Q4LbXag1Bhvca/jTWZyOf2UA8kOFsstkXkyZaVG+dxBF3wpe/IIN7oW5lWbsdWIxpxrK3W7\nBUw08CiTvc411ZnUIvmsvGothtfhwlM2zSreZfJolWmEclq7PSljGxtG5O/AYQSlDllhM8LbTH5i\n2XxvfoQi8yc5AZQ6IsKT+Xfbmrfzkp2XzpZEDmIzDwg1/feb1vxb5PKDnxXgtYWH+kpPZLOz0nCo\nwWsLXuoPSU6CskZG+f30O0v+FrctDis71N5epDWLdL/Y5IqV8xQfTOJj0hW0Vs5Tqwn/uUBL0n5a\n1M3UjVvo4j8inIeX5eIvpAAAAABJRU5ErkJggg==\n", "text/latex": [ "$$Y_{0} {\\left|1\\right\\rangle } = - i {\\left|0\\right\\rangle }$$" ], "text/plain": [ "Y ⋅❘1⟩ = -ⅈ⋅❘0⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGAAAAAWBAMAAADNzYTXAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA782ru0RUEN2ZIjKJ\nZnbgt/12AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABgUlEQVQ4EXWTLU/DUBSG37Gu+2hHCYYEw4ZA\nNwGH2AQKNYsgNMEiBmokJEACDDlDMIjxCyBMYGeqCGQ/ADFLCJAgWGB8nfux9u62Paa353mf3vae\nFFDqVqxNpSWXCcQXOF2LGGNkbnpx6Z1HqL17fwfLjRMCkvkAGjMjYQGNNppxQkDyHlBuS6E4BbuE\nlxghJGnAGIqED8OFOcBOjBASC6h4I8FxQa9otHXDh0rsH8l97LeQ+YXZlY3gMk7e+sDkA4V8XHVh\nfQMHLGnP82qx9RgxP6nziE3ebnHhjIXUIiEkGy4KOIZTp+eIV0JHDbO1SiwaWj47RMqjNn2aSXPZ\nigohuaQxrVtfyPVIMKooDoBVJtinvPjYFZI9rANNa4BcnwQaT76EQjW6Q0AmZoGbKu2QYgJOsH0N\n24sKAakcrZT/evQNTo0Je6/LQE7PxxB5SiK5FifwXkiexBxEkjbRSv4PCIl9cc5Om1e2pMUTiRSK\n/SRBJ88iaNBBa5VMtGD09h/XtoQHnSr4BgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$Z_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$" ], "text/plain": [ "Z ⋅❘0⟩ = ❘0⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHAAAAAWBAMAAADqYwU/AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMA782ru0RUEN2ZIjKJ\nZnbgt/12AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABfUlEQVQ4EYWRP0tCYRSHf6Z51XtLaAlazFoa\nhVqiQYcmJ9eG6EZrgzQ1VhQ6BhEtDfYNooZWF9fwAzS4RoTQUJREnXPf+/71imd4Ped3n+cevC9g\n1JPos0bktBOInsDSDQfXo0WUFtY3PqJncexXNOl0JjH7CRwvKnG/CbQcXI8sSiIfAuVO9KwHb7NK\n4ns0JR0mkQYyIwHx+4YkHiU5UWYSPlANBSnjTEfM46dNBL8xIeNsd1wRiU0MB8D8M8EyxgljwUpU\nl9zLsojsN8UvODDEawm6v0pkYq+CAi5QbOqNj47grbWpzu4twqfLz3sjpEIdHzqiGtVGIu7ounf9\nH+T6WqwzGfCWdruiLGqUWId3ShfX8r+QG6i4UDNhs5ciETNLwEONNqa0GIQmbPZSJKJ6vl3+69N/\nLDZ441VptY+cyVr9OKG+KnM7FmwOvJFLE6/yHjne4iOxpKiJ4PZGfDPiveVEicNYdIk4nhtME13i\nTQgZuqAJNZ2YIOr4H1aPf85qGlHYAAAAAElFTkSuQmCC\n", "text/latex": [ "$$Z_{0} {\\left|1\\right\\rangle } = - {\\left|1\\right\\rangle }$$" ], "text/plain": [ "Z ⋅❘1⟩ = -❘1⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF4AAAAWBAMAAAC79zZcAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVJmJZkS7EM0ydqsi\n79384c/uAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABfklEQVQ4EXWRsUvDQBSHf+mlKa1SC85CUJwE\nLdVBF3F0DI462MFRMKiDIJrq5JhVHCrUySmOgmD+A3V1UhAEBaEUKQhS372kzTU533D37vd9yeUu\nQFJFl3sjSfqdngiH+Ug09V05DxFjct5khdLdhSUUA1XlfohsobDTT09wHOJd5w9IzgZWY998hGjg\nSuMnxPOB9di3AhhdHGj8hGyuAOexPxYg34YV8lIZhJMQr0MbcAnHs5H/gVFV1Awp9Xp3QKslb+2h\nimIHeGFp8UzWqeyHyP79r2tWjUCmNvvT7CtDisxVyg665EffgwtF5VYhggKvQpf0RD6dymgD41l/\nQA6JNd1miDfyrTrMLrDN/vKXrE/ZK2SCllP0BD4opb+Sa2C0Lh21FDJrQwSg9z+Tj1cc+RAV1ZW9\nQuyNmRs6gY9vme5d3wLltJ4l8f1E4prO52xASjbffyTSFqminbkSUqu5cldZhQZP6qAncWpeqir3\nelLyGVpuxv+fZNRU8AcZcXmJ9ZTA3QAAAABJRU5ErkJggg==\n", "text/latex": [ "$$S_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$" ], "text/plain": [ "S ⋅❘0⟩ = ❘0⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGYAAAAWBAMAAADA0/SQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVJmJZkS7EM0ydqsi\n79384c/uAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABx0lEQVQ4EZWSTygEcRTHv7O7dtnZtilnNZGS\nLRYpJ83BQU6bI4mDclHm4CAOKyfl4iY5UOviZImDIntyd1IuHJSiXCRS4r03v9/8ZmZP3uH33vu+\n9+n3fn8AY21+EDtGikQ7QWxFJArTlSA/j8sqGw68LU1W51BGAs3sNTP2HBTTVufqPHJL0sWMdQcU\n/SbI9oTpoMozFVMuMK6ZtdInkPckTSzDyJ1eE3NIenUbmJI675MnJreeaJeUZzsmZoX8rAfsiqoZ\nLEqaWDSTbdA+77SRWMi0KyF0q72Q8/A+Vpmm+f29BGq14K55NhSleWSTbYPj8oxh8EjC8vWPnylb\ndXkfYVIVbjRWcHoiTLcU+p1iBZ+GCd7AMDl8R5g9pKlUdejybg3DI8fMoon1HaAda1Tc9/cbeDJM\ntsHE6BvbK4etdd8wi+ggqYsovBjmhvuiVnXKIVOYQ5+LdB20z71hBqL9HM8WvJBJO3CnSyfyGT6Y\nSV19nUFuM4bZY3Ke0sOWpx6CyuG9cWuLy2vS1L/GpC7kXfU+LNjbWo56zVyE4uCgL+dhgX9hsykm\n8YH5v7FNBC6xKiZzENPzaqaFmKqToyDI+lr4l/8DQoBvNm0GCEIAAAAASUVORK5CYII=\n", "text/latex": [ "$$S_{0} {\\left|1\\right\\rangle } = i {\\left|1\\right\\rangle }$$" ], "text/plain": [ "S ⋅❘1⟩ = ⅈ⋅❘1⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAF8AAAAWBAMAAABUNV1iAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIu+7q82J3ZlmRDJU\ndhDTAJzgAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABgUlEQVQ4EXWRL0/DUBTFz6C0+9dmCR8AiQAE\nYViYQGGGgARHzcIEJJCQEARJDWiCwBH6DZjAoFY1uwky/QyaBAghhAzufa+s7/HWI9rb+zunt68X\nyFQRqk6yVlrlEDdWfNMK6KTwWm++beyFZKJ2cHnTwcOkwJi4IaaOULxSgZkkOIYn6MEQvWpMHGAu\nQikmA7WvgRZ8ThvSySNwl8AXZKB2HeiLYMtw/yMdoClQZgsF3oH7BMsTAjqZT7kbB58UGKBnB3RS\nIBeGQ55Q+AC6ITwZaO2wdrk2SekbKIXVBrcpS4FiLBPZxSTOCPBijCiQDq40Mq+sTEJrwEsHixTg\nQ/cTVEMroBNaA7o1nHFghX6ywHSNA/unrBMuTUJrQFfgnNu0uAtglk26TLIu5IQlDnhJsAAc6Gau\ndeKu/mwP+Axf3A4On2iTdChTNkn/krKVI9MuJ8hWRvxI7kEZHRpiiiZIaaTdFvxJUs/qpl1zyF/7\nVrOqMof46aesWYF8Ylmtxi/9fI5h2SbKRwAAAABJRU5ErkJggg==\n", "text/latex": [ "$$T_{0} {\\left|0\\right\\rangle } = {\\left|0\\right\\rangle }$$" ], "text/plain": [ "T ⋅❘0⟩ = ❘0⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH0AAAAcBAMAAAC+Bq3pAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIu+7q82J3ZlmRDJU\ndhDTAJzgAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB+ElEQVQ4Eb2SPUgcQRiG3/OW27u921UU0tp5\njQkEtDXHYaMWWiikyxIwCgY0EBALYQU7CYhdiiPX2V4hiJVbWQjCNTmwiEwRE1IJSRQRuXO+2d2Z\n0ds9fwq/Yn7eeZ6d3ZkFHlFTj2DjUBYXPl92VMd2sVh68oaHHny3/mQd6Rocz0v28yxY8xOQ3xZs\nf4kvJoCZaiCOJ/jGCQw2wRd1MPV3aPLf6DtXi3cSfBlHPoEZF11LyG6GfuEVYDI+aa/uVlDB/hFo\nAP0eclXO88f+XG8CNj0svtKMch3cA775sCmn17K570zxSXxtMcp1sAZMMlh6jNc0iytrl1Ec+SFY\nDFEZH4SB6n79WKPJH5NRdxtMXfKo0dBikyDMzlC9paH1CS+or5uMOukLMHcN5NxCScXZKlFa9frO\nBp/mP7xfoFT6AjT4kZlVNFWcLxGlVblyzMS0S3TSFyC/fpzVMKj8gitg1fwPh86iOAbpC5BfP/Z7\nsKL8dA/xc8tUn2l4QY0q6QuQXz/2GVaV36fQYDTAfwwtk74A3zCx/0vlf9RYMfwOR7x4mEufg5nh\n1nSdvv+K/Gz5fAzgB3K77C9f9aAdlOdPmOXpcMyY9qdSoO2F90+xUaO2Q0W+Bs7PM/H9ZJ12UMVS\n5N8Bo7jyUP8OaIfvPXKf/2DwvgcBNw1IojzBSy/kAAAAAElFTkSuQmCC\n", "text/latex": [ "$$T_{0} {\\left|1\\right\\rangle } = e^{\\frac{i \\pi}{4}} {\\left|1\\right\\rangle }$$" ], "text/plain": [ " ⅈ⋅π \n", " ─── \n", " 4 \n", "T ⋅❘1⟩ = ℯ ⋅❘1⟩\n", " 0 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "