{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# POVM Sampler Pub\n",
    "\n",
    "This tutorial shows you how to input multiple circuits and parameter values to the `POVMSampler.run` method via _primitive unified blocs_ (PUBs)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Interface of the `POVMSampler.run` method\n",
    "The interface follows the style of the Qiskit V2 Primitives, which relies on PUBs. Each PUB is a tuple that contains a circuit and the data broadcasted to it. This greatly simplifies your ability to send complex data to a circuit.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "the `run()` method takes an array of PUBs. Each PUB is in the format \n",
    "```python\n",
    "(<single circuit>, <optional one or more parameter values>, <optional shots>, <optional POVM implementation>)\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## First example\n",
    "Let us look at a first simple example."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize QuantumCircuit and POVMSampler\n",
    "The first step is to create the `qiskit.circuit.QuantumCircuits` from which you want to obtain the probability distribution with the `povm_toolbox.sampler.POVMSampler`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 287.294x200.667 with 1 Axes>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from qiskit import QuantumCircuit\n",
    "from qiskit.circuit import Parameter\n",
    "\n",
    "qc1 = QuantumCircuit(2)\n",
    "qc1.h(0)\n",
    "qc1.cx(0, 1)\n",
    "qc1.draw(\"mpl\", style=\"iqp\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize measurement procedure\n",
    "Next, create a `povm_toolbox.library.POVMImplementation` instance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7kAAADuCAYAAAD8xMASAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABYRUlEQVR4nO3dd1yV5f8/8Nd9DhyW7CFDBBUQxC1Y4kKTzL2zMsuRq5z5TU1zlWWOj6WWo6Vlaq7KbVoulNyCAxAEQVkqKgjIPvfvD37nxPEc9jjHw+v5ePRI7vnmcF1wXue67+sWRFEUQURERERERKQHJNougIiIiIiIiKi6MOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9IaBtgsgIqLaI4pATqG2q9B9xlJAELRdhSpRFFGQnavtMirEwMQIgg69kGz/FaNr/aCu94EXsf1WdxsSRRGFhS/WiyCVSnXq92BdwZBLRFSH5BQCnQ9puwrdF9wbMNGxv5AF2bnY2uRtbZdRISNifoWhqbG2y1Bi+68YXesHdb0PvIjtt7rbUGFhIfbs2VN9B6wFQ4YMgYGBDnWkOoKXKxMREREREZHeYMglIiIiIiIivcGQS0RERERERHqDIZeIiIiIiIj0BkMuERERERER6Q2GXCIiIiIiItIbDLlERERERESkN/jQJiIiqjEZ108i6pNuKsskxmYwcvaCbeBIOPSdAkHKP0Wkv9gHSNvYBqkuYosmIqIaZ93lTVi2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ChMTE2zfvl3Z3tzd3TFs2DBMmDABzs7OAFCtE52VRhRF/H32MgCgQ1tf1DOt2iOIiIiIiPSZXoTc6dOnY8+ePfDy8kJkZCRycnIQGBiII0eO4IMPPtC4z48//oidO3eie/fuyMjIQFhYGGxsbDB27FiEhoYiKCioxPMZGxtjyJAhyq/r4iiugp+fH8LDw7FkyRK0a9cOiYmJuHjxIlJTU/HSSy9hyZIlOHHihMo+bdq0wZkzZ9CrVy8IgoCIiAhYWFjg888/x+HDhzUGhyFDhmD58uXo2bMnjIyMcOPGDdy6dQuurq54//33ce3aNbRv315lHxsbG5w9exZvv/02rKysEBUVBVEUsWTJEhw+fLjKo3Hz5s3DpUuXMHr0aNja2uLGjRu4du0aDA0NMWTIEPzyyy/KqwZqmkQiwYYNG3D8+HEMHz4cJiYmCAsLQ0REBKysrPD2229jz549eOedd6rlfBYWFjh69Cj69u2LwsJCnDt3DqdOnUJoaGiljzls2DBcv34dEyZMgKurKyIiInDv3j24u7tjxowZJT7LtzR2dnY4deoUNm/ejKCgIGRlZeHSpUu4c+cOPDw8MG3aNJw6dUp5r75Cly5dcOHCBQwaNAiGhoa4ceMGrKyssG7dOqxevVo5aZniXv+alp9fAEd7GxgbyTiKS0RERFQGQazJZ4PUsOp8vA4RUXmkpqbC3t4e1tbWePz4ca2eOyc3D8ZGsrI3JCIiIqrD9GIkl4iotmzevBnAfxOe1SYGXCIiIqKyMeQSET3nzJkz+PXXX5GTk6NcJpfLsWXLFuX9/pMmTdJWeURERERUirr1zBs9MGXKFFy9erXc21d0sh6iqtL0/OOStGnTRvnILl2SkJCAkSNHYty4cfDy8oKRkRFiYmKUlydPnjwZvXv31nKVRERERKQJQ+4L5vr16zh79qy2yyAqUUXap64+W7pDhw6YPn06/vnnHyQkJODp06ewtLTEq6++ivHjx6tMPEdEREREuuWFnniKiIiIiIiIqDjek0tERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREekNhlwiIiIiIiLSGwy5REREREREpDcYcomIiIiIiEhvMOQSERERERGR3mDIJSIiIiIiIr3BkEtERERERER6gyGXiIiIiIiI9AZDLhEREREREemN/wdHIrI09aotJgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1128.91x284.278 with 1 Axes>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from povm_toolbox.library import ClassicalShadows\n",
    "\n",
    "shots1 = 128\n",
    "measurement1 = ClassicalShadows(num_qubits=2, seed=43)\n",
    "measurement1.measurement_circuit.draw(\"mpl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create the PUB\n",
    "Finally, create the pub-like object, which is simply a tuple `(<single circuit>, <optional one or more parameter values>, <optional shots>, <optional POVM implementation>)`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "pub1 = (qc1, None, shots1, measurement1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Second example\n",
    "Let us look at an example where the full PUB is not specified."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize Quantum Circuits\n",
    "The first step is to create the `qiskit.circuit.QuantumCircuits` from which you want to obtain the probability distribution with the `povm_toolbox.sampler.POVMSampler`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 370.906x200.667 with 1 Axes>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qc2 = QuantumCircuit(2)\n",
    "qc2.x(0)\n",
    "qc2.h(0)\n",
    "qc2.cx(0, 1)\n",
    "qc2.draw(\"mpl\", style=\"iqp\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 287.294x200.667 with 1 Axes>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qc3 = QuantumCircuit(2)\n",
    "qc3.h(0)\n",
    "qc3.x(1)\n",
    "qc3.cx(0, 1)\n",
    "qc3.draw(\"mpl\", style=\"iqp\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 370.906x200.667 with 1 Axes>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "qc4 = QuantumCircuit(2)\n",
    "qc4.x(0)\n",
    "qc4.x(1)\n",
    "qc4.h(0)\n",
    "qc4.cx(0, 1)\n",
    "qc4.draw(\"mpl\", style=\"iqp\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create the PUBs\n",
    "Finally, create the pub-like objects, which is simply a tuple `(<single circuit>, <optional one or more parameter values>, <optional shots>, <optional POVM implementation>)`.\n",
    "Here we will use the fact that the last three items are optional because :\n",
    " - The circuits are not parametrized so there is no need to specify parameter values.\n",
    " - We assume a default number of shot will be supplied with the `POVMSampler.run` method.\n",
    " - We assume a default POVM implementation will be supplied with the `POVMSampler.run` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# All of the following syntax are equivalent:\n",
    "\n",
    "pub2 = (qc2, None)  # or (qc2, None, None) or (qc2, None, None, None)\n",
    "pub3 = (qc3,)\n",
    "pub4 = qc4"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Set a default measurement procedure\n",
    "We specify a `povm_toolbox.library.POVMImplementation` instance that will be the default one if no measurement is specified by a PUB."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "shots_default = 2048\n",
    "measurement_default = ClassicalShadows(num_qubits=2, seed=78)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Third example\n",
    "Let's look at an example with a parametrized circuit. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize QuantumCircuit and POVMSampler\n",
    "The first step is to create the `qiskit.circuit.QuantumCircuits` from which you want to obtain the probability distribution with the `povm_toolbox.sampler.POVMSampler`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAATEAAADuCAYAAABRejAmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbnUlEQVR4nO3de1xUZf4H8M8Md3BQYZBRUcALKChoIEm2Gq760gQzL2U/s3a3NrfV1VpX+lXbr602lfK17Zq/NWzXrN0kVi1T8JpkIamBaBHgJQRlYEYdLioXkWHm94c/WVkGYXBmzjyHz/v16mWc85zn+fIa+HDOM885ozCbzWYQEQlKKXUBRER3gyFGREJjiBGR0BhiRCQ0hhgRCY0hRkRCY4gRkdAYYkQkNIYYEQmNIUZEQmOIEZHQGGJEJDSGGBEJjSFGREJjiBGR0BhiRCQ0hhgRCY0hRkRCY4gRkdAYYkQkNIYYEQmNIUZEQmOIEZHQGGJEJDSGGBEJjSFGREJjiBGR0BhiRCQ0hhgRCY0hRkRCY4gRkdAYYkQkNIYYEQmNIUZEQmOIEZHQGGJEJDSGGBEJzVXqAsgys9kMY2OT1GV0mauXBxQKhdRlUA/EEHNSxsYmfDz0canL6LKFJf+Em7en1GVQD8TLSSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqFxnZiMaOIjMf3T19psa65vxNVzOpRs+xrFf98Nc4tJouqI7IMhJkPnPs2GNisfUCjgFdAHw+ZPQtxrP0Pv4QNxZGWq1OUR2RRDTIaqCkpxbnt269enN+/Dw9l/Qdh//RT5a9LQVHVVwuqIbItzYj2AsbEJl/PPQqFUwjc4UOpyiGyKIdZDqEJuhldTbZ3ElRDZFi8nZcjVyx0efqrWObHwJ6bBf/QQXM4/i6vndFKXR2RTPSLEDAYD3nrrLXz66afQarUICAjAnDlzsGrVKixbtgybNm3Cu+++i6VLl0pdqk2MTV6AsckL2mwryzyKYy/+TaKKpGU2m5F9XI8te85Bb2iAi1KJYYNVeOrhcISF9Ja6PLpLsg+xkydPYsaMGdDr9fDx8UFERAQqKyuxbt06lJSUoLq6GgAwZswYaQu1odP/2I+yXUegdHNF3xGDMWrJbPj090dL043WNpM2PA8oFfhq8Z9at7n36YXZh95B3usf4dyn2Za6Fs6+HC1WrD2GwpLadvve+qAAU+MH4K8vT8Cwwb6OL45sQtZzYgaDAUlJSdDr9VixYgV0Oh3y8/Oh1+uRkpKCzMxM5ObmQqFQICoqSupybebqOT102QWoyDqBH/76OQ4+uQbqMUMRn7K4tc2RF99Hv3HhCJ09oXXb+FVP49K3p2QTYGm7SzBz6X6LAXbLgSOViF+0CwVnqh1XGNmUrENs2bJl0Gq1WLp0KdauXQuVStW6Lzk5GdHR0TAajQgJCYGvr3z/El/OO42SbV8jdPYEBMSGAwBu1NbhmxUbcO+bT8MrsC+CZ46H5r5IHHlBHuvIvi24jCd//zVaWsydtjXUXMeDS/bjyrUbnbYl5yPbECsuLkZ6ejrUajVWr15tsU1MTAwAIDo6us320tJSzJo1CyqVCn379sUTTzyBqqoqu9dsT9+9sw0mYwvGrny0dVvFlydRtusbTFy/DOPX/BLfrNiAphp5vHv59ubv0Wzs+t0J2ov1+GjXWTtWRPYi2xBLS0uDyWTCwoUL0atXL4ttvLy8ALQNsWvXriEhIQFarRZpaWnYuHEjsrOzkZiYCJNJ3Ft2rpXpUfp5DgZMjEK/e0e2bs977SOoQjWoyDoB7cF8CSu0ncpL9fgs67zVx/01vRhmc+dnbuRcZBtiWVlZAICEhIQO22i1WgBtQ2zjxo2oqKjAjh07kJiYiPnz52PLli04evQodu7cad+i7ez7v2yHqaXt2ZixsQl15y+hpviChJXZ1hdHK7t0GfmfTpVewflKeZyJ9iSyfXfy/Pmbf4mDg4Mt7jcajcjJyQHQNsQyMjJw//33Y/Dgwa3b4uPjMWTIEOzatQuzZ8+2upbY2Fjo9XqrjnEzK/Eq4qw6Rn+kEJv7z+tw/5WzFfgo6NEO99+NsOFhaFY4x5lqnce9gM+D3To27r4EuLdY91rR3dNoNMjLy+vWsbINsfr6egBAY2Ojxf3p6ekwGAxQqVQIDQ1t3V5UVIT58+e3ax8ZGYmioqJu1aLX61FRUWHVMe4KF0CgO4QqdZW4YW6Ruoyb+l4EfLp36GV9OXDjkm3rIbuSbYhpNBrU1NQgPz8f8fHxbfbpdDqsXLkSABAVFdXm8xJramrQp0+fdv35+fnh9OnT3a7FWm5mJeAcJzZdMqD/AKc5E2t2acAlADCbASs+C1NpqoMmwBMKDLRbbWRZd35HbpFtiE2ZMgXFxcVISUnB1KlTERYWBgDIzc3FokWLYDAYADhmkWt3TpObG6477HMn98599a77OHP2jFN97uRPnszA4RMXrTrmv5+ZgDeXLbdTRWQvsp3YT05Ohr+/P8rLyxEZGYnRo0dj+PDhiIuLw5AhQzB58mQA7ZdX9O3bF7W1te36q66uhp+fnyNKJxt47vFIq9p7erjgmXnhdqqG7Em2IRYUFITs7GzMnDkTnp6eKCsrg5+fH1JTU5GZmYkzZ84AaB9iI0eOtDj3VVRUhJEjR7bbTs5p7tRQrHhiVJfaKpUKfLz6AQQPUHXemJyObC8ngZuBlJGR0W57XV0dysrKoFQqMWpU2x/0xMREvPTSS9BqtQgKCgIAHDt2DCUlJXj77bcdUjfZxtsr4tDX1wOvp57AjWbL83Xqvp7Y/MZPMHPiYIv7yfkpzD1wdd+xY8cwfvx4hIeH49SpU232Xb16FaNHj4ZarcZrr72G69evIzk5GQEBAThy5AiUSsecvDpyTswWFpb806nmxG5nqLmOD3acwce7S1BwthomE+DupsTfX/sJ5k0NgaeHrP+Wy55sLyfvpKCgAED7S0kA8PX1RVZWFvr3748FCxbg6aefxn333YeMjAyHBRjZlrqvJ1b+PAontz6M/mpvAEBAX088njiMASYDPfIVvFOIAcDQoUMtXoY6mzErHkHB+s/Q0tSM+/+8BNWFZSh6P9OqPgZPH4fGS7W4nM/7BklMPfLUorMQE8WY3z0CFw+3u+pj8PQ4BMSE2agiIsfrkWdit+6rFFl8yjMAgBk73oC5xYSGizXoPXwgpv3rVfgM8Eft6XJ89at3YGo2QuHqgnuSF0Bz/yi4uLniyjkdjiSnIiAmDIOmxaL/xCgMe+QBFH+wF9oDxzFxw3NwU3nBxcMd+pwfcOz3m24uHCVyQj0yxOTgyAsbEf7ENOyZ/QpuXG3A/X9eAr/IUOyd9ypMTUZM/+x1BM+8F6U7cjDq1w+hubEJmQ++CACIen4exr7wGI699DeU789rcxnq4uGGg0+sgbHhOhRKJSZvfgGhs+5D6ec5Un67RB1iiMnIhT3H0NJ488F+hpM/QhVy81aOwdPHwV3ljZAH7wUAKN1dUVd+2XInSgVifv84AuNG3PygEbUvak9dYIiR02KIyUhLU3Pr/5tbTFC6uAAAFAoFjv1+Eyq/+q7TPiIXJ8FL3RuZM19ES1Mzxv3hSbh43t28G5E99ciJfbm4ca0Bbr7enba7sPdbRDyTCBcvdwCAi5c7+oQF/X8fjXBT/bsP994+aLxUg5amZngF9EFIYrzFPomcBc/EBFb43i5M++R/0NLYhIaLNR22K1i/A9G/dUNi5urW+fkf/ncHas9oUbLtK9z/l6UYPD0OpzbvRfHfduOB91fgoUPvoFFfjcrs7x303RB1T49csS8Crti3j6Apaai41ICB/byh/eIxqcshG+DlJBEJjSFGREJjiBGR0BhiRCQ0hhgRCY1LLJyUq5cHFpb8U+oyuszVy0PqEqiHYog5KYVCIcSSBSKp8XKSiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMeoxTCYzzGYzALT+S+JTmPlqkkxp9fXYdqAUeUUGHC8y4HTZFdz+0x4bqUZMhBrxUf0wd2oIenm7SVcsdRtDjGTnUK4O724pwueHzqOlpWs/3iofNzyRNAy/eSwC4aF97Fsg2RRDjGSjqvY6lq05ii27S7rdh5urEq/+aixe+EUUXF052yIChhjJwsGjlVj44iFcrGq0SX8xEWpsXTsZoUEqm/RH9sMQI+F9drAMj678Es1Gk037HdDPGwffn4ERvLx0agwxEtq+HC2SfnPA5gF2y8B+3jj8YSJCBvKMzFkxxEhYF6saEfnwdlTVNtl1nAljA/HVpgfh4sI5MmfEV4WEZDab8ewfc6wOsNy0WSg/sAC5abO6fEzOiYt4d0uRtSWSg/SIEDMYDEhOTsawYcPg6emJQYMGYfny5aivr8dTTz0FhUKB9evXS10mWWHXoQv47OB5q4/TqL0RFOgDjdrbquNeejcPlZfqrR7PmVzQ1WHvYS12ZJUh+7gezc32uQR3NFepC7C3kydPYsaMGdDr9fDx8UFERAQqKyuxbt06lJSUoLq6GgAwZswYaQslq/zl40KHjtd4vQXvbz+NV5+9x6Hj2sLew1qs/6QIu7PL2yz27R/gjV/OCcevF4xEoL+XdAXeJVmfiRkMBiQlJUGv12PFihXQ6XTIz8+HXq9HSkoKMjMzkZubC4VCgaioKKnLpS4qPleLrG91Dh934/bTQp29mM1m/Pbto5jx633I/LptgAGA7nIDXk89gXse3YHvTldJU6QNyDrEli1bBq1Wi6VLl2Lt2rVQqf79DlNycjKio6NhNBoREhICX19fCSsla3yc+aMk41ZeakDWt5WSjN0dr6w/jnf+0fkZa+WlBkxbvBel2msOqMr2ZBtixcXFSE9Ph1qtxurVqy22iYmJAQBER0e3brsVenFxcfDw8IBCoXBIvdR13/5wWbKxcwulG9saJeVX8eb733W5/aXq63j53Tw7VmQ/sg2xtLQ0mEwmLFy4EL169bLYxsvr5jzA7SH2448/Yvv27dBoNBg3bpxDaqWuM5vNyCs0SDa+lGNb471/nbL6mG0Hymx2x4MjyTbEsrKyAAAJCQkdttFqtQDahtjEiROh0+mwc+dOTJkyxb5FktX0hkbUXL0h2fiFJbWSjW2NzTvPWn1Ms9GEtLu471Qqsn138vz5m2+/BwcHW9xvNBqRk5MDoG2IKZW2z/XY2Fjo9Xqb99sTGZV+QJ/lHe7PTZt1x+UTGrVX67/lBxZ02E5vaMC4x3a2236urAJBQUFWVOx4ZrjC4PdKt4595fV3sPbFfTauqHMajQZ5ed27nJVtiNXX31zT09ho+fQ4PT0dBoMBKpUKoaGhdq1Fr9ejoqLCrmP0GO7NQJ+Od99aB9YZVxdll9r9J1NLi/O/lgpXwK97h9bVXUOd3sm/v/8g2xDTaDSoqalBfn4+4uPj2+zT6XRYuXIlACAqKsruk/cajcau/fckLYpeuNM5rd7QcMfjNWovuLooYWwxQW/oeP6no35clC3QDBzYlVIlpTPVwaS0PBd8J729Teglwfd3N78jsg2xKVOmoLi4GCkpKZg6dSrCwsIAALm5uVi0aBEMhpsTtI5Y5Nrd02Rqz2w2Qz3xY1RfsXy7kaVLwNuVH1iAoEAf6A2NGDT1E6vHT5p6Dz77s9bq4xzthXe+xVsfFFh1jLubEme+/Qf6CbbwVbYT+8nJyfD390d5eTkiIyMxevRoDB8+HHFxcRgyZAgmT54MoO18GDk/hUKBmAh/ycaXcmxrLJ4/AtZeYMyfFipcgAEyDrGgoCBkZ2dj5syZ8PT0RFlZGfz8/JCamorMzEycOXMGAENMRPeO7ifZ2HGjAiQb2xpDgnzxP4vHdrm9Ru2FN38TY8eK7Ee2l5MAMHLkSGRkZLTbXldXh7KyMiiVSowaNUqCyuhuPD5zKP648aTDxx3YzxuT4wY4fNzuevXZsbh+owUpm76/Y7ugQB/s+es0BA8Q85lpsg6xjhQWFsJsNiMsLAze3u3fjt+2bRsAoKioqM3XISEhiI2NdVyhZFF4aB9MGT8AXxx17C1Ai+ePEOq5+wqFAmueG4ep4wdi/SdF2HnoAkymf99AGRTog8Xzw7F43ggE+Il3GXlLjwyxgoKbE54dXUrOnz/f4tdPPvkkNm/ebNfaqGueezzSoSHm7emKp+eEO2w8W/rp+AH46fgBqLhYj+j5n6GqtgkBfT1QuucRoUK5IwwxC/iwW+c3c+JgzJ8Wiq37Sx0y3prnYtE/wLpnkDmbgYE+8HR3AQC4u7nIIsAAGU/s30lnIUZi+N+X4qHu62nVMXpDA7QX6ztdT3a7SbEaLFkQYW155CB8xj4J7eDRSjy4ZB9u2Ok5X4M0Psj5KBGDNNYvHHVGQVPSUHGpAQP7eUP7xWNSl2MTPfJMjOTjp+MHYOvayXB3s/2PclCgD77YOEM2ASZXDDES3qyEYOx7bzoG9LPdnFXcqAAc/nAmwkJ626xPsg+GGMnCA+P644dP5+BnDw2/q3483F2Q8tw45HyUKOy6qZ6GIUay0dfXAx+8MRGHP0zEo9ND4era9ftu+qjc8fyiSBR+NgfJv4iSzTt3PUGPXGJB8jZhbCAmjA2E3tCA7V+UIa/QgONFBpwqvdL6SeE+Xq6ICvNDTIQa46MC8PDkEHh78ddBRHzVSLY0au92SyOMRhOUSgWUSn52glwwxKhH4WWi/PAVJSKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhorlIXQET209xsQtG5GhwvqsKJU1WovtIEAKi52oQ3Uk8gJkKNmAg1Av29JK60+xRms9ksdRFEZFtnz1/Be1tP4YMdZ1Bz9Uan7SeMDcSvHxmJuVND4OHu4oAKbYchRiQjF6sa8ZvVR7B1f2m3ju/n54k/rbwX//XgUCgUChtXZx8MMSKZSN97DktWfYOq2qa77uuhhMF475UJ0Ki9bVCZfTHEiARnNpvxyvrjePP972za7yCNDw6kTkd4aB+b9mtrDDEiwb28Lg+r/mbbALtFo/ZC9uZEDBvsa5f+bYFLLIgE9uHnZ+0WYACgNzTiwSX70NBotNsYd4shRiSoiov1WP7WUauOyU2bhfIDC5CbNqvLx5w9fxUvrcuztjyHYYgRCWrxGzm4cq3z5RO306i9ERToY/WE/bothTicr7fqGEfpESFmMBiQnJyMYcOGwdPTE4MGDcLy5ctRX1+Pp556CgqFAuvXr5e6TKIuyyu8jMyvyx02ntkM/HHjSYeNZw3Zr9g/efIkZsyYAb1eDx8fH0RERKCyshLr1q1DSUkJqqurAQBjxoyRtlAiK2z41ymHj7nvmwr8eOGq003yy/pMzGAwICkpCXq9HitWrIBOp0N+fj70ej1SUlKQmZmJ3NxcKBQKREVFSV0uUZdcuXYDW3aXSDJ26lbHh2dnZB1iy5Ytg1arxdKlS7F27VqoVKrWfcnJyYiOjobRaERISAh8fZ3rrwtRR44VXML1phZJxj6Up5Nk3DuRbYgVFxcjPT0darUaq1evttgmJiYGABAdHd26bdu2bZg7dy6Cg4Ph7e2NESNG4OWXX0ZdXZ1D6ibqzPGiKsnG/v5MNW40SxOgHZFtiKWlpcFkMmHhwoXo1auXxTZeXjfv3L89xNauXQsXFxesWrUKe/bswbPPPosNGzZg+vTpMJlMDqmd6E7yiw2SjX2j2YTCH2skG98S2U7sZ2VlAQASEhI6bKPVagG0DbFdu3YhICCg9etJkyYhICAACxcuxOHDhzFx4kSra4mNjYVe75xvT5N4Lqt+BriFWtyXmzbrjssnNGqv1n/LDyy44zh6QwPGPbaz3fapM+bA03iu6wV3gUajQV5e99aiyTbEzp8/DwAIDg62uN9oNCInJwdA2xC7PcBuiY2NBQBUVFR0qxa9Xt/tY4naGdICuFnedWsdWGdcXZRdamdJVXUtcM15fp5lG2L19fUAgMbGRov709PTYTAYoFKpEBpq+a/aLV9++SUAYOTIkd2qRaPRdOs4IksM7kp09JwKvaHhjsdq1F5wdVHC2GKC3mD5d6Ozvvz9esPTd2BXSu2yu/kdke0N4BERESguLsb69euxZMmSNvt0Oh1iYmKg0+kwYcIEHD58uMN+KioqMHbsWMTExGDPnj32LpuoUz9/5Wts/vxst44tP7AAQYE+0F6sx6Cpn3Srj7MZ851qrZhsJ/anTJkCAEhJScGZM2dat+fm5iIhIQEGw83J0Tstcq2rq8NDDz0Ed3d3bNq0ya71EnVVTIRasrF7q9wxdJCq84YOJNsQS05Ohr+/P8rLyxEZGYnRo0dj+PDhiIuLw5AhQzB58mQAbefDbtfY2IikpCSUlpZi//796N+/vyPLJ+pQTIS/ZGPfM8Lf6Z74KtsQCwoKQnZ2NmbOnAlPT0+UlZXBz88PqampyMzMbD07sxRizc3NmDdvHvLy8rBnzx5EREQ4unyiDsVGBLS+y+hoiZMGSTLunch2Yh+4ORGfkZHRbntdXR3KysqgVCoxatSoNvturS07ePAgdu/ejbi4OEeVS9Qlbm5K/HJuON5IPenQcb08XfDz2WEOHbMrZHsmdieFhYUwm80YPnw4vL3brqlZsmQJtm7diueffx7e3t44evRo63+XL1+WqGKitp6ZOwIuLo69rFswfQj6+no4dMyu6JEhVlBQAMDypeStdyDXrFmD+Pj4Nv9lZmY6tE6ijgRpfPDbRaM6b2gjKh83/OHZexw2njVkfTnZkTuFWFlZmYOrIeqe15fcg11fXcCp0it2H+tPv7sXg/tbvn1PajwTIxKUp4crPvzjJKs+7FZvaID2Yn2ni2JvlzRpMJ6a43xzYbfIdrErUU+R8dUFzHn+IJqNtn9AwU/uCcTeDdPh7eW8F2098kyMSE4SJw3GrnenwsfGQTPj/iCnDzCAZ2JEslGqvYZfvJqNQ7l39+BCb09XrHkuFksWRECpdK6FrZYwxIhkxGQy4/3tp7Hm79+hrNK6B3m6uCjw0APBeOu34zB0kPPcG9kZhhiRDLW0mLDvmwps3HYK2fkXUX3F8nMvlEoFRob2xtwpofjl3HAEabr3eB4pMcSIZM5sNuN8ZR1OnKpC7bUbaDaa4OnugqGDfDEm3A8+3h08nEwQDDEiEhrfnSQioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhLa/wE7UXzOCUzuWAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 371.107x284.278 with 1 Axes>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "qc5 = QuantumCircuit(3)\n",
    "\n",
    "theta = Parameter(\"theta\")\n",
    "qc5.ry(theta, 0)\n",
    "qc5.cx(0, 1)\n",
    "qc5.cx(1, 2)\n",
    "qc5.draw(\"mpl\", style=\"iqp\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Set the parameter values to bound to the `QuantumCircuit`\n",
    "In this example the quantum circuit has a single parameter (`theta`). We can set different values for `theta`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set 4 different values for theta\n",
    "parameter_values = np.array([0.0, 0.4, 0.5 * np.pi, np.pi])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize measurement procedure\n",
    "Next, create a `povm_toolbox.library.POVMImplementation` instance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAEvCAYAAAD1iroUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB4d0lEQVR4nO3dd3hT1f8H8HeSNt170ElLaUsHeylDKEhF9hYXshQBmaJFQSjggAIiCDL0q4CKyHIwRZEhUNmU1UJLF3RCgZbulfv7o79EQtI9kibv1/P4SO45595P0nPafO6591yRIAgCiIiIiIiIiEgniDUdABERERERERHVHSb6RERERERERDqEiT4RERERERGRDmGiT0RERERERKRDmOgTERERERER6RAm+kREREREREQ6hIk+ERERERERkQ5hok9ERERERESkQ5joExEREREREekQJvpEREREREREOoSJPhEREREREZEOYaJPREREREREpEOY6BMRERERERHpECb6RERERERERDqEiT4RERERERGRDmGiT0RERERERKRDmOgTERERERER6RAm+kREREREREQ6hIk+ERERERERkQ5hok9ERERERESkQ5joExEREREREekQJvpEREREREREOoSJPhEREREREZEOYaJPREREREREpEOY6BMRERERERHpECb6RERERERERDqEiT4RERERERGRDmGiT0RERERERKRDmOgTERERERER6RAm+kREREREREQ6hIk+ERERERERkQ5hok9ERERERESkQ5joExEREREREekQJvpEREREREREOoSJPhEREREREZEOYaJPREREREREpEOY6BMRERERERHpEANNB0BERA1HEICCUk1Hof2MJYBIpOkolAmCgJL8Qk2HUS0GJkYQadEHyf5fPdo2DvR9DDTG/lvXfUgQBJSWNq4PQSKRaNXvQdIfTPSJiPRIQSnw3EFNR6H9TvYHTLTsL2RJfiG2NX9d02FUy2uxP8LQ1FjTYSiw/1ePto0DfR8DjbH/1nUfKi0txZ49e+puhw1gxIgRMDDQooFEeoOX7hMRERERERHpECb6RERERERERDqEiT4RERERERGRDmGiT0RERERERKRDmOgTERERERER6RAm+kREREREREQ6hIk+ERERERERkQ7hQx2JiKjeZF87juiPeiltExubwcjFF3ZBY+A4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",
      "text/plain": [
       "<Figure size 1212.52x367.889 with 1 Axes>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "shots5 = 4096\n",
    "measurement5 = ClassicalShadows(num_qubits=3, seed=62)\n",
    "measurement5.measurement_circuit.draw(\"mpl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create the PUB\n",
    "Finally, create the pub-like object, which is simply a tuple `(<single circuit>, <optional one or more parameter values>, <optional shots>, <optional POVM implementation>)`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "pub5 = (qc5, parameter_values, shots5, measurement5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Initialize the `POVMSampler`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from povm_toolbox.sampler import POVMSampler\n",
    "from qiskit.primitives import StatevectorSampler as Sampler\n",
    "\n",
    "sampler = Sampler(seed=91)\n",
    "povm_sampler = POVMSampler(sampler=sampler)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Run and get results\n",
    "Now that you have defined your `povm_sampler`, run it by calling the `povm_toolbox.sampler.POVMSampler.run` method, which returns an instance of `povm_toolbox.sampler.POVMSamplerJob`. You can get the results from the job (as a `qiskit.primitives.PrimitiveResult` object) with the `povm_toolbox.sampler.POVMSamplerJob.result` method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PrimitiveResult([POVMPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(), num_shots=128, num_bits=2>)), metadata=RPMMetadata(povm_implementation=ClassicalShadows(num_qubits=2), composed_circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x00000176C8F10B50>, pvm_keys=np.ndarray<128,2>)), POVMPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(), num_shots=2048, num_bits=2>)), metadata=RPMMetadata(povm_implementation=ClassicalShadows(num_qubits=2), composed_circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x00000176C8F108B0>, pvm_keys=np.ndarray<2048,2>)), POVMPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(), num_shots=2048, num_bits=2>)), metadata=RPMMetadata(povm_implementation=ClassicalShadows(num_qubits=2), composed_circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x00000176C8F118A0>, pvm_keys=np.ndarray<2048,2>)), POVMPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(), num_shots=2048, num_bits=2>)), metadata=RPMMetadata(povm_implementation=ClassicalShadows(num_qubits=2), composed_circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x00000176C8F11E10>, pvm_keys=np.ndarray<2048,2>)), POVMPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(4,), num_shots=4096, num_bits=3>)), metadata=RPMMetadata(povm_implementation=ClassicalShadows(num_qubits=3), composed_circuit=<qiskit.circuit.quantumcircuit.QuantumCircuit object at 0x00000176C8F10A60>, pvm_keys=np.ndarray<4,4096,3>))], metadata={'raw_results': PrimitiveResult([SamplerPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(128,), num_shots=1, num_bits=2>), shape=(128,)), metadata={'shots': 1}), SamplerPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(2048,), num_shots=1, num_bits=2>), shape=(2048,)), metadata={'shots': 1}), SamplerPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(2048,), num_shots=1, num_bits=2>), shape=(2048,)), metadata={'shots': 1}), SamplerPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(2048,), num_shots=1, num_bits=2>), shape=(2048,)), metadata={'shots': 1}), SamplerPubResult(data=DataBin(povm_measurement_creg=BitArray(<shape=(4, 4096), num_shots=1, num_bits=3>), shape=(4, 4096)), metadata={'shots': 1})], metadata={})})\n"
     ]
    }
   ],
   "source": [
    "job = povm_sampler.run(\n",
    "    [pub1, pub2, pub3, pub4, pub5], shots=shots_default, povm=measurement_default\n",
    ")\n",
    "result = job.result()\n",
    "print(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[Counter({(5, 0): 19, (3, 4): 19, (5, 2): 15, (3, 0): 15, (2, 2): 14, (0, 0): 14, (1, 2): 14, (5, 4): 10, (1, 4): 8})]\n",
      "[Counter({(5, 2): 243, (3, 2): 240, (4, 4): 233, (1, 4): 232, (3, 0): 227, (0, 0): 224, (5, 0): 223, (1, 2): 214, (3, 4): 212})]\n",
      "[Counter({(5, 0): 246, (5, 2): 245, (4, 4): 232, (1, 4): 232, (1, 0): 231, (1, 2): 220, (2, 2): 219, (3, 4): 215, (3, 0): 208})]\n",
      "[Counter({(3, 2): 244, (1, 0): 242, (5, 2): 241, (3, 0): 240, (5, 4): 237, (1, 4): 213, (3, 4): 213, (5, 0): 210, (1, 2): 208})]\n",
      "[Counter({(4, 5, 4): 179, (2, 5, 2): 170, (4, 5, 2): 168, (0, 5, 4): 164, (5, 4, 0): 163, (3, 2, 0): 161, (5, 2, 0): 158, (0, 3, 2): 158, (0, 4, 0): 157, (0, 3, 4): 155, (2, 3, 2): 155, (0, 0, 2): 155, (0, 5, 2): 152, (2, 5, 4): 150, (4, 3, 2): 149, (0, 0, 4): 149, (3, 0, 2): 149, (4, 0, 0): 146, (0, 2, 0): 146, (2, 3, 4): 146, (4, 3, 4): 143, (5, 0, 4): 140, (0, 0, 0): 139, (3, 0, 4): 137, (5, 0, 2): 137, (3, 4, 0): 135, (2, 0, 0): 135})\n",
      " Counter({(4, 0, 0): 179, (2, 3, 2): 167, (2, 0, 0): 164, (4, 3, 4): 164, (2, 3, 4): 164, (3, 0, 2): 163, (2, 5, 2): 162, (0, 0, 4): 160, (5, 0, 2): 159, (4, 5, 2): 157, (0, 5, 2): 156, (4, 5, 4): 155, (0, 3, 2): 155, (3, 0, 4): 154, (0, 0, 2): 150, (5, 2, 0): 149, (0, 5, 4): 148, (4, 3, 2): 145, (3, 2, 0): 144, (0, 0, 0): 143, (0, 2, 0): 141, (3, 4, 0): 140, (2, 5, 4): 139, (5, 4, 0): 137, (0, 4, 0): 135, (0, 3, 4): 133, (5, 0, 4): 133})\n",
      " Counter({(1, 1, 2): 182, (4, 5, 4): 174, (4, 3, 2): 169, (2, 5, 2): 163, (0, 5, 4): 163, (0, 3, 4): 163, (0, 3, 2): 162, (4, 1, 4): 159, (3, 0, 0): 157, (0, 3, 0): 154, (2, 3, 4): 154, (2, 3, 0): 153, (1, 1, 4): 153, (2, 5, 0): 151, (4, 3, 0): 150, (0, 5, 0): 149, (2, 1, 2): 149, (2, 1, 4): 147, (4, 3, 4): 144, (0, 5, 2): 144, (4, 5, 2): 143, (4, 1, 2): 142, (4, 5, 0): 140, (2, 5, 4): 136, (0, 0, 0): 132, (5, 0, 0): 132, (3, 3, 2): 131})\n",
      " Counter({(3, 1, 4): 180, (4, 3, 2): 179, (1, 5, 4): 170, (2, 5, 4): 168, (2, 3, 4): 167, (4, 1, 1): 166, (1, 5, 2): 165, (5, 1, 4): 161, (2, 1, 1): 160, (1, 3, 4): 158, (1, 1, 4): 151, (5, 4, 1): 149, (3, 1, 2): 148, (3, 2, 1): 147, (1, 1, 2): 146, (4, 5, 4): 144, (4, 5, 2): 144, (1, 3, 2): 143, (1, 2, 1): 143, (1, 1, 1): 143, (1, 4, 1): 143, (3, 4, 1): 143, (5, 2, 1): 141, (2, 3, 2): 138, (5, 1, 2): 136, (2, 5, 2): 133, (4, 3, 4): 130})]\n"
     ]
    }
   ],
   "source": [
    "for pub_result in result:\n",
    "    print(pub_result.get_counts(loc=...))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.671874999999999\n",
      "-0.09423828125000021\n",
      "-0.07226562499999953\n",
      "-0.09423828124999951\n"
     ]
    }
   ],
   "source": [
    "from povm_toolbox.post_processor import POVMPostProcessor\n",
    "from qiskit.quantum_info import SparsePauliOp\n",
    "\n",
    "observable = SparsePauliOp([\"II\", \"XX\", \"YY\", \"ZZ\"], coeffs=[1, 1, -1, 1])\n",
    "\n",
    "post_processor1 = POVMPostProcessor(result[0])\n",
    "exp_value, std = post_processor1.get_expectation_value(observable=observable)\n",
    "print(exp_value)\n",
    "\n",
    "for pub_result in result[1:4]:\n",
    "    post_processor = POVMPostProcessor(pub_result)\n",
    "    exp_value, std = post_processor.get_expectation_value(observable=observable)\n",
    "    print(exp_value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 2.00793457  2.0892334   2.35656738 -3.83862305]\n"
     ]
    }
   ],
   "source": [
    "post_processor5 = POVMPostProcessor(result[4])\n",
    "observable = SparsePauliOp(\n",
    "    [\"IIZ\", \"IXX\", \"YIY\", \"ZZI\", \"XXX\", \"XYZ\"], coeffs=[1, 1, -1, 1, 0.5, -2]\n",
    ")\n",
    "exp_value, std = post_processor5.get_expectation_value(observable=observable)\n",
    "print(exp_value)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.089233398437499 ± 0.20321114673076907\n"
     ]
    }
   ],
   "source": [
    "exp_value, std = post_processor5.get_expectation_value(observable=observable, loc=(1))\n",
    "print(exp_value, \"\\u00b1\", std)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "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.10.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}