Skip to content

Instantly share code, notes, and snippets.

@terasakisatoshi
Created December 6, 2022 11:04
Show Gist options
  • Save terasakisatoshi/ed83e42c9ad938dc7188a6308ef73ee4 to your computer and use it in GitHub Desktop.
Save terasakisatoshi/ed83e42c9ad938dc7188a6308ef73ee4 to your computer and use it in GitHub Desktop.
Kyulacs.jl + qulacsvis
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "bc977fe5-f7f6-46de-9baf-688c4e39d463",
"metadata": {},
"outputs": [],
"source": [
"using Kyulacs\n",
"using PyPlot\n",
"using Kyulacs.Vis"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "c3011877-d2a5-4e3b-93b9-2121d36a83d4",
"metadata": {},
"outputs": [],
"source": [
"# Construct a quantum circuit\n",
"circuit = QuantumCircuit(3)\n",
"circuit.add_X_gate(0)\n",
"circuit.add_Y_gate(1)\n",
"circuit.add_Z_gate(2)\n",
"circuit.add_dense_matrix_gate(\n",
" [0, 1], [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0]]\n",
")\n",
"circuit.add_CNOT_gate(2, 0)\n",
"circuit.add_X_gate(2)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ef805c4f-d059-4730-bc0f-f1282d33a08b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ___ ___ ___ \n",
" | X | |DeM| |CX | \n",
"--| |---| |---| |----------\n",
" |___| | | |___| \n",
" ___ | | | \n",
" | Y | | | | \n",
"--| |---| |-----|------------\n",
" |___| |___| | \n",
" ___ | ___ \n",
" | Z | | | X | \n",
"--| |-------------●-----| |--\n",
" |___| |___| \n"
]
}
],
"source": [
"circuit_drawer(circuit)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "b3a2e9de-6e14-4d90-86e3-9fd552b5b09b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ___ ___ ___ \n",
" | X | |DeM| |CX | \n",
"--| |---| |---| |----------\n",
" |___| | | |___| \n",
" ___ | | | \n",
" | Y | | | | \n",
"--| |---| |-----|------------\n",
" |___| |___| | \n",
" ___ | ___ \n",
" | Z | | | X | \n",
"--| |-------------●-----| |--\n",
" |___| |___| \n"
]
}
],
"source": [
"drawer = TextCircuitDrawer(circuit)\n",
"drawer.draw(verbose=false)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "26490651-e3c5-47fc-a0a3-31b5b219aa96",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZMAAAEnCAYAAABsR64CAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAZ0klEQVR4nO3de1BU993H8c8KkshFvEW88ajxUlBRXLxgUo3NxHaoWrxQtSYYO6laEWtHx9o6Gu2YaK1/6KhTRZMxkWqMcUrXplNHQdSmOjTLxUAE06SNAYWoDRBhoqjs80dG+lA1j/pb9uxh36+ZnUnOsnu+u7K895yzF4fH4/EIAAADbaweAABgf8QEAGCMmAAAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGPEBABgjJgAAIwREwCAMWICADBGTAAAxogJAMAYMQEAGCMmAABjxAQAYIyYAACMERMAgDFiAgAwRkwAAMaICQDAGDEBABgjJgAAY8QEAGAs2OoBYK6+vl5lZWVWj/HQYmJiFBYW5pXr4j4ArEVMWoGysjKNGDHC6jEemtvtVkJCgleui/sAsBa7uQAAxtgyaWUyMzMVGxtr9Rj3VVpaqtTU1BZdB/cB4HvEpJWJjY0N+N0m3AeA77GbCwBgjJgAAIwREwCAMWICADBGTAAAxogJAMAYMQEAGCMmAABjxAQAYIyYAACMERMAgDE+mwtAM5WVlXK73crPz1dRUZFcLpckafz48YqKipLT6VRCQoISEhLUoUMHa4eF32DLBIBu3rypd955R88++6wGDx6s7du3q6GhQS+88ELTz7z88suaOHGiLl26pLVr16p3796aOXOmTp48KY/HY+H08AdsmQABzOPxaO/evVq5cqX69++vtLQ0TZ06VSEhIXf97He+8x1Javr4/NraWmVmZmrhwoUKCgrS9u3b9cwzz/h0fvgPYgIEqIsXL2rBggWqqKiQy+V66G+qjIyMVHp6uhYtWiSXy6XZs2dr+vTp2rBhA19FHIDYzQUEoFOnTsnpdGrkyJH6+9//bvSVxw6HQ1OmTFFxcbGqq6vldDr16aefem9Y2AIxAQLMsWPHlJKSov3792vNmjX33KX1KDp16qTMzEwtXrxY48aN08cff+yV64U9sJsLCCB5eXmaPXu2/vCHP2js2LEtso709HS1bdtWEyZM0OnTp9W9e/cWWQ/8C1smQICor6/X7NmztWvXrhYLyR0LFizQ7NmzNW/ePF7pFSCICRAgfvnLX+rpp5/W1KlTfbK+NWvWqKKiQnv37vXJ+mAtdnMBAeD06dPKyspScXGxz9YZEhKiN954Q9/97neVlJSkrl27+mzd8D22TIAAsGnTJq1atUodO3b06Xrj4+OVnJys1157zafrhe/ZLiZnz55VcnKyIiMj1b59e02ZMkWVlZWKiIjQrFmzrB4P8Dvl5eU6efJks3ez+9LChQu1c+dO3b5925L1wzdsFZOcnBwlJibq/PnzWrVqldavX6+KigolJSWprq5O8fHxVo8I+J3du3fr+eefV3h4uCXrdzqd6tmzp/785z9bsn74hm1icuXKFc2cOVNOp1OFhYVavny50tPTlZOTo88++0ySiImXfPLJJwoNDVVlZWXTsn379qlHjx4qLy+3cDI8ijvvK7FSSkqKjh07ZukMaFm2icnGjRtVXV2tPXv2qF27dk3LIyMj5XQ6JRETb+nXr58mT56sLVu2SJLOnDmj9PR0uVwuRUdHWzscHsqtW7dUXFzc9BixSkJCgtxut6UzoGXZJiYHDhzQ2LFjNXDgwHueHxUVpW7dukn6+gG0ZMkSderUSR06dNBLL72k69ev+3Jc21uxYoUyMjJUUlKiadOmKSMjQyNHjrR6LDykc+fOqVevXoqIiLB0DqfTqQ8++EC3bt2ydA60HFvEpKqqShcvXlRCQsJd5zU2Nqq4uLjZVsn69euVm5ur4uJi/eMf/9C5c+f0i1/8wocT25/T6dSoUaM0evRoLVy4UDNmzLB6JDyCjz76SIMGDbJ6DLVv316dO3dWRUWF1aOghdjifSb19fWSvv5Auf/mcrl0+fLlZjF57bXX9Nvf/lY9e/aUJK1du1Y//OEPtXnzZgUFBflk5m9yr9vhbxobGxUUFKQ2bdpoxYoVLbIOkw8XbC18dR9443fOG9fRt29f4+vAg/H1Jw/YYsskOjpaQUFBOnnyZLPlFy5c0OLFiyX953hJTU2NysvLm8XF6XTq2rVrfJLpQ1i2bJlqamo0YMAA7du3z+pxAPg5W8QkJCREc+bMkdvtVnJysnbt2qXVq1dr9OjR6ty5s6T/xOTatWuS1OzrRO/8953zrObxeLx68vaBzYyMDGVlZcnlcmnFihXatGlTizzLcbvdfnsf+Io374N7nd555x1NnTrV6DruMJ0lOjpa//rXv1r09nK6+9/NV2wRE0naunWr5s+fr7y8PC1btkx5eXnKyspSjx49FBoa2nRg/s6Bxtra2qbL1tTUNDsP95edna2VK1fq3XffVdeuXZWSkqKGhoam7wGHvQwcOFDnzp2zegx9+eWX+ve//61evXpZPQpaiG1iEh4eroyMDFVVVenatWs6evSoxowZo5KSEsXFxalNm69vSocOHRQdHa2ioqKmyxYWFioiIkJ9+vSxZnibKCsr06xZs5SZmakhQ4ZIkoKCgrR06VJt3LjR4unwKAYNGqSKigrLt8oLCgo0dOhQBQfb4jAtHoFtYnIvNTU1qqiouOv9JT/5yU+0YcMGXbp0SVeuXNHatWs1d+5cvzj47s9iYmJ09epVff/732+2fNGiRTpz5oxFU8FEcHCw4uLiVFBQYOkc+fn5vOCilbN1TO58Aup/x2TlypUaN26cBg8erP79+ys2NpZn1ghYEyZM0KFDhyyd4dChQ5owYYKlM6BltcqYBAcHa+vWraqurlZtba1ef/31Zu+aBwLJvHnztG/fPtXV1Vmy/oKCAl26dEkTJ060ZP3wDVvHJC0tTR6PR4mJiVaPAvit6OhoPfPMM/r9739vyfp37NihBQsWsJu5leNoGBAAli9frhkzZmjmzJk+/U6ToqIiuVwulZSU+GydsIatt0wAPJinnnpKU6dO1ZIlS3y2zoaGBr344ovatGkT37IYAIgJECB+85vf6G9/+5uysrJ8sr5f//rXio6O1pw5c3yyPliL3VxAgAgLC9P+/fs1adIkdenSRWPHjm2xdWVkZGj//v06ffq0LT6LDubYMgECyOjRo7V//35Nnz5d2dnZLbKObdu26dVXX9WxY8fUvXv3FlkH/A8xAQLMnfedPP/881q7dq0aGhq8cr1ffPGFUlNTtX37dp06dUr9+/f3yvXCHogJEIDGjRungoICud1ujRw50uiDMj0ej7KyshQXF6dOnTqpoKCAjy4KQBwzAQJUz5499ac//Ul79+5VcnKy+vXrp7S0NE2bNk0hISH/7+Vra2u1d+9e/e53v1NwcLDeeustjRs3zgeTwx8REyCAORwOvfjii5o9e7ZcLpd27NihtLQ0jRgxQgkJCc2+O/748eOqqKhQfn6+8vPzVVxcrKSkJGVkZGjs2LEcaA9wxASA2rZtq5SUFKWkpKiqqkput1v5+fnav39/08+88sor6tq1qxISEpScnCyn09nse4MQ2IgJgGa6deumSZMmadKkSZL+83W9x48ft3Is+DkOwAMAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGPEBABgjJgAAIwREwCAMWICADDGZ3O1MqWlpVaP8I38fT4Aj4aYtDKpqalWjwAgALGbCwBgjC2TViAmJsboa1etEhMTY/UIALyEmLQCYWFhSkhIsHoMAAGM3VwAAGPEBABgjJgAAIwREwSc6upqORwOhYeHKzw8XP/zP/+jlJQUlZSUPNTle/fu3Wx5RUWFQkND1alTp5YYG/BrxAQBp6ioSJ07d1ZdXZ3q6upUWFioYcOGafTo0SorK3ugy/fs2VPV1dW6du1a0/KVK1eqV69eGjZsWEuOD/glYoKAU1RU1OwPfufOnbV69Wo5nU69/vrrTct3796tQYMGKTIyUklJSbp8+XLT5YcPH67Bgwfrww8/lCQVFBTo9OnTevrppzV8+HDf3iDADxATBJzCwkLFx8fftTwmJkYXL16UJK1fv147d+7U4cOHdeXKFfXs2VOrVq1qdvmhQ4c27RpbtmyZNmzYoHPnzt3zuoHWjpgg4BQVFd3zD35tba2eeOIJXb58Wa+++qreeust9e/fXyEhIXrppZf0/vvvN7v80KFD9eGHH+rw4cO6ceOGpk6dquLiYrZMEJB40yICyo0bN1RaWnrXcY3bt2/r9OnT2rp1q3JycnTjxg2NGjWq6XyPx6Phw4c3XT4+Pl6XLl3SoUOHdOTIEe3Zs0cfffSRGhsbFRsb6+ubBViOLRMElJKSEgUFBd31B3/nzp0KCQnR5MmT9cUXX2jq1KmqqalpOtXW1urEiRMqKSlRaGionnzyScXFxenEiRMaNmyYEhMTVVhYqCFDhig4mOdoCDzEBAGlsLBQgwYNUtu2bSVJ5eXlWrVqldasWaMDBw6obdu2cjqdys3NVUFBgSTpyy+/lMvlksfjUWFhoYYOHSqHw6EOHTooNzdX27dvl3T/3WdAICAmCChFRUX64IMPFBERoY4dO+q5555TdXW13G53026tMWPG6OWXX9b06dMVHh6uQYMG6ciRI3I4HHcFY/z48erSpYuk+x/YBwKBw+PxeKweAjCVn5+vESNGSJLcbrdff/ClnWaVJIfDIenr40bA/bBlAgAwRkwAAMaICQDAGDEBABjjBfGtQH19/QN9QKG/iYmJUVhYmNVjAPACYtIKlJWVNb06yE7s8EomAA+G3VwAAGNsmbQymZmZfv3ZUKWlpUpNTbV6DABeRkxamdjYWHYdAfA5dnMBAIwREwCAMWICADBGTAAAxogJAMAYMQEAGCMmAABjxAQAYIyYAACMERMAgDFiAgAwRkwAAMaICQDAGDEBABgjJgAAY8QEAGCMmAAAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGO2i8nZs2eVnJysyMhItW/fXlOmTFFlZaUiIiI0a9Ysq8cDgIBkq5jk5OQoMTFR58+f16pVq7R+/XpVVFQoKSlJdXV1io+Pt3rEVqG6uloRERE6ceJEs+WpqamaNm2aPB6PNYMB8FvBVg/woK5cuaKZM2fK6XQqOztb7dq1k/T1H7i+fftKEjHxko4dO2r+/PnasmWLxo8fL0lat26dSktLderUKTkcDmsHBOB3bBOTjRs3qrq6Wnv27GkKiSRFRkbK6XQqJyeHmHjR0qVL1b9/f/3zn/9Ufn6+du3apby8PIWGhlo9GgA/ZJvdXAcOHNDYsWM1cODAe54fFRWlbt26SZIOHjyob3/72woPD1efPn18OGXr0bNnT/3oRz9SWlqa0tLS5HK51KNHD6vHAuCnbLFlUlVVpYsXL2rmzJl3ndfY2Kji4mINHz68aVnHjh2Vnp6uzz//XJs3b/blqA/ELruJli5dqri4OL399ttyOp1ev/4RI0Z4/Trtxk73gV1+b/E1Xx/btEVM6uvrJd37l9nlcuny5cvNdnFNmDBBkvTHP/7RF+O1Wg0NDXrsscc0bdo0q0cB4OdssZsrOjpaQUFBOnnyZLPlFy5c0OLFiyXZ6+C7x+Px6sntdrfInGfPntWQIUMUHNwyzzncbrff3wctzZv3QUud7rB6Dk6P9u/mK7bYMgkJCdGcOXO0Z88eJScna+LEiSovL9fu3bsVFRWlixcv2iomdlFUVMT9CuCB2GLLRJK2bt2q+fPnKy8vT8uWLVNeXp6ysrLUo0cPhYaG3vfAPB7d2bNniQmAB2KLLRNJCg8PV0ZGhjIyMpotLykpUVxcnNq0sU0XbeO/37QIAPdj67/ANTU1qqiouOvZ8+3bt3X9+nXdvHlTHo9H169f140bN6wZEgACgG22TO6luLhY0t0H3zMzM/XjH/+46f/btWun3r1769NPP/XhdAAQOGy9ZXK/mMydO/euVzYQEgBoObaOSVpamjwejxITE60eBQACmq1jAgDwD8QEAGCMmAAAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGPEBABgjJgAAIwREwCAMWICADBGTAAAxogJAMAYMQEAGCMmAABjxAQAYIyYAACMERMAgDFiAgAwRkwAAMaCrR4A3lVaWmr1CN/IF/NxHwC+R0xamdTUVKtHsBz3AeB77OYCABhzeDwej9VDwEx9fb3KysqsHuOhxcTEKCwszCvXxX3QchwOhySJPxX4JsQEwDciJngQ7OYCABgjJgAAY8QEAGCMmAAAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGPEBABgjJgAAIwREwCAMWICADBGTAAAxogJAMAY3wHfCvAtg8DXeCxYh5i0AmVlZRoxYoTVYzw0t9uthIQEq8dAK8JjwTrs5gIAGGPLpJXJzMxUbGys1WPcV2lpqVJTU60eAwGAx4JvEZNWJjY21vaby4A38FjwLXZzAQCMERMAgDFiAgAwRkwAAMaICQDAGDEBABgjJgAAY8QEAGCMmAAAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGPEBABgjJgAAIwREwCAMWICADBGTAAAxogJAMAYMQEAGCMmAABjtovJ2bNnlZycrMjISLVv315TpkxRZWWlIiIiNGvWLKvHA1qNhoYGvf32203/v3DhQuXm5srj8Vg4FfyVrWKSk5OjxMREnT9/XqtWrdL69etVUVGhpKQk1dXVKT4+3uoRgVbhzTffVO/evZs9Qdu5c6eeffZZDRo0SO+9956F08Ef2SYmV65c0cyZM+V0OlVYWKjly5crPT1dOTk5+uyzzySJmHjJunXrFB4e3uz0+OOPy+Fw6MCBA1aPhxa2bds2zZ07V1VVVfc8v6ysTM8995xyc3N9PJnvffLJJwoNDVVlZWXTsn379qlHjx4qLy+3cDL/Y5uYbNy4UdXV1dqzZ4/atWvXtDwyMlJOp1MSMfGW1atXq66urulUVVWl+Ph4TZw4UdOnT7d6PLSgc+fOacmSJf/vz924cUMzZszQV1995YOprNOvXz9NnjxZW7ZskSSdOXNG6enpcrlcio6OtnY4P2ObmBw4cEBjx47VwIED73l+VFSUunXrphs3bmjevHl68sknFRERoYEDB2rbtm0+nrb1+OqrrzRp0iSFhYXp0KFDatu2rdUjoQXt2LHjgY+JXL16VQcPHmzhiay3YsUKZWRkqKSkRNOmTVNGRoZGjhxp9Vh+xxYxqaqq0sWLF5WQkHDXeY2NjSouLm7aKrl165a6deumo0ePqra2VgcPHtQrr7wSEL/03tbQ0KBp06apoaFBhw8f1uOPP271SGhBjY2NevPNNx/qMm+88UbLDONHnE6nRo0apdGjR2vhwoWaMWOG1SP5pWCrB3gQ9fX1kiSHw3HXeS6XS5cvX26KSVhYmNatW9d0fnx8vH7wgx/ovffe85tfgnvdDn9z69YtzZo1S59//rlyc3MVFhbm9XWMGDHC69cJ3zpx4oQtfp9NNDY2KigoSG3atNGKFStaZB0t8Vjw9avubLFlEh0draCgIJ08ebLZ8gsXLmjx4sWS7n+85ObNm/rrX/+qoUOHtvSYrUZjY6Pmzp2r8+fP6+jRo4qMjLR6JMAyy5YtU01NjQYMGKB9+/ZZPY7fskVMQkJCNGfOHLndbiUnJ2vXrl1avXq1Ro8erc6dO0u6f0zS09MVERGhOXPm+HDib+bxeLx6crvdXp3vpz/9qfLy8pSdna0uXbp49br/L7fb7fX7gtOjnxobGzVkyJCH+jecO3eu5XP/35O3HwsZGRnKysqSy+XSihUrtGnTJnk83n/G3xKPBV+zRUwkaevWrZo/f77y8vK0bNky5eXlKSsrSz169FBoaOg9D8wvXbpUZ86c0V/+8heFhIRYMLX9LF26VEeOHFF2dra6d+9u9TjwIYfDobS0tIe6zMP+vJ1kZ2dr5cqVevfdd9W1a1elpKSooaFBLpfL6tH8km1iEh4eroyMDFVVVenatWs6evSoxowZo5KSEsXFxalNm+Y35ec//7mOHTumnJycFn123ZqUlJRo8+bNqqqq0uDBg5u9zyQqKkqNjY1Wj4gW9sILL6hPnz4P9LPf+973Wu2rmsrKyjRr1ixlZmY2ba0FBQVp6dKl2rhxo8XT+SdbHIC/n5qaGlVUVGjixInNlv/sZz/T8ePHlZubqyeeeMKi6exnyJAhlmwew39EREToyJEjmjBhwje+Ke+pp55q9lErrU1MTIyuXr161/JFixZp0aJFFkzk/2yzZXIvxcXFkpofL7lw4YK2bdumjz/+WH379m16Zp2UlGTRlIC9fOtb39L777+vX/3qV3c9GRswYIA2b96s7OxsXpiBZmy9ZXKvmPTu3Ztn14ChqKgorV+/XmvWrFFhYaHq6urUuXNnDRs27K5dyoBk85ikpaW16gOAgNUee+wxJSYmWj0GbICnGAAAY8QEAGCMmAAAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGPEBABgjJgAAIwREwCAMWICADBGTAAAxogJAMAYMQEAGCMmAABjxAQAYIyYAACMERMAgDFiAgAwRkwAAMaCrR4A3lVaWmr1CN/I3+dD6+Hvv2v+Pt/DIiatTGpqqtUjAH6Bx4JvsZsLAGDM4fF4PFYPATP19fUqKyuzeoyHFhMTo7CwMKvHQCvCY8E6xAQAYIzdXAAAY8QEAGCMmAAAjBETAIAxYgIAMEZMAADGiAkAwBgxAQAYIyYAAGPEBABgjJgAAIwREwCAMWICADBGTAAAxogJAMAYMQEAGCMmAABjxAQAYIyYAACMERMAgDFiAgAwRkwAAMaICQDAGDEBABgjJgAAY8QEAGDsfwEOKbHnGDxxhwAAAABJRU5ErkJggg==",
"text/plain": [
"Figure(PyObject <Figure size 388.8x280.8 with 1 Axes>)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"drawer = MPLCircuitlDrawer(circuit)\n",
"Figure(drawer.draw());"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.8.3",
"language": "julia",
"name": "julia-1.8"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment