[404218]: / Code / All Qiskit, PennyLane QML Nov 23 / 30a Fourier Cost 0.00022 kkawchak.ipynb

Download this file

1475 lines (1474 with data), 284.5 kB

{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 70,
      "metadata": {
        "id": "8M5M9PlyJcSp"
      },
      "outputs": [],
      "source": [
        "# This cell is added by sphinx-gallery\n",
        "# It can be customized to whatever you like\n",
        "%matplotlib inline\n",
        "# !pip install pennylane"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "jvQZBJU3JcSq"
      },
      "source": [
        "Quantum models as Fourier series\n",
        "================================\n",
        "\n",
        "::: {.meta}\n",
        ":property=\\\"og:description\\\": The class of functions a quantum model can\n",
        "learn is characterized by the structure of its corresponding Fourier\n",
        "series. :property=\\\"og:image\\\":\n",
        "<https://pennylane.ai/qml/_images/scheme.png>\n",
        ":::\n",
        "\n",
        "::: {.related}\n",
        "tutorial\\_data\\_reuploading\\_classifier Data-reuploading classifier\n",
        ":::\n",
        "\n",
        "*Authors: Maria Schuld and Johannes Jakob Meyer --- Posted: 24 August\n",
        "2020. Last updated: 15 January 2021.*\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wQaAkjNrJcSr"
      },
      "source": [
        "This demonstration is based on the paper *The effect of data encoding on\n",
        "the expressive power of variational quantum machine learning models* by\n",
        "[Schuld, Sweke, and Meyer (2020)](https://arxiv.org/abs/2008.08605).\n",
        "\n",
        "![](../demonstrations/expressivity_fourier_series/scheme_thumb.png){.align-center\n",
        "width=\"50.0%\"}\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Gd-5kQ-KJcSr"
      },
      "source": [
        "The paper links common quantum machine learning models designed for\n",
        "near-term quantum computers to Fourier series (and, in more general, to\n",
        "Fourier-type sums). With this link, the class of functions a quantum\n",
        "model can learn (i.e., its \\\"expressivity\\\") can be characterized by the\n",
        "model\\'s control of the Fourier series\\' frequencies and coefficients.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "CZtJRBgdJcSr"
      },
      "source": [
        "Background\n",
        "==========\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "rBGFzz46JcSr"
      },
      "source": [
        "Ref. considers quantum machine learning models of the form\n",
        "\n",
        "$$f_{\\boldsymbol \\theta}(x) = \\langle 0| U^{\\dagger}(x,\\boldsymbol \\theta) M U(x, \\boldsymbol \\theta) | 0 \\rangle$$\n",
        "\n",
        "where $M$ is a measurement observable and $U(x, \\boldsymbol \\theta)$ is\n",
        "a variational quantum circuit that encodes a data input $x$ and depends\n",
        "on a set of parameters $\\boldsymbol \\theta$. Here we will restrict\n",
        "ourselves to one-dimensional data inputs, but the paper motivates that\n",
        "higher-dimensional features simply generalize to multi-dimensional\n",
        "Fourier series.\n",
        "\n",
        "The circuit itself repeats $L$ layers, each consisting of a\n",
        "data-encoding circuit block $S(x)$ and a trainable circuit block\n",
        "$W(\\boldsymbol \\theta)$ that is controlled by the parameters\n",
        "$\\boldsymbol \\theta$. The data encoding block consists of gates of the\n",
        "form $\\mathcal{G}(x) = e^{-ix H}$, where $H$ is a Hamiltonian. A\n",
        "prominent example of such gates are Pauli rotations.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "cOO9wOoKJcSr"
      },
      "source": [
        "The paper shows how such a quantum model can be written as a\n",
        "Fourier-type sum of the form\n",
        "\n",
        "$$f_{ \\boldsymbol \\theta}(x) = \\sum_{\\omega \\in \\Omega} c_{\\omega}( \\boldsymbol \\theta) \\; e^{i  \\omega x}.$$\n",
        "\n",
        "As illustrated in the picture below (which is Figure 1 from the paper),\n",
        "the \\\"encoding Hamiltonians\\\" in $S(x)$ determine the set $\\Omega$ of\n",
        "available \\\"frequencies\\\", and the remainder of the circuit, including\n",
        "the trainable parameters, determines the coefficients $c_{\\omega}$.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "z_N46n9XJcSs"
      },
      "source": [
        "![](../demonstrations/expressivity_fourier_series/scheme.png){.align-center\n",
        "width=\"50.0%\"}\n",
        "\n",
        "|\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "c6BT0LuvJcSs"
      },
      "source": [
        "The paper demonstrates many of its findings for circuits in which\n",
        "$\\mathcal{G}(x)$ is a single-qubit Pauli rotation gate. For example, it\n",
        "shows that $r$ repetitions of a Pauli rotation-encoding gate in\n",
        "\\\"sequence\\\" (on the same qubit, but with multiple layers $r=L$) or in\n",
        "\\\"parallel\\\" (on $r$ different qubits, with $L=1$) creates a quantum\n",
        "model that can be expressed as a *Fourier series* of the form\n",
        "\n",
        "$$f_{ \\boldsymbol \\theta}(x) = \\sum_{n \\in \\Omega} c_{n}(\\boldsymbol \\theta) e^{i  n x},$$\n",
        "\n",
        "where $\\Omega = \\{ -r, \\dots, -1, 0, 1, \\dots, r\\}$ is a spectrum of\n",
        "consecutive integer-valued frequencies up to degree $r$.\n",
        "\n",
        "As a result, we expect quantum models that encode an input $x$ by $r$\n",
        "Pauli rotations to only be able to fit Fourier series of at most degree\n",
        "$r$.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "aWRFbQOaJcSs"
      },
      "source": [
        "Goal of this demonstration\n",
        "==========================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Iq0OUR-_JcSs"
      },
      "source": [
        "The experiments below investigate this \\\"Fourier-series\\\"-like nature of\n",
        "quantum models by showing how to reproduce the simulations underlying\n",
        "Figures 3, 4 and 5 in Section II of the paper:\n",
        "\n",
        "-   **Figures 3 and 4** are function-fitting experiments, where quantum\n",
        "    models with different encoding strategies have the task to fit\n",
        "    Fourier series up to a certain degree. As in the paper, we will use\n",
        "    examples of qubit-based quantum circuits where a single data feature\n",
        "    is encoded via Pauli rotations.\n",
        "-   **Figure 5** plots the Fourier coefficients of randomly sampled\n",
        "    instances from a family of quantum models which is defined by some\n",
        "    parametrized ansatz.\n",
        "\n",
        "The code is presented so you can easily modify it in order to play\n",
        "around with other settings and models. The settings used in the paper\n",
        "are given in the various subsections.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ph8H6eQMJcSs"
      },
      "source": [
        "First of all, let\\'s make some imports and define a standard loss\n",
        "function for the training.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 71,
      "metadata": {
        "id": "LxU9FaWAJcSs"
      },
      "outputs": [],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import pennylane as qml\n",
        "from pennylane import numpy as np\n",
        "\n",
        "np.random.seed(42)\n",
        "\n",
        "def square_loss(targets, predictions):\n",
        "    loss = 0\n",
        "    for t, p in zip(targets, predictions):\n",
        "        loss += (t - p) ** 2\n",
        "    loss = loss / len(targets)\n",
        "    return 0.5*loss"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "QuoNQMahJcSt"
      },
      "source": [
        "Part I: Fitting Fourier series with serial Pauli-rotation encoding\n",
        "==================================================================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-TEc0KxLJcSt"
      },
      "source": [
        "First we will reproduce Figures 3 and 4 from the paper. These show how\n",
        "quantum models that use Pauli rotations as data-encoding gates can only\n",
        "fit Fourier series up to a certain degree. The degree corresponds to the\n",
        "number of times that the Pauli gate gets repeated in the quantum model.\n",
        "\n",
        "Let us consider circuits where the encoding gate gets repeated\n",
        "sequentially (as in Figure 2a of the paper). For simplicity we will only\n",
        "look at single-qubit circuits:\n",
        "\n",
        "![](../demonstrations/expressivity_fourier_series/single_qubit_model.png){.align-center\n",
        "width=\"50.0%\"}\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "oDUoimZzJcSt"
      },
      "source": [
        "Define a target function\n",
        "========================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hlrDJI2EJcSt"
      },
      "source": [
        "We first define a (classical) target function which will be used as a\n",
        "\\\"ground truth\\\" that the quantum model has to fit. The target function\n",
        "is constructed as a Fourier series of a specific degree.\n",
        "\n",
        "We also allow for a rescaling of the data by a hyperparameter `scaling`,\n",
        "which we will do in the quantum model as well. As shown in, for the\n",
        "quantum model to learn the classical model in the experiment below, the\n",
        "scaling of the quantum model and the target function have to match,\n",
        "which is an important observation for the design of quantum machine\n",
        "learning models.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 72,
      "metadata": {
        "id": "cHNfuc9LJcSt"
      },
      "outputs": [],
      "source": [
        "degree = 1  # degree of the target function\n",
        "scaling = 1  # scaling of the data\n",
        "coeffs = [0.15 + 0.15j]*degree  # coefficients of non-zero frequencies\n",
        "coeff0 = 0.1  # coefficient of zero frequency\n",
        "\n",
        "def target_function(x):\n",
        "    \"\"\"Generate a truncated Fourier series, where the data gets re-scaled.\"\"\"\n",
        "    res = coeff0\n",
        "    for idx, coeff in enumerate(coeffs):\n",
        "        exponent = np.complex128(scaling * (idx+1) * x * 1j)\n",
        "        conj_coeff = np.conjugate(coeff)\n",
        "        res += coeff * np.exp(exponent) + conj_coeff * np.exp(-exponent)\n",
        "    return np.real(res)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LIazLexTJcSt"
      },
      "source": [
        "Let\\'s have a look at it.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 73,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 435
        },
        "id": "IxG3Xc5KJcSt",
        "outputId": "baec011f-e272-4cd6-8362-e7c3f4ad9b30"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "x = np.linspace(-6, 6, 70, requires_grad=False)\n",
        "target_y = np.array([target_function(x_) for x_ in x], requires_grad=False)\n",
        "\n",
        "plt.plot(x, target_y, c='black')\n",
        "plt.scatter(x, target_y, facecolor='white', edgecolor='black')\n",
        "plt.ylim(-1, 1)\n",
        "plt.show();"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "EzayLur8JcSt"
      },
      "source": [
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "To reproduce the figures in the paper, you can use the following\n",
        "settings in the cells above:\n",
        "\n",
        "-   For the settings\n",
        "\n",
        "        degree = 1\n",
        "        coeffs = (0.15 + 0.15j) * degree\n",
        "        coeff0 = 0.1\n",
        "\n",
        "    this function is the ground truth\n",
        "    $g(x) = \\sum_{n=-1}^1 c_{n} e^{-nix}$ from Figure 3 in the paper.\n",
        "\n",
        "-   To get the ground truth $g'(x) = \\sum_{n=-2}^2 c_{n} e^{-nix}$ with\n",
        "    $c_0=0.1$, $c_1 = c_2 = 0.15 - 0.15i$ from Figure 3, you need to\n",
        "    increase the degree to two:\n",
        "\n",
        "        degree = 2\n",
        "\n",
        "-   The ground truth from Figure 4 can be reproduced by changing the\n",
        "    settings to:\n",
        "\n",
        "        degree = 5\n",
        "        coeffs = (0.05 + 0.05j) * degree\n",
        "        coeff0 = 0.0\n",
        ":::\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Rc_zGNV4JcSt"
      },
      "source": [
        "Define the serial quantum model\n",
        "===============================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Ne0dxusGJcSt"
      },
      "source": [
        "We now define the quantum model itself.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 74,
      "metadata": {
        "id": "XyXFJ2i8JcSt"
      },
      "outputs": [],
      "source": [
        "scaling = 1\n",
        "\n",
        "dev = qml.device('default.qubit', wires=1)\n",
        "\n",
        "def S(x):\n",
        "    \"\"\"Data-encoding circuit block.\"\"\"\n",
        "    qml.RX(scaling * x, wires=0)\n",
        "\n",
        "def W(theta):\n",
        "    \"\"\"Trainable circuit block.\"\"\"\n",
        "    qml.Rot(theta[0], theta[1], theta[2], wires=0)\n",
        "\n",
        "\n",
        "@qml.qnode(dev, interface=\"autograd\")\n",
        "def serial_quantum_model(weights, x):\n",
        "\n",
        "    for theta in weights[:-1]:\n",
        "        W(theta)\n",
        "        S(x)\n",
        "\n",
        "    # (L+1)'th unitary\n",
        "    W(weights[-1])\n",
        "\n",
        "    return qml.expval(qml.PauliZ(wires=0))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "eKfmzbuhJcSu"
      },
      "source": [
        "You can run the following cell multiple times, each time sampling\n",
        "different weights, and therefore different quantum models.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 75,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 435
        },
        "id": "DY378RTpJcSu",
        "outputId": "82a247b5-8091-46ee-f281-88d9d2cbbb7d"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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wSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6Fk1wsrOz0a9fP7i6usLd3R2RkZHIy8u76306deoEjUZjtg0ZMsTsmDNnzqBbt25wcXGBp6cn3nrrLdy6dcuST4WIiIhsSDVLnrxfv364ePEikpKSUFhYiIiICAwePBirV6++6/2ioqIwadIk498uLi7G/aKiInTr1g3e3t746aefcPHiRYSHh6N69eqYMmWKxZ4LERER2Q6NoiiKJU6ckZEBf39/HDhwAO3btwcA7NixA127dsW5c+fg6+tb7P06deqENm3aYM6cOcXe/u233+I///kPLly4AC8vLwBAYmIixo0bh8uXL8PJyanU2HJzc+Hm5gadTgdXV9eKPUEiIiKqUuX5/rZYF1VKSgrc3d2NyQ0AhISEwMHBAfv377/rfVetWoX69evj4YcfRlxcHK5fv2523latWhmTGwAIDQ1Fbm4ujh49Wuz5CgoKkJuba7YRERGRelmsiyozMxOenp7mD1atGurWrYvMzMwS7/fqq6+iUaNG8PX1xaFDhzBu3DgcP34c69evN5739uQGgPHvks47depUTJw48V6eDhEREdmQcic448ePx/Tp0+96TEZGRoUDGjx4sHG/VatW8PHxQefOnfHnn3/i/vvvr9A54+LiEBsba/w7NzcXfn5+FY6RiIiIrFu5E5wxY8Zg0KBBdz2madOm8Pb2xqVLl8yuv3XrFrKzs+Ht7V3mxwsKCgIAnDhxAvfffz+8vb2RmppqdkxWVhYAlHherVYLrVZb5sckIiIi21buBMfDwwMeHh6lHhccHIycnBykpaUhICAAALB7927o9Xpj0lIW6enpAAAfHx/jeT/88ENcunTJ2AWWlJQEV1dX+Pv7l/PZEBERkRpZbJBxy5YtERYWhqioKKSmpuLHH39ETEwM+vbta5xBdf78ebRo0cLYIvPnn39i8uTJSEtLw6lTp7B582aEh4fjySefxCOPPAIAeO655+Dv748BAwbg119/xc6dO/Huu+8iOjqarTREREQEwMKF/latWoUWLVqgc+fO6Nq1Kx5//HEsXLjQeHthYSGOHz9unCXl5OSE7777Ds899xxatGiBMWPGoFevXtiyZYvxPo6Ojti6dSscHR0RHByM/v37Izw83KxuDhEREdk3i9XBsWasg0NERGR7rKIODhEREZEsTHCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkepYNMHJzs5Gv3794OrqCnd3d0RGRiIvL6/E40+dOgWNRlPstm7dOuNxxd2+Zs0aSz4VIiIisiHVLHnyfv364eLFi0hKSkJhYSEiIiIwePBgrF69utjj/fz8cPHiRbPrFi5ciJkzZ6JLly5m1y9duhRhYWHGv93d3Ss9fiIiIrJNFktwMjIysGPHDhw4cADt27cHAMybNw9du3bFrFmz4Ovre8d9HB0d4e3tbXbdhg0b8PLLL6NWrVpm17u7u99xLBERERFgwS6qlJQUuLu7G5MbAAgJCYGDgwP2799fpnOkpaUhPT0dkZGRd9wWHR2N+vXrIzAwEEuWLIGiKCWep6CgALm5uWYbERERqZfFWnAyMzPh6elp/mDVqqFu3brIzMws0zkWL16Mli1bokOHDmbXT5o0Cc888wxcXFywa9cuDBs2DHl5eRgxYkSx55k6dSomTpxYsSdCRERENqfcLTjjx48vcSCwYTt27Ng9B/bPP/9g9erVxbbevPfee+jYsSPatm2LcePGYezYsZg5c2aJ54qLi4NOpzNuZ8+evef4iIiIyHqVuwVnzJgxGDRo0F2Padq0Kby9vXHp0iWz62/duoXs7OwyjZ35+uuvcf36dYSHh5d6bFBQECZPnoyCggJotdo7btdqtcVeT0REROpU7gTHw8MDHh4epR4XHByMnJwcpKWlISAgAACwe/du6PV6BAUFlXr/xYsXo3v37mV6rPT0dNSpU4dJDBEREQGw4Bicli1bIiwsDFFRUUhMTERhYSFiYmLQt29f4wyq8+fPo3PnzlixYgUCAwON9z1x4gT27duH7du333HeLVu2ICsrC4899hicnZ2RlJSEKVOm4M0337TUUyEiIiIbY9E6OKtWrUJMTAw6d+4MBwcH9OrVC3PnzjXeXlhYiOPHj+P69etm91uyZAkaNGiA55577o5zVq9eHQkJCRg9ejQURUGzZs0we/ZsREVFWfKpEBERkQ3RKHebX61Subm5cHNzg06ng6urq+xwiIiIqAzK8/3NtaiIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqsMEh4iIiFSHCQ4RERGpDhMcIiIiUh0mOERERKQ6THCIiIhIdZjgEBERkeowwSEiIiLVYYJDREREqmOxBOfDDz9Ehw4d4OLiAnd39zLdR1EUTJgwAT4+PqhRowZCQkLwxx9/mB2TnZ2Nfv36wdXVFe7u7oiMjEReXp4FngERERHZKoslODdv3kTv3r0xdOjQMt9nxowZmDt3LhITE7F//37UrFkToaGhuHHjhvGYfv364ejRo0hKSsLWrVuxb98+DB482BJPgYiIiGyURlEUxZIPsGzZMowaNQo5OTl3PU5RFPj6+mLMmDF48803AQA6nQ5eXl5YtmwZ+vbti4yMDPj7++PAgQNo3749AGDHjh3o2rUrzp07B19f32LPXVBQgIKCAuPfOp0ODRs2xNmzZ+Hq6lo5T5SIiIgsKjc3F35+fsjJyYGbm9vdD1YsbOnSpYqbm1upx/35558KAOWXX34xu/7JJ59URowYoSiKoixevFhxd3c3u72wsFBxdHRU1q9fX+K54+PjFQDcuHHjxo0bNxVsZ8+eLTWvqAYrkZmZCQDw8vIyu97Ly8t4W2ZmJjw9Pc1ur1atGurWrWs8pjhxcXGIjY01/q3X65GdnY169epBo9FU1lMAYMou2TpUOr5WZcfXquz4WpUdX6uy42tVPpZ6vRRFwbVr10rssblduRKc8ePHY/r06Xc9JiMjAy1atCjPaS1Oq9VCq9WaXVfWgc8V5erqyjdBGfG1Kju+VmXH16rs+FqVHV+r8rHE61Vq19T/lCvBGTNmDAYNGnTXY5o2bVqeUxp5e3sDALKysuDj42O8PisrC23atDEec+nSJbP73bp1C9nZ2cb7ExEREZUrwfHw8ICHh4dFAmnSpAm8vb2RnJxsTGhyc3Oxf/9+40ys4OBg5OTkIC0tDQEBAQCA3bt3Q6/XIygoyCJxERERke2x2DTxM2fOID09HWfOnEFRURHS09ORnp5uVrOmRYsW2LBhAwBAo9Fg1KhR+OCDD7B582YcPnwY4eHh8PX1Rc+ePQEALVu2RFhYGKKiopCamooff/wRMTEx6Nu3b5n646qCVqtFfHz8HV1idCe+VmXH16rs+FqVHV+rsuNrVT7W8HpZbJr4oEGDsHz58juu//7779GpUyfx4BoNli5dauz2UhQF8fHxWLhwIXJycvD4449jwYIFaN68ufH+2dnZiImJwZYtW+Dg4IBevXph7ty5qFWrliWeBhEREdkgi9fBISIiIqpqXIuKiIiIVIcJDhEREakOExwiIiJSHSY4REREpDpMcCxs27ZtCAoKQo0aNVCnTh3jlHcqXkFBAdq0aQONRoP09HTZ4VidU6dOITIyEk2aNEGNGjVw//33Iz4+Hjdv3pQdmtVISEhA48aN4ezsjKCgIKSmpsoOyepMnToVjz76KGrXrg1PT0/07NkTx48flx2WTZg2bZqxrAnd6fz58+jfvz/q1auHGjVqoFWrVvi///s/KbEwwbGgb775BgMGDEBERAR+/fVX/Pjjj3j11Vdlh2XVxo4dazU1jazRsWPHoNfr8dlnn+Ho0aP4+OOPkZiYiLffflt2aFZh7dq1iI2NRXx8PA4ePIjWrVsjNDT0jgro9m7v3r2Ijo7Gzz//jKSkJBQWFuK5555Dfn6+7NCs2oEDB/DZZ5/hkUcekR2KVfr777/RsWNHVK9eHd9++y1+++03fPTRR6hTp46cgEpdjpMqpLCwULnvvvuUzz//XHYoNmP79u1KixYtlKNHjyrAnSvLU/FmzJihNGnSRHYYViEwMFCJjo42/l1UVKT4+voqU6dOlRiV9bt06ZICQNm7d6/sUKzWtWvXlAceeEBJSkpSnnrqKWXkyJGyQ7I648aNUx5//HHZYRixBcdCDh48iPPnz8PBwQFt27aFj48PunTpgiNHjsgOzSplZWUhKioKK1euhIuLi+xwbIpOp0PdunVlhyHdzZs3kZaWhpCQEON1Dg4OCAkJQUpKisTIrJ9OpwMA/j+6i+joaHTr1s3s/xeZ27x5M9q3b4/evXvD09MTbdu2xaJFi6TFwwTHQv766y8AwPvvv493330XW7duRZ06ddCpUydkZ2dLjs66KIqCQYMGYciQIWjfvr3scGzKiRMnMG/ePLzxxhuyQ5HuypUrKCoqgpeXl9n1Xl5eyMzMlBSV9dPr9Rg1ahQ6duyIhx9+WHY4VmnNmjU4ePAgpk6dKjsUq/bXX3/h008/xQMPPICdO3di6NChGDFiRLGrGlQFJjjlNH78eGg0mrtuhnESAPDOO++gV69eCAgIwNKlS6HRaLBu3TrJz6JqlPW1mjdvHq5du4a4uDjZIUtT1tfqdufPn0dYWBh69+6NqKgoSZGTrYuOjsaRI0ewZs0a2aFYpbNnz2LkyJFYtWoVnJ2dZYdj1fR6Pdq1a4cpU6agbdu2GDx4MKKiopCYmCglnnKtJk7AmDFjjGtnlaRp06a4ePEiAMDf3994vVarRdOmTXHmzBlLhmg1yvpa7d69GykpKXcsyta+fXv069dPWvZflcr6WhlcuHABTz/9NDp06ICFCxdaODrbUL9+fTg6OiIrK8vs+qysLHh7e0uKyrrFxMRg69at2LdvHxo0aCA7HKuUlpaGS5cuoV27dsbrioqKsG/fPsyfPx8FBQVwdHSUGKH18PHxMfvOA8Qi2d98842UeJjglJOHhwc8PDxKPS4gIABarRbHjx/H448/DgAoLCzEqVOn0KhRI0uHaRXK+lrNnTsXH3zwgfHvCxcuIDQ0FGvXrkVQUJAlQ7QaZX2tANFy8/TTTxtbBR0c2BALAE5OTggICEBycrKxHINer0dycjJiYmLkBmdlFEXB8OHDsWHDBuzZswdNmjSRHZLV6ty5Mw4fPmx2XUREBFq0aIFx48YxublNx44d7yg38Pvvv0v7zmOCYyGurq4YMmQI4uPj4efnh0aNGmHmzJkAgN69e0uOzro0bNjQ7G/DyvD3338/f1X+y/nz59GpUyc0atQIs2bNwuXLl423sZUCiI2NxcCBA9G+fXsEBgZizpw5yM/PR0REhOzQrEp0dDRWr16NTZs2oXbt2sYxSm5ubqhRo4bk6KxL7dq17xibVLNmTdSrV49jlv5l9OjR6NChA6ZMmYKXX34ZqampWLhwobRWZiY4FjRz5kxUq1YNAwYMwD///IOgoCDs3r1bXk0AsnlJSUk4ceIETpw4cUfypyiKpKisR58+fXD58mVMmDABmZmZaNOmDXbs2HHHwGN79+mnnwIAOnXqZHb90qVLS+0qJSrJo48+ig0bNiAuLg6TJk1CkyZNMGfOHPTr109KPBqFn4pERESkMuy8JyIiItVhgkNERESqwwSHiIiIVIcJDhEREakOExwiIiJSHSY4REREpDpMcIiIiEh1mOAQERGR6jDBISIiItVhgkNERESqwwSHiIiIVOf/AVm2XxiEsxIpAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "r = 1 # number of times the encoding gets repeated (here equal to the number of layers)\n",
        "weights = 2 * np.pi * np.random.random(size=(r+1, 3), requires_grad=True) # some random initial weights\n",
        "\n",
        "x = np.linspace(-6, 6, 70, requires_grad=False)\n",
        "random_quantum_model_y = [serial_quantum_model(weights, x_) for x_ in x]\n",
        "\n",
        "plt.plot(x, random_quantum_model_y, c='blue')\n",
        "plt.ylim(-1,1)\n",
        "plt.show()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yR24kmdFJcSu"
      },
      "source": [
        "No matter what weights are picked, the single qubit model for\n",
        "[L=1]{.title-ref} will always be a sine function of a fixed frequency.\n",
        "The weights merely influence the amplitude, y-shift, and phase of the\n",
        "sine.\n",
        "\n",
        "This observation is formally derived in Section II.A of the paper.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qc6vKf7wJcSu"
      },
      "source": [
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "You can increase the number of layers. Figure 4 from the paper, for\n",
        "example, uses the settings `L=1`, `L=3` and `L=5`.\n",
        ":::\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yGhX4z6cJcSu"
      },
      "source": [
        "Finally, let\\'s look at the circuit we just created:\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 76,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "T6F2mU6BJcSu",
        "outputId": "1d98137b-7907-4698-eedc-4760eab9740e"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "0: ──Rot(1.15,4.90,3.75)──RX(6.00)──Rot(2.80,0.63,2.89)─┤  <Z>\n"
          ]
        }
      ],
      "source": [
        "print(qml.draw(serial_quantum_model)(weights, x[-1]))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BkOa77rZJcSu"
      },
      "source": [
        "Fit the model to the target\n",
        "===========================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Pi-5dw3vJcSu"
      },
      "source": [
        "The next step is to optimize the weights in order to fit the ground\n",
        "truth.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 77,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "SI6m4vJbJcSu",
        "outputId": "2a549a9a-c4f6-4dd3-82f1-f0f1aeaad4c8"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Cost at step  10: 0.11428002647555723\n",
            "Cost at step  20: 0.012640683454725361\n",
            "Cost at step  30: 0.002140581731525977\n",
            "Cost at step  40: 0.0019322449091532447\n",
            "Cost at step  50: 0.00013360533241902023\n"
          ]
        }
      ],
      "source": [
        "def cost(weights, x, y):\n",
        "    predictions = [serial_quantum_model(weights, x_) for x_ in x]\n",
        "    return square_loss(y, predictions)\n",
        "\n",
        "max_steps = 50\n",
        "opt = qml.AdamOptimizer(0.3)\n",
        "batch_size = 25\n",
        "cst = [cost(weights, x, target_y)]  # initial cost\n",
        "\n",
        "for step in range(max_steps):\n",
        "\n",
        "    # Select batch of data\n",
        "    batch_index = np.random.randint(0, len(x), (batch_size,))\n",
        "    x_batch = x[batch_index]\n",
        "    y_batch = target_y[batch_index]\n",
        "\n",
        "    # Update the weights by one optimizer step\n",
        "    weights, _, _ = opt.step(cost, weights, x_batch, y_batch)\n",
        "\n",
        "    # Save, and possibly print, the current cost\n",
        "    c = cost(weights, x, target_y)\n",
        "    cst.append(c)\n",
        "    if (step + 1) % 10 == 0:\n",
        "        print(\"Cost at step {0:3}: {1}\".format(step + 1, c))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ipiobq1RJcSu"
      },
      "source": [
        "To continue training, you may just run the above cell again. Once you\n",
        "are happy, you can use the trained model to predict function values, and\n",
        "compare them with the ground truth.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 78,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 435
        },
        "id": "UjG0u7R4JcSu",
        "outputId": "71edf099-6e23-475d-e38c-df2dd5b88064"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGiCAYAAADqYLxOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABtc0lEQVR4nO3deZyN5f/H8deZM5ttZsSYGVlmLCll36IUEcqS9hVJtFCJZKlIG6FSUn3byE+SjDaVQiNiLBEhiSLrWJKZsQ1zzuf3x8w5zTDWjHPmzPv5eJxHnftc557rHOe+7s993df1uRxmZoiIiIgEkCBfV0BERETkbFOAIyIiIgFHAY6IiIgEHAU4IiIiEnAU4IiIiEjAUYAjIiIiAUcBjoiIiAQcBTgiIiIScBTgiIiISMBRgCMiIiIBJ18DnLlz59K+fXvKli2Lw+Hgs88+O+l75syZQ926dQkLC6NKlSqMHz/+mDJjx44lPj6e8PBwGjVqxOLFi89+5UVERKTAytcAZ//+/dSqVYuxY8eeUvkNGzbQtm1bmjdvzvLly+nduzf33nsv3377rbfMxx9/TJ8+fRgyZAjLli2jVq1atG7dmp07d+bXxxAREZECxnGuFtt0OBx8+umndOzY8bhl+vfvz1dffcWqVau822677Tb27t3LjBkzAGjUqBENGjTg9ddfB8DtdlO+fHkeeughBgwYkK+fQURERAqGYF9XIKfk5GRatmyZa1vr1q3p3bs3AIcPH2bp0qUMHDjQ+3pQUBAtW7YkOTn5uPvNyMggIyPD+9ztdrNnzx5KlSqFw+E4ux9CRERE8oWZkZ6eTtmyZQkKOvFNKL8KcFJSUoiJicm1LSYmhrS0NA4ePMg///yDy+XKs8xvv/123P0OGzaMoUOH5kudRURE5NzavHkz5cqVO2EZvwpw8svAgQPp06eP93lqaioVKlRg8+bNRERE+LBmIiIicqrS0tIoX748JUqUOGlZvwpwYmNj2bFjR65tO3bsICIigiJFiuB0OnE6nXmWiY2NPe5+w8LCCAsLO2Z7RESEAhwREZEC5lSGl/hVHpzGjRsze/bsXNtmzpxJ48aNAQgNDaVevXq5yrjdbmbPnu0tIyIiIpKvAc6+fftYvnw5y5cvB7KmgS9fvpxNmzYBWbeOOnfu7C1///338+eff/L444/z22+/8cYbbzBlyhQeffRRb5k+ffrwzjvv8MEHH7BmzRoeeOAB9u/fT9euXfPzo4iIiEgBkq+3qH766SeaN2/ufe4ZB9OlSxfGjx/P9u3bvcEOQEJCAl999RWPPvoor776KuXKlePdd9+ldevW3jK33noru3btYvDgwaSkpFC7dm1mzJhxzMBjERERKbzOWR4cf5KWlkZkZCSpqakagyMiIlJAnM7526/G4IiIiIicDQpwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTgKMARERGRgKMAR0RERAKOAhwREREJOApwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTgKMARERGRgKMAR0RERAKOAhwREREJOApwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTgKMARERGRgHNOApyxY8cSHx9PeHg4jRo1YvHixcct26xZMxwOxzGPtm3besvcfffdx7zepk2bc/FRREREpAAIzu8/8PHHH9OnTx/eeustGjVqxOjRo2ndujVr166lTJkyx5SfNm0ahw8f9j7/+++/qVWrFjfffHOucm3atGHcuHHe52FhYfn3IURERKRAyfcenJdffpnu3bvTtWtXqlevzltvvUXRokV5//338yx/3nnnERsb633MnDmTokWLHhPghIWF5SpXsmTJ/P4oIiIiUkDka4Bz+PBhli5dSsuWLf/9g0FBtGzZkuTk5FPax3vvvcdtt91GsWLFcm2fM2cOZcqUoVq1ajzwwAP8/fffx91HRkYGaWlpuR4iIiISuPI1wNm9ezcul4uYmJhc22NiYkhJSTnp+xcvXsyqVau49957c21v06YNEyZMYPbs2bz44ov88MMPXHPNNbhcrjz3M2zYMCIjI72P8uXLn/mHEhEREb+X72Nw/ov33nuPGjVq0LBhw1zbb7vtNu//16hRg5o1a1K5cmXmzJlDixYtjtnPwIED6dOnj/d5WlqaghwREZEAlq89OKVLl8bpdLJjx45c23fs2EFsbOwJ37t//34mT55Mt27dTvp3KlWqROnSpVm/fn2er4eFhREREZHrISIiIoErXwOc0NBQ6tWrx+zZs73b3G43s2fPpnHjxid87yeffEJGRgZ33XXXSf/Oli1b+Pvvv4mLi/vPdRYREZGCL99nUfXp04d33nmHDz74gDVr1vDAAw+wf/9+unbtCkDnzp0ZOHDgMe9777336NixI6VKlcq1fd++ffTr14+FCxeyceNGZs+ezXXXXUeVKlVo3bp1fn8cERERKQDyfQzOrbfeyq5duxg8eDApKSnUrl2bGTNmeAceb9q0iaCg3HHW2rVr+fHHH/nuu++O2Z/T6eSXX37hgw8+YO/evZQtW5ZWrVrx7LPPKheOiIiIAOAwM/N1Jc61tLQ0IiMjSU1N1XgcERGRAuJ0zt9ai0pEREQCjgIcERERCTgKcERERCTgKMARERGRgKMAR0RERAKOAhwREREJOApwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTgKMARERGRgKMAR0RERAKOAhwREREJOApwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTgKMARERGRgKMAR0RERAJOsK8rICKBY+9eWLYMfvop67FyJZQqBRdf/O+jenWIjQWHw9e1FSnc9u+HBQtgzhyYOxcyMqBCBahYMfd/ExKgZElf1/b0KcARkTNmBlOnwqefZgU069blXW7+/NzPS5aEBg2gf3+46qr8r6eIQGZmVjCTlJT138WLs7bltGRJ3u/t0AGefDLruC0oHGZmvq7EuZaWlkZkZCSpqalERET4ujoiBdLChdC7t7FoUe6umIQEiI3dwm+/TeSff5KAUkB1ihZtQGRkE3bsKI7b/e97rr7aGDbMQb1657b+IoXJ3LkuunY9yJ9/Fs+1vXTpAxw8+A37908H9gAViIioycUXX0Nm5vmsX3+Ef/4J9ZZv3Tor0Ln88nNbf4/TOX9rDI6InJZNm+COO6BxY7KDm33AMKAV5cvX4aabHmfhwgpcfvkCkpOHkp7+NsnJLWnRYizbt0dQunQ8UAcYAxxm5kwH9evDrbfC77/78IOJBKDdu6FFi41ceaUzO7jZA3xAqVL96N59GLt3F+eqqz4gOfk+0tM/JDn5Tq688kuSk8uzaVMc//wTBlQD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HAU4IiIiEnAU4IiIiEjAUYAjIiIiAUcBjoiIiAScfA1w9uzZw5133klERARRUVF069aNffv2nfA9zZo1w+Fw5Hrcf//9ucps2rSJtm3bUrRoUcqUKUO/fv3IzMzMz48iIiIiBUhwfu78zjvvZPv27cycOZMjR47QtWtXevTowaRJk074vu7du/PMM894nxctWtT7/y6Xi7Zt2xIbG8uCBQvYvn07nTt3JiQkhBdeeCHfPouIiIgUHA4zs/zY8Zo1a6hevTpLliyhfv36AMyYMYNrr72WLVu2ULZs2Tzf16xZM2rXrs3o0aPzfP2bb76hXbt2bNu2jZiYGADeeust+vfvz65duwgNDT1p3dLS0oiMjCQ1NZWIiIgz+4AiIiJyTp3O+TvfblElJycTFRXlDW4AWrZsSVBQEIsWLTrhez/88ENKly7NJZdcwsCBAzlw4ECu/daoUcMb3AC0bt2atLQ0Vq9enef+MjIySEtLy/UQERGRwJVvt6hSUlIoU6ZM7j8WHMx5551HSkrKcd93xx13ULFiRcqWLcsvv/xC//79Wbt2LdOmTfPuN2dwA3ifH2+/w4YNY+jQof/l44iIiEgBctoBzoABA3jxxRdPWGbNmjVnXKEePXp4/79GjRrExcXRokUL/vjjDypXrnxG+xw4cCB9+vTxPk9LS6N8+fJnXEcRERHxb6cd4PTt25e77777hGUqVapEbGwsO3fuzLU9MzOTPXv2EBsbe8p/r1GjRgCsX7+eypUrExsby+LFi3OV2bFjB8Bx9xsWFkZYWNgp/00REREp2E47wImOjiY6Ovqk5Ro3bszevXtZunQp9erVA+D777/H7XZ7g5ZTsXz5cgDi4uK8+33++efZuXOn9xbYzJkziYiIoHr16qf5aURERCQQ5dsg44suuog2bdrQvXt3Fi9ezPz58+nVqxe33XabdwbV1q1bufDCC709Mn/88QfPPvssS5cuZePGjXzxxRd07tyZK664gpo1awLQqlUrqlevTqdOnVixYgXffvstTz75JD179lQvjYiIiAD5nOjvww8/5MILL6RFixZce+21XH755bz99tve148cOcLatWu9s6RCQ0OZNWsWrVq14sILL6Rv377ceOONfPnll973OJ1Opk+fjtPppHHjxtx111107tw5V94cERERKdzyLQ+OP1MeHBERkYLHL/LgiIiIiPiKAhwREREJOApwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTgKMARERGRgKMAR0RERAKOAhwREREJOApwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTgKMARERGRgKMAR0RERAKOAhwREREJOApwREREJOAowBEREZGAowBHREREAo4CHBEREQk4CnBEREQk4CjAERERkYCjAEdEREQCjgIcERERCTgKcERERCTg5GuAs2fPHu68804iIiKIioqiW7du7Nu377jlN27ciMPhyPPxySefeMvl9frkyZPz86OIiIhIARKcnzu/88472b59OzNnzuTIkSN07dqVHj16MGnSpDzLly9fnu3bt+fa9vbbbzNy5EiuueaaXNvHjRtHmzZtvM+joqLOev1FRESkYMq3AGfNmjXMmDGDJUuWUL9+fQDGjBnDtddey6hRoyhbtuwx73E6ncTGxuba9umnn3LLLbdQvHjxXNujoqKOKSsiIiIC+XiLKjk5maioKG9wA9CyZUuCgoJYtGjRKe1j6dKlLF++nG7duh3zWs+ePSldujQNGzbk/fffx8yOu5+MjAzS0tJyPURERCRw5VsPTkpKCmXKlMn9x4KDOe+880hJSTmlfbz33ntcdNFFNGnSJNf2Z555hquuuoqiRYvy3Xff8eCDD7Jv3z4efvjhPPczbNgwhg4demYfRERERAqc0+7BGTBgwHEHAnsev/3223+u2MGDB5k0aVKevTdPPfUUl112GXXq1KF///48/vjjjBw58rj7GjhwIKmpqd7H5s2b/3P9RERExH+ddg9O3759ufvuu09YplKlSsTGxrJz585c2zMzM9mzZ88pjZ2ZOnUqBw4coHPnzict26hRI5599lkyMjIICws75vWwsLA8t4uIiEhgOu0AJzo6mujo6JOWa9y4MXv37mXp0qXUq1cPgO+//x63202jRo1O+v733nuPDh06nNLfWr58OSVLllQQIyIiIkA+jsG56KKLaNOmDd27d+ett97iyJEj9OrVi9tuu807g2rr1q20aNGCCRMm0LBhQ+97169fz9y5c/n666+P2e+XX37Jjh07uPTSSwkPD2fmzJm88MILPPbYY/n1UURERKSAydc8OB9++CG9evWiRYsWBAUFceONN/Laa695Xz9y5Ahr167lwIEDud73/vvvU65cOVq1anXMPkNCQhg7diyPPvooZkaVKlV4+eWX6d69e35+FBERESlAHHai+dUBKi0tjcjISFJTU4mIiPB1dUREROQUnM75W2tRiYiISMBRgCMiIiIBRwGOiIiIBBwFOCIiIhJwFOCIiIhIwFGAIyIiIgFHAY6IiIgEHAU4IiIiEnAU4IiIiEjAUYAjIiIiAUcBjoiIiAQcBTgiIiIScBTgiIiISMBRgCMiIiIBRwGOiIiIBBwFOCIiIhJwFOCIiIhIwFGAIyIiIgFHAY6IiIgEHAU4IiIiEnAU4IiIiEjAUYAjIiIiAUcBjoiIiAQcBTgiIiIScBTgiIiISMBRgCMiIiIBRwGOiIiIBBwFOCIiIhJwFOCIiIhIwFGAIyIiIgFHAY6IiIgEHAU4IiIiEnAU4IiIiEjAUYAjIiIiAUcBjoiIiAQcBTgiIiIScPItwHn++edp0qQJRYsWJSoq6pTeY2YMHjyYuLg4ihQpQsuWLVm3bl2uMnv27OHOO+8kIiKCqKgounXrxr59+/LhE4iIiEhBlW8BzuHDh7n55pt54IEHTvk9I0aM4LXXXuOtt95i0aJFFCtWjNatW3Po0CFvmTvvvJPVq1czc+ZMpk+fzty5c+nRo0d+fAQREREpoBxmZvn5B8aPH0/v3r3Zu3fvCcuZGWXLlqVv37489thjAKSmphITE8P48eO57bbbWLNmDdWrV2fJkiXUr18fgBkzZnDttdeyZcsWypYtm+e+MzIyyMjI8D5PTU2lQoUKbN68mYiIiLPzQUVERCRfpaWlUb58efbu3UtkZOSJC1s+GzdunEVGRp603B9//GGA/fzzz7m2X3HFFfbwww+bmdl7771nUVFRuV4/cuSIOZ1OmzZt2nH3PWTIEAP00EMPPfTQQ48AeGzevPmkcUUwfiIlJQWAmJiYXNtjYmK8r6WkpFCmTJlcrwcHB3Peeed5y+Rl4MCB9OnTx/vc7XazZ88eSpUqhcPhOFsfAfg3ulTv0Mnpuzp1+q5Onb6rU6fv6tTpuzo9+fV9mRnp6enHvWOT02kFOAMGDODFF188YZk1a9Zw4YUXns5u811YWBhhYWG5tp3qwOczFRERoYPgFOm7OnX6rk6dvqtTp+/q1Om7Oj358X2d9NZUttMKcPr27cvdd999wjKVKlU6nV16xcbGArBjxw7i4uK823fs2EHt2rW9ZXbu3JnrfZmZmezZs8f7fhEREZHTCnCio6OJjo7Ol4okJCQQGxvL7NmzvQFNWloaixYt8s7Eaty4MXv37mXp0qXUq1cPgO+//x63202jRo3ypV4iIiJS8OTbNPFNmzaxfPlyNm3ahMvlYvny5SxfvjxXzpoLL7yQTz/9FACHw0Hv3r157rnn+OKLL1i5ciWdO3embNmydOzYEYCLLrqINm3a0L17dxYvXsz8+fPp1asXt9122yndjzsXwsLCGDJkyDG3xORY+q5Onb6rU6fv6tTpuzp1+q5Ojz98X/k2Tfzuu+/mgw8+OGZ7UlISzZo1y/rjDgfjxo3z3vYyM4YMGcLbb7/N3r17ufzyy3njjTe44IILvO/fs2cPvXr14ssvvyQoKIgbb7yR1157jeLFi+fHxxAREZECKN/z4IiIiIica1qLSkRERAKOAhwREREJOApwREREJOAowBEREZGAowAnn3311Vc0atSIIkWKULJkSe+Ud8lbRkYGtWvXxuFwsHz5cl9Xx+9s3LiRbt26kZCQQJEiRahcuTJDhgzh8OHDvq6a3xg7dizx8fGEh4fTqFEjFi9e7Osq+Z1hw4bRoEEDSpQoQZkyZejYsSNr1671dbUKhOHDh3vTmsixtm7dyl133UWpUqUoUqQINWrU4KeffvJJXRTg5KPExEQ6depE165dWbFiBfPnz+eOO+7wdbX82uOPP+43OY380W+//Ybb7eZ///sfq1ev5pVXXuGtt95i0KBBvq6aX/j444/p06cPQ4YMYdmyZdSqVYvWrVsfkwG9sPvhhx/o2bMnCxcuZObMmRw5coRWrVqxf/9+X1fNry1ZsoT//e9/1KxZ09dV8Uv//PMPl112GSEhIXzzzTf8+uuvvPTSS5QsWdI3FTrpcpxyRo4cOWLnn3++vfvuu76uSoHx9ddf24UXXmirV682OHZlecnbiBEjLCEhwdfV8AsNGza0nj17ep+7XC4rW7asDRs2zIe18n87d+40wH744QdfV8VvpaenW9WqVW3mzJl25ZVX2iOPPOLrKvmd/v372+WXX+7ranipByefLFu2jK1btxIUFESdOnWIi4vjmmuuYdWqVb6uml/asWMH3bt35//+7/8oWrSor6tToKSmpnLeeef5uho+d/jwYZYuXUrLli2924KCgmjZsiXJyck+rJn/S01NBdDv6AR69uxJ27Ztc/2+JLcvvviC+vXrc/PNN1OmTBnq1KnDO++847P6KMDJJ3/++ScATz/9NE8++STTp0+nZMmSNGvWjD179vi4dv7FzLj77ru5//77qV+/vq+rU6CsX7+eMWPGcN999/m6Kj63e/duXC4XMTExubbHxMSQkpLio1r5P7fbTe/evbnsssu45JJLfF0dvzR58mSWLVvGsGHDfF0Vv/bnn3/y5ptvUrVqVb799lseeOABHn744TxXNTgXFOCcpgEDBuBwOE748IyTAHjiiSe48cYbqVevHuPGjcPhcPDJJ5/4+FOcG6f6XY0ZM4b09HQGDhzo6yr7zKl+Vzlt3bqVNm3acPPNN9O9e3cf1VwKup49e7Jq1SomT57s66r4pc2bN/PII4/w4YcfEh4e7uvq+DW3203dunV54YUXqFOnDj169KB79+689dZbPqnPaa0mLtC3b1/v2lnHU6lSJbZv3w5A9erVvdvDwsKoVKkSmzZtys8q+o1T/a6+//57kpOTj1mUrX79+tx5550+i/7PpVP9rjy2bdtG8+bNadKkCW+//XY+165gKF26NE6nkx07duTavmPHDmJjY31UK//Wq1cvpk+fzty5cylXrpyvq+OXli5dys6dO6lbt653m8vlYu7cubz++utkZGTgdDp9WEP/ERcXl+ucB1mLZCcmJvqkPgpwTlN0dDTR0dEnLVevXj3CwsJYu3Ytl19+OQBHjhxh48aNVKxYMb+r6RdO9bt67bXXeO6557zPt23bRuvWrfn4449p1KhRflbRb5zqdwVZPTfNmzf39goGBakjFiA0NJR69eoxe/ZsbzoGt9vN7Nmz6dWrl28r52fMjIceeohPP/2UOXPmkJCQ4Osq+a0WLVqwcuXKXNu6du3KhRdeSP/+/RXc5HDZZZcdk27g999/99k5TwFOPomIiOD+++9nyJAhlC9fnooVKzJy5EgAbr75Zh/Xzr9UqFAh13PPyvCVK1fWVeVRtm7dSrNmzahYsSKjRo1i165d3tfUSwF9+vShS5cu1K9fn4YNGzJ69Gj2799P165dfV01v9KzZ08mTZrE559/TokSJbxjlCIjIylSpIiPa+dfSpQocczYpGLFilGqVCmNWTrKo48+SpMmTXjhhRe45ZZbWLx4MW+//bbPepkV4OSjkSNHEhwcTKdOnTh48CCNGjXi+++/911OACnwZs6cyfr161m/fv0xwZ+Z+ahW/uPWW29l165dDB48mJSUFGrXrs2MGTOOGXhc2L355psANGvWLNf2cePGnfRWqcjxNGjQgE8//ZSBAwfyzDPPkJCQwOjRo7nzzjt9Uh+HqVUUERGRAKOb9yIiIhJwFOCIiIhIwFGAIyIiIgFHAY6IiIgEHAU4IiIiEnAU4IiIiEjAUYAjIiIiAUcBjoiIiAQcBTgiIiIScBTgiIiISMBRgCMiIiIB5/8BME/aVZwKemcAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "predictions = [serial_quantum_model(weights, x_) for x_ in x]\n",
        "\n",
        "plt.plot(x, target_y, c='black')\n",
        "plt.scatter(x, target_y, facecolor='white', edgecolor='black')\n",
        "plt.plot(x, predictions, c='blue')\n",
        "plt.ylim(-1,1)\n",
        "plt.show();"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZIypPJtdJcSu"
      },
      "source": [
        "Let\\'s also have a look at the cost during training.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 79,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 449
        },
        "id": "33WfEBTxJcSu",
        "outputId": "83254921-2757-468e-e85c-f5001c8d89b5"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKeElEQVR4nO3deXxTZd428OskadI9aSldKW3Z17ay1QoOj1IpKg6MisD4Dogj7qiDjo84QkWdF1zGFxVGHB1FZ0QQF1zGQbEKbmVroVD2vaVtulCSdE3S5Lx/pAnUFuiS5Jw01/fzyQMkJyd3Djz2mvv87t8tiKIogoiIiMiPKKQeABEREZG3MQARERGR32EAIiIiIr/DAERERER+hwGIiIiI/A4DEBEREfkdBiAiIiLyOyqpByBHdrsdZWVlCAsLgyAIUg+HiIiIOkAURdTW1iI+Ph4KxaXneBiA2lFWVobExESph0FERERdUFJSgj59+lzyGAagdoSFhQFwXMDw8HCJR0NEREQdYTKZkJiY6Po5fikMQO1w3vYKDw9nACIiIvIxHSlfYRE0ERER+R0GICIiIvI7DEBERETkdxiAiIiIyO8wABEREZHfYQAiIiIiv8MARERERH6HAYiIiIj8DgMQERER+R0GICIiIvI7DEBERETkdxiAiIiIyO8wABEREZHfYQAiIiIiv8MARERERH6HAYiIiIj8DgMQERER+R0GICIiIvI7DEBERETkdxiAiIiIyO8wABEREZHfYQAiIiIiv8MARERERH6HAYiIiIj8DgMQERER+R0GICIiIvI7DEBERETkdxiAiIiIyO8wABEREZHfYQAiIiIiv8MARERERH6HAYiIiIj8DgMQERER+R0GICIiIvI7DEBERETkdxiAiIiIyO8wABEREZHfYQAiIiIiv8MARERERH6HAYiIiIj8DgMQERER+R0GICIiIvI7sghAq1atQnJyMgIDA5GRkYEdO3Zc9Ng333wTV199NSIiIhAREYGsrKw2x4uiiCVLliAuLg5BQUHIysrC0aNHPf01iIiIyEdIHoDWr1+PhQsXIicnBwUFBUhLS0N2djYqKyvbPX7Lli2YPXs2vv/+e+Tl5SExMRGTJ09GaWmp65gXXngBr776KlavXo3t27cjJCQE2dnZaGpq8tbXIiIiIhkTRFEUpRxARkYGxo4di5UrVwIA7HY7EhMTsWDBAjzxxBOXfb/NZkNERARWrlyJOXPmQBRFxMfH49FHH8Vjjz0GADAajYiJicGaNWswa9asNucwm80wm82uP5tMJiQmJsJoNCI8PNxN35SIiIg8yWQyQavVdujnt6QzQBaLBfn5+cjKynI9p1AokJWVhby8vA6do6GhAVarFZGRkQCAkydPQq/XtzqnVqtFRkbGRc+5bNkyaLVa1yMxMbEb34qIiIjkTtIAVF1dDZvNhpiYmFbPx8TEQK/Xd+gc//u//4v4+HhX4HG+rzPnXLRoEYxGo+tRUlLS2a9CREREPkQl9QC6Y/ny5Vi3bh22bNmCwMDALp9Ho9FAo9G4cWREREQkZ5LOAEVFRUGpVKKioqLV8xUVFYiNjb3ke1966SUsX74c33zzDVJTU13PO9/XlXMSERGRf5A0AKnVaowePRq5ubmu5+x2O3Jzc5GZmXnR973wwgt49tlnsWnTJowZM6bVaykpKYiNjW11TpPJhO3bt1/ynEREROQ/JL8FtnDhQsydOxdjxozBuHHjsGLFCtTX12PevHkAgDlz5iAhIQHLli0DADz//PNYsmQJ1q5di+TkZFddT2hoKEJDQyEIAh555BE899xzGDhwIFJSUrB48WLEx8dj+vTpUn1NIiIikhHJA9DMmTNRVVWFJUuWQK/XIz09HZs2bXIVMRcXF0OhOD9R9frrr8NiseDWW29tdZ6cnBw8/fTTAIDHH38c9fX1uPvuu2EwGDBhwgRs2rSpW3VCRERE1HNI3gdIjjrTR4CIiIjkwWf6ABERERFJgQHIi/7500mM/eu3eO7LA1IPhYiIyK8xAHmR3S6iqtaM6jrz5Q8mIiIij2EA8iJtcAAAwNholXgkRERE/o0ByIu0QY4AZGAAIiIikhQDkBfpWgKQsYEBiIiISEoMQF6kC1YD4AwQERGR1BiAvEh3QQ0Q2y8RERFJhwHIi5w1QDa7iDpzs8SjISIi8l8MQF4UGKCERuW45AbWAREREUmGAcjLdFwKT0REJDkGIC/TBTkKoRmAiIiIpMMA5GWuXkC8BUZERCQZBiAvc3aDNjRaJB4JERGR/2IA8jIdZ4CIiIgkxwDkZc4iaBNrgIiIiCTDAORlrAEiIiKSHgOQl2ld22GwBoiIiEgqDEBexhogIiIi6TEAeRkbIRIREUmPAcjLnDVADEBERETSYQDyMmcnaN4CIyIikg4DkJc5GyE2Wm0wN9skHg0REZF/YgDysjCNCoLg+D1vgxEREUmDAcjLFArhfB0Qb4MRERFJggFIAq6l8JwBIiIikgQDkARczRA5A0RERCQJBiAJcCk8ERGRtBiAJHC+GzS3wyAiIpICA5AE2A2aiIhIWgxAEtDxFhgREZGkGIAkEM4NUYmIiCTFACQBnXMVGGeAiIiIJMEAJAHXLTAWQRMREUmCAUgCLIImIiKSFgOQBLTsBE1ERCQpBiAJaC+YAbLbRYlHQ0RE5H8YgCTgnAESRaC2qVni0RAREfkfBiAJaFRKBKuVAFgHREREJAUGIImcrwPiSjAiIiJvYwCSiJbNEImIiCTDACQR51J4rgQjIiLyPgYgieiCHN2gWQNERETkfQxAEtGyGzQREZFkGIAk4roFxhogIiIir2MAkoiWNUBERESSYQCSiOsWGAMQERGR1zEAScRVBM1bYERERF7HACSR88vgWQRNRETkbQxAEmEjRCIiIukwAEmENUBERETSYQCSiPMWmLnZjiarTeLREBER+RcGIImEalRQKgQAvA1GRETkbQxAEhEEATreBiMiIpIEA5CEzhdCcyUYERGRNzEASYjdoImIiKTBACQh1y0w1gARERF5FQOQhHTBLd2gOQNERETkVQxAEnLVALEbNBERkVcxAEmI3aCJiIikwQAkIR2LoImIiCTBACQhZwAyMQARERF5FQOQhHgLjIiISBoMQBLSBjlWgbEImoiIyLsYgCTkqgHiDBAREZFXMQBJyNkIsbapGTa7KPFoiIiI/AcDkITCWwIQwEJoIiIib2IAklCAUoFQjQoAl8ITERF5EwOQxLgjPBERkfdJHoBWrVqF5ORkBAYGIiMjAzt27Ljosfv378ctt9yC5ORkCIKAFStWtDnm6aefhiAIrR5Dhgzx4DfoHmchNPcDIyIi8h5JA9D69euxcOFC5OTkoKCgAGlpacjOzkZlZWW7xzc0NKBfv35Yvnw5YmNjL3re4cOHo7y83PX46aefPPUVus05A8QARERE5D2SBqCXX34Z8+fPx7x58zBs2DCsXr0awcHBePvtt9s9fuzYsXjxxRcxa9YsaDSai55XpVIhNjbW9YiKivLUV+g2LoUnIiLyPskCkMViQX5+PrKyss4PRqFAVlYW8vLyunXuo0ePIj4+Hv369cPtt9+O4uLiSx5vNpthMplaPbzF1QyRAYiIiMhrJAtA1dXVsNlsiImJafV8TEwM9Hp9l8+bkZGBNWvWYNOmTXj99ddx8uRJXH311aitrb3oe5YtWwatVut6JCYmdvnzO4u3wIiIiLxP8iJod7v++usxY8YMpKamIjs7G1999RUMBgM+/PDDi75n0aJFMBqNrkdJSYnXxnt+R3iuAiMiIvIWlVQfHBUVBaVSiYqKilbPV1RUXLLAubN0Oh0GDRqEY8eOXfQYjUZzyZoiT3J2gzbyFhgREZHXSDYDpFarMXr0aOTm5rqes9vtyM3NRWZmpts+p66uDsePH0dcXJzbzulOXAZPRETkfZLNAAHAwoULMXfuXIwZMwbjxo3DihUrUF9fj3nz5gEA5syZg4SEBCxbtgyAo3D6wIEDrt+XlpZiz549CA0NxYABAwAAjz32GG666SYkJSWhrKwMOTk5UCqVmD17tjRf8jKc22GwEzQREZH3SBqAZs6ciaqqKixZsgR6vR7p6enYtGmTqzC6uLgYCsX5SaqysjJcccUVrj+/9NJLeOmllzBx4kRs2bIFAHDmzBnMnj0bZ8+eRe/evTFhwgRs27YNvXv39up36ygdV4ERERF5nSCKIrch/xWTyQStVguj0Yjw8HCPflaZoRFXLf8OAUoBR567HoIgePTziIiIeqrO/PzucavAfI2zBshqE9FotUk8GiIiIv/AACSxoAAlApSOWR/eBiMiIvIOBiCJCYLAbtBERERexgAkA2yGSERE5F0MQDLgbIZo4lJ4IiIir2AAkgHnfmC8BUZEROQdDEAyoA1mM0QiIiJvYgCSATZDJCIi8i4GIBngfmBERETexQAkA84aICNXgREREXkFA5AMuJbB8xYYERGRVzAAyQBXgREREXkXA5AM6IIdRdCsASIiIvIOBiAZOF8DxABERETkDQxAMuDsBF1nbobVZpd4NERERD0fA5AMhLcEIICzQERERN7AACQDSoWAsEAVAAYgIiIib2AAkgkuhSciIvIeBiCZcG6HwWaIREREnscAJBPcDoOIiMh7GIBkIpzNEImIiLyGAUgmdAxAREREXsMAJBO8BUZEROQ9DEAycb4ImgGIiIjI0xiAZOL8hqhcBUZERORpDEAyoXX2AeIMEBERkccxAMmEswjayCJoIiIij2MAkgldMGuAiIiIvIUBSCZcNUCNVoiiKPFoiIiIejYGIJlwLoO32UXUmZslHg0REVHPxgAkE4EBSmhUjr8ONkMkIiLyLAYgGWEzRCIiIu9gAJIRZx0QAxAREZFnMQDJiLMbNG+BEREReRYDkIycb4bIbtBERESexAAkIzreAiMiIvKKLgWgZ555Bg0NDW2eb2xsxDPPPNPtQfkrLbtBExEReUWXAtDSpUtRV1fX5vmGhgYsXbq024PyV85VYKwBIiIi8qwuBSBRFCEIQpvnCwsLERkZ2e1B+Stty3YYrAEiIiLyLFVnDo6IiIAgCBAEAYMGDWoVgmw2G+rq6nDvvfe6fZD+gjVARERE3tGpALRixQqIoog777wTS5cuhVardb2mVquRnJyMzMxMtw/SX7j2A+MtMCIiIo/qVACaO3cuACAlJQXjx4+HStWpt9NlsBM0ERGRd3SpBigsLAwHDx50/fmzzz7D9OnT8eSTT8JiYf1KV7ERIhERkXd0KQDdc889OHLkCADgxIkTmDlzJoKDg7FhwwY8/vjjbh2gP3HeAmu02mButkk8GiIiop6rSwHoyJEjSE9PBwBs2LABEydOxNq1a7FmzRp8/PHH7hyfXwkLVMFZV87bYERERJ7T5WXwdrsdAPDtt9/ihhtuAAAkJiaiurrafaPzMwqFwGaIREREXtClADRmzBg899xz+Ne//oWtW7fixhtvBACcPHkSMTExbh2gv+FSeCIiIs/rUgBasWIFCgoK8OCDD+Ivf/kLBgwYAAD46KOPcNVVV7l1gP6GS+GJiIg8r0vr2FNTU7Fv3742z7/44otQKpXdHpQ/O98NmgGIiIjIU7rVyCc/P9+1HH7YsGEYNWqUWwblz3SuGSC2E+iqUkMj/vDWdthEEf17h6J/7xAMiA5t+X0oIkLUUg+RiIgk1qUAVFlZiZkzZ2Lr1q3Q6XQAAIPBgGuuuQbr1q1D79693TlGv+JshmjiDFCXrd5yHCeq6wEAp8824LtDrV+PDFFjQO9Q9I8OwW1jEnFF3wgJRklERFLqUg3QggULUFdXh/3796OmpgY1NTUoKiqCyWTCQw895O4x+hVXDRADUJecq7dgQ34JAGDpb4fjuekjMG98Mn4zqDcSdEEAgJp6C3acqsEHO0rwwPsFsNlFKYdMREQS6NIM0KZNm/Dtt99i6NChrueGDRuGVatWYfLkyW4bnD9iEXT3vL/9NJqsdgyLC8eczKRWG/YCQIOlGSeq6nG8qg45n+9HmbEJPxypwjVDoiUaMRERSaFLM0B2ux0BAQFtng8ICHD1B6Ku0XIZfJeZm214N+80AGD+b1LahB8ACFarMCJBi2npCbj5ij4AgA92FHt1nEREJL0uBaBrr70WDz/8MMrKylzPlZaW4k9/+hMmTZrktsH5Ix1XgXXZZ3vKUFVrRmx4IKamxl/2+NnjEgEAuYcqUWlq8vTwiIhIRroUgFauXAmTyYTk5GT0798f/fv3R0pKCkwmE1577TV3j9GvOGeAWATdOaIo4p8/ngQA3DE+GQHKy//THhgThjFJEbDZRWzIP+PpIRIRkYx0qQYoMTERBQUF+Pbbb3HokGOJzdChQ5GVleXWwfkj5yowLoPvnB+OVuNwRS1C1ErMHte3w++bNa4vdp0+h3U7i3HfxP5QKNreNiMiop6nUzNA3333HYYNGwaTyQRBEHDddddhwYIFWLBgAcaOHYvhw4fjxx9/9NRY/cKFNUB2rk7qsLd+PAEAuG1sousadsSNI+MQFqhCSU0jfj7OfeyIiPxFpwLQihUrMH/+fISHh7d5TavV4p577sHLL7/stsH5I+cPb7sI1FmaJR6NbzhYbsKPR6uhEIA7x6d06r1BaiV+d0UCAGDdjhJPDI+IiGSoUwGosLAQU6ZMuejrkydPRn5+frcH5c8CA5TQqBx/LdwRvmPeaqn9uX5EHBIjgzv9/lljHbfMvjmgR3Wd2a1jIyIieepUAKqoqGh3+buTSqVCVVVVtwfl75x1QFwKf3kVpiZ8XlgKALjr6s7N/jgNiw9HWh8trDYRH7MYmojIL3QqACUkJKCoqOiir+/duxdxcXHdHpS/Yy+gjnv3l1Ow2kSMSYro1pYWzsLpdTtLIIqsvSIi6uk6FYBuuOEGLF68GE1NbXumNDY2IicnB1OnTnXb4PyVLqilFxBvgV1Sg6UZ7293NDG86+p+3TrXTWnxCFErcbK6HttO1LhjeEREJGOdCkBPPfUUampqMGjQILzwwgv47LPP8Nlnn+H555/H4MGDUVNTg7/85S+eGqvfCOcMUIds2HUGxkYrknoF47phMd06V4hGhd+mO5onrtvJztBERD1dp/oAxcTE4JdffsF9992HRYsWuW4VCIKA7OxsrFq1CjEx3ftBRBf0AmpkL6CLsdlF/PMnR/HzHyekQOmG/j2zx/XFBztK8N8iPZ6utyAiRN3tcxIRkTx1uhFiUlISvvrqK5w7dw7Hjh2DKIoYOHAgIiK6Xn9BrbEG6PK+2a9HcU0DtEEBuHV0H7ecc2SCFsPiwnGg3IRPdpfijxO6VlRNRETy16WtMAAgIiICY8eOxbhx4xh+3EznDECsAbqoN1saH/7hyiQEq7vU0LwNQRBc+4Ot21HMYmgioh6sywGIPEfLZfCXlH/6HAqKDVArFZhzVZJbzz3tigQEBihwtLIO+afPufXcREQkHwxAMuS8BcZVYO1zbnsxLT0e0WGBbj13eGCAayf5D9gZmoiox5I8AK1atQrJyckIDAxERkYGduzYcdFj9+/fj1tuuQXJyckQBAErVqzo9jnliDVAF1dS04Cv9+sBdH/p+8U4b4P9Z18Z/w6IiHooSQPQ+vXrsXDhQuTk5KCgoABpaWnIzs5GZWVlu8c3NDSgX79+WL58OWJjY91yTjnSBTtWH/GHb1tf7i2HXQSu6t8Lg2PDPPIZo/pGYFBMKJqsdny2p9Qjn0FERNKSNAC9/PLLmD9/PubNm4dhw4Zh9erVCA4Oxttvv93u8WPHjsWLL76IWbNmQaPRuOWccsQZoIvLPVgBAJgyov0A7A6CILj2B/tgBztDExH1RJIFIIvFgvz8fGRlZZ0fjEKBrKws5OXlefWcZrMZJpOp1UNKzlVgdeZmWG12ScciJzX1FhQUOwqTrx0S7dHPunlUAtQqBQ6Wm7D3jNGjn0VERN4nWQCqrq6GzWZr0zgxJiYGer3eq+dctmwZtFqt65GYmNilz3cXZydoADBxFsjl+0OVsIvAkNgw9Ino/K7vnaELVuOGllmmD3awMzQRUU8jeRG0HCxatAhGo9H1KCmRdvWPUiEgLNDR28bAAOSSe8hx+6u721501KyWDVI/LyxDnbnZK59JRETeIVkAioqKglKpREVFRavnKyoqLlrg7KlzajQahIeHt3pIjXVArVma7fjhSDUAYNJQ7wSgjJRIJPcKRoPFhv/sLfPKZxIRkXdIFoDUajVGjx6N3Nxc13N2ux25ubnIzMyUzTml4twPjN2gHbafPIs6czN6h2mQmqD1ymcKgoCZLcXQ63ayJxARUU8i6S2whQsX4s0338S7776LgwcP4r777kN9fT3mzZsHAJgzZw4WLVrkOt5isWDPnj3Ys2cPLBYLSktLsWfPHhw7dqzD5/QVnAFqLfego43BtYOjoXDDxqcddcvoBCgVAnYXG3CkotZrn0tERJ7lnk2UumjmzJmoqqrCkiVLoNfrkZ6ejk2bNrmKmIuLi6FQnM9oZWVluOKKK1x/fumll/DSSy9h4sSJ2LJlS4fO6St0QY5eQIYG7ggviiK+bVn+PmmoZ1d//Vp0WCAmDYnGNwcqsH5nCRZPHebVzyciIs8QRDY5acNkMkGr1cJoNEpWD7Tok334YEcx/pQ1CA9nDZRkDHJxWF+L7BU/QK1SYM+S69y2+WlHfXeoAneu2YWI4ABse3ISNCqlVz+fiIg6pjM/v7kKTKacNUCGRs4AOWd/xvfv5fXwAwC/GdgbseGBONdgxeYDFZd/AxERyR4DkEyxBui8XNftL2luY6qUCswY0wcAsJ7F0EREPQIDkEw5u0H7+yqw6jozdpcYAHi//udCM0Y7mmP+eLQaJTUNko2DiIjcgwFIpjgD5PD9oUqIIjA8Phxx2iDJxtG3VzDGD+gFANiwi7NARES+jgFIprSuGiD/DkDO5e9ZEt3+upCzJ9CHu87AZufaASIiX8YAJFOcAQKarDb8cLQKgDwC0ORhMdAFB0BvasIPR6qkHg4REXUDA5BM6YIdfYCMDVb4a6eCbSfOosFiQ0y4BiMSpN+eJDBAid9dkQCAxdBERL6OAUimnDNAFpsdTVa7xKORhqv785AYCIL3uj9fysyxjmLobw9WoKrWLPFoiIioqxiAZCpErYSqZcsHf+wFJIqia/l7loSrv35tSGw40hN1aLaL+KTgjNTDISKiLmIAkilBEPy6DuhgeS3KjE0IDFBg/IAoqYfTyqyWWaD1O0v89vYkEZGvYwCSMddKMD/sBeSc/ZkwIAqBAfLaemJqWjyC1UqcqK7HzlPnpB4OERF1AQOQjPnzDNC3hxz1P1J1f76UUI0KU1PjAADrdhZLPBoiIuoKBiAZ89du0JW1TSh0dn8eIp/6nws5ewJ9ta8cpib/+vshIuoJGIBkzF9ngL5vmf1J7aNFdHigxKNp36i+OgyMDkWT1Y7P95RJPRwiIuokBiAZc/YC8rdVYN/KqPvzxQiC4FoSz55ARES+hwFIxsL9cAaoyWrDT0erAUi7+WlH3DyqDwKUAvaVGlFUapR6OERE1AkMQDLmrAHyp1VgecfPotFqQ7w2EMPipO/+fCmRIWpMHh4LAPiQG6QSEfkUBiAZ88caoG9blr9fOzRaNt2fL+W2MY7bYJuK9OwJRETkQxiAZEwX7F8ByNH9Wb7L39uTkRIJlUJAZa0ZpYZGqYdDREQdxAAkY/42A1RUaoLe1IRgtRKZ/XpJPZwOCQxQYni841Zd/mk2RSQi8hUMQDLmbzNA7+WdAgBcMyRadt2fL+WKvhEAgN3FBmkHQkREHcYAJGMXrgKz23t2fUmFqQkb95QCAP44IUXi0XTOqCRHAOIMEBGR72AAkjHnLTBRBGrNzRKPxrPe/vkkrDYRY5MjMKplRsVXjG4JQAfLTWi02CQeDRERdQQDkIxpVEoEtdwKknI7DEuz3aPnr22yYu02x55a9/ymv0c/yxPitYGICdeg2S5i7xmD1MMhIqIOYACSOakLofNP12B4ziYs+GC3x4LQuh0lqDU3o3/vEFwr072/LkUQBNesVX4xb4MREfkCBiCZcxZCS7UdxhtbT8BqE/FFYRnufz8f5mb33uKxNNvxz59OAnDM/igU8u/90x7nbbCC0wZpB0JERB3CACRzUm6HoTc2IbdlY1K1SoFvD1bi7vfy0WR1Xwj6orAMelMTosM0mHZFvNvO623nV4KdY0NEIiIfwAAkc1Juh7F+ZwlsdhHjUiLxzh1jERSgxNYjVbhzzU40WLpflC2KIv7xwwkAwB3jk6FR+c7S918bkRAOtVKBs/UWnD7bIPVwiIjoMhiAZE6qGqBmmx3rdjoKk2/P6IvxA6Lw7p3jEKJW4pfjZ3HH2ztR182VaVuOVOFwRS1C1ErcnpHkjmFLRqNSYkSCoyFiAeuAiIhkjwFI5qRqhvj94SqUG5sQGaLGlBGODT/HpUTivT9mIEyjwo5TNZjzz+0wNXV9XG9sPQ4AmD2uryvo+TJXITT7ARERyR4DkMy5ZoC8fAvs/e2nAQAzRvdpdWtqdFIE3p+fAW1QAAqKDfg/b22HoaHzBdqFJQZsO1EDlULAnT7W+PBiXIXQ7AhNRCR7DEAypw1WA/DuKrCSmgZsPVIFwDE782upfXT4YP6ViAxRY+8ZI2a/uR1n68yd+gxn7c9v0+IRrwvq/qBlwNkR+rDe1O3bg0RE5FkMQDInRQ3Qup3FEEXg6oFRSI4KafeYYfHhWHf3lYgK1eBguQmz39yGytqmDp2/+GwD/ltUDgC4e2I/t41bajHhgUjQBcEuOma4iIhIvhiAZM7bq8AszXas33kGAPD7dmZ/LjQoJgzr77kSMeEaHKmoww2v/IhNRfrLfsZbP52AXQQmDuqNIbHhbhm3XIxy9QNiHRARkZwxAMmccwbI5KUZoM0HKlBdZ0bvMA2yhsVc9vj+vUPx4T2ZGBgdiuo6C+79dz4eXrcb5+rbv2VXU2/Bh7tKAAD3/KbnzP44jeqrA8CVYEREcscAJHPnO0F7JwCt3eEofp41NhEByo7980jqFYIvH5qA+/+nPxQC8NmeMlz3/37AN/vbzga9l3cKTVY7RiZokdm/l1vHLgcXFkLb7WyISEQkVwxAMuecAWqw2Dy+KemJqjr8fOwsFAIw6zK3v35No1Li8SlD8Mn94zEgOhTVdWbc/a98PLJut2uVWKPFhnd/OQUAuPs3/SAIvrntxaUMjQtHYIACxkYrTlTXSz0cIiK6CAYgmQsLDIAzJ3i6EPqDHY7Gh/8zOBoJXVyZlZ6ow5cLJuDeiY7ZoI0ts0HfHqjAR/klONdgRWJkEK5v6S3U0wQoFUhN0AFgHRARkZwxAMmcUiEgTKMC4NkA1GS1YUO+o/j59ozOzf78WmCAEk9cPwQf33cV+vcOQVWtGXe9twt//eogAOCuCf2g6uDtNV/kKoRmHRARkWz13J9CPYiupReQ0YO9gDYV6WFosCJeG4j/GRztlnNe0TcC/3noatzzm35QCECT1Q5dcABmjOnjlvPLFQuhiYjkTyX1AOjyvNELyNn5efa4vlAq3FebExigxKIbhiJ7RCze2HocN4/qg2B1z/5n55wBOlJRB2OjtUds80FE1NNwBsgHuFaCeagX0GF9LXaeOgelQsBtYxM98hmj+kbgjT+MQfbwnln7c6GoUA2SegUDAPawISIRkSwxAPmAcA/PAK1tmf25bmgMYsIDPfIZ/sa5MSoLoYmI5IkByAd4sht0g6UZnxSUAgBuv7J7xc90HguhiYjkjQHIB3iyBujLwnLUmpuR1CsY4/tHuf38/spZCL2n2AAbGyISEckOA5APcNYAeSIAXVj8rHBj8bO/GxwThmC1ErXmZhytrJV6OERE9CsMQD7AUzNARaVGFJ4xIkApYMbonr003dtUSgXSE3UAgILTBknHQkREbTEA+QBtkKMPkHNLCXfJPVgJAMgaGoNeoRq3npsuKIRmHRARkewwAPkAT80A7TpdAwC4qgduSioHro1RuRKMiEh2GIB8gCdqgGx2EbuLDQCA0UmRbjsvnXdFSyH0iep6nKv3XBdvIiLqPAYgH3DhDJAoumdF0SG9CXXmZoRpVBgcG+aWc1JrumA1+vUOAQDsLuEsEBGRnDAA+QDnDJDVJqLBYnPLOfNbbstckRTh1q0vqLXRLXVA+bwNRkQkKwxAPiAoQIkApSOkuOs22M5Tjh/IY1rqVMgzXA0RuRKMiEhWGIB8gCAIF6wEc08Ayj/lKIBmAPIs50qwwjMGNNvsEo+GiIicGIB8hDbIsYO6O2aAygyNKDM2QakQkN5SqEueMTA6FGEaFRosNhzSsyEiEZFcMAD5CF2wYwbI2Nj91US7WupRhseHI1it6vb56OIUF4TM3ewHREQkGwxAPsKdvYB2tdz+Gs3bX17hvM4shCYikg8GIB/hzh3hd7kKoNn/xxvOd4Q2SDsQIiJyYQDyEeFumgGqMzfjkN4EABiTzBkgb0hr2ROsuKaBDRGJiGSCAchHOHsBGboZgHYXn4NdBBIjgxATHuiOodFlaIMC0C/K0RCx8IxB2sEQEREABiCf4a4aoJ28/SUJ5yxQYYlR2oEQEREABiCf4doPrJs1QPmnWQAthbQ+WgCcASIikgsGIB/hjhmgZpvdtQEq63+86/wMkMFt+7kREVHXMQD5CFcn6G70ATpYXosGiw1hgSoMiuYGqN40NC4cAUoBZ+stOHOuUerhEBH5PQYgH+GaAerGLbBdF9z+UnADVK8KDFBiaFw4AN4GIyKSAwYgH+GsATI1NcNm79otFGcHaO7/JY20PjoAjttgREQkLQYgH+GcAQKA2qbOzwKJonhBB2iuAJMCV4IREckHA5CPCFAqEKJWAuhaN+gz5xpRYTJDpRCQ3vKDmLwrPdGxEmxfqZE7wxMRSYwById0ZyWYcx+q4QlaBLUEKfKuflGhCNWo0Gi14WhlndTDISLyawxAPkQb7FwJ1vkA5CyAZv2PdBQKAakt/YD2shCaiEhSsghAq1atQnJyMgIDA5GRkYEdO3Zc8vgNGzZgyJAhCAwMxMiRI/HVV1+1ev2OO+6AIAitHlOmTPHkV/AKbZAKQNdmgM5vgMoAJCVnHdAe1gEREUlK8gC0fv16LFy4EDk5OSgoKEBaWhqys7NRWVnZ7vG//PILZs+ejT/+8Y/YvXs3pk+fjunTp6OoqKjVcVOmTEF5ebnr8cEHH3jj63iUrqUXkLGhc72AjI1WHK6oBQCMZgNESbk6QnMlGBGRpCQPQC+//DLmz5+PefPmYdiwYVi9ejWCg4Px9ttvt3v8K6+8gilTpuDPf/4zhg4dimeffRajRo3CypUrWx2n0WgQGxvrekREXPwHv9lshslkavWQo67WAO0uPgdRBJJ6BSM6jBugSsk5A3S4ohaNFpu0gyEi8mOSBiCLxYL8/HxkZWW5nlMoFMjKykJeXl6778nLy2t1PABkZ2e3OX7Lli2Ijo7G4MGDcd999+Hs2bMXHceyZcug1Wpdj8TExG58K89x7QfWyQDkLIDm/l/Siw0PRHSYBja7iP1lvA1GRCQVSQNQdXU1bDYbYmJiWj0fExMDvV7f7nv0ev1lj58yZQree+895Obm4vnnn8fWrVtx/fXXw2Zr/39xL1q0CEaj0fUoKSnp5jfzjPCWGaDOLoPfecpZAM3+P1ITBOGCOiCDpGMhIvJnKqkH4AmzZs1y/X7kyJFITU1F//79sWXLFkyaNKnN8RqNBhqNxptD7JKu3AKz2uyuH7RjWf8jC+mJOmw+UIHCM5wBIiKSiqQzQFFRUVAqlaioqGj1fEVFBWJjY9t9T2xsbKeOB4B+/fohKioKx44d6/6gJeS8BdaZZfAHykxostqhDQpA/96hnhoadQK3xCAikp6kAUitVmP06NHIzc11PWe325Gbm4vMzMx235OZmdnqeADYvHnzRY8HgDNnzuDs2bOIi4tzz8Al4pwBMnUiAO08xQ1Q5WZky0qw4poG1NR3bkUfERG5h+SrwBYuXIg333wT7777Lg4ePIj77rsP9fX1mDdvHgBgzpw5WLRokev4hx9+GJs2bcLf/vY3HDp0CE8//TR27dqFBx98EABQV1eHP//5z9i2bRtOnTqF3NxcTJs2DQMGDEB2drYk39FdnMvgO1MDxAJo+dEGBaBf7xAA3BmeiEgqktcAzZw5E1VVVViyZAn0ej3S09OxadMmV6FzcXExFIrzOe2qq67C2rVr8dRTT+HJJ5/EwIEDsXHjRowYMQIAoFQqsXfvXrz77rswGAyIj4/H5MmT8eyzz/pEnc+ldLYGSBRF1w7wY5NZAC0n6X10OFFVj8ISA64ZHC31cIiI/I7kAQgAHnzwQdcMzq9t2bKlzXMzZszAjBkz2j0+KCgIX3/9tTuHJxvalhqgRqsN5mYbNKpL7+lVUtOIqlozApTnt2AgeUhL1OGT3aWsAyIikojkt8Co48I0KggtZTwdmQVy1v+MSNAiMIAboMqJcyl84RkjRFGUdjBERH6IAciHKBTC+dtgHagDct7+4v5f8jM0LgwBSgE19RacOdco9XCIiPwOA5CP6UwdUL5zB3jW/8iORqXEsLhwACyEJiKSAgOQj9F1sBu0ocGCIxV1ALgCTK5ct8FYB0RE5HUMQD4mvIMzQM7l7ylRIYgK9e3Vbz1VqqshIjtCExF5GwOQj9EFt/QCukwA+ve20wCA8QN6eXxM1DXpiY6VeftKjWi22SUeDRGRf2EA8jHaIEfngkvNAO0pMeD7w1VQKgTMv7qft4ZGndQvKhShGhUarTYcrayTejhERH6FAcjHOLtBGxsuvoXCq7lHAQDT0xOQ1CvEK+OizlMozvdnYh0QEZF3MQD5mMutAtt7xoDvDlVCqRCw4NoB3hwadcH5fkAGScdBRORvGIB8jPYyO8K/8q1j9mdaejySozj7I3fOneH3sBCaiMirGIB8zKVmgPadMSL3UCUUArDg2oHeHhp1QXrLDNCRilo0WJqlHQwRkR9hAPIxukt0gn7lgtqfFM7++IRYbSBiwjWw2UXsLzNJPRwiIr/BAORjnLfAfj0DVFRqxLcHK6AQgAdZ++NT0lz9gAySjoOIyJ8wAPkY5yowQ6O11Saaztmf36bFo1/vUEnGRl1z4caoRETkHQxAPsZZA2Szi6i32AA4Zn82H3DO/rD2x9ekc0sMIiKvYwDyMYEBCqhVjr82Q0svIGffn5vS4jEgmrM/vmZkSy+g4poG1NRfvL8TERG5DwOQjxEEodVKsP1lRnxzoAKCAPb98VHhgQHo39tRtM5+QERE3sEA5IMuXAnmnP2ZmhqPAdFhUg6LuoE7wxMReRcDkA9yzgBtO1mDr/c7Zn8e4uyPT+NKMCIi72IA8kG6lqXw//jhOADgxpFxGBjD2R9f5iyE3nXqHMzNNmkHQ0TkBxiAfFB4ywxQk9XumP2ZxJVfvm5kghYx4RrUmpvx45FqqYdDRNTjMQD5IGcvIAC4YWQcBnH2x+cpFAJuGBkHAPhyb5nEoyEi6vkYgHyQswYIAB5i358eY2pqPABg84EKNFl5G4yIyJMYgHzQoBhHr59p6fEYHMvZn55iVF8dEnRBqLfYsOVwldTDISLq0RiAfFD28Fh8fN9VePHWNKmHQm4kCAJuGBkLgLfBiIg8jQHIBykUAkYnRbg6QlPP4bwNlnuwEg2WZolHQ0TUc/EnKJGMpPbRom9kMBqtNnx3qFLq4RAR9VgMQEQyIggCbkx1rAb7z95yiUdDRNRzMQARyczUlgD03aFK1Jl5G4yIyBMYgIhkZlhcOFKiQmButiP3YIXUwyEi6pEYgIhkRhAE1yzQF4W8DUZE5AkMQEQy5FwN9sORKpiarBKPhoio52EAIpKhwbFhGBgdCovNjs37eRuMiMjdGICIZMo5C+TupogNlmY8+mEh/vejvSgqNbr13EREvoIBiEimnMvhfzxaDUODxS3ntNrsuP/9AnxccAbrd5Vg6ms/YcbqX/DVvnI02+xu+QwiIl/AAEQkUwOiQzEkNgzNdhFf79d3+3yiKGLRJ/uw5XAVAgMUuGFkLFQKATtPncP97xdg4otbsHrrcbeFLSIiOWMAIpKxm9Kct8G6vxrspW8O46P8M1AqBKz6/Sj8/fbR+PmJa7Hg2gHoFaJGqaERy/97CFcuy8WiT/bhSEVttz+TiEiuGICIZMy5HP6X42dxts7c5fO8l3cKq74/DgD46/QRmDQ0BgAQEx6IRycPxs9PXIsXbk3F0LhwNFnt+GBHMSb/vx/w2IZCiKLY/S9CRCQzDEBEMpbUKwQjE7Sw2UVs6uJtsP/uK0fO5/sBAAuvG4RZ4/q2OSYwQInbxiTiq4cmYP3dV2LK8FgoBOCj/DP4uKC0W9+BiEiOGICIZM5ZDP1lF5oibj9xFg+v3wNRBH6f0RcLrh1wyeMFQUBGv15Y/YfR+HP2EADAc/850K3ZJyIiOWIAIpK5G0c6AtD2k2dRWdvU4fcd1tfirvd2wdJsx+RhMXh22ggIgtDh9991dQqGxIbB0GDFX/9zsNPjJiKSMwYgIplLjAxGeqIOdhHYVNSx22BlhkbMfXsHapuaMSYpAq/OvgJKRcfDDwAEKBVYfksqBAH4ZHcpfjxa1ZXhExHJEgMQkQ+Y2onbYMYGK+a+vQN6UxMGRIfirbljEBig7NLnpifqMDczGQDwl0+L0Gixdek8RERywwBE5AOcdUA7T9dAb2x7G6zS1ITvDlXgtdyjmPXmNhytrENseCDevXMcdMHqbn32Y9mDEacNRHFNA17JPdqtcxERyYVK6gEQ0eXFaYMwJikCu06fw7+3ncbw+HAUlRmxv8yEolITqn9VpBwWqMKaO8ciQRfU7c8O1ajw7LQRuOu9XXjzxxP4bVo8hsWHd/u8RERSYgAi8hFTU+Ow6/Q5rPz+WJvXFALQv3cohseHY0SCFtnDY5EYGey2z84aFoMbRsbiq316LPpkLz65f3yna4qIiOSEAYjIR9yUFo+V3x+DqbEZg2JDMSJei+Hx4RieoMXQ2HAEqbtW59NROTcNx49HqlF4xoj38k5h3vgUj34eEZEnCSLbvLZhMpmg1WphNBoRHs6pfpKPZpsddhFQq6Qp3/v3ttN4amMRgtVKbF440S232Lyt3tyMZrsIbVCA1EMhIjfrzM9vzgAR+RCVUtp1C78f1xef7i5F/ulzyPmsCG/OGdOp3kJSOVtnxuYDFdi0X4+fj1XDahMxKCYUY5MjMS4lEmOTIxHvg2GOiLqOM0Dt4AwQ0cUdqajFja/+CKtNxOu3j8L1LY0a5abc2Iivi/T4b5EeO0/VwH6Z/9Il6IKQkRKJsS2BqH/vEJ8Id0R0Xmd+fjMAtYMBiOjSXv7mMF797hiiwzTYvHCibG4nlRka8XlhGf5bpEdhiaHVayMTtJgyIhbZw2MRERyAnafOYeepGuw8VYP9ZSbYfpWQ+vcOwauzr8DweK0XvwERdQcDUDcxABFdWpPVhhte+REnquvx+4y++L+/Gyn1kPDT0Wrc869dqG9p1igIwJikCGQPj73sqrg6czMKTjsC0Y6TNdhTYoC52Q61SoGlvx2OWWMTORtE5AMYgLqJAYjo8radOItZ/9gGAPjXH8fh6oG9JRvLV/vK8ci6PbDY7Ejto8VtYxIxeVgMosMDu3Q+Q4MFCz8sxHeHKgEAN49KwHPTRyBYzbJJIjnrzM9vdoImoi65sl8v/OHKJADAnzfshbHBKsk41m4vxgNrC2Cx2XHDyFhsuDcT/+fKpC6HHwDQBavx1pwxeHzKYCgE4JOCUkxf9TOOVda5ceREJCUGICLqskU3DEG/qBDoTU1Y/FmRVz9bFEWs+v4Ynvx0H0QR+H1GX7w2exQ0Kvf0Q1IoBNz/PwOwdv6V6B2mwZGKOkxb+RM+Lyxzy/mJSFoMQETUZcFqFV6emQ6lQsDnhWX4wkvhwG4X8dx/DuLFrw8DAB68ZgD+On2ER7pTX9mvF/7z0ARc2S8S9RYbHvpgNxZvLIK5mRvDEvkyBiAi6pb0RB0euGYAAOCpjUXtbtbqTlabHY9tKMQ/fzoJAFg8dRgeyx7s0SLl6LBA/PuPGXjgmv4AgH9tO40Zq/NQUtPgsc8kIs9iACKibltw7QCk9tHC2GjFnz8qhKfWVjRabLj3X/n4ZHcplAoBL9+Whj9O8M6WHCqlAn/OHoJ37hgLXXAA9p4xYuprP+G7QxVe+Xwici8GICLqtgClAi/flg6NSoEfj1bjX9tOu/0zjI1WzHl7O3IPVUKjUuAffxiNm0f1cfvnXM41Q6Lxn4euRlqiDsZGK+5cswsvfX24TR8hIpI3BiAicosB0aFYdP0QAMD//eogjle5b8VUSU0DZr6Rh52nziEsUIV/35WBSUNj3Hb+zkrQBeHDe67EnEzHKriV3x/DnLe342ydWbIxEVHnMAARkdvMyUzGhAFRaLLasXD9Hlht9m6f8+dj1bhp5U84pK9F7zANPrwnE2OTI90w2u7RqJR4ZtoIvDIrHUEBSvx87CxufPUn5J8+J/XQiKgDGICIyG0UCgEvzkhFeKAKhWeMWPX9sS6fSxRFvPXjCfzhn9thaLAirY8Wnz84HkPj5NWcdFp6Aj57cDz69Xa0A5j5Rh7e+fmkx+qgiMg9GICIyK3itEF4dvoIAMBr3x1rsydXRzRabPjT+j147j8HYReBW0f3wfp7MhGnleeO7YNiwvD5gxNwY2ocmu0iln5xAAs+2I16c7PUQyOii2AAIiK3+21aPKamxsFmF/GnD/eg0dLxnjlnzjXg1tW/YOOeMigVApb+djhevDUVgQHuaXDoKaEaFVbOvgJLpg6DSiHgy73l+O3Kn3C0olbqoRFRO7gXWDu4FxhR9xkaLMhe8QMqTGZkD4/BraMTkZaoRXTYxbeo+OV4NR5cuxs19RZEhqix6vejkNm/lxdH7R75p2tw//sFqDCZEaAUcOPIONw5IQWpfXSSjcnYYMX+MiPKjU0QAdctOrHl/4gQ4fxpEKJRYWhcOFKiQjzSXJLIU7gZajcxABG5x9YjVZj79o5Wz8VrA5GWqENqHx3SErUYmaBFqEaFd34+hb9+dRA2u4gRCeF44w9jkKCT5y2vjqiuM+OxDYXYcrjK9dyYpAjcOSEFk4fFQKX03AR8Va0Z+8uM2F9mQlGpEUVlRpTUNHb6PEEBSgyNC8PweC2Gx4djeLwWg2JD3bbdCJG7MQB1EwMQkft8f7gSX+0tR+EZA45W1uHX/8URBCBeG4RSg+MH9O+uSMCym0fK/pZXR+09Y8A7P5/Cl3vLYLU5vnyCLghzr0rCzDF9oQ0O6Nb5q2rN2HvGgL1njK6wU2Fqfzl+YmQQkiJDoFAIEOC49o5fz/8ZEFBTb8bB8lo0WtveulQpBAyIDkVqHy3GJkciI6UXEiODPNqJm6ijGIC6iQGIyDPqzM0oKjWisMSAwjMGFJYYXcFHqRDw5A1Dcef45B75w7TC1IR/bzuN97cXo6beAsAxw3Lr6D6Ylh4PXbAaoRoVQjRKhKhVULRz68nQYMHeM0bsKzW6Qk95O1uPCALQLyoEIxIcMzcj4rUYHq/tVNiy2UWcrK53zSQ5fzU0WNscGxOuwbiUXhiXEolxyZEYGB3a7vg9xWYXUVnbBEODFaZGK4wXPExNza7nmu0iEiOCkNQrGEm9QpDcKwTRYRqvjpU8iwGomxiAiLynqtaMojIj+kYGo3/vUKmH43FNVhs+31OGt38+iUP6ixdIh6iVCNGoWkKRCsZGK4rb2XtMEIABvUMxso8WqQlajEjQYmhcOEI0KrePXRRFlBmbUFRqxJ4SA3acrMHeMwbXzJaTLjgAY5MjcUVfHZIiQ9AnIgiJkcGICA7oVrgVRRGVtWYc0tfiiL4Wh/S1OFxhwtGKOpibu9ZzSqNSuAJRUmQwkqJC0L93CAZEh6J3qKZHhvGezOcC0KpVq/Diiy9Cr9cjLS0Nr732GsaNG3fR4zds2IDFixfj1KlTGDhwIJ5//nnccMMNrtdFUUROTg7efPNNGAwGjB8/Hq+//joGDhzYofEwABGRp4miiLzjZ7Hml1MoKjWiztyMeovtsltqJPUKRmofHVITtEjto8XwlhoqqTRabK4wtOPUWRScNrR76wwAgtVK9IkIQp+IYCS2/BoVpkazTYTNLsJqF9Fss6PZJqK55fdWuwhDg8UReipq252BAoAApQBtUADCAwMQHhQAbcsjPEjl+r0AAcU1DThd04DTZ+tx5lzjJa93WKAK/XuHOh7RIejfOxQDokPRNzIYAR6s4XIHURRRa25Gda0Z1XUWnGuwoMlqg9lqR1Nzy69WG8zN53+1iSJiwwNdf0d9IoIQEx7oU4XwPhWA1q9fjzlz5mD16tXIyMjAihUrsGHDBhw+fBjR0dFtjv/ll1/wm9/8BsuWLcPUqVOxdu1aPP/88ygoKMCIEY7eI88//zyWLVuGd999FykpKVi8eDH27duHAwcOIDDw4itQnBiAiEgKoijC3GxHbVMz6s3NjlBkbka9pRkalRLD48OhC1ZLPcxLstrsKCo1YvvJGhwoM6HU0Igz5xouWpfUWUqFgJSoEAyOCcPg2JZHTBj6RgZ3+laW1WZHmaERp846AtGp6gacrK7Diep6lNQ04GLZSBCAiGA1eoWo0StUjV6hGkSFOH6NDFEjKlQNbZAaCqGlvqplWBfWWTnZRRFWmx02uyP02Wwimu12x+/toiscOv58wfMXvN7UbMPZOjPO1llQXecIPFV1Zli6OCt2IZVCQJwuEH10wUiICEKfiCDEa4MQpwtEvM7x+yC1fOr1fCoAZWRkYOzYsVi5ciUAwG63IzExEQsWLMATTzzR5viZM2eivr4eX375peu5K6+8Eunp6Vi9ejVEUUR8fDweffRRPPbYYwAAo9GImJgYrFmzBrNmzbrsmBiAiIjcq8lqQ5mhEWfOOR8NOHOuEecaLFAqBKgUCgQoBSgVAgKUCqgUAlQtv4ZoVBgUE4rBsWHo3zvUKwXyTVYbTp9twPGqOhyvrMPxqjocq6rD8cr6i85wyVGoRoWoUDUiQtQIViuhUSkRGKBo9atGpYCm5ZrqjY6/n1JDI8oMjW1ub7ZHFxyAOG0Q4rWBiNMFIiYsEAqFAFEUYRcdIc8uouXP55/L7NcL/zO47URHd3Tm57d086YALBYL8vPzsWjRItdzCoUCWVlZyMvLa/c9eXl5WLhwYavnsrOzsXHjRgDAyZMnodfrkZWV5Xpdq9UiIyMDeXl57QYgs9kMs/n8/zoxGo0AHBeSiIjcI0oDRMVqkB6rAaDr0jksjfWwdH5Ff5fEBQNxSSGYkBQCwLH5rt0u4my9GecaLKips7b6fU2DGWfrLThXb4WpyQq7KLY0WoKr95IzTjinHlQKR+hTKRVQCi2/V5wPgoICCFBc+LwCSkXb4yKCz89G9QoJQK8QDaLCNN0Kiza7iKraJpQZGlFmaEKpoRHlxkaUG5ugNzZBb2pCvdmGGjNQc86I/Z08v3VCCkbFXf6uTGc4f253ZG5H0gBUXV0Nm82GmJjWuzrHxMTg0KFD7b5Hr9e3e7xer3e97nzuYsf82rJly7B06dI2zycmJnbsixAREVGn5KwAcjx07traWmi12kseI2kAkotFixa1mlWy2+2oqalBr1693L4CwGQyITExESUlJby95kG8zt7B6+wdvM7ewevsHZ68zqIoora2FvHx8Zc9VtIAFBUVBaVSiYqKilbPV1RUIDY2tt33xMbGXvJ4568VFRWIi4trdUx6enq759RoNNBoNK2e0+l0nfkqnRYeHs7/B/MCXmfv4HX2Dl5n7+B19g5PXefLzfw4SbqOT61WY/To0cjNzXU9Z7fbkZubi8zMzHbfk5mZ2ep4ANi8ebPr+JSUFMTGxrY6xmQyYfv27Rc9JxEREfkXyW+BLVy4EHPnzsWYMWMwbtw4rFixAvX19Zg3bx4AYM6cOUhISMCyZcsAAA8//DAmTpyIv/3tb7jxxhuxbt067Nq1C//4xz8AOJYcPvLII3juuecwcOBA1zL4+Ph4TJ8+XaqvSURERDIieQCaOXMmqqqqsGTJEuj1eqSnp2PTpk2uIubi4mIoFOcnqq666iqsXbsWTz31FJ588kkMHDgQGzdudPUAAoDHH38c9fX1uPvuu2EwGDBhwgRs2rSpQz2APE2j0SAnJ6fNLTdyL15n7+B19g5eZ+/gdfYOuVxnyfsAEREREXmbvHt5ExEREXkAAxARERH5HQYgIiIi8jsMQEREROR3GIC8aNWqVUhOTkZgYCAyMjKwY8cOqYfk83744QfcdNNNiI+PhyAIrj3hnERRxJIlSxAXF4egoCBkZWXh6NGj0gzWRy1btgxjx45FWFgYoqOjMX36dBw+fLjVMU1NTXjggQfQq1cvhIaG4pZbbmnTsJQu7fXXX0dqaqqrOVxmZib++9//ul7nNfaM5cuXu9qnOPFau8fTTz8NQRBaPYYMGeJ6XerrzADkJevXr8fChQuRk5ODgoICpKWlITs7G5WVlVIPzafV19cjLS0Nq1atavf1F154Aa+++ipWr16N7du3IyQkBNnZ2WhqavLySH3X1q1b8cADD2Dbtm3YvHkzrFYrJk+ejPr6etcxf/rTn/DFF19gw4YN2Lp1K8rKynDzzTdLOGrf06dPHyxfvhz5+fnYtWsXrr32WkybNg379zu2mOQ1dr+dO3fijTfeQGpqaqvnea3dZ/jw4SgvL3c9fvrpJ9drkl9nkbxi3Lhx4gMPPOD6s81mE+Pj48Vly5ZJOKqeBYD46aefuv5st9vF2NhY8cUXX3Q9ZzAYRI1GI37wwQcSjLBnqKysFAGIW7duFUXRcU0DAgLEDRs2uI45ePCgCEDMy8uTapg9QkREhPjWW2/xGntAbW2tOHDgQHHz5s3ixIkTxYcfflgURf57dqecnBwxLS2t3dfkcJ05A+QFFosF+fn5yMrKcj2nUCiQlZWFvLw8CUfWs508eRJ6vb7VdddqtcjIyOB17waj0QgAiIyMBADk5+fDarW2us5DhgxB3759eZ27yGazYd26daivr0dmZiavsQc88MADuPHGG1tdU4D/nt3t6NGjiI+PR79+/XD77bejuLgYgDyus+SdoP1BdXU1bDabq7u1U0xMDA4dOiTRqHo+vV4PAO1ed+dr1Dl2ux2PPPIIxo8f7+q+rtfroVar22wgzOvcefv27UNmZiaampoQGhqKTz/9FMOGDcOePXt4jd1o3bp1KCgowM6dO9u8xn/P7pORkYE1a9Zg8ODBKC8vx9KlS3H11VejqKhIFteZAYiIOuyBBx5AUVFRq/v45D6DBw/Gnj17YDQa8dFHH2Hu3LnYunWr1MPqUUpKSvDwww9j8+bNstgeqSe7/vrrXb9PTU1FRkYGkpKS8OGHHyIoKEjCkTnwFpgXREVFQalUtqlur6ioQGxsrESj6vmc15bX3T0efPBBfPnll/j+++/Rp08f1/OxsbGwWCwwGAytjud17jy1Wo0BAwZg9OjRWLZsGdLS0vDKK6/wGrtRfn4+KisrMWrUKKhUKqhUKmzduhWvvvoqVCoVYmJieK09RKfTYdCgQTh27Jgs/k0zAHmBWq3G6NGjkZub63rObrcjNzcXmZmZEo6sZ0tJSUFsbGyr624ymbB9+3Ze904QRREPPvggPv30U3z33XdISUlp9fro0aMREBDQ6jofPnwYxcXFvM7dZLfbYTabeY3daNKkSdi3bx/27NnjeowZMwa333676/e81p5RV1eH48ePIy4uTh7/pr1Sak3iunXrRI1GI65Zs0Y8cOCAePfdd4s6nU7U6/VSD82n1dbWirt37xZ3794tAhBffvllcffu3eLp06dFURTF5cuXizqdTvzss8/EvXv3itOmTRNTUlLExsZGiUfuO+677z5Rq9WKW7ZsEcvLy12PhoYG1zH33nuv2LdvX/G7774Td+3aJWZmZoqZmZkSjtr3PPHEE+LWrVvFkydPinv37hWfeOIJURAE8ZtvvhFFkdfYky5cBSaKvNbu8uijj4pbtmwRT548Kf78889iVlaWGBUVJVZWVoqiKP11ZgDyotdee03s27evqFarxXHjxonbtm2Tekg+7/vvvxcBtHnMnTtXFEXHUvjFixeLMTExokajESdNmiQePnxY2kH7mPauLwDxnXfecR3T2Ngo3n///WJERIQYHBws/u53vxPLy8ulG7QPuvPOO8WkpCRRrVaLvXv3FidNmuQKP6LIa+xJvw5AvNbuMXPmTDEuLk5Uq9ViQkKCOHPmTPHYsWOu16W+zoIoiqJ35pqIiIiI5IE1QEREROR3GICIiIjI7zAAERERkd9hACIiIiK/wwBEREREfocBiIiIiPwOAxARERH5HQYgIiIi8jsMQEREROR3GICIyGdVVVXhvvvuQ9++faHRaBAbG4vs7Gz8/PPPAABBELBx40ZpB0lEsqSSegBERF11yy23wGKx4N1330W/fv1QUVGB3NxcnD17VuqhEZHMcS8wIvJJBoMBERER2LJlCyZOnNjm9eTkZJw+fdr156SkJJw6dQoA8Nlnn2Hp0qU4cOAA4uPjMXfuXPzlL3+BSuX434SCIODvf/87Pv/8c2zZsgVxcXF44YUXcOutt3rluxGR5/EWGBH5pNDQUISGhmLjxo0wm81tXt+5cycA4J133kF5ebnrzz/++CPmzJmDhx9+GAcOHMAbb7yBNWvW4K9//Wur9y9evBi33HILCgsLcfvtt2PWrFk4ePCg578YEXkFZ4CIyGd9/PHHmD9/PhobGzFq1ChMnDgRs2bNQmpqKgDHTM6nn36K6dOnu96TlZWFSZMmYdGiRa7n/v3vf+Pxxx9HWVmZ63333nsvXn/9ddcxV155JUaNGoW///3v3vlyRORRnAEiIp91yy23oKysDJ9//jmmTJmCLVu2YNSoUVizZs1F31NYWIhnnnnGNYMUGhqK+fPno7y8HA0NDa7jMjMzW70vMzOTM0BEPQiLoInIpwUGBuK6667Dddddh8WLF+Ouu+5CTk4O7rjjjnaPr6urw9KlS3HzzTe3ey4i8g+cASKiHmXYsGGor68HAAQEBMBms7V6fdSoUTh8+DAGDBjQ5qFQnP9P4rZt21q9b9u2bRg6dKjnvwAReQVngIjIJ509exYzZszAnXfeidTUVISFhWHXrl144YUXMG3aNACOlWC5ubkYP348NBoNIiIisGTJEkydOhV9+/bFrbfeCoVCgcLCQhQVFeG5555znX/Dhg0YM2YMJkyYgPfffx87duzAP//5T6m+LhG5GYugicgnmc1mPP300/jmm29w/PhxWK1WJCYmYsaMGXjyyScRFBSEL774AgsXLsSpU6eQkJDgWgb/9ddf45lnnsHu3bsREBCAIUOG4K677sL8+fMBOIqgV61ahY0bN+KHH35AXFwcnn/+edx2220SfmMicicGICKiX2lv9RgR9SysASIiIiK/wwBEREREfodF0EREv8LKAKKejzNARERE5HcYgIiIiMjvMAARERGR32EAIiIiIr/DAERERER+hwGIiIiI/A4DEBEREfkdBiAiIiLyO/8fCPSOFO4HTv8AAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "plt.plot(range(len(cst)), cst)\n",
        "plt.ylabel(\"Cost\")\n",
        "plt.xlabel(\"Step\")\n",
        "plt.ylim(0, 0.23)\n",
        "plt.show();"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KF9oCzZiJcSu"
      },
      "source": [
        "With the initial settings and enough training steps, the quantum model\n",
        "learns to fit the ground truth perfectly. This is expected, since the\n",
        "number of Pauli-rotation-encoding gates and the degree of the ground\n",
        "truth Fourier series are both one.\n",
        "\n",
        "If the ground truth\\'s degree is larger than the number of layers in the\n",
        "quantum model, the fit will look much less accurate. And finally, we\n",
        "also need to have the correct scaling of the data: if one of the models\n",
        "changes the `scaling` parameter (which effectively scales the\n",
        "frequencies), fitting does not work even with enough encoding\n",
        "repetitions.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "6CR3koWLJcSu"
      },
      "source": [
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "You will find that the training takes much longer, and needs a lot more\n",
        "steps to converge for larger L. Some initial weights may not even\n",
        "converge to a good solution at all; the training seems to get stuck in a\n",
        "minimum.\n",
        "\n",
        "It is an open research question whether for asymptotically large L, the\n",
        "single qubit model can fit *any* function by constructing arbitrary\n",
        "Fourier coefficients.\n",
        ":::\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9gcAQCXUJcSu"
      },
      "source": [
        "Part II: Fitting Fourier series with parallel Pauli-rotation encoding\n",
        "=====================================================================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "VW-UAdPaJcSv"
      },
      "source": [
        "Our next task is to repeat the function-fitting experiment for a circuit\n",
        "where the Pauli rotation gate gets repeated $r$ times on *different*\n",
        "qubits, using a single layer $L=1$.\n",
        "\n",
        "As shown in the paper, we expect similar results to the serial model: a\n",
        "Fourier series of degree $r$ can only be fitted if there are at least\n",
        "$r$ repetitions of the encoding gate in the quantum model. However, in\n",
        "practice this experiment is a bit harder, since the dimension of the\n",
        "trainable unitaries $W$ grows quickly with the number of qubits.\n",
        "\n",
        "In the paper, the investigations are made with the assumption that the\n",
        "purple trainable blocks $W$ are arbitrary unitaries. We could use the\n",
        "`~.pennylane.templates.ArbitraryUnitary`{.interpreted-text role=\"class\"}\n",
        "template, but since this template requires a number of parameters that\n",
        "grows exponentially with the number of qubits ($4^L-1$ to be precise),\n",
        "this quickly becomes cumbersome to train.\n",
        "\n",
        "We therefore follow Figure 4 in the paper and use an ansatz for $W$.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-FrL-WMjJcSv"
      },
      "source": [
        "![](../demonstrations/expressivity_fourier_series/parallel_model.png){.align-center\n",
        "width=\"70.0%\"}\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wUEK2r8-JcSv"
      },
      "source": [
        "Define the parallel quantum model\n",
        "=================================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "OKM6saGAJcSv"
      },
      "source": [
        "The ansatz is PennyLane\\'s layer structure called\n",
        "`~.pennylane.templates.StronglyEntanglingLayers`{.interpreted-text\n",
        "role=\"class\"}, and as the name suggests, it has itself a user-defined\n",
        "number of layers (which we will call \\\"ansatz layers\\\" to avoid\n",
        "confusion).\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 80,
      "metadata": {
        "id": "nWEBY1-0JcSv"
      },
      "outputs": [],
      "source": [
        "from pennylane.templates import StronglyEntanglingLayers"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "Z_Zk9ZVqJcSv"
      },
      "source": [
        "Let\\'s have a quick look at the ansatz itself for 3 qubits by making a\n",
        "dummy circuit of 2 ansatz layers:\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 81,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "JHX9N75BJcSv",
        "outputId": "c991f072-c86d-4c2c-d6b6-5fb45d0cbbcf"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "0: ──Rot(0.69,5.62,6.23)─╭●────╭X──Rot(3.42,5.43,4.61)─╭●─╭X────┤  <I>\n",
            "1: ──Rot(0.39,5.55,3.24)─╰X─╭●─│───Rot(3.28,5.45,1.54)─│──╰●─╭X─┤     \n",
            "2: ──Rot(5.70,3.59,4.16)────╰X─╰●──Rot(0.99,1.01,2.10)─╰X────╰●─┤     \n"
          ]
        }
      ],
      "source": [
        "n_ansatz_layers = 2\n",
        "n_qubits = 3\n",
        "\n",
        "dev = qml.device('default.qubit', wires=4)\n",
        "\n",
        "@qml.qnode(dev, interface=\"autograd\")\n",
        "def ansatz(weights):\n",
        "    StronglyEntanglingLayers(weights, wires=range(n_qubits))\n",
        "    return qml.expval(qml.Identity(wires=0))\n",
        "\n",
        "weights_ansatz = 2 * np.pi * np.random.random(size=(n_ansatz_layers, n_qubits, 3))\n",
        "print(qml.draw(ansatz, expansion_strategy=\"device\")(weights_ansatz))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xxwwB1p2JcSv"
      },
      "source": [
        "Now we define the actual quantum model.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 82,
      "metadata": {
        "id": "fwSjxDoYJcSv"
      },
      "outputs": [],
      "source": [
        "scaling = 1\n",
        "r = 3\n",
        "\n",
        "dev = qml.device('default.qubit', wires=r)\n",
        "\n",
        "def S(x):\n",
        "    \"\"\"Data-encoding circuit block.\"\"\"\n",
        "    for w in range(r):\n",
        "        qml.RX(scaling * x, wires=w)\n",
        "\n",
        "def W(theta):\n",
        "    \"\"\"Trainable circuit block.\"\"\"\n",
        "    StronglyEntanglingLayers(theta, wires=range(r))\n",
        "\n",
        "\n",
        "@qml.qnode(dev, interface=\"autograd\")\n",
        "def parallel_quantum_model(weights, x):\n",
        "\n",
        "    S(x)\n",
        "    W(weights[0])\n",
        "    W(weights[1])\n",
        "\n",
        "    return qml.expval(qml.PauliZ(wires=0))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pW3WmvDHJcSv"
      },
      "source": [
        "Again, you can sample random weights and plot the model\n",
        "\n",
        "*   List item\n",
        "*   List item\n",
        "\n",
        "function:\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 83,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 435
        },
        "id": "0l7NkV9UJcSv",
        "outputId": "c2f4cc54-e666-4f63-e01c-ee79c41ae27c"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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VLG7f/PmzahevToaNmyIYcOG4fz588WeY+rUqQgKCrJu4Y7qfHeyFi2A9u1lBWMu4UB083btks3PT2rcnKF5c6BzZ5kd2VLrQ0TacWqCc+7cORQUFCA0NNTu/tDQUKSnp5fqHGPHjkXNmjXtkqSYmBisWLECSUlJeOONN/D999+je/fuKCgoKPIcCQkJMJvN1i0tLe3mn5SL/fvfcjt/viQ6RFR2lqHhffoAISHOu87IkXI7fz5w9arzrkNEN+ajdQAlmTZtGlavXo3NmzfD39/fen/fvn2t+02bNkWzZs1w5513YvPmzejatet15/Hz84Ofn59LYna0Rx+VScROnJBhqA8/rHVERO7lr78AS4meo4uL/65XLxmdlZYGrFkDPP20c69HRMVzagtOSEgIvL29kZGRYXd/RkYGwm5QUDJz5kxMmzYNGzduRLNmzUo8tm7duggJCcHRo0dvOWa98fOzzW783nvaxkLkjlasAK5cAZo1k+kXnMnHx9bqOns2h4wTacmpCY6vry9at26NpKQk632FhYVISkpCZAmfNNOnT8err76KDRs2oE2bNje8zokTJ3D+/HnUqFHDIXHrzdChstLxt98CR45oHQ2R+1DKVg9jeR852+DBMmR8zx6glKWGROQETh8mHh8fj4ULF2L58uU4dOgQhg0bhuzsbMT+r9JvwIABSEhIsB7/xhtvYMKECViyZAlq166N9PR0pKen49KlSwCAS5cu4YUXXsD27dtx7NgxJCUloVevXqhXrx6io6Od/XQ0UasW8MADss/iRaLS27wZOHwYqFgR6N/fNdcMCQGefFL2OWScSDtOT3Aef/xxzJw5ExMnTkSLFi2QkpKCDRs2WAuPU1NTcfr0aevxc+fORW5uLh599FHUqFHDus2cORMA4O3tjb179+Khhx5CgwYNMGjQILRu3Ro//PCD29bZlIal2XvpUpmwjIhubPFiue3fH6hUyXXXtRQbf/QR8LcpvIjIRZw+D44elWUcvV4UFgL16wN//CFDxgcN0joiIn0rKABCQ4Hz54EffgA6dnTt9Tt3BrZsAcaPB1591bXXJjIq3cyDQ47j5WUbATJnDosXiW5kzx5JbgIDgYgI11+fQ8aJtMUEx43Exsqoqp9/BkpYzouIAGzcKLf33y+rfbta794ym/HZs8CHH7r++kSejgmOG6laFbBMAcQh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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "trainable_block_layers = 3\n",
        "weights = 2 * np.pi * np.random.random(size=(2, trainable_block_layers, r, 3), requires_grad=True)\n",
        "\n",
        "x = np.linspace(-6, 6, 70, requires_grad=False)\n",
        "random_quantum_model_y = [parallel_quantum_model(weights, x_) for x_ in x]\n",
        "\n",
        "plt.plot(x, random_quantum_model_y, c='blue')\n",
        "plt.ylim(-1,1)\n",
        "plt.show();"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ZBwG2dJbJcSv"
      },
      "source": [
        "Training the model\n",
        "==================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5XfPKn9NJcSv"
      },
      "source": [
        "Training the model is done exactly as before, but it may take a lot\n",
        "longer this time. We set a default of 25 steps, which you should\n",
        "increase if necessary. Small models of \\<6 qubits usually converge after\n",
        "a few hundred steps at most---but this depends on your settings.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 84,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 0
        },
        "id": "BthXNDu_JcSv",
        "outputId": "66d00e2d-2db1-41a2-f2ba-445aae03fe5c"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Cost at step  10: 0.0021176164484979364\n",
            "Cost at step  20: 0.003353730988423161\n",
            "Cost at step  30: 0.0007021009624523673\n",
            "Cost at step  40: 0.00037715481145985703\n",
            "Cost at step  50: 0.00021844001905681003\n"
          ]
        }
      ],
      "source": [
        "def cost(weights, x, y):\n",
        "    predictions = [parallel_quantum_model(weights, x_) for x_ in x]\n",
        "    return square_loss(y, predictions)\n",
        "\n",
        "max_steps = 50\n",
        "opt = qml.AdamOptimizer(0.3)\n",
        "batch_size = 25\n",
        "cst = [cost(weights, x, target_y)]  # initial cost\n",
        "\n",
        "for step in range(max_steps):\n",
        "\n",
        "    # select batch of data\n",
        "    batch_index = np.random.randint(0, len(x), (batch_size,))\n",
        "    x_batch = x[batch_index]\n",
        "    y_batch = target_y[batch_index]\n",
        "\n",
        "    # update the weights by one optimizer step\n",
        "    weights, _, _ = opt.step(cost, weights, x_batch, y_batch)\n",
        "\n",
        "    # save, and possibly print, the current cost\n",
        "    c = cost(weights, x, target_y)\n",
        "    cst.append(c)\n",
        "    if (step + 1) % 10 == 0:\n",
        "        print(\"Cost at step {0:3}: {1}\".format(step + 1, c))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 85,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 435
        },
        "id": "6p59DREzJcSv",
        "outputId": "1921065f-97ae-489f-c2ad-1e88f0a49c6d"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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YevWreZtBoMBW7duRb169Z753N9++w2pqal4++23n/s6V69exa1bt+Dj4/OvYyYiIqK8z+KjqIYNG4Yff/wRixcvxqlTpzBgwADcu3cPvXv3BgD07NkTY8aMeeJ5P/30Ezp06AAPD48s2+/evYuRI0diz549iI2NxdatW9G+fXuUKVMGISEhln47RERElAdYvA9O165dcePGDYwfPx4JCQmoUaMGNmzYYO54fPnyZajVWfOsM2fOYOfOndi0adMTx9NoNDh69CgWL16MpKQk+Pr6okWLFvjiiy84Fw4REREBAFQiItYO4lXTarVwc3NDcnIy++MQERHlES/y+821qIiIiEhxmOAQERGR4jDBISIiIsVhgkNERESKwwSHiIiIFIcJDhERESkOExwiIiJSHCY4REREpDhMcIiIiEhxmOAQERGR4jDBISIiIsVhgkNERESKwwSHiIiIFIcJDhERESkOExwiIiJSHCY4REREpDhMcIiIiEhxmOAQERGR4jDBISIiIsVhgkNERESKwwSHiIiIFIcJDhERESkOExwiIiJSHCY4REREpDhMcIiIiEhxmOAQERGR4jDBISIiIsVhgkNERESKwwSHiIiIFIcJDhERESmOnbUDICJl0uv1iI6ORnx8PHx8fNCwYUNoNBprh0VEj1HqucoEh4he2tMKxsjISAwfPhyxsbHmfQMCAjBjxgy0b99ekYUpkS3Ll+eq5EPJyckCQJKTk60dClGeFRERIQEBAQLAfAsICJCRI0eKSqWStm3bSkxMjKSkpEhMTIy0bdtWAIiXl9cTz4mIiLD22yFSLCWdqy/y+80+OET0wiIjI/Hmm2+iatWqiImJQUpKCmJiYlClShXMnDkbtWp9CLV6Ptq1q4hKlQwYO7YaUlNnAvgYxYt/hAULjuHyZeNzqlatijfffBORkZHWfltEivOsc3XWrFkIDW2L0NBvMXiwL2rWvI/hw8vh+vWZAOahUKE5GDgwFt9++wCbNu3Lc+eqSkTE2kG8alqtFm5ubkhOToarq6u1wyGyeZmbt4sVK4b33nsPVatWxerVq3Ht2jVs2LAJmzenICrKEzduNAZQ/LnHtLMTDB+uwtixBrz9dgccP34cp0+fxu7du/NukziRDdHr9ShTpoz5XFWr1bh79y7279+Pb77ZhJUrC0Glehci3s89lpubHp98osL27Z1x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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "predictions = [parallel_quantum_model(weights, x_) for x_ in x]\n",
        "\n",
        "plt.plot(x, target_y, c='black')\n",
        "plt.scatter(x, target_y, facecolor='white', edgecolor='black')\n",
        "plt.plot(x, predictions, c='blue')\n",
        "plt.ylim(-1,1)\n",
        "plt.show();"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 86,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 449
        },
        "id": "FPmTrT2vJcSv",
        "outputId": "005fa3a7-ba88-4c45-e8f9-ca742e8424a2"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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qOQMQERERK4QNQABQFZWFrKysmy+Zg41ZvHx8RAEwa1ris1TCyGqFVKoFFLUaF1vqCYiIvJX7Jz1Mre3wmgyV4BkLRursgJERETkFAYgL/PUZqjmKTCATdBERETOYgDyMnceg28yGGEwCs3XkbX0E7ECRERE5BQGIC9zZwqsddBRKaRurylERETkrxiAvMydKbDWQUcpk7q9rxgREZG/YgDyMrUbj8GbQ5NSJoVUKuEUGBERkYsYgLzMXLXRGYwwGjt/pL+11msAtf7V1YZqIiIif8UA5GXmqg1gCkHOsDwBpjD9tblTTSIiIvJnDEBeZt4KA3C+d8dc6TGv/8MmaCIiItcwAHmZXCaFTCoB4Hxwab0GUOtf2QRNRETkHAYgEbQsYOhkAGo+X2kJQGyCJiIicgUDkAgsawE52bxsmQJrfr9awSZoIiIiVzAAicDlClC7KTBWgIiIiFzBACQCVx9fb2mCbg5ACteCFBERkb9jABKBq9thtKwDZP0UmLNTaURERP6OAUgErleArNcBskyBsQJERETkFAYgEbjau9N2CoxN0ERERK5hABKBuYLj9EKI7abA2ARNRETkCgYgEbheAbKzFxgXQiQiInIKA5AI1K5WgCzrALV5CowVICIiIqcwAInA/QoQp8CIiIjcwQAkAlfX72npAWrTBM0pMCIiIqcwAIlALXdzKwyuBE1EROQWBiARuFwBsqwD1GYhRFaAiIiInMIAJAK3F0JsuxUGK0BEREROYQASgctbYbRdCLF5CqzJKKDJwBBERETkKAYgEbhcAWq7EKKi5a9PxwBERETkMAYgEbj9GHxz8FHKWv76uB8YERGR4xiAROD2QojNFSS5TAq5VGK6FvcDIyIichgDkAg8tRCi6feuPVFGRETkzxiARNDSA+TeQohAS0M1nwQjIiJyHAOQCCyhxcUpMHWr5mdXG6qJiIj8GQOQCFxdv8fmFBgrQERERE5jABKBZSsMpytA7afAuBo0ERGR8xiAROBKBajJYITBKJjezyZoIiIitzAAiaAltDhetWkdllovgMgpMCIiIucxAInAshWGE6GldcBpvQAim6CJiIicxwAkAnNoMTixh5c54ChlUkibFz80Xcu1fcWIiIj8GQOQCFr38Dg6dWVrDSCgdT8RK0BERESOYgASQesQ4+jTW233ATNTu7iqNBERkT9jABKB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H34Y7777ruWcCRMmYPTo0fjb3/7mnQ9HRF2KFSAi6ramT5+O4uJifP7555gyZQq2bduG0aNHY9WqVXbfc/DgQbzwwguWClJQUBDmzp2LkpIS1NfXW85LTU21el9qaiorQETXEDZBE1G3plarcfPNN+Pmm2/GokWL8Ic//AFLlizB73//e5vn19bWYunSpbjrrrtsXouI/AMrQER0TUlMTERdXR0AQKFQwGAwWL0+evRonDhxAgMHDmz3JZW2/F/i7t27rd63e/duDBs2rOs/ABF5BStARNQtXblyBTNmzMCcOXMwatQo9OzZE/v27cOrr76KO+64A4DpSbC8vDxcf/31UKlUCAsLw+LFi3HbbbehX79+uPvuuyGVSnHw4EEcOXIEL730kuX669atw9ixYzFp0iT897//xZ49e/DPf/5TrI9LRB7GJmgi6pa0Wi2ef/55fPPNNzhz5gz0ej1iY2MxY8YMLFy4EAEBAfjiiy+QnZ2N8+fPIzo62vIY/P/+9z+88MIL2L9/PxQKBYYOHYo//OEPmDt3LgBTE3Rubi42bNiA77//Hn379sUrr7yCe+65R8RPTESexABERNSGrafHiOjawh4gIiIi8jsMQEREROR32ARNRNQGOwOIrn2sABEREZHfYQAiIiIiv8MARERERH6HAYiIiIj8DgMQERER+R0GICIiIvI7DEBERETkdxiAiIiIyO/8f/CKqDEbllavAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "plt.plot(range(len(cst)), cst)\n",
        "plt.ylabel(\"Cost\")\n",
        "plt.xlabel(\"Step\")\n",
        "plt.show();"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qpsCV7dKJcSw"
      },
      "source": [
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "To reproduce the right column in Figure 4 from the paper, use the\n",
        "correct ground truth, $r=3$ and `trainable_block_layers=3`, as well as\n",
        "sufficiently many training steps. The amount of steps depends on the\n",
        "initial weights and other hyperparameters, and in some settings training\n",
        "may not converge to zero error at all.\n",
        ":::\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "yjb_VXs3JcSw"
      },
      "source": [
        "Part III: Sampling Fourier coefficients\n",
        "=======================================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "BlYUQOAlJcSw"
      },
      "source": [
        "When we use a trainable ansatz above, it is possible that even with\n",
        "enough repetitions of the data-encoding Pauli rotation, the quantum\n",
        "model cannot fit the circuit, since the expressivity of quantum models\n",
        "also depends on the Fourier coefficients the model can create.\n",
        "\n",
        "Figure 5 in shows Fourier coefficients from quantum models sampled from\n",
        "a model family defined by an ansatz for the trainable circuit block. For\n",
        "this we need a function that numerically computes the Fourier\n",
        "coefficients of a periodic function f with period $2 \\pi$.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 87,
      "metadata": {
        "id": "PXrbVOKXJcSw"
      },
      "outputs": [],
      "source": [
        "def fourier_coefficients(f, K):\n",
        "    \"\"\"\n",
        "    Computes the first 2*K+1 Fourier coefficients of a 2*pi periodic function.\n",
        "    \"\"\"\n",
        "    n_coeffs = 2 * K + 1\n",
        "    t = np.linspace(0, 2 * np.pi, n_coeffs, endpoint=False)\n",
        "    y = np.fft.rfft(f(t)) / t.size\n",
        "    return y"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "SgoXi74sJcSw"
      },
      "source": [
        "Define your quantum model\n",
        "=========================\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "EMrj1cKgJcSw"
      },
      "source": [
        "Now we need to define a quantum model. This could be any model, using a\n",
        "qubit or continuous-variable circuit, or one of the quantum models from\n",
        "above. We will use a slight derivation of the `parallel_qubit_model()`\n",
        "from above, this time using the\n",
        "`~.pennylane.templates.BasicEntanglerLayers`{.interpreted-text\n",
        "role=\"class\"} ansatz:\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 88,
      "metadata": {
        "id": "-IDEmK8fJcSw"
      },
      "outputs": [],
      "source": [
        "from pennylane.templates import BasicEntanglerLayers\n",
        "\n",
        "scaling = 1\n",
        "n_qubits = 4\n",
        "\n",
        "dev = qml.device('default.qubit', wires=n_qubits)\n",
        "\n",
        "def S(x):\n",
        "    \"\"\"Data encoding circuit block.\"\"\"\n",
        "    for w in range(n_qubits):\n",
        "        qml.RX(scaling * x, wires=w)\n",
        "\n",
        "def W(theta):\n",
        "    \"\"\"Trainable circuit block.\"\"\"\n",
        "    BasicEntanglerLayers(theta, wires=range(n_qubits))\n",
        "\n",
        "\n",
        "@qml.qnode(dev, interface=\"autograd\")\n",
        "def quantum_model(weights, x):\n",
        "\n",
        "    W(weights[0])\n",
        "    S(x)\n",
        "    W(weights[1])\n",
        "\n",
        "    return qml.expval(qml.PauliZ(wires=0))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "mncMngsOJcSw"
      },
      "source": [
        "It will also be handy to define a function that samples different random\n",
        "weights of the correct size for the model.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 89,
      "metadata": {
        "id": "iuWz4KK6JcSw"
      },
      "outputs": [],
      "source": [
        "n_ansatz_layers = 1\n",
        "\n",
        "def random_weights():\n",
        "    return 2 * np.pi * np.random.random(size=(2, n_ansatz_layers, n_qubits))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iuJX_s4BJcSw"
      },
      "source": [
        "Now we can compute the first few Fourier coefficients for samples from\n",
        "this model. The samples are created by randomly sampling different\n",
        "parameters using the `random_weights()` function.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 90,
      "metadata": {
        "id": "E1JPiEJyJcSw"
      },
      "outputs": [],
      "source": [
        "n_coeffs = 5\n",
        "n_samples = 100\n",
        "\n",
        "\n",
        "coeffs = []\n",
        "for i in range(n_samples):\n",
        "\n",
        "    weights = random_weights()\n",
        "\n",
        "    def f(x):\n",
        "        return np.array([quantum_model(weights, x_) for x_ in x])\n",
        "\n",
        "    coeffs_sample = fourier_coefficients(f, n_coeffs)\n",
        "    coeffs.append(coeffs_sample)\n",
        "\n",
        "coeffs = np.array(coeffs)\n",
        "coeffs_real = np.real(coeffs)\n",
        "coeffs_imag = np.imag(coeffs)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "uz5CugLwJcSw"
      },
      "source": [
        "Let\\'s plot the real vs. the imaginary part of the coefficients. As a\n",
        "sanity check, the $c_0$ coefficient should be real, and therefore have\n",
        "no contribution on the y-axis.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 91,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 182
        },
        "id": "e3fxL5gHJcSw",
        "outputId": "87082c0b-77ad-4b57-ce26-b5a795701c3e"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 1500x400 with 6 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABegAAAEDCAYAAABOCuTPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9SUlEQVR4nO3de3SU1b3/8U8CJCFgAggmoEGFcBFFowgYf6cEMTYSqnJWvWC5RKvgBQTEg8JqK2K1qHBaK2K99ABVtIJnidYCKkWRVQmXIimISAhSoSwTlUhiEMIl+/fHPpPJkAszk5l5Ms+8X2vNmsye55nZT5JPnsx39uwdZ4wxAgAAAAAAAAAAERXvdAcAAAAAAAAAAIhFFOgBAAAAAAAAAHAABXoAAAAAAAAAABxAgR4AAAAAAAAAAAdQoAcAAAAAAAAAwAEU6AEAAAAAAAAAcAAFegAAAAAAAAAAHECBHgAAAAAAAAAAB1CgBwAAAAAAAADAARToAQAAAAAAAABwAAV6AAAAAAAAAAAcQIEeAAAAAAAAAAAHUKBHSGzZskU33nijzjrrLCUlJalv37569NFHne4WgBAg34C7kXHA3cg44G5kHHA3Mh4bWjvdAUS/5cuXa9SoUerRo4emT5+u9u3ba/PmzVq/fr3TXQPQTOQbcDcyDrgbGQfcjYwD7kbGY0ecMcY43QlEr+LiYl166aXKy8vTa6+9pqSkpNr7qqurlZiY6GDvADQH+QbcjYwD7kbGAXcj44C7kfHYQoEezTJq1CitXr1ae/fuVUpKitPdARBC5BtwNzIOuBsZB9yNjAPuRsZjC3PQI2jV1dV65513NGbMmCb/WHzzzTcaMWKE2rVrpz59+mjNmjUR7CWAYPib7z/84Q+67LLL1KZNGz3yyCOR6yCAZvEn49XV1fr5z3+u7t27KyUlRVdccYUKCwsj3FMAwfD3PD5hwgR17dpVKSkp6t+/v955550I9hJAsPzNuEdhYaHi4+P12GOPRaB3AJrL34wPHTpUSUlJat++vdq3b6/hw4dHsJcIJQr0CNoXX3yhH374QQMGDGhyu4kTJyo9PV3ffPON5s6dq5tvvlnl5eUR6iWAYPib765du+qRRx7RT3/60wj1DEAo+JPxEydO6LzzztPf//53HTp0SFOnTtV1112nqqqqCPYUQDD8PY9PmzZN//rXv1RZWamFCxdqzJgxOnjwYIR6CSBY/mZckmpqanT//fdr4MCBEegZgFAIJON//OMfVVVVpaqqKq1atSoCvUM4UKBH0I4cOSJJiouLa3SbqqoqvfXWW5o9e7aSk5N1/fXXq3///nr77bcj1U0AQfAn35I0cuRIXX/99erQoUMEegUgVPzJeLt27fTwww+re/fuio+P16hRo5SQkKBdu3ZFqpsAguTvebxv3761c9jGxcXp2LFjOnDgQNj7B6B5/M24JL344osaPHiwLrjggnB3C0CIBJJxuAMFegQtMzNTkvS3v/2t3n3Hjx+XJO3evVvt27fXOeecU3tf//79tWPHjsh0EkBQ/Mk3gOgVTMZ3796t8vLy2n0BtFyBZPzee+9V27ZtNXDgQA0bNkz9+/ePSB8BBM/fjB88eFBPP/20Zs+eHbG+AWi+QM7j999/v7p06aJrrrlG27Zti0j/EHqtne4AoldKSopuu+02LV68WNXV1Ro6dKi+//57ffjhhxoxYoQmTpyoqqqqevNlpaSk8NFZoIXzJ98AolegGT9y5IjGjBmjmTNnKjU11aFeA/BXIBl/7rnnNH/+fK1du1affvopo/WAKOBvxn/xi19o6tSpfNoViDL+Zvypp55Sv3791KpVK82fP1/Dhw/X559/rjPOOMPhI0CgKNCjWRYsWKCzzz5by5Yt01tvvaVOnTrpyiuv1LXXXitJat++vSorK332qaysVPv27Z3oLoAAnC7fAKKbvxk/fvy4brrpJmVmZurhhx92qLcAAhXIebxVq1a6+uqr9fTTT6tXr17Kz893oMcAAnG6jG/dulWbN2/WggULHO4pgGD4cx4fNGhQ7dcPPvigFi5cqA0bNuiaa65xostohjhjjHG6E3CvqqoqderUSXv37tXZZ58tSbrqqqs0btw43X777Q73DkCo3H333UpPT9cjjzzidFcAhFBNTY1+9rOf6fDhw1q+fLlat2ZsB+Bmw4cP1/DhwzV58mSnuwKgmZ5++mn98pe/rB0cV1FRodatW+vGG2/UokWLHO4dgHDo16+fnn76af34xz92uisIEHPQI6zat2+vG264QbNmzdKRI0f017/+Vdu2bdMNN9zgdNcAhMCJEyd09OhRnTx50udrAO5w11136auvvtIbb7xBcR5wmYqKCr322muqqqrSiRMn9MYbb+jDDz/UkCFDnO4agBCYMGGCSkpKVFRUpKKiIl1//fWaOHGifve73zndNQAhcOjQIa1evVrV1dU6duyYfve736m8vFyDBw92umsIAq+0EHbPPfecCgoKdOaZZ+qcc87R0qVL1alTJ6e7BSAEHnvsMZ9Fpx5//HEtWrRIt912m3OdAhASX375pf74xz8qKSlJnTt3rm1ftWqVfvSjHznYMwChEBcXp5deekn33nuvjDHKzMzUa6+9pqysLKe7BiAEkpOTlZycXHu7bdu2at++PfPRAy5x/PhxzZw5U7t27VKbNm2UlZWllStXsl5UlGKKGwAAAAAAAAAAHBDWKW7WrVun6667Tt26dVNcXJzeeuut0+6zdu1aXXbZZUpMTFRmZqYWL14czi4CaAYyDrgbGQfcjYwD7kbGAfci34C7hLVAf/jwYV1yySV+rxq+d+9ejRgxQldddZWKioo0depU3XnnnXrvvffC2U0AQSLjgLuRccDdyDjgbmQccC/yDbhLxKa4iYuL0/LlyzVy5MhGt3nooYe0YsUKffrpp7Vto0aN0qFDh/Tuu+9GoJcAgkXGAXcj44C7kXHA3cg44F7kG4h+LWqR2MLCQuXm5vq05eXlaerUqY3uU11drerq6trbNTU1Ki8v15lnnqm4uLhwdRVo0Ywx+v7779WtWzfFx4f1gzIBIeNAaJBxwN3IOOBuZBxwt5aY8WDyLZFxoCHhyHiLKtCXlpYqLS3Npy0tLU2VlZU6cuSI2rZtW2+fOXPmaPbs2ZHqIhBV9u/fr3POOcfpbtQi40BokXHA3cg44G5kHHC3lpTxYPItkXGgKaHMeIsq0Adj5syZmjZtWu3tiooKde/eXfv371dKSoqDPQOcU1lZqYyMDJ1xxhlOd6XZyDhQHxkH3I2MA+5GxgF3I+OAu4Uj4y2qQJ+enq6ysjKftrKyMqWkpDT6bl5iYqISExPrtaekpPDHAjGvpX3kjIwDoUXGAXcj44C7kXHA3VpSxoPJt0TGgaaEMuMtYzKs/5Odna01a9b4tK1evVrZ2dkO9QhAKJFxwN3IOOBuZBxwNzIOuBf5Blq2sBboq6qqVFRUpKKiIknS3r17VVRUpH379kmyH5UZN25c7fZ33323vvjiCz344IP6/PPP9dxzz2nZsmW6//77w9lNAEEi44C7kXHA3cg44G5kHHAv8g24jAmjDz/80EiqdykoKDDGGFNQUGBycnLq7ZOVlWUSEhJMjx49zKJFiwJ6zoqKCiPJVFRUhOYggCgUqRyQccAZZBxwNzIOuBsZB9wtEjlwIt/GkHHAmPDkIM4YY8JV/HdCZWWlUlNTVVFRwXxYiFluzoGbjw3wl5tz4OZjA/zl5hy4+dgAf7k5B24+NsBfbs6Bm48N8Fc4ctCi5qAHAAAAAAAAACBWUKAHAAAAAAAAAMABFOgBAAAAAAAAAHAABXoAAAAAAAAAABxAgR4AAAAAAAAAAAdQoAcAAAAAAAAAwAEU6AEAAAAAAAAAcAAFegAAAAAAAAAAHECBHgAAAAAAAAAAB1CgBwAAAAAAAADAARToAQAAAAAAAABwAAV6AAAAAAAAAAAcQIEeAAAAAAAAAAAHUKAHAAAAAAAAAMABFOgBAAAAAAAAAHAABXoAAAAAAAAAABxAgR4AAAAAAAAAAAdQoAcAAAAAAAAAwAEU6AEAAAAAAAAAcAAFegAAAAAAAAAAHECBHgAAAAAAAAAAB1CgBwAAAAAAAADAARToAQAAAAAAAABwAAV6AAAAAAAAAAAcQIEeAAAAAAAAAAAHUKAHAAAAAAAAAMABFOgBAAAAAAAAAHAABXoAAAAAAAAAABxAgR4AAAAAAAAAAAdQoAcAAAAAAAAAwAEU6AEAAAAAAAAAcAAFegAAAAAAAAAAHECBHgAAAAAAAAAAB1CgBwAAAAAAAADAARToAQAAAAAAAABwAAV6AAAAAAAAAAAcQIEeAAAAAAAAAAAHRKRAv2DBAp133nlKSkrS4MGDtWnTpka3Xbx4seLi4nwuSUlJkegmgCCQb8DdyDjgbmQccDcyDrgbGQfcIewF+qVLl2ratGmaNWuWPvnkE11yySXKy8vT119/3eg+KSkp+uqrr2ovX375Zbi7CSAI5BtwNzIOuBsZB9yNjAPuRsYB9wh7gf63v/2txo8fr9tvv139+vXT888/r+TkZC1cuLDRfeLi4pSenl57SUtLC3c3AQSBfAPuRsYBdyPjgLuRccDdyDjgHmEt0B87dkxbtmxRbm6u9wnj45Wbm6vCwsJG96uqqtK5556rjIwM3XDDDdqxY0c4uwkgCOQbcDcyDrgbGQfcjYwD7kbGAXcJa4H+22+/1cmTJ+u9I5eWlqbS0tIG9+nTp48WLlyot99+W0uWLFFNTY2uvPJK/fvf/25w++rqalVWVvpcAIRfJPItkXHAKWQccDcyDrgbGQfcjYwD7hKRRWIDkZ2drXHjxikrK0s5OTl688031aVLF73wwgsNbj9nzhylpqbWXjIyMiLcYwD+CjTfEhkHogkZB9yNjAPuRsYBdyPjQMsV1gJ9586d1apVK5WVlfm0l5WVKT093a/HaNOmjS699FKVlJQ0eP/MmTNVUVFRe9m/f3+z+w3g9CKRb4mMA04h44C7kXHA3cg44G5kHHCXsBboExISNGDAAK1Zs6a2raamRmvWrFF2drZfj3Hy5Elt375dXbt2bfD+xMREpaSk+FwAhF8k8i2RccApZBxwNzIOuBsZB9yNjAPu0jrcTzBt2jQVFBTo8ssv16BBg/T000/r8OHDuv322yVJ48aN09lnn605c+ZIkh599FFdccUVyszM1KFDhzR37lx9+eWXuvPOO8PdVQABIt+Au5FxwN3IOOBuZBxwNzIOuEfYC/S33HKLvvnmGz388MMqLS1VVlaW3n333dqFLPbt26f4eO9A/u+++07jx49XaWmpOnbsqAEDBmj9+vXq169fuLsKIEDkG3A3Mg64GxkH3I2MA+5GxgH3iDPGGKc7EUqVlZVKTU1VRUUFH71BzHJzDtx8bIC/3JwDNx8b4C8358DNxwb4y805cPOxAf5ycw7cfGyAv8KRg7DOQQ8AAAAAAAAAABpGgR4AAAAAAAAAAAdQoAcAAAAAAAAAwAEU6AEAAAAAAAAAcAAFegAAAAAAAAAAHECBHgAAAAAAAAAAB1CgBwAAAAAAAADAARToAQAAAAAAAABwAAV6AAAAAAAAAAAcQIEeAAAAAAAAAAAHUKAHAAAAAAAAAMABFOgBAAAAAAAAAHAABXoAAAAAAAAAABxAgR4AAAAAAAAAAAe0droDAIAoU1ws7dkjZWZKvXo53RsAAAAAAICoxQh6AIB/ysulESOkPn2k/Hypd297+7vvnO4ZAAAAAABAVKJADwDwz9ix0oYN0pIl0r599nrDBmnMGKd7BgAAAAAAEJWY4gYAcHrFxdLKlbYoP3q0bRs9WjLGFu537w7PdDdMpwMAAAAAAFyMEfQAgNPbs8deDxni256TY69LSkL7fEynAwAAAAAAYgAFegDA6fXsaa/XrfNt/+gje52ZefrHKC6WVq2yo+1Ph+l0AAAAAABADGCKGwDA6fXubUeyT55sp7XJybHF+SlTbHtT08+Ul9uC+8qV3rb8fFt079ix/vZOTacDAAAAAAAQYYygBwD4Z8kS6YorbJG8e3d7fcUVtr0pgY6Gj/R0OgAAAAAAAA5hBD0AwD8dO0orVtgR7CUl/i3cumlT4KPh606n49lHCmw6HQAAAAAAgChAgR4AEJhevfyfYmbiRHvd1Gj4Ux+rOdPpAAAAAAAARBGmuAGAWBbIwq2B7r9pk7Rli/060MVlg51OBwAAAAAAIIowgh4AYlGgC7dKthi/Z48tqp955un3nzRJSkmRzj+//mj4e+5peCR83ecIdDodAAAAAACAKMMIegCIRYEs3FpebgvrffrYInzv3lK/fk3vX1wsbd4sLVggffCB72j4ggKpqsoW33v3lkaMkL74wl7XfY4RI6TOnaXhwynOAwAAAAAAV2IEPQDEmuJiO/J9+nRp0CApI6PxhVvLy20xvqzMu3+PHrag3tTCr3v22PYhQ3wXl73pJulf/7KF+yFD7NQ3kydLV14pHT9uH7Nu+5gxdl8AANB8xcX2k2xxcfbN9169fD+9xhviAAAAEUeBHgBiSXm5d5T73Ln24pmapqGFW6+9VqqstEX6zz6zbV98Ya+bWvi1Z0/79bp13iK+MdI//9l4YX/evMYL/hQMAAAI3qZN0t13S1u3+rZ36CAdOuS9nZMjLV/e+HR3AAAACDmmuAGAWDJ2rB0l19DUNJ6FW1u1kpYtkwYPttPUVFdLBw5495k7127X2MKvBw7YkXlpadLEiXa//full16y9zdW2O/SpeH2kpLQHDsAALGkuNiez4cOted0T3F+wADp3HPtudoY3/8JiorsNHPLlgW/gDwAAAACwgh6AIgVnqltGhvB/vHHtqielyfFx0tnnGGL8dOn2ylpPPv8139Jr75qi+91F3697z673/jxdrv4eDvyfuxY337UHVUveQv733zju52nPTMztN8HAADcrO5C8J7z+ZIl0sUXS+PGSVu2eLc9/3z7SbqOHX3/J7jlFnv/6RaQBwAAQLMxgh4AYkXdeeHr8oxUP3LEXubOlWpqbFH+wgsb3ufll6Xvv/cu/Dp2rN33kUekP/3JTldzxhnSWWd53xgoLpaGDfMdVb9kiTRlin1j4De/qd+en8/0NgAABMLzpvuNN3rP56NHSzNmeEfK172uu0C853+CP/3J3r9+vbdYDwAAgLBgBD0AxIqG5oWXvCPVExLsArB1i/JHjjS8zz//aV/0v/++XfR1wgTpggukhx/2bpOVJX3wgf16+HB7ffPN0tq1vqPq8/OlZ5+VJk2q375kSTMPGgCAGLJpk/Tuu/Yc/b//a9uGDDn9p+g86714/ifo10+6/HLWgwEAAIgARtADQKzo3dsWvSdPbnik+h/+YOeebdXKbr9u3en3ueYa6Zxz7EfoGxqVFx8vvfiid7+ZM+1cuPPmSe3b25F6K1bYj9ivWOE72n7FCj5SDwBAICZN8k5ps3atbVu37vSfoisstPtMmmTP3T/5ifTdd977PYV7AAAAhBwj6AEglixZYueYb2ikelWVvX3okNS5s3eO+SeesKPs6u4TH2+3W7bM7ldTIz3zTMOj8ubNsxfJFvyffNKOyktLqz8qr1cvRugBABCM4mK7uHvdUfI5OfZ8/otf2NuNfYquoMBeDxtmp7R58EHpP/9TuvPOyPUfAAAgRjGCHgDcpLhYWrXKFr0bauvYUfr1r217Xp6dosYzUt3zIv2RR6Tjx+2o9rFj7aJyO3bYEe/Tp9vtXn5Z2rZNGjVKuuMOu19jo/KeftpOnePpy8CB0ogR0iWX2LaSkuCOCwAAeHlGyZ886T1f3nuvXTPmwQftm+unrgPjGTE/fbo91/7hD1JGhvTLX9rz/cSJUlyc9PvfS//4h3PHBgAA4GKMoAcANygvt8X0lSu9bddcY69Xr/a2nXWW9PXX9uv33rP3XXaZdMUV0iuvSGeeKe3caV+0DxxoR9qVlkq/+pX0/PN21F15uR0F7xlxL9kX96tW2bnoPTwF/+eekw4etI85ZIh9zEmTvCP4MjMDOy7PiH+mvwEAwNq0SXroIfu1ZzR8fr59072mxn6SLSPDnpNP/URcTY1tmzrV93wbF2fP9cZIn35q/y/gHAwAABByjKAHADcYO1basMF3DvjNm20x3NOWlSVVV/tuk5oqbd9uX7BXVEjdutnHW7hQ6tNHGj/eFufj4+1I+uJi6dpr6z/XGWfUn6feMyqvuFhasMAW5DMy7PX8+fZ5c3KantKmoePasEEaMyYi31YAAFq08nL7qbTs7Pprwaxfbz/llpgoPfaYdOyYNHu2PRe3aWOva2rs44wbV/98m5Dgnc+eczAAAEDYRKRAv2DBAp133nlKSkrS4MGDtWnTpia3f+ONN9S3b18lJSWpf//+Wll3JAdavrg47wWuR75bAM/Cqp454OsWwaurpUGDpCNH7AKwpxbKn3nGblNTI/XsKX3+uS2qb93q+4K8XTs7+r1PH1v4P/W5nn3WPs7YsVL37vb68GE76i4uzhb/605P45n+5j//M/Dj+v3vbTvT3UQEGY9BnMdjChmPcmPHSh9/bM/jjb0Z3r27XdC9oMAu1L5/v53K7sAB+xgJCfZ/hLrn24ED7Xn91MfkHBx1yHgM4jweU8h4DCLjrhT2Av3SpUs1bdo0zZo1S5988okuueQS5eXl6WvPFAunWL9+vW699Vbdcccd2rp1q0aOHKmRI0fq008/DXdX0VxxcVLrU2ZNat2aPxouRr5bCM+cs43NAV9S0vA2mzZ5F2/1PM7Jk/ZF/i9+4fuCvGdPW2yfPr3p57rgAmnpUmnuXOnECdtmjJ3DtndvO8rvu++809+0a9e840JYkfEYw3k85pDxKOd5I/vGG+3txs6Xe/ZIn33mOxp+7lwpOdmet9u1s2/O192fc7ArkPEYw3k85pDxGEPG3c2E2aBBg8zEiRNrb588edJ069bNzJkzp8Htb775ZjNixAiftsGDB5u77rrLr+erqKgwkkxFRUXwnUZwWrUyJjXVmCVLjNm3z16nptp2RFSkchDpfBtDxhu0a5cxks1cXa+8YtuLi323OXjQmPx8e9tzGTbMmBdesJmNj7dt+fnGlJf77vvuu00/V7t2dr99++zt5GTfvwmdOhmTlWVMx472ed5/v3nHFaPIOMKC83iLQcbhl5Ur7fnwyScbP1/GxxvTvr29f/p0YzZtqv8/wAUX2Os77/SeW093vo/hc3AokHGEBefxFoOMIyzIeIsRjhyEdQT9sWPHtGXLFuXm5ta2xcfHKzc3V4WFhQ3uU1hY6LO9JOXl5TW6fXV1tSorK30ucEBcnB15e+rHYJ991rbzjp7rRCLfEhn3S+/edtG2U+eAv+8+O+/sxo1S27Z2DvqJE6Wrr5YKC32nsCkqkt5+22bWs5icZ55Zzyi6c86xjxUXV/+5pkyxo+/uuceO5lu61O7z6KP1PxpfVORddM4zyj6Q45oyxbY3NXc9mo2MxxjO4zGHjLtAz572+uBBm9G77rKfdPOsPzNxoj2np6XZ7ebOtYvCr1/v+z9Aaak9h//xj/bce9ZZdr2Z+Hj7GKeuL3PNNZyDowAZjzGcx2MOGY8xZNz1wlqg//bbb3Xy5Emlef4p/D9paWkqLS1tcJ/S0tKAtp8zZ45SU1NrLxkZGaHpPILT2Mdg4TqRyLdExv22ZIl90V13DviBA20mPW1FRVKrVvZ6/vyG55Tt3t0+Xr9+3rZVq+yL9KFDpVmzbGG9psb3ubp3t23XXWf3nzXL7nPzzb799PxNyMiwj5OZGfhxXXGFbUdYkfEYxXk8ZpBxF+jc2V6eesq+MD982L7BnpNj55s/fNiei8vL7Xlz7Vp7rn722frr0dTUSK++at/MP3bM++b9+ef7noOPHrXz16PFI+MxivN4zCDjMYqMu1ZEFokNp5kzZ6qioqL2sn//fqe7FNvWrfO97ZlnGggSGfdTx47SihXe+WiLi6X337eXum2ewnZjJ/Y//clet27tbVuwwHfe2iVLbHH9ggvs9nPn2vb8fHst2UVpa2oa/5vw9df+jYJv6LhWrLDtcAUy3sJwHkeIkfEwGjvWnmuzsqQOHXzP02ecIaWk2Ps9b8r/8IPdr7H/AQ4f9l1Qvn9/u2j83Ln2/vfft6Ps165lkVjUIuMtDOdxhBgZb2HIuGu1Pv0mwevcubNatWqlsrIyn/aysjKlp6c3uE96enpA2ycmJioxMTE0HUbwjLEFvYkT7dc5OfYPxaRJdsRuU9NYICpFIt8SGQ9Yr16+Re/iYjtFTWambf/iC9u+bp198e3hObEvXGivf/xj+4Jfsi/uPS/WJXttjC0MFBTYtmHDpOuvt5nv2dM7Lc6ECdJXX9nR/H/9q/TSS3Y0X9++gY2CP/W4EHZkPMZwHo85ZDzKed64njvXTmuzZEnD52nJW5D3TInT2P8Ano/Hn1rAv+UW+xwnTniL+R99xHm5hSPjMYbzeMwh4zGGjLteWEfQJyQkaMCAAVqzZk1tW01NjdasWaPs7OwG98nOzvbZXpJWr17d6PZoQU6etPNK1/0YbFWVbYfrkO8WrrxcGjFC6tPHjlTv3VtKT296TtnERN/Rd3v3Nv5i3fMC3fPi/IMPpLvvliorbUHeM8L9hx/si/phw+zH7isqbPuYMdK334b/+4CgkfEYxHk8ppDxKOd5I/yss+x1Ux9594y286ztct99vv8DTJ5s2z2P0djovMxMRupFETIegziPxxQyHoPIuLuFbLnZRrz++usmMTHRLF682Hz22WdmwoQJpkOHDqa0tNQYY8zYsWPNjBkzarf/+OOPTevWrc28efPMzp07zaxZs0ybNm3M9u3b/Xo+VpRuAez7efYCR0QqB5HOtzFk3G/5+cZ06uRd4T0ry7vi+7Zt9nbdrMbHG/PCC76P8cor3vuXLGn4vk2bjMnJ8X2sxERjOnTwXV2+Y0djhg3zrjQfH2+3zc83prw8Qt8U9yDjCCvO444j4zitXbtsRufObfo83amTPe++8oo9Jz//vD1Pn3refv553/8XPNu/8or3HO75Oj7emOJiJ47aNcg4worzuOPIOMKKjDsuHDmIyE9z/vz5pnv37iYhIcEMGjTIbNiwofa+nJwcU1BQ4LP9smXLTO/evU1CQoK58MILzYoVK/x+Lv5YAJHNQSTzbQwZ94vnRbvnxfqptz08L+ofe8xe79vne/++fbZ94ED7Ar/ui/XUVPuCPivL942A0xUKiou9X8+bZ/fNzw/bt8KtyDjgbmQcfhk40J6PPediz3n6qaeMSU62hfR27Yzp0cP3xXyrVvXfpPf3/sREY665xukjj3pkHHA3Mg64WzhyEGeMMZEbrx9+lZWVSk1NVUVFhVJSUpzuDuAIN+fAzccWMqtWeRdszciof9tj/3770bj77rMLyNWdv1ayt8eOlTZvlmbNsnPdesTH28uJE3a7gQPtx+0PHJDGj2/8uVaulC66yPv1wYP2OYqLmcs2AG7OgZuPDfCXm3Pg5mOLuM2bpSuusGvFxMf7Xku+X0v2XP2Tn9hzet++0uOP2/P43XdLx49Lt90m/eMf0oYN3n3i4qT//V/7EfqCAnuu3riRxdqbyc05cPOxAf5ycw7cfGyAv8KRg7DOQQ8AcEDdReCKi6V//9t7uy7PPLLz59sX8ZMmNTwn7eWXSytW2IXoJCktzb7gv/9+e3vhQu9c9+PH28datarh56o7f21mpneO3JKS0B0/AACxYOBAu7ZMmzZScrI9/6em2nP4sGHerz1ry+zZ4z0HX3edNHSoLc5/9530/PN2IfniYt99UlKk//kfe26X7KLxFOcBAABCqrXTHQAAhFjv3lJurnTHHVJ1tbf9jjvsCLj8fO+K71lZ0l/+YgvqEyfa0eweiYnS9dfbgv1HH0m/+Y19gV5Zae8fMUL67/+Wtm61L+KHDLFvAkycaIv7ycne1eUnT7bFgo0bpSlTbB969bL7SVKXLhH79gAA4BpLlki33CL97W+2AO/5VNuYMb6fjBs92k5S4znPz58vvfOOdOiQvX3ggP1kW2P7rFtnC/PXXBPxQwQAAHA7RtADgBvFxUlt2/qOgktKku6917vi+5lnSi+9ZKeiGTrUfsx93jxp9mz7GP/v/9mRdZ7tL73Ujpz3jNDfvNnenj/fvojPyLDXzz5r3xiou7p8RYX0wQf267Q06YknvKP0ExPtx+0BAEBgOnaU3n9fevFFe3vIEFuo93xdl+dTa5J09Kj0+ef2/wVJeughe71woR1Rf+o+P/xgp7oBAABAyFGgBwC3KS6WVq+2hfJTC+c1NbZoLtmPsg8caEfCFxXZtptvlkaNsl///Of2sVautNe3327bf/tbOwLeU8hvrADw5JPefT//XPrTn2z7zp3SxRfbYn12tvT739vtdu8O27cEAABX85yL163znequLs/0Npdfbt8kb91aOuMM3zfzt261o+9P3edHP7KfhAMAAEDIMcUNALhNUyPn4uOl77/3nZJm8mTp8GG7zbp1tpifn2/bf/977zQ1U6b4Lgw7cqTd3rOPh+fFfKtW0vDh3vaNG+31q6/aEX+ZmXaam/37bXtJCQvFAgAQjN69fc/dw4bZReCN8T2PZ2XZhWC7dLHn8wULGp/SZt8+Ox1eWpq0fLmjhwcAAOBmFOgBwG3qjpyrWzh//XXfKWkk3xfjbdrYF+LG2Cloxo3znZM+K0sqL7eF9Y4d7Yv9oUPrFwAmTbLF+ccesy/q67bHx9tt6xbu6y4aCwAAgrNkiR397jl3x8f7nsfz8+35/eKLpQ0bbFtjn4Kre718OQvDAgAAhBEFegBwm7qj6OoWzh991N7f2Ivxiy6SOnf2fTF/wQW2sP7DD9KcOd7FXT2WL/ctBkh21N5PfiLNnOnbHh8v9evn26/XX5ceecROtcPoeQAAgtexo7RihZ0ybu1aacIEu7ZMv37eT615Fme/4gp73din4C64QHr5ZTsdDgAAAMKKAj0AuElxsZ3iZvZsu/Bq3QJ5mzb2urEX40uX2hfvu3fbOWife87eN3GivT8/3/vC3qNjR+l3v7NzyE+fLo0f7y20d+lin/+ll2wxfupUaf166bzzbHt8vB3RL9kFZ0eMsI/PKD0AAILXq5e9vPWW9Jvf2ClvLrrIuzj7sGHS11/bRdonTvR9M3/yZPv12rVOHwUAAEDMoEAPAG5QXm6L3itXetvy823h+5tvbLF81izp3XfrvxifMsV+XVJi9/O8sL/5ZlusLynxjrxriGfO+/vuswvSenhG5p99tnfU3pgxto/x8XZhugULfOfCHzPGjv4DAADNc+qUN5I9/37wgb3Ex0vHj9efBufUN+MBAAAQVhToAcANxo6188meuvjrrFnegveKFXZhuHvv9X0xnpZmC/WekfSeF+cdO3qL9U1pbM77U+eW93z0/v33pby8xhem272b6W4AAGiuulPelJRI//yntHq1lJJi/xc47zzb3rq1XTC2qTfjAQAAEDYU6AEg2hUX21HpS5acvuB9+eXSpk3eF+tPPilt316/sB/ISPbG5ryfMqX+nPWSdPKkvW5sLvySEgoEAACEiufN9uHDpRkz6t8HAAAAR1GgB4Bo55liJpCCd69etpj+0UfS3LlSp07S0aPBj2Rv6GP0jX1M/swz7fXpRtwDAAAAAAC4HAV6AIh2/k4xc6qiIjv/7PTp3rb8fOmJJ+zXgYxkP/Vj9E19TH72bLsw3X33+Y64v+++hkfcAwAAAAAAuBQFegCIdoFOMePx3HMNL9Q6bpy9P5iR7Kebs94zHc8LL0hvv11/4brZswN/TgAAAAAAgChFgR4A3CCQKWYkWyj/6KPG563PyQnPSHbPdDzDh0sTJnhH3LdrZ5/zm29C/5wAAAAAAAAtVLzTHQAAhIBnihnPCPXiYnu7Y8eGtz/dvPX33hueftadjkfyLlq3b5+9zfzzAAAAAAAghjCCHgDc5HRTzHicbt76Sy8Nfd+k4KfjAQAAAAAAcCEK9AAQi5wslAc6HQ8AAAAAAIBLUaAHgFjlVKHcMx2PZ/75zExGzgMAAAAAgJhEgR4AYpXThXJ/p+MBAAAAAABwKQr0ABDrKJQDAAAAAAA4It7pDgAAAAAAAAAAEIso0AMAAAAAAAAA4ACmuAEA+Ke4WNqzh0VdAQAAAAAAQoQR9ACAppWXSyNGSH36SPn5Uu/e9vZ33zndMwAAAAAAgKhGgR4A0LSxY6UNG6QlS6R9++z1hg3SmDFO9wwAAAAAACCqMcUNAKBxxcXSypW2KD96tG0bPVoyxhbud+9muhsAAAAAAIAgMYIeANC4PXvs9ZAhvu05Ofa6pCSy/QEAAAAAAHARCvQAgMb17Gmv163zbf/oI3udmRnZ/gAAAAAAALgIU9wAABrXu7ddGHbyZDutTU6OLc5PmWLbmd4GAAAAAAAgaBToAQBNW7LELgg7dqy3LT/ftgMAAAAAACBoFOgBAE3r2FFascIuCFtSYqe1YeQ8AAAAAABAs1GgBwD4p1cvCvMAAAAAAAAhxCKxAAAAAAAAAAA4gAI9AAAAAAAAAAAOoEAPAAAAAAAAAIADKNADAAAAAAAAAOCAsBboy8vLNXr0aKWkpKhDhw664447VFVV1eQ+Q4cOVVxcnM/l7rvvDmc3AQSBfAPuRsYBdyPjgLuRccDdyDjgLq3D+eCjR4/WV199pdWrV+v48eO6/fbbNWHCBL322mtN7jd+/Hg9+uijtbeTk5PD2U0AQSDfgLuRccDdyDjgbmQccDcyDrhL2Ar0O3fu1LvvvqvNmzfr8ssvlyTNnz9f+fn5mjdvnrp169bovsnJyUpPTw9X1wA0E/kG3I2MA+5GxgF3I+OAu5FxwH3CNsVNYWGhOnToUPvHQpJyc3MVHx+vjRs3Nrnvq6++qs6dO+uiiy7SzJkz9cMPP4SrmwCCQL4BdyPjgLuRccDdyDjgbmQccJ+wjaAvLS3VWWed5ftkrVurU6dOKi0tbXS/n/3sZzr33HPVrVs3bdu2TQ899JB27dqlN998s8Htq6urVV1dXXu7srIyNAcAoFGRyrdExgEnkHHA3cg44G5kHHA3Mg64T8AF+hkzZujJJ59scpudO3cG3aEJEybUft2/f3917dpVV199tfbs2aOePXvW237OnDmaPXt20M8HwKul5Vsi40AokXHA3cg44G5kHHA3Mg7EroAL9A888IBuu+22Jrfp0aOH0tPT9fXXX/u0nzhxQuXl5QHNdzV48GBJUklJSYN/MGbOnKlp06bV3q6srFRGRobfjw/Aq6XlWyLjQCiRccDdyDjgbmQccDcyDsSugAv0Xbp0UZcuXU67XXZ2tg4dOqQtW7ZowIABkqQPPvhANTU1tX8E/FFUVCRJ6tq1a4P3JyYmKjEx0e/HA9C4lpZviYwDoUTGAXcj44C7kXHA3cg4ELvCtkjsBRdcoGuvvVbjx4/Xpk2b9PHHH2vSpEkaNWpU7YrSBw4cUN++fbVp0yZJ0p49e/TrX/9aW7Zs0b/+9S/95S9/0bhx4zRkyBBdfPHF4eoqgACRb8DdyDjgbmQccDcyDrgbGQfcJ2wFesmuDt23b19dffXVys/P13/8x3/oxRdfrL3/+PHj2rVrV+2q0QkJCfrb3/6mH//4x+rbt68eeOAB/fSnP9U777wTzm4CCAL5BtyNjAPuRsYBdyPjgLuRccBd4owxxulOhFJlZaVSU1NVUVGhlJQUp7sDOMLNOXDzsQH+cnMO3HxsgL/cnAM3HxvgLzfnwM3HBvjLzTlw87EB/gpHDsI6gh4AAAAAAAAAADSMAj0AAAAAAAAAAA6gQA8AAAAAAAAAgAMo0AMAAAAAAAAA4AAK9AAAAAAAAAAAOIACPQAAAAAAAAAADqBADwAAAAAAAACAAyjQAwAAAAAAAADgAAr0AAAAAAAAAAA4gAI9AAAAAAAAAAAOoEAPAAAAAAAAAIADKNADAAAAAAAAAOAACvQAAAAAAAAAADiAAj0AAAAAAAAAAA6gQA8AAAAAAAAAgAMo0AMAAAAAAAAA4AAK9AAAAAAAAAAAOIACPQAAAAAAAAAADqBADwAAAAAAAACAAyjQAwAAAAAAAADgAAr0AAAAAAAAAAA4gAI9AAAAAAAAAAAOoEAPAAAAAAAAAIADKNADAAAAAAAAAOAACvQAAAAAAAAAADiAAj0AAAAAAAAAAA6gQA8AAAAAAAAAgAMo0AMAAAAAAAAA4AAK9AAAAAAAAAAAOIACPQAAAAAAAAAADqBADwAAAAAAAACAAyjQAwAAAAAAAADgAAr0AAAAAAAAAAA4gAI9AAAAAAAAAAAOoEAPAAAAAAAAAIADKNADAAAAAAAAAOAACvQAAAAAAAAAADiAAj0AAAAAAAAAAA4IW4H+8ccf15VXXqnk5GR16NDBr32MMXr44YfVtWtXtW3bVrm5udq9e3e4ugigGcg44G5kHHA3Mg64GxkH3I2MA+4StgL9sWPHdNNNN+mee+7xe5+nnnpKzzzzjJ5//nlt3LhR7dq1U15eno4ePRqubgIIEhkH3I2MA+5GxgF3I+OAu5FxwGVMmC1atMikpqaedruamhqTnp5u5s6dW9t26NAhk5iYaP785z/7/XwVFRVGkqmoqAimu4ArRDIHZByIPDIOuBsZB9yNjAPuRsYBdwtHDlo787ZAfXv37lVpaalyc3Nr21JTUzV48GAVFhZq1KhRDe5XXV2t6urq2tsVFRWSpMrKyvB2GGjBPL//xhiHe+JFxoHQIeOAu5FxwN3IOOBuZBxwt3BkvMUU6EtLSyVJaWlpPu1paWm19zVkzpw5mj17dr32jIyM0HYQiEIHDx5Uamqq092QRMaBcCDjgLuRccDdyDjgbmQccLdQZjygAv2MGTP05JNPNrnNzp071bdv32Z1KhAzZ87UtGnTam8fOnRI5557rvbt29di/hAGqrKyUhkZGdq/f79SUlKc7k7Aor3/UvQfQ0VFhbp3765OnToFtB8Zj4xo//2K9v5L0X8MZLxli/bfr2jvvxT9x0DGW65o/92Sov8Yor3/Ehlvydzw+xXtxxDt/ZfIeEvmht+vaD+GaO+/FHzGmxJQgf6BBx7Qbbfd1uQ2PXr0CKoj6enpkqSysjJ17dq1tr2srExZWVmN7peYmKjExMR67ampqVH7g/ZISUmJ6mOI9v5L0X8M8fGBrQNNxiMr2n+/or3/UvQfAxlv2aL99yva+y9F/zGQ8ZYr2n+3pOg/hmjvv0TGWzI3/H5F+zFEe/8lMt6SueH3K9qPIdr7LwWe8aYEVKDv0qWLunTpErInr+v8889Xenq61qxZU/vHobKyUhs3bgxoVWoAwSPjgLuRccDdyDjgbmQccDcyDsSu0JX6T7Fv3z4VFRVp3759OnnypIqKilRUVKSqqqrabfr27avly5dLkuLi4jR16lQ99thj+stf/qLt27dr3Lhx6tatm0aOHBmubgIIEhkH3I2MA+5GxgF3I+OAu5FxwGVMmBQUFBhJ9S4ffvhh7TaSzKJFi2pv19TUmF/96lcmLS3NJCYmmquvvtrs2rUroOc9evSomTVrljl69GiIjiTyov0Yor3/xkT/MUSi/2Q8eNF+DNHef2Oi/xjIeMsW7ccQ7f03JvqPgYy3XNHef2Oi/xiivf/GkPGWLNr7b0z0H0O0998YMt6SRXv/jYn+Y4j2/hsTnmOIM8aY8L4FAAAAAAAAAAAAThW2KW4AAAAAAAAAAEDjKNADAAAAAAAAAOAACvQAAAAAAAAAADiAAj0AAAAAAAAAAA5wRYH+8ccf15VXXqnk5GR16NDBr32MMXr44YfVtWtXtW3bVrm5udq9e3d4O9qE8vJyjR49WikpKerQoYPuuOMOVVVVNbnP0KFDFRcX53O5++67I9LfBQsW6LzzzlNSUpIGDx6sTZs2Nbn9G2+8ob59+yopKUn9+/fXypUrI9LPpgRyDIsXL673vU5KSopgb32tW7dO1113nbp166a4uDi99dZbp91n7dq1uuyyy5SYmKjMzEwtXrw47P0MlWjPeLTlWyLjZDyyyDgZDwYZXxz2foYKGSfjgYrmfEuxlfFoz7dExp0QzRmPpXxLZJyMB4eMLw74eV1RoD927Jhuuukm3XPPPX7v89RTT+mZZ57R888/r40bN6pdu3bKy8vT0aNHw9jTxo0ePVo7duzQ6tWr9de//lXr1q3ThAkTTrvf+PHj9dVXX9VennrqqbD3denSpZo2bZpmzZqlTz75RJdccony8vL09ddfN7j9+vXrdeutt+qOO+7Q1q1bNXLkSI0cOVKffvpp2PvamECPQZJSUlJ8vtdffvllBHvs6/Dhw7rkkku0YMECv7bfu3evRowYoauuukpFRUWaOnWq7rzzTr333nth7mloRHvGoynfEhkn45FHxsl4oMg4GY8kMh5Z0Z5vKbYyHu35lsh4pEV7xmMp3xIZJ+OBI+NBZty4yKJFi0xqauppt6upqTHp6elm7ty5tW2HDh0yiYmJ5s9//nMYe9iwzz77zEgymzdvrm1btWqViYuLMwcOHGh0v5ycHDNlypQI9NDXoEGDzMSJE2tvnzx50nTr1s3MmTOnwe1vvvlmM2LECJ+2wYMHm7vuuius/WxKoMfg7++WEySZ5cuXN7nNgw8+aC688EKftltuucXk5eWFsWehF40Zj7Z8G0PGWxoyXh8Zbx4y3rKQ8frIePNEe8bdlG9jYifj0ZhvY8i4E9yU8VjJtzFkPJLIeMsRyYy7YgR9oPbu3avS0lLl5ubWtqWmpmrw4MEqLCyMeH8KCwvVoUMHXX755bVtubm5io+P18aNG5vc99VXX1Xnzp110UUXaebMmfrhhx/C2tdjx45py5YtPt+7+Ph45ebmNvq9Kyws9NlekvLy8hz5XkvBHYMkVVVV6dxzz1VGRoZuuOEG7dixIxLdDYmW9jMIt5aU8WjKt0TGyXh0IOPBI+NkPBqQ8eBFe8ZjMd9Sy/oZhFtLyrdExiMtFjPekr7/kUDGm4eMx27GW4eyU9GitLRUkpSWlubTnpaWVntfpPtz1lln+bS1bt1anTp1arI/P/vZz3TuueeqW7du2rZtmx566CHt2rVLb775Ztj6+u233+rkyZMNfu8+//zzBvcpLS1tMd9rKbhj6NOnjxYuXKiLL75YFRUVmjdvnq688krt2LFD55xzTiS63SyN/QwqKyt15MgRtW3b1qGehUdLyng05Vsi42Q8OpDx4JFxMh4NyHjwoj3jsZhvKbYy3pLy7ekPGY+cWMx4LOVbIuPNRcZjN+MtdgT9jBkz6i0ScOqlsR9uSxHuY5gwYYLy8vLUv39/jR49Wi+//LKWL1+uPXv2hPAoIEnZ2dkaN26csrKylJOTozfffFNdunTRCy+84HTXola0Z5x8uwsZDz0y3jQyHllkPPTIeNPIeOSQ79CL9nxLZNxNyHjokfHTI+ORQ8atFjuC/oEHHtBtt93W5DY9evQI6rHT09MlSWVlZeratWtte1lZmbKysoJ6zIb4ewzp6en1Fks4ceKEysvLa/vqj8GDB0uSSkpK1LNnz4D764/OnTurVatWKisr82kvKytrtK/p6ekBbR9uwRzDqdq0aaNLL71UJSUl4ehiyDX2M0hJSXHsHftoz7gb8y2RcQ8y3nxknIyHCxm3yHjzkHGvlpTxWMy31PIyHu35lsh4XWTcWS0t3xIZJ+PhQ8atYDLeYgv0Xbp0UZcuXcLy2Oeff77S09O1Zs2a2j8QlZWV2rhxY0ArU5+Ov8eQnZ2tQ4cOacuWLRowYIAk6YMPPlBNTU3tHwF/FBUVSZLPH8FQS0hI0IABA7RmzRqNHDlSklRTU6M1a9Zo0qRJDe6TnZ2tNWvWaOrUqbVtq1evVnZ2dtj62ZRgjuFUJ0+e1Pbt25Wfnx/GnoZOdna2Vq5c6dPm5M9Aiv6MuzHfEhn3IOPNR8bJeLiQcYuMNw8Z92pJGY/FfEstL+PRnm+JjNdFxp3V0vItkXEyHj5k3Arq+x/oCrYt0Zdffmm2bt1qZs+ebdq3b2+2bt1qtm7dar7//vvabfr06WPefPPN2ttPPPGE6dChg3n77bfNtm3bzA033GDOP/98c+TIEScOwVx77bXm0ksvNRs3bjR///vfTa9evcytt95ae/+///1v06dPH7Nx40ZjjDElJSXm0UcfNf/4xz/M3r17zdtvv2169OhhhgwZEva+vv766yYxMdEsXrzYfPbZZ2bChAmmQ4cOprS01BhjzNixY82MGTNqt//4449N69atzbx588zOnTvNrFmzTJs2bcz27dvD3tfGBHoMs2fPNu+9957Zs2eP2bJlixk1apRJSkoyO3bscKT/33//fe3vuSTz29/+1mzdutV8+eWXxhhjZsyYYcaOHVu7/RdffGGSk5PN9OnTzc6dO82CBQtMq1atzLvvvutI/wMV7RmPpnwbQ8bJeOSRcTIeKDJOxiOJjEdWtOfbmNjKeLTn2xgyHmnRnvFYyrcxZJyMh7//ZNxyRYG+oKDASKp3+fDDD2u3kWQWLVpUe7umpsb86le/MmlpaSYxMdFcffXVZteuXZHv/P85ePCgufXWW0379u1NSkqKuf32233+4O3du9fnmPbt22eGDBliOnXqZBITE01mZqaZPn26qaioiEh/58+fb7p3724SEhLMoEGDzIYNG2rvy8nJMQUFBT7bL1u2zPTu3dskJCSYCy+80KxYsSIi/WxKIMcwderU2m3T0tJMfn6++eSTTxzotfXhhx82+Dvv6XNBQYHJycmpt09WVpZJSEgwPXr08MlDSxftGY+2fBtDxsl4ZJFxMh4MMr4o4v0OFhkn44GK5nwbE1sZj/Z8G0PGnRDNGY+lfBtDxsl4cMj4ooCfN84YYwIbcw8AAAAAAAAAAJor3ukOAAAAAAAAAAAQiyjQAwAAAAAAAADgAAr0AAAAAAAAAAA4gAI9AAAAAAAAAAAOoEAPAAAAAAAAAIADKNADAAAAAAAAAOAACvQAAAAAAAAAADiAAj0AAAAAAAAAAA6gQA8AAAAAAAAAgAMo0AMAAAAAAAAA4AAK9AAAAAAAAAAAOIACPQAAAAAAAAAADvj/M3BkH1lPivMAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "n_coeffs = len(coeffs_real[0])\n",
        "\n",
        "fig, ax = plt.subplots(1, n_coeffs, figsize=(15, 4))\n",
        "\n",
        "for idx, ax_ in enumerate(ax):\n",
        "    ax_.set_title(r\"$c_{}$\".format(idx))\n",
        "    ax_.scatter(coeffs_real[:, idx], coeffs_imag[:, idx], s=20,\n",
        "                facecolor='white', edgecolor='red')\n",
        "    ax_.set_aspect(\"equal\")\n",
        "    ax_.set_ylim(-1, 1)\n",
        "    ax_.set_xlim(-1, 1)\n",
        "\n",
        "\n",
        "plt.tight_layout(pad=0.5)\n",
        "plt.show();"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "9LL8m72SJcSw"
      },
      "source": [
        "Playing around with different quantum models, you will find that some\n",
        "quantum models create different distributions over the coefficients than\n",
        "others. For example `BasicEntanglingLayers` (with the default Pauli-X\n",
        "rotation) seems to have a structure that forces the even Fourier\n",
        "coefficients to zero, while `StronglyEntanglingLayers` will have a\n",
        "non-zero variance for all supported coefficients.\n",
        "\n",
        "Note also how the variance of the distribution decreases for growing\n",
        "orders of the coefficients---an effect linked to the convergence of a\n",
        "Fourier series.\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hRy9brBkJcSw"
      },
      "source": [
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "To reproduce the results from Figure 5 you have to change the ansatz (no\n",
        "unitary, `BasicEntanglerLayers` or `StronglyEntanglingLayers`, and set\n",
        "`n_ansatz_layers` either to $1$ or $5$). The `StronglyEntanglingLayers`\n",
        "requires weights of shape `size=(2, n_ansatz_layers, n_qubits, 3)`.\n",
        ":::\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "_JjHvLp7JcSw"
      },
      "source": [
        "Continuous-variable model\n",
        "=========================\n",
        "\n",
        "Ref. mentions that a phase rotation in continuous-variable quantum\n",
        "computing has a spectrum that supports *all* Fourier frequecies. To play\n",
        "with this model, we finally show you the code for a continuous-variable\n",
        "circuit. For example, to see its Fourier coefficients run the cell\n",
        "below, and then re-run the two cells above.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 92,
      "metadata": {
        "id": "nLxDpdcbJcSw"
      },
      "outputs": [],
      "source": [
        "var = 2\n",
        "n_ansatz_layers = 1\n",
        "dev_cv = qml.device('default.gaussian', wires=1)\n",
        "\n",
        "def S(x):\n",
        "    qml.Rotation(x, wires=0)\n",
        "\n",
        "def W(theta):\n",
        "    \"\"\"Trainable circuit block.\"\"\"\n",
        "    for r_ in range(n_ansatz_layers):\n",
        "        qml.Displacement(theta[0], theta[1], wires=0)\n",
        "        qml.Squeezing(theta[2], theta[3], wires=0)\n",
        "\n",
        "@qml.qnode(dev_cv)\n",
        "def quantum_model(weights, x):\n",
        "    W(weights[0])\n",
        "    S(x)\n",
        "    W(weights[1])\n",
        "    return qml.expval(qml.X(wires=0))\n",
        "\n",
        "def random_weights():\n",
        "    return np.random.normal(size=(2, 5 * n_ansatz_layers), loc=0, scale=var)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "vYS-GcICJcSw"
      },
      "source": [
        "::: {.note}\n",
        "::: {.title}\n",
        "Note\n",
        ":::\n",
        "\n",
        "To find out what effect so-called \\\"non-Gaussian\\\" gates like the `Kerr`\n",
        "gate have, you need to install the [strawberryfields\n",
        "plugin](https://pennylane-sf.readthedocs.io/en/latest/) and change the\n",
        "device to\n",
        "\n",
        "``` {.python}\n",
        "dev_cv = qml.device('strawberryfields.fock', wires=1, cutoff_dim=50)\n",
        "```\n",
        ":::\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "3fhWQ5MrJcSx"
      },
      "source": [
        "References\n",
        "==========\n",
        "\n",
        "About the authors\n",
        "=================\n"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "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.9.17"
    },
    "colab": {
      "provenance": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}