{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Pygsti report\n", "(Created on August 03, 2017)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import pickle\n", "\n", "with open('results.pkl', 'rb') as infile:\n", " results = pickle.load(infile)\n", "\n", "estimates = results.estimates\n", "default = estimates['default']\n", "gatesets = default.gatesets\n", "\n", "ds = results.dataset\n", "gs = gatesets['go0']\n", "gs_final = gatesets['final iteration estimate']\n", "gs_target = gatesets['target']\n", "#Ls = [results.gatestring_structs['final'].Ls]\n", "Ls = results.gatestring_structs['final'].Ls\n", "\n", "cri = None\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "
Loading...
\n", "\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from pygsti.report import Workspace\n", "ws = Workspace()\n", "ws.init_notebook_mode(connected=False, autodisplay=True)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Model Violation summary: \n", "The aggregate log-likelihood as a function of GST iterations''')\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'gs_finalAllL' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m ws.FitComparisonBarPlot(Ls, gs_finalAllL, switchBd.gsAllL, \n\u001b[0m\u001b[1;32m 3\u001b[0m eff_ds, switchBd.objective, 'L')\n", "\u001b[0;31mNameError\u001b[0m: name 'gs_finalAllL' is not defined" ] } ], "source": [ "\n", "ws.FitComparisonBarPlot(Ls, gs_finalAllL, switchBd.gsAllL, \n", " eff_ds, switchBd.objective, 'L')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Per-sequence model violation: \n", "Each point displays the goodness of fit for a single gate sequence.''')\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m colorScatterPlot = ws.ColorBoxPlot(\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mswitchBd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobjective\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgs_final\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meff_ds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgsL\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mlinlg_pcntle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinlogPercentile\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m minProbClipForWeighting=switchBd.mpc, scatter=True) #TODO: L-switchboard on summary page?\n", "\u001b[0;31mNameError\u001b[0m: name 'switchBd' is not defined" ] } ], "source": [ "\n", "colorScatterPlot = ws.ColorBoxPlot(\n", " switchBd.objective, gs_final, eff_ds, gsL,\n", " linlg_pcntle=float(linlogPercentile) / 100,\n", " minProbClipForWeighting=switchBd.mpc, scatter=True) #TODO: L-switchboard on summary page?\n", "colorScatterPlot.set_render_options(click_to_display=True)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Comparison of GST estimated gates to target gates: \n", "This table presents, for each of the gates, three different measures of distance or discrepancy from the GST estimate to the ideal target operation. See text for more detail.''')\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ValueError", "evalue": "shapes (4,4) and (0,0) not aligned: 4 (dim 1) != 0 (dim 0)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGatesVsTargetTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgs_final\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgs_target\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcri\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m\u001b[0m in \u001b[0;36mfactoryfn\u001b[0;34m(gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 477\u001b[0m \"\"\"\n\u001b[1;32m 478\u001b[0m super(GatesVsTargetTable,self).__init__(ws, self._create, gateset,\n\u001b[0;32m--> 479\u001b[0;31m targetGateset, confidenceRegionInfo)\n\u001b[0m\u001b[1;32m 480\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 481\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_create\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, fn, *args)\u001b[0m\n\u001b[1;32m 1521\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1522\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtables\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchboards\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msbSwitchIndices\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchpos_map\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1523\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchedCompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtablefn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1524\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m \u001b[0;34m'click_to_display'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mFalse\u001b[0m \u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36mswitchedCompute\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"NA\"\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msmartCache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcached_compute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margVals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mstoredKeys\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'INEFFECTIVE'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcached_compute\u001b[0;34m(self, fn, argVals, kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypesigs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_key\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtypesig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0m_timed_block\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'call'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margVals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mhashtime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hash'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m_create\u001b[0;34m(self, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 486\u001b[0m \u001b[0mformatters\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# ,'Conversion'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 487\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 488\u001b[0;31m \u001b[0minfidelities\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_infidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 489\u001b[0m \u001b[0mjt_diffs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjt_diff\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 490\u001b[0m \u001b[0mdnorms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhalf_diamond_norm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 486\u001b[0m \u001b[0mformatters\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# ,'Conversion'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 487\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 488\u001b[0;31m \u001b[0minfidelities\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_infidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 489\u001b[0m \u001b[0mjt_diffs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjt_diff\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 490\u001b[0m \u001b[0mdnorms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhalf_diamond_norm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcacher\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 312\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0m_functools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcacher\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 314\u001b[0;31m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcached_compute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 315\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcacher\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcached_compute\u001b[0;34m(self, fn, argVals, kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypesigs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_key\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtypesig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0m_timed_block\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'call'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margVals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mhashtime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hash'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/reportables.py\u001b[0m in \u001b[0;36mcompute_quantity\u001b[0;34m(gatesetA, gatesetB, gateLabel, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 749\u001b[0m \u001b[0mB\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgatesetB\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgates\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mgateLabel\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 750\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# No Error bars\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 751\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mReportableQty\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfnOfGates\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 752\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 753\u001b[0m \u001b[0;31m# make sure the gateset we're given is the one used to generate the confidence region\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/reportables.py\u001b[0m in \u001b[0;36mprocess_infidelity\u001b[0;34m(A, B, mxBasis)\u001b[0m\n\u001b[1;32m 769\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mgates_quantity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# This function changes arguments to (gatesetA, gatesetB, gateLabel, confidenceRegionInfo)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 770\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mprocess_infidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 771\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0m_tools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_fidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 772\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 773\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mgates_quantity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# This function changes arguments to (gatesetA, gatesetB, gateLabel, confidenceRegionInfo)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/gatetools.py\u001b[0m in \u001b[0;36mprocess_fidelity\u001b[0;34m(A, B, mxBasis)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmxBasis\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[0mmxBasis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBasis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'gm'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mround\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 345\u001b[0;31m \u001b[0mJA\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_jam\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjamiolkowski_iso\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 346\u001b[0m \u001b[0mJB\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_jam\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjamiolkowski_iso\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mJA\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mJB\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/jamiolkowski.py\u001b[0m in \u001b[0;36mjamiolkowski_iso\u001b[0;34m(gateMx, gateMxBasis, choiMxBasis)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchoiMxBasis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_basis_pair\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchoiMxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0mgateMx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateMx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m \u001b[0mgateMxInStdBasis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchange_basis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstd_equivalent\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 88\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[0;31m#expand gate matrix so it acts on entire space of dmDim x dmDim density matrices\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/basis.py\u001b[0m in \u001b[0;36mchange_basis\u001b[0;34m(mx, from_basis, to_basis, dimOrBlockDims, resize)\u001b[0m\n\u001b[1;32m 430\u001b[0m \u001b[0misMx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m2\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mmx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mmx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 431\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misMx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 432\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtoMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfromMx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 433\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# isVec\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 434\u001b[0m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtoMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mValueError\u001b[0m: shapes (4,4) and (0,0) not aligned: 4 (dim 1) != 0 (dim 0)" ] } ], "source": [ "\n", "ws.GatesVsTargetTable(gs_final, gs_target, cri)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Model Violation Analysis\n", "Metrics indicating how well the estimated gate set can be trusted -- i.e., how well it fits the data.\n", "### ProgressTable:\n", "Comparison between the computed and expected maximum $\\log(\\mathcal{L})$ for different values of $L$. \n", "$N_S$ and $N_p$ are the number of gate strings and parameters, respectively. \n", "The quantity $2\\Delta\\log(\\mathcal{L})$ measures the goodness of fit of the GST model (small is better) and is expected to lie within $[k-\\sqrt{2k},k+\\sqrt{2k}]$ where $k = N_s-N_p$. \n", "$N_\\sigma = (2\\Delta\\log(\\mathcal{L})-k)/\\sqrt{2k}$ is the number of standard deviations from the mean (a $p$-value can be straightforwardly derived from $N_\\sigma$). \n", "The rating from 1 to 5 stars gives a very crude indication of goodness of fit.\n", "\n", " \n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'gs_finalAllL' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m ws.FitComparisonBarPlot(Ls, gs_finalAllL, switchBd.gsAllL, \n\u001b[0m\u001b[1;32m 3\u001b[0m eff_ds, switchBd.objective, 'L')\n", "\u001b[0;31mNameError\u001b[0m: name 'gs_finalAllL' is not defined" ] } ], "source": [ "\n", "ws.FitComparisonBarPlot(Ls, gs_finalAllL, switchBd.gsAllL, \n", " eff_ds, switchBd.objective, 'L')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### bestEstimateColorBoxPlot:\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m colorScatterPlot = ws.ColorBoxPlot(\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mswitchBd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobjective\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgs_final\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0meff_ds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgsL\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mlinlg_pcntle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlinlogPercentile\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m minProbClipForWeighting=switchBd.mpc, scatter=True) #TODO: L-switchboard on summary page?\n", "\u001b[0;31mNameError\u001b[0m: name 'switchBd' is not defined" ] } ], "source": [ "\n", "colorScatterPlot = ws.ColorBoxPlot(\n", " switchBd.objective, gs_final, eff_ds, gsL,\n", " linlg_pcntle=float(linlogPercentile) / 100,\n", " minProbClipForWeighting=switchBd.mpc, scatter=True) #TODO: L-switchboard on summary page?\n", "colorScatterPlot.set_render_options(click_to_display=True)\n", "#switchBd.view(maxLView,\"v6\")\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### $2\\Delta\\log(\\mathcal{L})$ contributions for every individual experiment in the dataset.\n", "Each pixel represents a single experiment (gate sequence), and its color indicates whether GST was able to fit the corresponding frequency well. Shades of white/gray are typical. Red squares represent statistically significant evidence for model violation (non-Markovianity), and should appear with probability at most *linlg_pcntle* if the data really are Markovian. Square blocks of pixels correspond to base sequences (arranged vertically by germ and horizontally by length); each pixel within a block corresponds to a specific choice of pre- and post-fiducial sequences. See text for further details.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### dataScalingColorBoxPlot\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m ws.ColorBoxPlot(\"scaling\", switchBd.gs_finalFinal, eff_ds, switchBd.gs_finalIter,\n\u001b[0m\u001b[1;32m 3\u001b[0m submatrices=switchBd.scaledSubMxsDict)\n", "\u001b[0;31mNameError\u001b[0m: name 'switchBd' is not defined" ] } ], "source": [ "\n", "ws.ColorBoxPlot(\"scaling\", switchBd.gs_finalFinal, eff_ds, switchBd.gs_finalIter,\n", " submatrices=switchBd.scaledSubMxsDict)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Data scaling factor for every individual experiment in the dataset.\n", "Each pixel represents a single experiment (gate sequence), and its color indicates the amount of scaling that was applied to the original data counts when computing the log-likelihood or $\\chi^2$ for this estimate. \n", "Values of 1.0 indicate all of the original data was used, whereas numbers between 0 and 1 indicate that the data counts for the experiement were artificially decreased (usually to improve the fit).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "# Gauge Invariant Outputs\n", "Quantities which are *gauge-invariant* are the most reliable means of assessing the quality of the gates, as these do not depend on any unphysical gauge degrees of freedom\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Eigenvalues of estimated gates: \n", "The spectrum (Eigenvalues column) of each estimated gate. The second column displays these eigenvalues over the complex disc.\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
Gate Eigenvalues Real log(eval) Imag log(eval)
Gi$ \\begin{pmatrix}\n", "0.899225e^{i0.002\\pi} \\\\ \n", "0.899225e^{-i0.002\\pi} \\\\ \n", "0.902577 \\\\ \n", "1\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "-0.106222 \\\\ \n", "-0.106222 \\\\ \n", "-0.102501 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0.002074 \\\\ \n", "-0.002074 \\\\ \n", "0 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "π
Gx$ \\begin{pmatrix}\n", "0.901995e^{i0.501\\pi} \\\\ \n", "0.901995e^{-i0.501\\pi} \\\\ \n", "1 \\\\ \n", "0.912432\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "-0.103146 \\\\ \n", "-0.103146 \\\\ \n", "0 \\\\ \n", "-0.091642\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0.500663 \\\\ \n", "-0.500663 \\\\ \n", "0 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "π
Gy$ \\begin{pmatrix}\n", "1 \\\\ \n", "0.898011 \\\\ \n", "0.897092e^{i0.500\\pi} \\\\ \n", "0.897092e^{-i0.500\\pi}\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0 \\\\ \n", "-0.107573 \\\\ \n", "-0.108596 \\\\ \n", "-0.108596\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0 \\\\ \n", "0 \\\\ \n", "0.50005 \\\\ \n", "-0.50005\n", " \\end{pmatrix} $\n", "π
\n", "
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ws.GateEigenvalueTable(gs_final, gs_target, cri, display=('evals','log-evals'))\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Gram Matrix Eigenvalues: \n", "Compares the eigenvalues of the data-derived Gram matrix with those of a Gram matrix computed using the target gates.\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ " \n", "ws.GramMatrixBarPlot(ds, gs_target, 10)#, strs)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Gauge Variant Outputs\n", "The raw estimated gate set, and then some useful derived quantities. These quanties are gauge-dependent, meaning they will depend on unphysical gauge degrees of freedom that are a necessary byproduct of estimating an entire gate set at once (akin to a freedom of reference frame). After finding a best-estimate based on the (physical) data, GST optimizes within the space of all (unphysical) gauge degrees of freedom using the parameters in Table\n", "\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "\n", "# Choose G.O. params\n", "# goSwitchBoard2\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Gauge Optimization Details. \n", "A list of the parameters used when performing the gauge optimization that produced the final GST results found in subsequent tables and figures.\n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGaugeOptParamsTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mswitchBd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgoparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'switchBd' is not defined" ] } ], "source": [ "\n", "ws.GaugeOptParamsTable(switchBd.goparams)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### The GST estimate of the SPAM operations. Compares the estimated SPAM operations to those desired for convenience.\n", "\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m ws.SpamTable(switchBd.gsTargetAndFinal,\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'Target'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Estimated'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m cri, includeHSVec=False)\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'switchBd' is not defined" ] } ], "source": [ "\n", "ws.SpamTable(switchBd.gsTargetAndFinal,\n", " ['Target','Estimated'],\n", " cri, includeHSVec=False)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### GST estimate of SPAM probabilities.\n", "Computed by taking the dot products of vectors in bestGatesetSpamTable. The symbol $E_C$, when it appears, refers to the complement effect given by subtracting each of the other effects from the identity.\n", "\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
E0 EC
ρ0-0.0000091.000009
\n", "
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ws.SpamParametersTable(gs_final, cri)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Decomposition of estimated gates.\n", "A rotation axis and angle are extracted from each gate by considering the projection of its logarithm onto a the Pauli Hamiltonian projectors. The direction and magnitude (up to a conventional constant) give the axis and angle respectively.\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ValueError", "evalue": "Automatic basis expanding/contracting temporarily disabled", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGateDecompTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgs_final\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgs_target\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcri\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mfactoryfn\u001b[0;34m(gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 781\u001b[0m \"\"\"\n\u001b[1;32m 782\u001b[0m super(GateDecompTable,self).__init__(ws, self._create, gateset,\n\u001b[0;32m--> 783\u001b[0;31m targetGateset, confidenceRegionInfo)\n\u001b[0m\u001b[1;32m 784\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 785\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, fn, *args)\u001b[0m\n\u001b[1;32m 1521\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1522\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtables\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchboards\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msbSwitchIndices\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchpos_map\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1523\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchedCompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtablefn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1524\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m \u001b[0;34m'click_to_display'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mFalse\u001b[0m \u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36mswitchedCompute\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"NA\"\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msmartCache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcached_compute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margVals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mstoredKeys\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'INEFFECTIVE'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcached_compute\u001b[0;34m(self, fn, argVals, kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypesigs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_key\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtypesig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0m_timed_block\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'call'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margVals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mhashtime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hash'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m_create\u001b[0;34m(self, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 804\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 805\u001b[0m hamProjs, hamGens = _tools.std_errgen_projections(\n\u001b[0;32m--> 806\u001b[0;31m logG, \"hamiltonian\", basisNm, basisNm, return_generators=True)\n\u001b[0m\u001b[1;32m 807\u001b[0m \u001b[0mnorm\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnorm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhamProjs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 808\u001b[0m \u001b[0maxes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mgl\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mhamProjs\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mnorm\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mnorm\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m1e-15\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mhamProjs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/gatetools.py\u001b[0m in \u001b[0;36mstd_errgen_projections\u001b[0;34m(errgen, projection_type, projection_basis, mxBasis, return_generators)\u001b[0m\n\u001b[1;32m 866\u001b[0m \"\"\"\n\u001b[1;32m 867\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 868\u001b[0;31m \u001b[0merrgen_std\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mchange_basis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrgen\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"std\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 869\u001b[0m \u001b[0md2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0merrgen\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 870\u001b[0m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0md2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/basis.py\u001b[0m in \u001b[0;36mchange_basis\u001b[0;34m(mx, from_basis, to_basis, dimOrBlockDims, resize)\u001b[0m\n\u001b[1;32m 407\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 408\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfrom_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgateDim\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mto_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdim\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgateDim\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 409\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Automatic basis expanding/contracting temporarily disabled'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 410\u001b[0m \u001b[0;31m#or \\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 411\u001b[0m \u001b[0;31m# resize is not None:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mValueError\u001b[0m: Automatic basis expanding/contracting temporarily disabled" ] } ], "source": [ "\n", "ws.GateDecompTable(gs_final, gs_target, cri)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Relative Eigenvalues of estimated gates.\n", "The spectrum of each estimated gate pre-multiplied by the inverse of it's ideal (target) counterpart. The second column displays these eigenvalues over the complex disc.\n", "\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
Gate Rel. Evals Real log(rel. eval) Imag log(rel. eval)
Gi$ \\begin{pmatrix}\n", "0.899225e^{i0.002\\pi} \\\\ \n", "0.899225e^{-i0.002\\pi} \\\\ \n", "0.902577 \\\\ \n", "1\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "-0.106222 \\\\ \n", "-0.106222 \\\\ \n", "-0.102501 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0.002074 \\\\ \n", "-0.002074 \\\\ \n", "0 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "π
Gx$ \\begin{pmatrix}\n", "1 \\\\ \n", "0.898077 \\\\ \n", "0.905064 \\\\ \n", "0.913306\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0 \\\\ \n", "-0.107499 \\\\ \n", "-0.09975 \\\\ \n", "-0.090685\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0 \\\\ \n", "0 \\\\ \n", "0 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "π
Gy$ \\begin{pmatrix}\n", "1 \\\\ \n", "0.903568 \\\\ \n", "0.891716 \\\\ \n", "0.896951\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0 \\\\ \n", "-0.101404 \\\\ \n", "-0.114608 \\\\ \n", "-0.108755\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0 \\\\ \n", "0 \\\\ \n", "0 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "π
\n", "
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ws.GateEigenvalueTable(gs_final, gs_target, cri, display=('rel','log-rel'))\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Comparison of GST estimated gates to target gates:\n", "This table presents, for each of the gates, three different measures of distance or discrepancy from the GST estimate to the ideal target operation. See text for more detail.\n", "\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ValueError", "evalue": "shapes (4,4) and (0,0) not aligned: 4 (dim 1) != 0 (dim 0)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGatesVsTargetTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgs_final\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgs_target\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcri\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mfactoryfn\u001b[0;34m(gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 477\u001b[0m \"\"\"\n\u001b[1;32m 478\u001b[0m super(GatesVsTargetTable,self).__init__(ws, self._create, gateset,\n\u001b[0;32m--> 479\u001b[0;31m targetGateset, confidenceRegionInfo)\n\u001b[0m\u001b[1;32m 480\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 481\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_create\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, fn, *args)\u001b[0m\n\u001b[1;32m 1521\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1522\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtables\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchboards\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msbSwitchIndices\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchpos_map\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1523\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchedCompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtablefn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1524\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m \u001b[0;34m'click_to_display'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mFalse\u001b[0m \u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36mswitchedCompute\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"NA\"\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msmartCache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcached_compute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margVals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mstoredKeys\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'INEFFECTIVE'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcached_compute\u001b[0;34m(self, fn, argVals, kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypesigs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_key\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtypesig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0m_timed_block\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'call'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margVals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mhashtime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hash'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m_create\u001b[0;34m(self, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 486\u001b[0m \u001b[0mformatters\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# ,'Conversion'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 487\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 488\u001b[0;31m \u001b[0minfidelities\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_infidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 489\u001b[0m \u001b[0mjt_diffs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjt_diff\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 490\u001b[0m \u001b[0mdnorms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhalf_diamond_norm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 486\u001b[0m \u001b[0mformatters\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'Conversion'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# ,'Conversion'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 487\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 488\u001b[0;31m \u001b[0minfidelities\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_infidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 489\u001b[0m \u001b[0mjt_diffs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjt_diff\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 490\u001b[0m \u001b[0mdnorms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_reportables\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhalf_diamond_norm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgl\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgateLabels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcacher\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 312\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0m_functools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcacher\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 314\u001b[0;31m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcached_compute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 315\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcacher\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcached_compute\u001b[0;34m(self, fn, argVals, kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypesigs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_key\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtypesig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0m_timed_block\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'call'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margVals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mhashtime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hash'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/reportables.py\u001b[0m in \u001b[0;36mcompute_quantity\u001b[0;34m(gatesetA, gatesetB, gateLabel, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 749\u001b[0m \u001b[0mB\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgatesetB\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgates\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mgateLabel\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 750\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# No Error bars\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 751\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mReportableQty\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfnOfGates\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 752\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 753\u001b[0m \u001b[0;31m# make sure the gateset we're given is the one used to generate the confidence region\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/reportables.py\u001b[0m in \u001b[0;36mprocess_infidelity\u001b[0;34m(A, B, mxBasis)\u001b[0m\n\u001b[1;32m 769\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mgates_quantity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# This function changes arguments to (gatesetA, gatesetB, gateLabel, confidenceRegionInfo)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 770\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mprocess_infidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 771\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0m_tools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_fidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 772\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 773\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mgates_quantity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# This function changes arguments to (gatesetA, gatesetB, gateLabel, confidenceRegionInfo)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/gatetools.py\u001b[0m in \u001b[0;36mprocess_fidelity\u001b[0;34m(A, B, mxBasis)\u001b[0m\n\u001b[1;32m 343\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmxBasis\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 344\u001b[0m \u001b[0mmxBasis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBasis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'gm'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mround\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 345\u001b[0;31m \u001b[0mJA\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_jam\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjamiolkowski_iso\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 346\u001b[0m \u001b[0mJB\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_jam\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjamiolkowski_iso\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 347\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mJA\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mJB\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/jamiolkowski.py\u001b[0m in \u001b[0;36mjamiolkowski_iso\u001b[0;34m(gateMx, gateMxBasis, choiMxBasis)\u001b[0m\n\u001b[1;32m 85\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchoiMxBasis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbuild_basis_pair\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchoiMxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0mgateMx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateMx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 87\u001b[0;31m \u001b[0mgateMxInStdBasis\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_basis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchange_basis\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgateMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateMxBasis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstd_equivalent\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 88\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 89\u001b[0m \u001b[0;31m#expand gate matrix so it acts on entire space of dmDim x dmDim density matrices\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/basis.py\u001b[0m in \u001b[0;36mchange_basis\u001b[0;34m(mx, from_basis, to_basis, dimOrBlockDims, resize)\u001b[0m\n\u001b[1;32m 430\u001b[0m \u001b[0misMx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m2\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mmx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mmx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 431\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misMx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 432\u001b[0;31m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtoMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfromMx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 433\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# isVec\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 434\u001b[0m \u001b[0mret\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtoMx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mValueError\u001b[0m: shapes (4,4) and (0,0) not aligned: 4 (dim 1) != 0 (dim 0)" ] } ], "source": [ "\n", "ws.GatesVsTargetTable(gs_final, gs_target, cri)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Comparison of GST estimated SPAM to target SPAM.\n", "This table presents, for each state preparation and POVM effect, two different measures of distance or discrepancy from the GST estimate to the ideal target operation. See text for more detail.\n", "\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Matrix is singular and may not have a square root.\n" ] }, { "ename": "AssertionError", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSpamVsTargetTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgs_final\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgs_target\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcri\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mfactoryfn\u001b[0;34m(gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 522\u001b[0m \"\"\"\n\u001b[1;32m 523\u001b[0m super(SpamVsTargetTable,self).__init__(ws, self._create, gateset,\n\u001b[0;32m--> 524\u001b[0;31m targetGateset, confidenceRegionInfo)\n\u001b[0m\u001b[1;32m 525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 526\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_create\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtargetGateset\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, ws, fn, *args)\u001b[0m\n\u001b[1;32m 1521\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1522\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtables\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchboards\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msbSwitchIndices\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchpos_map\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;31m \u001b[0m\u001b[0;31m\\\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1523\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mswitchedCompute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtablefn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minitargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1524\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m \u001b[0;34m'click_to_display'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mFalse\u001b[0m \u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspace.py\u001b[0m in \u001b[0;36mswitchedCompute\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"NA\"\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m;\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 611\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 612\u001b[0;31m \u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msmartCache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcached_compute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margVals\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 613\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 614\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mstoredKeys\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mkey\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'INEFFECTIVE'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcached_compute\u001b[0;34m(self, fn, argVals, kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypesigs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_key\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtypesig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0m_timed_block\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'call'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margVals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mhashtime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hash'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m_create\u001b[0;34m(self, gateset, targetGateset, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 537\u001b[0m prepInfidelities = [_reportables.vec_infidelity(gateset, targetGateset, l, \n\u001b[1;32m 538\u001b[0m 'prep', confidenceRegionInfo)\n\u001b[0;32m--> 539\u001b[0;31m for l in prepLabels]\n\u001b[0m\u001b[1;32m 540\u001b[0m prepTraceDists = [_reportables.vec_tr_diff(gateset, targetGateset, l, \n\u001b[1;32m 541\u001b[0m 'prep', confidenceRegionInfo)\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/workspacetables.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 537\u001b[0m prepInfidelities = [_reportables.vec_infidelity(gateset, targetGateset, l, \n\u001b[1;32m 538\u001b[0m 'prep', confidenceRegionInfo)\n\u001b[0;32m--> 539\u001b[0;31m for l in prepLabels]\n\u001b[0m\u001b[1;32m 540\u001b[0m prepTraceDists = [_reportables.vec_tr_diff(gateset, targetGateset, l, \n\u001b[1;32m 541\u001b[0m 'prep', confidenceRegionInfo)\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcacher\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 312\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0m_functools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcacher\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 314\u001b[0;31m \u001b[0mk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcache\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcached_compute\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 315\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcacher\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/smartcache.py\u001b[0m in \u001b[0;36mcached_compute\u001b[0;34m(self, fn, argVals, kwargs)\u001b[0m\n\u001b[1;32m 177\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtypesigs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname_key\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtypesig\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0m_timed_block\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'call'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 179\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcache\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margVals\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 180\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmisses\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 181\u001b[0m \u001b[0mhashtime\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtimes\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'hash'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/reportables.py\u001b[0m in \u001b[0;36mcompute_quantity\u001b[0;34m(gatesetA, gatesetB, label, typ, confidenceRegionInfo)\u001b[0m\n\u001b[1;32m 855\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 856\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mconfidenceRegionInfo\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# No Error bars\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 857\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mReportableQty\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfnOfVectors\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 858\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 859\u001b[0m \u001b[0;31m# make sure the gateset we're given is the one used to generate the confidence region\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/report/reportables.py\u001b[0m in \u001b[0;36mvec_infidelity\u001b[0;34m(A, B, mxBasis)\u001b[0m\n\u001b[1;32m 885\u001b[0m \u001b[0mrhoMx1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_tools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvec_to_stdmx\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 886\u001b[0m \u001b[0mrhoMx2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_tools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvec_to_stdmx\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmxBasis\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 887\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0;36m1\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0m_tools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfidelity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrhoMx1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrhoMx2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 888\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 889\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mvectors_quantity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# This function changes arguments to (gatsetA, gatesetB, label, typ, confidenceRegionInfo)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m/home/lsaldyt-local/projects/snl/pyGSTi/packages/pygsti/tools/gatetools.py\u001b[0m in \u001b[0;36mfidelity\u001b[0;34m(A, B)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[0msqrtA\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_hack_sqrtm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mA\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#_spl.sqrtm(A)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 64\u001b[0;31m \u001b[0;32massert\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlinalg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnorm\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msqrtA\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msqrtA\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0mA\u001b[0m \u001b[0;34m)\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m1e-8\u001b[0m \u001b[0;34m)\u001b[0m \u001b[0;31m#test the scipy sqrtm function\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 65\u001b[0m \u001b[0mF\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0m_mt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtrace\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0m_hack_sqrtm\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0msqrtA\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_np\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mB\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msqrtA\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m)\u001b[0m \u001b[0;34m)\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreal\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0;36m2\u001b[0m \u001b[0;31m# Tr( sqrt{ sqrt(A) * B * sqrt(A) } )^2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mF\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mAssertionError\u001b[0m: " ] } ], "source": [ "\n", "ws.SpamVsTargetTable(gs_final, gs_target, cri)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### The GST estimate of the logic gate operations.\n", "Compares the *ideal* (generally unitary) logic gates (second column, also in targetGatesetTable) with those *estimated* by GST (third column). Each gate is represented as a $d^2\\times d^2$ *superoperator* that acts by matrix multiplication on vectors in $\\mathcal{B}(\\mathcal{H})$. Matrices are displayed using a heat map that ranges between 1.0 (red) and -1.0 (blue). Note that it is impossible to discern even order-1%% deviations from the ideal using this color scale, and one should rely on other analysis for more a precise comparison.\n", "\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m ws.GatesTable(switchBd.gsTargetAndFinal,\n\u001b[0m\u001b[1;32m 3\u001b[0m ['Target','Estimated'], \"boxes\", cri)\n", "\u001b[0;31mNameError\u001b[0m: name 'switchBd' is not defined" ] } ], "source": [ "\n", "ws.GatesTable(switchBd.gsTargetAndFinal,\n", " ['Target','Estimated'], \"boxes\", cri)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Dataset comparisons\n", "This report contains information for more than one data set. This page shows comparisons between different data sets.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Histogram of p-values comparing two data sets. \n", "Each gate sequence is assigned a p-value based on how consistent that sequence's counts are between the two selected data sets. The line shows what would be expected for perfectly consistent data.\n", "\n" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'dscmp_switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDatasetComparisonPlot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdscmp_switchBd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdscmp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'dscmp_switchBd' is not defined" ] } ], "source": [ "\n", "ws.DatasetComparisonPlot(dscmp_switchBd.dscmp)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Per-sequence $2\\Delta\\log(\\mathcal{L})$ values comparing two data sets.\n", "In a similar fashion to other color box plots, this plot shows two times the log-likelihood-ratio for each gate sequence corresponding to how consistent that sequences' counts are between the two selected data sets. The likelihood ratio is between a models that supposes there is either one or two separate probability distributions from which the data counts are drawn.\n", "\n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'dscmp_switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m ws.ColorBoxPlot('dscmp', dscmp_switchBd.dscmp_gs_final,\n\u001b[0m\u001b[1;32m 3\u001b[0m None, None, dscomparator=dscmp_switchBd.dscmp)\n", "\u001b[0;31mNameError\u001b[0m: name 'dscmp_switchBd' is not defined" ] } ], "source": [ "\n", "ws.ColorBoxPlot('dscmp', dscmp_switchBd.dscmp_gs_final,\n", " None, None, dscomparator=dscmp_switchBd.dscmp)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Input Summary\n", "Information pertaining to the target gate set and data set.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Target gate set: SPAM (state preparation and measurement).\n", "The *ideal* input state ($\\rho_0$) and `plus' POVM effect $E_0$ for the device on which we report. SPAM gates are given here as $d\\times d$ matrices.\n", "\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
Operator Matrix Eigenvals
ρ0$ \\begin{pmatrix}\n", "1 & 0 \\\\ \n", "0 & 0\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "1 \\\\ \n", "0\n", " \\end{pmatrix} $\n", "
E0$ \\begin{pmatrix}\n", "0 & 0 \\\\ \n", "0 & 1\n", " \\end{pmatrix} $\n", "$ \\begin{pmatrix}\n", "0 \\\\ \n", "1\n", " \\end{pmatrix} $\n", "
\n", "
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ws.SpamTable(gs_target, None, includeHSVec=False)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Fiducial sequences.\n", "A list of the preparation and measurement fiducial gate sequences. See discussion in text.\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'strs' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGatestringTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstrs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"Prep.\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\"Measure\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcommonTitle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"Fiducials\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'strs' is not defined" ] } ], "source": [ " \n", "ws.GatestringTable(strs,[\"Prep.\",\"Measure\"], commonTitle=\"Fiducials\")\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Germ sequences.\n", "A list of the germ gate sequences. See discussion in text.\n", "\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'germs' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mGatestringTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgerms\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"Germ\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnCols\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'germs' is not defined" ] } ], "source": [ "\n", "ws.GatestringTable(germs, \"Germ\", nCols=2)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### General dataset properties.\n", "See discussion in text.\n", "\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
Quantity Value
Number of strings817
Gate labelsGx, Gy, Gi
SPAM labelsminus, plus
Counts per string1000
\n", "
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ws.DataSetOverviewTable(ds)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Target gate set: logic gates.\n", "The *ideal* (generally unitary) logic gates. Each has a name starting with G, and is represented as a $d^2\\times d^2$ *superoperator* that acts by matrix multiplication on vectors in $\\mathcal{B}(\\mathcal{H})$. Matrices are displayed using a heat map that ranges between 1.0 (red) and -1.0 (blue).\n", "\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
Gate Superoperator (Gell-Mann basis)
Gi
\n", "
\n", "
\n", "
Gx
\n", "
\n", "
\n", "
Gy
\n", "
\n", "
\n", "
\n", "
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ws.GatesTable(gs_target, display_as=\"boxes\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# System and pyGSTi parameters\n", "This section contains a raw dump of system information and various pyGSTi parameters. It's purpose is to stamp this report with parameters indicating how exactly GST was run to create it, as well as to record the software environment in within which the report creation was run. Note that if the core GST computation was done on a machine different from the one that created this report, the software information contained here will be of less value.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "### Listing of GST parameters and meta-data.\n", "These parameters and related metadata describe how the GST computation was performed which led to this report.\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "ename": "NameError", "evalue": "name 'switchBd' is not defined", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mws\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMetadataTable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgs_final\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mswitchBd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mNameError\u001b[0m: name 'switchBd' is not defined" ] } ], "source": [ "\n", "ws.MetadataTable(gs_final, switchBd.params)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "### Listing of the software environment.\n", "Note that this describes the software environment of the machine used to generate this report, and not necessarily the machine used to perform the core GST gate set estimation.\n", "\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "
\n", "
Quantity Value
pyGSTi version0.9.3
numpy1.11.2
scipy0.18.1
matplotlib1.5.3
pyparsing2.1.10
cvxopt1.1.8
cvxpy0.4.6
nose1.3.7
PIL3.4.2
psutil4.3.1
Python version3.5.2
Python typeCPython
Python compilerGCC 4.8.5 20150623 (Red Hat 4.8.5-4)
Python build('default', 'Oct 20 2016 13:11:26')
Python branch
Python revision
Platform summaryLinux-3.10.0-327.36.1.el7.x86_64-x86_64-with-redhat-7.2-Maipo
SystemLinux
Sys Release3.10.0-327.36.1.el7.x86_64
Sys Version#1 SMP Wed Aug 17 03:02:37 EDT 2016
Machinex86_64
Processorx86_64
\n", "
\n", "\n", "
\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ws.SoftwareEnvTable()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }