Skip to content

Instantly share code, notes, and snippets.

@quantshah
Last active July 23, 2016 22:25
Show Gist options
  • Save quantshah/5c7e1d0fee31ad91a3cbe1531df7cd9c to your computer and use it in GitHub Desktop.
Save quantshah/5c7e1d0fee31ad91a3cbe1531df7cd9c to your computer and use it in GitHub Desktop.
A very basic Quantum circuit implementation
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 208,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"using PyPlot"
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"ShowCircuit (generic function with 1 method)"
]
},
"execution_count": 209,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"function ShowCircuit(N::Int32, gate_dict::Dict)\n",
" \"\"\"\n",
" A simple implementation of quantum circuit visualization.\n",
" \n",
" Parameters\n",
" ----------\n",
" N : Int32\n",
" The number of qubits in the circuit\n",
" \n",
" gate_dict : Dict\n",
" A dictionary containing the position of each gate and the gate\n",
" label as a key value pairs. (Tuple => AbstractString) \n",
" \"\"\"\n",
" figure(figsize=(10, 5));\n",
" title_str = string(\"Displaying circuit with \",N,\" qubits\");\n",
" title(title_str);\n",
"\n",
" \n",
" for position in keys(gates)\n",
" gate_label = string(\"\\$\",gates[position],\"\\$\");\n",
" scatter(position[1],position[2], marker=gate_label, s=1000.,);\n",
" end\n",
" yticks(collect(1:N+1));\n",
" x_len = maximum(maximum(keys(gates)))\n",
" xticks([1:x_len]);\n",
" grid(axis=\"x\")\n",
" grid(axis=\"y\", linewidth=1, linestyle=\"-\")\n",
"end"
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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nDKePHmyli9frssuu0wJCQl677339OCDD2r58uVasWJFldfyN/eEhATZtq0LLrhAn3zyifr06aMhQ4YoMjJSW7duVXZ2tj7++GMlJycH/F4AhCAbAEpZlmV7PJ4alzl8+LAdGRlpezwee/PmzeXjAwYMqLJu48aN7Xbt2tkHDx6ssp38/PxK37dv3962LMvu16+fXVRUVD6+Z88eu2PHjrZlWfayZcvKxzdt2mRblmWPGTOm0na2b99eaf0y7777rh0REWFfd911lcbvv/9+27IsOyMjo8o6/fr1syMiIuyNGzeWj82dO9e2LMt+9tlnq61/2LBh9qFDh8rHd+7caSckJNiNGjWyi4uLy8eXLVtmW5Zld+7c2S4oKCgfLyoqsvv3729blmWffPLJVWqqzq5du+yGDRvaMTEx9vLly6s8v23btkrfW5Zlp6WlVRq76667bMuy7Pr169tr1qypso0rrrjCtizLnjBhQpXnfvnlF/vnn38u/766z0KZmn5+v32/TssezZ133mlblmW/88475WO33HKLHRUVZZ933nn2SSedVD7u9XrtJk2a2J06daq0jereQ1ZWlm1Zlj1t2rQa31tUVJS9dOnSSs/ddttttmVZ9owZMwJ6LyUlJfZdd91l33XXXfaNN95od+vWzY6Pj7fvuusuv7fx4Ycf2pZl2aeeeqq9d+/e8vFDhw7ZvXv3rvazVvZ5yMnJqbI9p33v6quvti3Lsps3b25v2bKlfNzn89mXXHKJbVmWfc8991RaJ9DcP/vsM9uyLHvEiBHVvteK7w+A2TjdC0BAoqOj1aRJE0nSrl27alzW4/GUn2LzW04TfqdPn17pqEXjxo11xx13SJLmzp171PratGlT5aiHJF1wwQVKSkrS+++/X2l87Nixio2N1RNPPFFpfP369VqxYoXS0tLUqVOno76udOQvwrNnz670l+LmzZtr+PDh2rdvn77++uvy8bLTnW6//fZKR3CioqI0ffp0v16v4rb279+v66+/vsppTpLKjxz545prrtFZZ51VaWznzp168cUX1aZNG91///1V1qlXr16NRzeOt7IjIpmZmeVjmZmZ6tWrly666CJt27ZNGzdulCStWbNGe/furXIU5VhcccUVVU6nGz9+vCRp9erVAW2ruLhYd999t+655x5lZGTos88+03nnnafhw4f7vY2y/eb2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qEuXLrr44osVFRWlN998U40bN1abNm38ntDctGlTvfDCC/qf//kf9e/fX0OHDtWZZ56pgoICrV27Vtu3b6/xKJI/MjIy9MUXX+iRRx7R0qVLNWjQIEVHR2vTpk16//339eabb6p///6Sjtzr4v7779f06dP12WefKSkpSV9//bXee+89XXzxxVq4cKFfr9mnTx/Fx8frwQcf1O7du8vvw/LXv/7Vr7/Gp6amatGiRZJUqUlJTExUx44d9e233yoyMrLaid5S1Tued+7cWe3atdOCBQsUFRWlk046SZZladSoUUpMTPTrPfnrqaee0jPPPKO+ffsqMTFRCQkJ2rFjh95//3399NNP6tatm99X5urTp49uvPFGzZ49W2eeeaYuueQSRUVFadGiRWratKlat25dZZ0ePXooNTVV2dnZ6tmzp9LS0vTTTz/prbfe0u9//3u99NJLjq/Xr18/devWTZdddpkaNmyoxYsXa+3aterevXu1TW519TrlvmbNGl188cXq2bOnOnfurDZt2mjXrl1atGiRvF6v/va3v/n1MwFgAFcufAwgJJXdJ8WyLNuyLDsmJsZu3ry53b17d3v8+PH24sWLHddNTU2tdF+J4uJie+bMmfaQIUPsxMREOzY21m7RooXdu3dv+/HHH690zxDb/vV+Cfv27bMnTJhgt23b1o6JibHPOOMMe/bs2VVez+leDYWFhfbtt99ud+rUyY6NjbUTExPtiRMn2rt3765S42+tXbvWtizLbteune31eqtd5plnnrE9Hk+Vezh06NDB8b4m6enptsfjqXLPCZ/PZ8+aNcvu3LmzHRMTY7dt29aeOHGiXVBQYNevX99OTk52rLU669ats0eNGmW3bdvWjo6Otlu1amWnpqbaTz75ZKXlqrtPilONFR04cMC+99577d/97nd2fHy83aBBA7tLly72TTfdZO/cubPSsl9++aU9bNgwu0GDBnb9+vXttLQ0e9myZQH//N577z27d+/edv369cs/n99//71fP4/Zs2fblmXZTZs2rfLctddea1uWZZ9zzjnVruv0WVm1apU9cOBAu1GjRrbH46n0M5s7d261761MdT93Jx9++KH9l7/8xe7SpYvduHFjOyoqym7WrJmdmppqz549u9p7AR1NRkaGnZSUVOWzVt29SmzbtgsKCuxrr73WbtGihR0TE2N37drV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jqlOAAAAnJhoUk5ATvNRgjk9y2k+yvnnB74tAAAAQAqwSVmzZo2GDRum9u3bKz4+Xk2bNlWfPn30/PPP11V9qAP+zEeRpNdff/2o28rOzlZERBMxHyW0+JMdQhPZmYnczEV25iK78BZQk1JQUKDExERNnz5d7777rp577jl16NBBf/7zn3XvvffWVY2oRf7OR5Gk+fPnH3V7mZnZ8nqZjxJq/MkOoYnszERu5iI7c5FdeLNs27aPdSO9e/fWjh079P3331caz8vLU0pKinJzc5WcnHysL4Na8Nprr+niiy+W9L2OnO7lVUREM91550268847A9rWoUOH1LBhgoqLZ0r6a+no1frd777QZ5/l1rQqAAAATjCB9Aa1MieladOmiozk5vUmqO35KMXFh8V8FAAAANSmoDoL27bl9Xq1d+9evfzyy1q8eLEefvjh2q4NdcDf+Sj+KJuP4vWeWTrCfBQAAAAcu6CalOuvv15PPPGEJCkiIkL333+/rr/++lotDLXv1/kot1QY/VC27VO3boE3KTt2bJHXe56YjwIAAIDaFFSTcvvtt2v8+PHauXOn3njjDd188806dOiQ/va3v1W7/Pr164+pSNSOpUuXln7VRFJe6dc9VFxcqK++qm6NtZJ+V8MWO0q6uMK2Fqpjx9P13Xff1Ua5OAbp6elKT093uwwEgezMRG7mIjtzkZ15AukJamXi/A033KCnnnpK27dvV/PmzcvHyybHAAAAAIAkvybO18ps9x49euixxx7Tpk2bKjUpZebNm6ekpKTaeCkcg0suuUybN58h6a7SkecVGTlb06f/b8DbeuONN/TRR1/I610iyZK0XdJwzZo1S/3796+9ogEAABAW1q9fr5EjR/q1bK00KVlZWYqIiFDHjh2rfT4pKYlLELssPz9fmzd/I+lOSWVZ3K3evfvqlltuqWHN6r388mvyes+XVHak7DNZlqXRo0crISGhdooGAADACSmgJmX8+PFq1KiRevTooZYtWyo/P18vv/yyXnrpJU2dOlVNmzatqzpxjJYtW1b61YDS//oUEbFM5533V6dVHB04cEC5uZ9KeqjCaLa6dj2bBgUAAADHLKD7pPTp00effvqpJk6cqEGDBumaa67Rzp07NW/ePN133311VSNqQXZ2tiIjK94f5XN5vXtrvFzwihUrqh1fuXKlvN4ScX+U0OWU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u92By3US+ENAe4WFhatBMYEVK1YYXYIESdlZk3KzLmXX8mJjY+nWrQcnThwADgR8/P33P1Xn4/T0NA4ezAVKgMDyS03tx8CBAwOuQVqfzev1eltq87y8PNLT08nNzdUPRCs4ceIEV65cCfi4pKSkevdMOXv2LGfPng14rw4dOhAXFxfwcSIiIhK6KioqKCwsDPi4iIgIunbtWmeOxOv1cvz4cdxud0B72Ww2unXrhsPhCLgOaR6B9AZ6JiWEdOvWrdn26tixIx07dmy2/URERKTtioqK4pZbbmmWvWw2G927d2+WvcS8NDgvIiIiIiKmoiZFfFq6dKnRJUiQlJ11KTtrUm7WpeysS9mFNjUp4tOlS5eMLkGCpOysS9lZk3KzLmVnXcoutGlwXkREREREWlwgvYGeSREREREREVNRkyIiIiIiIqaiJkV8Ki4uNroECZKysy5lZ03KzbqUnXUpu9CmJkV8+slPfmJ0CRIkZWddys6alJt1KTvrUnahTU2K+JSZmWl0CRIkZWddys6alJt1KTvrUnahTU2K+KQrslmXsrMuZWdNys26lJ11KbvQpiZFRERERERMRU2KiIiIiIiYipoU8WnVqlVGlyBBUnbWpeysSblZl7KzLmUX2tSkiE95eXlGlyBBUnbWpeysSblZl7KzLmUX2mxer9fbUpvn5eWRnp5Obm6uhptERERERNqwQHoDPZMiIiIiIiKmoiZFRERERERMRU2KiIiIiIiYipoU8Wny5MlGlyBBUnbWpeysSblZl7KzLmUX2tSkiE+zZ882ugQJkrKzLmVnTcrNupSddSm70Kare4mIiIiISIvT1b1ERERERMSy1KSIiIiIiIipqEkRn9555x2jS5AgKTvrUnbWpNysS9lZl7ILbWpSxKelS5caXYIESdlZl7KzJuVmXcrOupRdaFOTIj4lJiYaXYIESdlZl7KzJuVmXcrOupRdaFOTIiIiIiIipqImRURERERETEVNioiIiIiImIq9Nb5Ifn5+a3wZaWb79+8nLy/P6DIkCMrOupSdNSk361J21qXsrCeQnqBF7zh/6tQp7rvvPnJyclrqS4iIiIiIiEWMGjWKdevWkZSU1OjjWrRJgapG5dSpUy35JURERERExAKSkpKabFCgFZoUERERERGRQGhwXkRERERETEVNioiIiIiImIqaFBERERERMRU1KSIiIiIiYipqUqRGaWkp8+fPZ9y4cSQmJhIWFkZWVpbRZYkfduzYwY9//GNSUlKIiYmhW7du/OAHP9D14y3gk08+YeLEiXTv3p127doRHx/P7bffzpo1a4wuTQK0cuVKwsLCuOmmm4wuRRrhdDoJCwtr8G3//v1GlydN+OCDD5gwYQJxcXG0a9eOlJQUnn/+eaPLkhbQKjdzFGsoLi7mtddeIy0tjSlTprBy5UpsNpvRZYkfXn31VYqKipg7dy59+/alqKiI5cuXM3ToULZt28bo0aONLlF8OH/+PMnJyUyfPp2uXbtSWlrKmjVreOCBBzh27BgLFy40ukTxw8mTJ5k3bx5dunThwoULRpcjfnjxxRfr/bexb9++BlUj/li7di0PPvgg06ZN469//Svt27fn6NGjutVFiNIliKVBJSUlJCYmkpmZybPPPmt0OdKE06dP06lTpzprZWVl9O7dm+9+97ts377doMokWMOGDaOwsJCvv/7a6FLED5MmTcJut9OhQwc2bNjAxYsXjS5JfHA6nYwZM4YNGzZwzz33GF2O+OnkyZPceuutPPTQQ6xYscLocqQV6OVe0iD1rtZyfYMCEBMTQ2pqKidOnDCgIrlR8fHx2O16stsKVq9eze7du3n55Zf1304LUVbWsnLlSi5dusTTTz9tdCnSStSkiISo8+fPk5eXp5cvWITX68XlclFUVMQrr7zCtm3bmDdvntFlSRO+/fZb5syZw5IlS+jSpYvR5UgAZs2ahcPhIDY2lvHjx/Phhx8aXZI0YteuXcTHx/PFF1+QlpaGw+Ggc+fOzJw5U89chij9mU4kRM2aNYvy8nLNNFjEzJkz+eMf/whAeHg4L730EjNnzjS4KmnKrFmz6NOnDz/96U+NLkX81KFDB+bMmUNGRgbx8fEcOXKE3/zmN2RkZLBlyxbGjRtndInSgJMnT1JWVsbUqVP55S9/ybBhw9i/fz+LFy/m888/Z/fu3UaXKM1MTYpICFq0aBFr165lxYoVDBgwwOhyxA8LFy5kxowZnD59mo0bN/LUU09RUVGhlzaY2IYNG9i8eTOffvqp0aVIANLS0khLS6v5ePjw4UyZMoV+/frx9NNPq0kxKY/HQ0VFBZmZmcyfPx+AkSNHEhERwZw5c8jOzmbMmDEGVynNSS/3EgkxWVlZ/PrXv+aFF17g8ccfN7oc8dPNN9/MwIEDGT9+PK+88gqPPfYYixYtoqioyOjSpAGlpaXMnj2bJ598ks6dO3Pu3DnOnTvHlStXgKqXW5aVlRlcpfgrNjaWiRMn8umnn3L58mWjy5EGxMfHA3DnnXfWWR8/fjwABw4caPWapGWpSREJIVlZWTVvzzzzjNHlyA0YNGgQLpeLgoICo0uRBhQXF3P69Gleeukl4uLiat7eeOMNysrK6NixIw888IDRZUoQdOl9c6r97FdDlFvo0cu9RELEr371K7Kysli0aBGLFi0yuhy5QTt37iQ8PJxevXoZXYo0ICkpiZ07d9Y5MfJ6vSxZsoScnBy2bt1KQkKCgRVKIM6ePcumTZsYMGAAERERRpcjDbj33nt59dVXeffdd+nfv3/N+pYtWwAYMmSIUaVJC1GTInW89957lJWV1Vwp49ChQ2zYsAGAiRMnEh0dbWR54sPy5ctZvHgx48ePZ8KECezdu7fO54cOHWpQZdKUGTNmEBsby6BBg+jcuTPFxcWsX7+et956i/nz59e8xEHMJTIyklGjRtVbf/311wkPD2fkyJEGVCX+mD59Oj179mTgwIHExcVx5MgRli9fTlFREX/5y1+MLk98uOOOO7jrrrt47rnn8Hg8DBkyhI8//pjnnnuOSZMmMXz4cKNLlGammzlKHT179qy5eZzNZqu5jrzNZqOgoIDk5GQjyxMfRo8eza5duxq87r/NZsPtdhtQlfjjT3/6E6+//jr5+fmcO3eO9u3bk5aWxqOPPsqPfvQjo8uTAD388MO8/fbbuuu8iS1dupQ333yTgoICSktLiYuLY8SIESxYsID09HSjy5NGVFRUkJWVxdq1azl16hRdu3Zl+vTpLF68GIfDYXR50szUpIiIiIiIiKlocF5ERERERExFTYqIiIiIiJiKmhQRERERETEVNSkiIiIiImIqalJERERERMRU1KSIiIiIiIipqEkRERERERFTUZMiIiIiIiKmoiZFRERERERMRU2KiIiIiIiYipoUERERERExlf8Hg7WhOByUy0gAAAAASUVORK5CYII=",
"text/plain": [
"PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x871444ec>)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gates = Dict((1,1)=>\"H\", (2,2)=>\"X\", (1,3)=>\"H\", (6,1)=>\"H\", (4,4)=>\"H\")\n",
"ShowCircuit(3, gates)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 0.4.6",
"language": "julia",
"name": "julia-0.4"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "0.4.6"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment