{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#RPE is currently broken in pyGSTi. This notebook serves as a temporary stopgap for \n", "#RPE for estimate the rotation angle of an approximately X_pi/2 gate.\n", "#A more stable and thorough version of RPE will be incorporated into the pyGSTi codebase in the near future.\n", "#In the meantime, please direct all inquiries to Kenneth Rudinger (kmrudin@sandia.gov)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pygsti\n", "from pygsti.construction import std1Q_XY" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def make_sin_circs(k):\n", " return pygsti.objects.Circuit(('Gx',)*(k+1))\n", "\n", "def make_cos_circs(k):\n", " return pygsti.objects.Circuit(('Gx',)*k)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "gate_rot_angle_func = lambda xhat, yhat, Nx, Ny: np.arctan2(-(xhat-Nx/2.)/Nx,(yhat-Ny/2.)/Ny)\n", "\n", "def extract_rotation_hat(xhat,yhat,k,Nx,Ny,angleName=\"epsilon\",\n", " previousAngle=None,rpeconfig_inst=None):\n", " \"\"\"\n", " For a single germ generation (k value), estimate the angle of rotation\n", " for either alpha, epsilon, or Phi. (Warning: Do not use for theta\n", " estimate without further processing!)\n", "\n", " Parameters\n", " ----------\n", " xhat : float\n", " The number of 0 counts for the sin string being used.\n", "\n", " yhat : float\n", " The number of 0 counts for the cos string being used.\n", "\n", " k : float\n", " The generation of experiments that xhat and yhat come from.\n", "\n", " Nx : float\n", " The number of sin string clicks.\n", "\n", " Ny : float\n", " The number cos string clicks.\n", "\n", " angleName : { \"alpha\", \"epsilon\", \"Phi\" }, optional\n", " ****CURRENTLY DEPRECATED*****\n", " The angle to be extracted\n", "\n", " previousAngle : float, optional\n", " Angle estimate from previous generation; used to refine this\n", " generation's estimate. Default is None (for estimation with no\n", " previous genereation's data)\n", "\n", " rpeconfig_inst : Declares which gate set configuration RPE should be trying to fit;\n", " ****CURRENTLY DEPRECATED*****\n", " determines particular functions and values to be used.\n", "\n", " Returns\n", " -------\n", " alpha_j : float\n", " The current angle estimate.\n", " \"\"\"\n", " \n", " if previousAngle == None:\n", " if k!=1:\n", " raise Exception('Need previousAngle!')\n", " else:\n", " previousAngle = np.pi\n", " \n", " theta = gate_rot_angle_func(xhat,yhat,Nx,Ny)/k\n", " frac = 2 * np.pi / k\n", " theta += frac * ((previousAngle - theta + frac / 2) % (2 * np.pi) // frac)\n", " return theta\n", " \n", "def est_angle_list(DS,angleSinStrs,angleCosStrs,angleName=\"epsilon\",lengthList=None,rpeconfig_inst=None):\n", " \"\"\"\n", " For a dataset containing sin and cos strings to estimate either alpha,\n", " epsilon, or Phi return a list of alpha, epsilon, or Phi estimates (one for\n", " each generation). Note: this assumes the dataset contains '0' and\n", " '1' SPAM labels.\n", "\n", " Parameters\n", " ----------\n", " DS : DataSet\n", " The dataset from which the angle estimates will be extracted.\n", "\n", " angleSinStrs : list of GateStrings\n", " The list of sin strs that the estimator will use.\n", "\n", " angleCosStrs : list of GateStrings\n", " The list of cos strs that the estimator will use.\n", "\n", " angleName : { \"alpha\", \"epsilon\", \"Phi\" }, optional\n", " ****CURRENTLY DEPRECATED*****\n", " The angle to be extracted\n", " \n", " \n", " lengthList : The list of sequence lengths. Default is None;\n", " If None is specified, then lengthList becomes [1,2,4,...,2**(len(angleSinStrs)-1)]\n", " \n", " rpeconfig_inst : rpeconfig object\n", " ****CURRENTLY DEPRECATED*****\n", " Declares which gate set configuration RPE should be trying to fit;\n", " determines particular functions and values to be used.\n", " \n", " Returns\n", " -------\n", " angleHatList : list of floats\n", " A list of angle estimates, ordered by generation (k).\n", " \"\"\"\n", " angleTemp1 = None\n", " angleHatList = []\n", " genNum = len(angleSinStrs)\n", "\n", " if lengthList == None:\n", " lengthList = [2**k for k in range(genNum)]\n", " for i, length in enumerate(lengthList):\n", " xhatTemp = DS[angleSinStrs[i]]['0']\n", " yhatTemp = DS[angleCosStrs[i]]['0']\n", "# Nx = xhatTemp + DS[angleSinStrs[i]]['00'] + DS[angleSinStrs[i]]['01'] + DS[angleSinStrs[i]]['11']\n", "# Ny = yhatTemp + DS[angleCosStrs[i]]['00'] + DS[angleCosStrs[i]]['01'] + DS[angleCosStrs[i]]['11']\n", " Nx = xhatTemp + DS[angleSinStrs[i]]['1']\n", " Ny = yhatTemp + DS[angleCosStrs[i]]['1']\n", " angleTemp1 = extract_rotation_hat(xhatTemp,yhatTemp,length,\n", " Nx,Ny,angleName,angleTemp1,rpeconfig_inst)\n", " angleHatList.append(angleTemp1)\n", " return angleHatList\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "#Define your desired lengths (gate repetitions). They should be powers of two.\n", "#The accuracy of the estimate should scale as pi/(2*max_lengths[-1]) \n", "#(assuming the constraints of Phys. Rev. A 92, 062315 are satisfied.)\n", "\n", "max_lengths = [1,2,4,8,16,32,64,128,256,512,1024]\n", "\n", "sin_circs = list(map(make_sin_circs,max_lengths))\n", "cos_circs = list(map(make_cos_circs,max_lengths))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[Circuit(Gx),\n", " Circuit(GxGx),\n", " Circuit(GxGxGx),\n", " Circuit(GxGxGxGx),\n", " Circuit(GxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx),\n", " Circuit(GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx)]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "circs = np.zeros(len(sin_circs)+len(cos_circs),dtype='object')\n", "circs[::2] = cos_circs\n", "circs[1::2] = sin_circs\n", "circs = pygsti.remove_duplicates(circs)\n", "circs" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "#Let's generate some fake data to analyze.\n", "\n", "#Set the number of repetitions per circuit.\n", "N=1024\n", "\n", "#Let's use a gate set with perfect gates but slightly depolarized SPAM.\n", "target_model = std1Q_XY.target_model()\n", "target_model = target_model.depolarize(spam_noise=0.01)\n", "\n", "ds = pygsti.construction.generate_fake_data(target_model,circs,N)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gx : {('0',): 513.0, ('1',): 511.0}\n", "GxGx : {('0',): 7.0, ('1',): 1017.0}\n", "GxGxGx : {('0',): 521.0, ('1',): 503.0}\n", "GxGxGxGx : {('0',): 1017.0, ('1',): 7.0}\n", "GxGxGxGxGx : {('0',): 506.0, ('1',): 518.0}\n", "GxGxGxGxGxGxGxGx : {('0',): 1019.0, ('1',): 5.0}\n", "GxGxGxGxGxGxGxGxGx : {('0',): 500.0, ('1',): 524.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 1020.0, ('1',): 4.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 483.0, ('1',): 541.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 1020.0, ('1',): 4.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 513.0, ('1',): 511.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 1019.0, ('1',): 5.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 488.0, ('1',): 536.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 1019.0, ('1',): 5.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 526.0, ('1',): 498.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 1021.0, ('1',): 3.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 524.0, ('1',): 500.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 1023.0, ('1',): 1.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 506.0, ('1',): 518.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 1022.0, ('1',): 2.0}\n", "GxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGxGx : {('0',): 510.0, ('1',): 514.0}\n", "\n", "\n" ] } ], "source": [ "print(ds)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [], "source": [ "#Let's save the dataset so we have a template to fill in:\n", "\n", "pygsti.io.write_dataset('RPE_Xpi2_template.txt',ds)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#We already have a dataset, but here's where you would load in your own dataset.\n", "\n", "#ds = pygsti.io.load_dataset(DATAFILE_NAME)\n" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "At length 1 estimate is 1.5688161313633289, for an error of 0.0019801954315676884\n", "At length 2 estimate is 1.5797062746501267, for an error of -0.008909947855230138\n", "At length 4 estimate is 1.5737664840714547, for an error of -0.0029701572765581385\n", "At length 8 estimate is 1.5737543543922807, for an error of -0.002958027597384172\n", "At length 16 estimate is 1.5743603719392654, for an error of -0.0035640451443688104\n", "At length 32 estimate is 1.5707348111263228, for an error of 6.151566857370838e-05\n", "At length 64 estimate is 1.5715354200370184, for an error of -0.0007390932421218466\n", "At length 128 estimate is 1.5705806518181458, for an error of 0.0002156749767507904\n", "At length 256 estimate is 1.5707042515132612, for an error of 9.207528163535095e-05\n", "At length 512 estimate is 1.5708192587156424, for an error of -2.2931920745872247e-05\n", "At length 1024 estimate is 1.5708001564321277, for an error of -3.82963723111196e-06\n" ] } ], "source": [ "#Now let's get successive estimates our rotation angle on Gx (it should be pi/2=1.570796...):\n", "\n", "estimates = est_angle_list(ds,sin_circs,cos_circs)\n", "for l, est in zip(max_lengths,estimates):\n", " print('At length {} estimate is {}, for an error of {}'.format(l,est,np.pi/2-est))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }