{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "935d4fbb", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:03.904030Z", "iopub.status.busy": "2024-04-26T18:21:03.903719Z", "iopub.status.idle": "2024-04-26T18:21:03.907469Z", "shell.execute_reply": "2024-04-26T18:21:03.907028Z" }, "nbsphinx": "hidden" }, "outputs": [], "source": [ "# Copyright 2024 Keysight Technologies Inc." ] }, { "cell_type": "raw", "id": "cca0bd65", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Example: Recording Results\n", "==========================\n", "\n", "To begin, we initialize a 3-qubit circuit. It is important that we add three\n", "measurement operations to the circuit because the total number of measurement\n", "operations dictates the length of bitstrings that are allowed by the circuit." ] }, { "cell_type": "code", "execution_count": 2, "id": "d1eacd10", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:03.909369Z", "iopub.status.busy": "2024-04-26T18:21:03.909081Z", "iopub.status.idle": "2024-04-26T18:21:06.211971Z", "shell.execute_reply": "2024-04-26T18:21:06.211506Z" } }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "
True-Q formatting will not be loaded without trusting this\n", "notebook or rerunning the affected cells. Notebooks can be marked as trusted by clicking\n", "\"File -> Trust Notebook\".
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", "
\n", "
\n", "
Circuit
\n", "
\n", "
\n", "
Key:
\n", "
\n", " No key present in circuit.\n", "
\n", "
\n", "
\n", "
\n", "
\n", "
\n", "  \n", "
\n", "
Marker 0
\n", " Compilation tools may only recompile cycles with equal markers.\n", "
\n", "
\n", "
\n", "
\n", " \n", " (0, 1):\n", " Gate.cz\n", " \n", " \n", "\n", "\n", "
\n", "
\n", "
Name:
\n", "
\n", "
    \n", "
  • Gate.cz
  • \n", "
\n", "
\n", "\n", " \n", "
Aliases:
\n", "
\n", "
    \n", "
  • Gate.cz
  • \n", "
\n", "
\n", "\n", " \n", "
Likeness:
\n", "
\n", "
    \n", "
  • CNOT
  • \n", "
\n", "
\n", "\n", "\n", " \n", "
Generators:
\n", "
\n", "
    \n", "
  • 'ZZ': -90.0
  • \n", "
  • 'ZI': 90.0
  • \n", "
  • 'IZ': 90.0
  • \n", "
\n", "
\n", "
\n", "
\n", "
Matrix:
\n", "
\n", "
    \n", "
  • \n", " \n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " 1.00\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " 1.00\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " 1.00\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " -1.00\n", " \n", " \n", " \n", "\n", "\n", "
  • \n", "
\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "
\n", " \n", " (2):\n", " Gate.x\n", " \n", " \n", "\n", "\n", "
\n", "
\n", "
Name:
\n", "
\n", "
    \n", "
  • Gate.x
  • \n", "
\n", "
\n", "\n", " \n", "
Aliases:
\n", "
\n", "
    \n", "
  • Gate.x
  • \n", "
  • Gate.cliff1
  • \n", "
\n", "
\n", "\n", " \n", "\n", "\n", " \n", "
Generators:
\n", "
\n", "
    \n", "
  • 'X': 180.0
  • \n", "
\n", "
\n", "
\n", "
\n", "
Matrix:
\n", "
\n", "
    \n", "
  • \n", " \n", "\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " 1.00\n", " \n", " \n", " \n", " \n", " \n", " \n", " 1.00\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "
  • \n", "
\n", "
\n", "
\n", "
\n", "\n", "
\n", "
 
\n", "
\n", " 1\n", "
\n", "
Marker 1
\n", " Compilation tools may only recompile cycles with equal markers.\n", "
\n", "
\n", "
\n", "
\n", " \n", " (0):\n", " Meas()\n", " \n", " \n", "\n", "\n", "
\n", "
\n", "
Name:
\n", "
\n", "
    \n", "
  • Meas()
  • \n", "
\n", "
\n", "\n", "\n", " \n", "\n", "\n", "
\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "
\n", " \n", " (1):\n", " Meas()\n", " \n", " \n", "\n", "\n", "
\n", "
\n", "
Name:
\n", "
\n", "
    \n", "
  • Meas()
  • \n", "
\n", "
\n", "\n", "\n", " \n", "\n", "\n", "
\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "
\n", " \n", " (2):\n", " Meas()\n", " \n", " \n", "\n", "\n", "
\n", "
\n", "
Name:
\n", "
\n", "
    \n", "
  • Meas()
  • \n", "
\n", "
\n", "\n", "\n", " \n", "\n", "\n", "
\n", "
\n", "
\n", "
\n", "\n", "
\n", "
\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "Circuit(Cycle((0, 1): Gate.cz, (2,): Gate.x),Cycle((0,): Meas(), (1,): Meas(), (2,): Meas(), marker=1))" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import trueq as tq\n", "\n", "circuit = tq.Circuit({(0, 1): tq.Gate.cz, (2,): tq.Gate.x})\n", "circuit.measure_all()\n", "circuit" ] }, { "cell_type": "raw", "id": "bbad3986", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "We can manually set the value of results with anything dict-like. This is cast to\n", "a :py:class:`~trueq.Results` object when stored in the circuit.\n", "\n", "**The order of the bits in the bitstring, from left to right, corresponds to the\n", "order of the measurement operations in the circuit with respect to sorted qubit\n", "labels. Thus the left-most bit in \"011\" corresponds to the measurement of qubit 0\n", "in this example.**" ] }, { "cell_type": "code", "execution_count": 3, "id": "5d908d4f", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:06.214320Z", "iopub.status.busy": "2024-04-26T18:21:06.213826Z", "iopub.status.idle": "2024-04-26T18:21:06.217292Z", "shell.execute_reply": "2024-04-26T18:21:06.216885Z" } }, "outputs": [ { "data": { "text/plain": [ "Results({'011': 5, '101': 15})" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circuit.results = {\"011\": 5, \"101\": 15}\n", "circuit.results" ] }, { "cell_type": "raw", "id": "9c1a4e54", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "The results object has many convenience methods. For example, we can add the \"111\"\n", "result and print the updated results.\n", "circuit.results[\"111\"] = 10\n", "circuit.results" ] }, { "cell_type": "raw", "id": "13bba5ab", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Increment the \"111\" result and print the updated results." ] }, { "cell_type": "code", "execution_count": 4, "id": "b28ee64b", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:06.219227Z", "iopub.status.busy": "2024-04-26T18:21:06.218926Z", "iopub.status.idle": "2024-04-26T18:21:06.222093Z", "shell.execute_reply": "2024-04-26T18:21:06.221693Z" } }, "outputs": [ { "data": { "text/plain": [ "Results({'011': 5, '101': 15, '111': 5})" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circuit.results[\"111\"] += 5\n", "circuit.results" ] }, { "cell_type": "raw", "id": "420ec934", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Add multiple results and print." ] }, { "cell_type": "code", "execution_count": 5, "id": "45d88e3e", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:06.224011Z", "iopub.status.busy": "2024-04-26T18:21:06.223680Z", "iopub.status.idle": "2024-04-26T18:21:06.226892Z", "shell.execute_reply": "2024-04-26T18:21:06.226483Z" } }, "outputs": [ { "data": { "text/plain": [ "Results({'011': 5, '101': 15, '111': 5, '010': 1, '110': 10})" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circuit.results += {\"010\": 1, \"110\": 10}\n", "circuit.results" ] }, { "cell_type": "raw", "id": "0bf571b1", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Bitstrings can be replaced by their decimal equivalent." ] }, { "cell_type": "code", "execution_count": 6, "id": "2064bdb7", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:06.228798Z", "iopub.status.busy": "2024-04-26T18:21:06.228491Z", "iopub.status.idle": "2024-04-26T18:21:06.231737Z", "shell.execute_reply": "2024-04-26T18:21:06.231327Z" } }, "outputs": [ { "data": { "text/plain": [ "Results({'011': 6, '101': 15, '111': 5, '010': 1, '110': 20})" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circuit.results += {3: 1, 6: 10}\n", "circuit.results" ] }, { "cell_type": "raw", "id": "96c90172", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Results can also be set by passing vectors of the correct size." ] }, { "cell_type": "code", "execution_count": 7, "id": "51c662d8", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:06.233563Z", "iopub.status.busy": "2024-04-26T18:21:06.233291Z", "iopub.status.idle": "2024-04-26T18:21:06.236685Z", "shell.execute_reply": "2024-04-26T18:21:06.236283Z" } }, "outputs": [ { "data": { "text/plain": [ "array([ 0, 0, 0, 1, 0, 0, 10, 0])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circuit.results.from_vec([0, 0, 0, 1, 0, 0, 10, 0])\n", "circuit.results.vec" ] }, { "cell_type": "raw", "id": "75577a0d", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "Here, we display the results entered so far as a bar plot." ] }, { "cell_type": "code", "execution_count": 8, "id": "f0495dfc", "metadata": { "execution": { "iopub.execute_input": "2024-04-26T18:21:06.238559Z", "iopub.status.busy": "2024-04-26T18:21:06.238284Z", "iopub.status.idle": "2024-04-26T18:21:06.348682Z", "shell.execute_reply": "2024-04-26T18:21:06.348234Z" } }, "outputs": [ { "data": { "image/png": "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TZw40Q4ePOhSsorz7bffWt++fe3uu++2QYMGWd26dS09Pd3MzEpKSlxOV7Fmz55tPXr0CNj21ltvWbt27ezXv/61bd261aVkFefYsWN233332b333mtjxoyxqKgoW7x4sZl9/28/3FWJz6oLRyUlJTp06JB27tzp33bq1Cm1aNFC6enp6tatm1JTUzVlyhQXUwaPx+PRr3/9a8XHx+u2225T+/btJUmLFi2SmWn69OmKjo4Ou3OezExFRUUqKirS3r17JUkxMTEqLi5WkyZNtHLlSrVt21azZs3SCy+84HLa4PF4PPr5z3+uuLg49ezZUydPnpSZKTk5WWaml156STExMWF5zlNhYaH/z6dPn1ZMTIzGjBmj6tWr64knnlCzZs306KOPhtVr/cCBA4qLi9PQoUOVmJgor9er++67T0uWLFHv3r3DatZz8fl8ys/PV61atRQVFaVBgwapevXqmjx5stLS0jRjxgx5PJ6wOe8rNzdXV155pZKSktSzZ0/Vrl1bDz74oMxMAwYMCP9z3NxsbZHuueees6uuusree+89/7bi4mIzM5s5c6Z17drVjh49GrYNfv/+/f6Vp9/97nf+7e+++27Y/JZa9tz9/e9/N6/Xa2+++ab/vsLCQjMze/PNN61Zs2b21Vdfhc1zfa458vLy/CtPI0aM8G//61//al999VVlxqtQf/7zny02NtZycnLMzKyoqMh/X0pKil122WX29ddfuxWvwpy5srJz50576KGHrG7duvbBBx+Y2fevidOnT/u/x4WLxYsXW82aNS0jI8PMAp/v+fPnW/Xq1S0zM9OteBVm165d/j+fOHHCJk6caFFRUbZo0SL/9tOnT9vx48fdiFehKE6VZP/+/bZ+/XpbsWKF/5DUvn377P7777ebb77ZVq5cGbD/ggULrHXr1lZQUOBG3KA418xm3y/dl/1gzcnJ8Zen6dOn27hx48zj8fh/6FRFZbOeWf6OHj1qY8eOtauvvtoWLlwYsP/SpUutRYsWduTIkUrNGWznmvuHfD5fwGG78ePHm8fjCaviVFRUZD169LAbb7zR/5yWleQDBw5YQkKCLV261M2IlSIrK8tfnlatWmVmZk8++aS99dZbYfELwpkz/PKXv7SEhAQ7dOiQmZmdPHnSf1/z5s1t7ty5lZ6vopzv33deXp6/PJWdgvLEE0/YH/7wh7A7LE9xqgSff/65NW3a1Fq0aGFxcXHWsmVLW7RokRUXF9vGjRutb9++1qVLF39TLy4utgkTJtgtt9xiPp/P5fTl88OZW7VqZQsXLrSjR4+aWWB52r9/v02bNs08Ho/VrVvXNm3a5Gb0S7J161br2bOnf0XhzG8ymZmZ9sgjj1ijRo1s7ty5VlhYaPn5+TZ58mTr1KmT5ebmuhX7kl1o7h/Ky8uzV155xTwej9WrV69KP987d+60CRMm2EMPPWRz5syxrKwsMzNLT0+3G264wXr37u1/zZuZ5ebmWqtWrQJWmaui881tFnjuWll5uuKKK6xv377m8Xjs888/dyNyUBw6dMiOHTvmv132Os/MzLTu3btbYmJiwPmKBQUF1rFjR/vrX/9a2VGD6odzn09ZefJ6vdarVy/zeDy2ZcuWig9YyShOFezw4cPWqlUrmzx5su3Zs8dycnJswIAB1qJFC0tJSbGTJ0/ali1b7NFHH7WYmBhr37693XjjjVa3bl377LPP3I5fLuebuXXr1jZ9+nQ7fPiwmQX+xvarX/3K6tSpY9u2bXMr9iXbt2+fNW/e3Dwej1177bX+b6Bn/iDZtWuXzZw507xerzVv3tzat29vDRs29C/zV0Xnm/tC5WnYsGF22WWXVenne9u2bRYXF2d33HGH3XvvvRYXF2e33nqr/3Dse++9ZzfccIMlJibaypUr7cMPP7QpU6ZYo0aNqvQK27nmTkpKspdfftm/z5mv+W3btllCQoLVq1evSv8Q/c9//mPVq1e3++67z06cOHHW/Rs2bLCePXva5Zdfbi+++KItWrTIJk2aZPXr17c9e/a4kDg4fmzuHzpy5Ii1bt3a6tWrV6VL8oVQnCrYtm3brFmzZmf9Vj1x4kRr27atzZ4920pLSy0/P9/WrVtnv//9723BggUBx4+rmgvNfN1119mzzz4bcAjyf/7nf+zyyy+v0uWhsLDQpkyZYr/85S8tPT3devToYU2bNj1neTIz2759u73yyiuWlpZm+/btcyFxcPzY3OcqT0uXLrWmTZtW6ZWmoqIiGzJkSMC5Wrt27bIBAwZYly5d7MUXXzSz73/oPPjgg9awYUNr0aKFtW3b1jZv3uxW7Et2oblvvPFG+/Of/+zfXraqPG7cOKtWrVqVfnfZwYMHrVu3bnbrrbdagwYN7P777z9nicjNzbXx48db69atrWXLlta1a9cq/X3N6dxlSkpK7PHHHzePx2NffPFFJSatXBSnCvbZZ5/ZlVdeaWvXrjUzs++++85/39ixY61p06Zh18p/bObExMSAmQ8ePGh79+6t9JzBtnDhQv+x/S+//NJuvvnmgBLh5BygqujH5v7hvEeOHLFvvvmm0nMG22233ea/vELZ6ulXX31lDz30kHXv3t3+9a9/+ffdvn275eTk2LfffutK1mC60Nw333yzLVu2zL/vzp077e67767S5cHMbPny5TZo0CDbuHGjrV+/3urVq3fBEvHNN9/YsWPHHB3eCmUXO3d2drY9+uijVfZoiVMUpwpQUlIScDL0z372s4DrfJx54mDnzp1t4MCBlZqvIpR35qp+7aaSkpJzvkuotLTU9uzZ41+BKSsKhYWFlpGRUaVP+je7+LlPnjxpGRkZlpeXV9lRg67snWHDhg2z++67z06ePGmlpaX+grhnzx676aab7IEHHvA/JhxOhnY694ABAwIeFw7P+eHDh2316tX+2+vWrfOXiDPfNRZuJ0E7nfvM1/eZvyiHK4pTkG3bts0GDx5svXv3tuHDh9uaNWts8+bNds0119j999/v36/sH9j48eOtX79+bsUNikic2Sxw7pEjR9o///lP/31l30h2797tLxF79+61UaNGWefOnav0b6KROvcPS/6aNWssOjo64PBU2T5r1qyxqKiosHgbennnrupl8Xy/1JUVxU8//TRgBaa4uNj++7//295///3KjBl05Z17xYoVlRnTVRSnINqxY4fFxcXZwIEDbdKkSda+fXvr0qWLPfbYY7Zw4UK7+uqrrX///lZcXOx/EQ4ZMsQGDhxop06dqpLfaCJxZrNzz925c2cbN26cf5+y2fbs2WM9e/Y0j8djtWvXtg0bNrgV+5JF6tw7d+602bNn2/79+wO2z54926KiogJOjDYz27x5s7Vu3bpKn79mxtw/nPuHyg5fPfDAAzZs2DCrVq2a7d69u5JSBl+kzn2xKE5BUlpaapMnTw5Ynvf5fDZjxgy74YYbbNCgQfbuu+9aixYtrEWLFta/f3974IEHrHbt2lX2pMlInNns/HPPnDnTOnToEHDirNn3J9QOHDjQ6tWrV6XfRRapc+/atcvq1atnHo/HkpOTA85TKigosJSUFPN4PDZlyhTLyMiwo0eP2qRJk6x58+b+d5BWRcx99tzn8vHHH/svrVGVT/yP1LnLg49cCRKPx6P9+/fr4MGD/m2xsbEaN26catasqaVLlyorK0ubNm3S008/raNHj6pGjRrasGGD2rRp42Ly8ovEmaXzzz127FjVqFFDaWlpmjVrliZOnCgz04svvqglS5Zo48aNzF3FFBQUKDU1VT//+c/VpUsXjR49WqdPn9ZTTz2lhg0bqlatWpoyZYqaNWumiRMn6rXXXlNsbKx8Pp/ee+89NWzY0O0RyoW5A+eeMGGCGjRocNb+xcXF+tvf/qbLLrtM//73v8PudR7uc5eb280tHJQdmpg7d651797dduzYEXB/bm6uDR8+3Lp27RpwaKoqv7sqEmc2czb3iBEjrFu3bv6TYpctWxZwgcCqKFLn/u6772zevHn+dw0uXrzYPB6PPfXUU2etquzbt88++ugjW758eZV/1yBznz33uVZgNmzYYG3btq3Sh6HNInfu8qI4BdHu3butQYMG9vDDD/t/eJT9wPn666/N4/HY//3f//n3r6rn95wpEmc2czb3mW9HDxeROHd+fn7A7bS0NPN4PPbkk0/6f6icOnWqSl/U8lyY+3tnzl32ETolJSX+q+RX5Sv+nylS5y4PilOQffjhh+b1em3UqFEBTf3AgQPWvn17++STT1xMVzEicWYz5o60uU+fPu0viYsWLfL/Rp6Tk2OPP/643XPPPZafnx82vxyUYe5zz92/f/+wfOt9pM59MShOFWDZsmXm9XrtnnvusbS0NPvPf/5jkyZNssaNGwd8jlE4icSZzZg70uY+87pFaWlpVq1aNWvZsqXFxMSE9UX/mPvsuav6RT0vJFLndspjZub2eVbhKCMjQ+PHj9eXX36pmJgYRUdHKy0tTR07dnQ7WoWJxJkl5o60ucu+ZXo8HvXu3VtbtmzRmjVrdN1117mcrGIxN3NHwtxOUJwqkM/nU25urvLy8tS4ceNzvjsh3ETizBJzR9rcJSUleuqppzRnzhxt2bJF7dq1cztSpWBu5obE5QgqUJ06dVSnTh23Y1SqSJxZYu5I1LZtW2VkZETcDxPmZu5Ix4oTAJSDmcnj8bgdo9Ixd2SJ1LkvhOIEAADgUJTbAQAAAKoKihMAAIBDFCcAAACHKE4AAAAOUZwAAAAcojgBAAA4RHECAABwiOIEAADgEMUJAADAIYoTAACAQ/8PLc3slGSyUEkAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit.results.plot()" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "nbsphinx,raw_mimetype,-all", "main_language": "python", "notebook_metadata_filter": "-all", "text_representation": { "extension": ".py", "format_name": "percent" } }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }