From 1c33e287e77e41d179097e243b6626b068487ebe Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:32:25 +0530 Subject: [PATCH 01/27] Delete iQuHack-challenge-2023-task9.ipynb --- iQuHack-challenge-2023-task9.ipynb | 440 ----------------------------- 1 file changed, 440 deletions(-) delete mode 100644 iQuHack-challenge-2023-task9.ipynb diff --git a/iQuHack-challenge-2023-task9.ipynb b/iQuHack-challenge-2023-task9.ipynb deleted file mode 100644 index eea076e..0000000 --- a/iQuHack-challenge-2023-task9.ipynb +++ /dev/null @@ -1,440 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 9\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task9`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task9\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task9_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task9_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 9 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 9. \n", - "// (input will contain 8 qubits)\n", - "operation Task9(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [31,46,61,76,91,106,121,136,151,166,181,196,211,226,241] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task9_DumpMachineWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task9(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task9_ResourceEstimationWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task9(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task9_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task9_ResourceEstimationWrapper, jobName=\"RE for the task 9\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From fb824c54c150c8dfa1035a1cd38167180c4a5af4 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:32:38 +0530 Subject: [PATCH 02/27] Delete iQuHack-challenge-2023-task8.ipynb --- iQuHack-challenge-2023-task8.ipynb | 443 ----------------------------- 1 file changed, 443 deletions(-) delete mode 100644 iQuHack-challenge-2023-task8.ipynb diff --git a/iQuHack-challenge-2023-task8.ipynb b/iQuHack-challenge-2023-task8.ipynb deleted file mode 100644 index a84b05a..0000000 --- a/iQuHack-challenge-2023-task8.ipynb +++ /dev/null @@ -1,443 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 8\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task8`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task8\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task8_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task8_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 8 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 8. \n", - "// (input will contain 7 qubits)\n", - "operation Task8(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [15,23,27,29,30,31,39,43, 45,46,47,51,53,54,55,57, \n", - " 58,59,60,61,62,63,71,75, 77,78,79,83,85,86,87,89,\n", - " 90,91,92,93,94,95,99,101, 102,103,105,106,107,108,109,110,\n", - " 111,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task8_DumpMachineWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task8(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task8_ResourceEstimationWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task8(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task8_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task8_ResourceEstimationWrapper, jobName=\"RE for the task 8\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From d67594775d1641aa96366eaf583da37a4c36c70d Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:32:49 +0530 Subject: [PATCH 03/27] Delete iQuHack-challenge-2023-task1.ipynb --- iQuHack-challenge-2023-task1.ipynb | 447 ----------------------------- 1 file changed, 447 deletions(-) delete mode 100644 iQuHack-challenge-2023-task1.ipynb diff --git a/iQuHack-challenge-2023-task1.ipynb b/iQuHack-challenge-2023-task1.ipynb deleted file mode 100644 index 6042c2b..0000000 --- a/iQuHack-challenge-2023-task1.ipynb +++ /dev/null @@ -1,447 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 1\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task1`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task1\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task1_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task1_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 1 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 1. Warm up with simple bit manipulation\n", - "// (input will contain 3 qubits)\n", - "operation Task1(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " let N = Length(input);\n", - " use aux = Qubit[N - 1];\n", - " within {\n", - " for i in 0 .. N - 2 {\n", - " CNOT(input[i], aux[i]);\n", - " CNOT(input[i + 1], aux[i]);\n", - " }\n", - " } apply {\n", - " Controlled X(aux, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task1_DumpMachineWrapper() : Unit {\n", - " let N = 3;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task1(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task1_ResourceEstimationWrapper() : Unit {\n", - " let N = 3;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task1(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task1_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task1_ResourceEstimationWrapper, jobName=\"RE for the task 1\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 79b64f5439b7a6c3500c03a45e80e372df2f41a4 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:32:57 +0530 Subject: [PATCH 04/27] Delete iQuHack-challenge-2023-task2.ipynb --- iQuHack-challenge-2023-task2.ipynb | 448 ----------------------------- 1 file changed, 448 deletions(-) delete mode 100644 iQuHack-challenge-2023-task2.ipynb diff --git a/iQuHack-challenge-2023-task2.ipynb b/iQuHack-challenge-2023-task2.ipynb deleted file mode 100644 index 44cc5cd..0000000 --- a/iQuHack-challenge-2023-task2.ipynb +++ /dev/null @@ -1,448 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 2\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task2`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task2\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task2_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task2_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 2 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 2. Celebrate MIT iQuHack!\n", - "// (input will contain 5 qubits)\n", - "operation Task2(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " ControlledOnInt(13, X)(input, target); // M\n", - " ControlledOnInt( 9, X)(input, target); // I\n", - " ControlledOnInt(20, X)(input, target); // T\n", - "\n", - " ControlledOnInt( 9, X)(input, target); // I\n", - " ControlledOnInt(17, X)(input, target); // Q\n", - " ControlledOnInt(21, X)(input, target); // U\n", - " ControlledOnInt( 8, X)(input, target); // H\n", - " ControlledOnInt( 1, X)(input, target); // A\n", - " ControlledOnInt( 3, X)(input, target); // C\n", - " ControlledOnInt(11, X)(input, target); // K\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task2_DumpMachineWrapper() : Unit {\n", - " let N = 5;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task2(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task2_ResourceEstimationWrapper() : Unit {\n", - " let N = 5;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task2(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task2_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task2_ResourceEstimationWrapper, jobName=\"RE for the task 2\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 2a7b1956d12f4e41dd51eba5feab49dd609c7029 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:33:04 +0530 Subject: [PATCH 05/27] Delete iQuHack-challenge-2023-task3.ipynb --- iQuHack-challenge-2023-task3.ipynb | 440 ----------------------------- 1 file changed, 440 deletions(-) delete mode 100644 iQuHack-challenge-2023-task3.ipynb diff --git a/iQuHack-challenge-2023-task3.ipynb b/iQuHack-challenge-2023-task3.ipynb deleted file mode 100644 index 77ca776..0000000 --- a/iQuHack-challenge-2023-task3.ipynb +++ /dev/null @@ -1,440 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 3\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task3`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task3\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task3_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task3_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 3 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 3. \n", - "// (input will contain 6 qubits)\n", - "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [7, 11, 13, 14, 19, 21, 22, 25, 26, 28, 35, 37, 38, 41, 42, 44, 49, 50, 52, 56] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task3_DumpMachineWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task3(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task3_ResourceEstimationWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task3(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task3_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task3_ResourceEstimationWrapper, jobName=\"RE for the task 3\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 6680c9b19581b0a75d155fcd577147e94a08287c Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:33:12 +0530 Subject: [PATCH 06/27] Delete iQuHack-challenge-2023-task4.ipynb --- iQuHack-challenge-2023-task4.ipynb | 441 ----------------------------- 1 file changed, 441 deletions(-) delete mode 100644 iQuHack-challenge-2023-task4.ipynb diff --git a/iQuHack-challenge-2023-task4.ipynb b/iQuHack-challenge-2023-task4.ipynb deleted file mode 100644 index 2dd1a7b..0000000 --- a/iQuHack-challenge-2023-task4.ipynb +++ /dev/null @@ -1,441 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 4\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task4`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task4\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task4_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task4_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 4 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 4. \n", - "// (input will contain 7 qubits)\n", - "operation Task4(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " let N = Length(input);\n", - " for i in 0 .. 3 .. 2^N - 1 {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task4_DumpMachineWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task4(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task4_ResourceEstimationWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task4(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task4_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task4_ResourceEstimationWrapper, jobName=\"RE for the task 4\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 08aa7a37c4dcd58c30439a39eb4893afc4237672 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:33:20 +0530 Subject: [PATCH 07/27] Delete iQuHack-challenge-2023-task5.ipynb --- iQuHack-challenge-2023-task5.ipynb | 440 ----------------------------- 1 file changed, 440 deletions(-) delete mode 100644 iQuHack-challenge-2023-task5.ipynb diff --git a/iQuHack-challenge-2023-task5.ipynb b/iQuHack-challenge-2023-task5.ipynb deleted file mode 100644 index 85e5038..0000000 --- a/iQuHack-challenge-2023-task5.ipynb +++ /dev/null @@ -1,440 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 5\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task5`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task5\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task5_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task5_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 5 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 5. \n", - "// (input will contain 6 qubits)\n", - "operation Task5(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [0, 9, 18, 21, 27, 36, 42, 45, 54, 63] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task5_DumpMachineWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task5(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task5_ResourceEstimationWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task5(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task5_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task5_ResourceEstimationWrapper, jobName=\"RE for the task 5\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 4527ebcac5c5b516597c354f2c3ab8f4ead9bdb9 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:33:30 +0530 Subject: [PATCH 08/27] Delete iQuHack-challenge-2023-task6.ipynb --- iQuHack-challenge-2023-task6.ipynb | 440 ----------------------------- 1 file changed, 440 deletions(-) delete mode 100644 iQuHack-challenge-2023-task6.ipynb diff --git a/iQuHack-challenge-2023-task6.ipynb b/iQuHack-challenge-2023-task6.ipynb deleted file mode 100644 index 4d2f2c8..0000000 --- a/iQuHack-challenge-2023-task6.ipynb +++ /dev/null @@ -1,440 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 6\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task6`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task6\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task6_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task6_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 6 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 6. \n", - "// (input will contain 8 qubits)\n", - "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [144, 145, 148, 149, 152, 153, 156, 157, 208, 209, 212, 213, 216, 217, 220, 221] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task6_DumpMachineWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task6(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task6_ResourceEstimationWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task6(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task6_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task6_ResourceEstimationWrapper, jobName=\"RE for the task 6\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From c46b3f10107e4dfcd9fbe51abbc0e85aab65e560 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:33:38 +0530 Subject: [PATCH 09/27] Delete iQuHack-challenge-2023-task7.ipynb --- iQuHack-challenge-2023-task7.ipynb | 440 ----------------------------- 1 file changed, 440 deletions(-) delete mode 100644 iQuHack-challenge-2023-task7.ipynb diff --git a/iQuHack-challenge-2023-task7.ipynb b/iQuHack-challenge-2023-task7.ipynb deleted file mode 100644 index 2670c29..0000000 --- a/iQuHack-challenge-2023-task7.ipynb +++ /dev/null @@ -1,440 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 7\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task7`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", - "task=[\"task7\"]\n", - "slack_id=\"myslackid\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task7_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task7_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 7 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 7. \n", - "// (input will contain 7 qubits)\n", - "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [9,18,19,25,36,37,38,39,41,50,51,57,72,73,74,75,76,77,78,79,82,83,89,100,101,102,103,105,114,115,121] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task7_DumpMachineWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task7(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task7_ResourceEstimationWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task7(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task7_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"...\",\n", - " location=\"...\",\n", - " credential=\"CLI\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task7_ResourceEstimationWrapper, jobName=\"RE for the task 7\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 [Default]", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.10" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 423fb77e321c7bc022dc157fc440d2d7df0980d7 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:34:29 +0530 Subject: [PATCH 10/27] Add files via upload --- iQuHack-challenge-2023-task1.ipynb | 534 ++ iQuHack-challenge-2023-task2.ipynb | 545 ++ iQuHack-challenge-2023-task3.ipynb | 4995 +++++++++++++++++ iQuHack-challenge-2023-task4.ipynb | 4995 +++++++++++++++++ iQuHack-challenge-2023-task5.ipynb | 3271 +++++++++++ iQuHack-challenge-2023-task6.ipynb | 523 ++ iQuHack-challenge-2023-task7.ipynb | 523 ++ iQuHack-challenge-2023-task8.ipynb | 526 ++ iQuHack-challenge-2023-task9.ipynb | 8324 ++++++++++++++++++++++++++++ 9 files changed, 24236 insertions(+) create mode 100644 iQuHack-challenge-2023-task1.ipynb create mode 100644 iQuHack-challenge-2023-task2.ipynb create mode 100644 iQuHack-challenge-2023-task3.ipynb create mode 100644 iQuHack-challenge-2023-task4.ipynb create mode 100644 iQuHack-challenge-2023-task5.ipynb create mode 100644 iQuHack-challenge-2023-task6.ipynb create mode 100644 iQuHack-challenge-2023-task7.ipynb create mode 100644 iQuHack-challenge-2023-task8.ipynb create mode 100644 iQuHack-challenge-2023-task9.ipynb diff --git a/iQuHack-challenge-2023-task1.ipynb b/iQuHack-challenge-2023-task1.ipynb new file mode 100644 index 0000000..ab8347a --- /dev/null +++ b/iQuHack-challenge-2023-task1.ipynb @@ -0,0 +1,534 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 1\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task1`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "\u001b[93mA web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\u001b[0m\n[\n {\n \"cloudName\": \"AzureCloud\",\n \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n \"isDefault\": true,\n \"managedByTenants\": [\n {\n \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n },\n {\n \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n },\n {\n \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n }\n ],\n \"name\": \"Azure for Students\",\n \"state\": \"Enabled\",\n \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"user\": {\n \"name\": \"190050110@kluniversity.in\",\n \"type\": \"user\"\n }\n }\n]\n" + } + ], + "execution_count": 22, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure\n", + "print(\"imported qsharp and azure\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n.imported qsharp and azure\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task1\"]\n", + "slack_id=\"U04JME14R2B\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task1_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task1_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 1 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 1. Warm up with simple bit manipulation\n", + "// (input will contain 3 qubits)\n", + "operation Task1(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " let N = Length(input);\n", + " use aux = Qubit[N - 1];\n", + " within {\n", + " for i in 0 .. N - 2 {\n", + " CNOT(input[i], aux[i]);\n", + " CNOT(input[i + 1], aux[i]);\n", + " }\n", + " } apply {\n", + " Controlled X(aux, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task1_DumpMachineWrapper() : Unit {\n", + " let N = 3;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task1(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task1_ResourceEstimationWrapper() : Unit {\n", + " let N = 3;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task1(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task1_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|0000⟩\t0.35355339059327384 + 0𝑖\n|0001⟩\t0 + 0𝑖\n|0010⟩\t0.35355339059327384 + 0𝑖\n|0011⟩\t0 + 0𝑖\n|0100⟩\t0 + 0𝑖\n|0101⟩\t0.35355339059327384 + 0𝑖\n|0110⟩\t0.35355339059327384 + 0𝑖\n|0111⟩\t0 + 0𝑖\n|1000⟩\t0.35355339059327384 + 0𝑖\n|1001⟩\t0 + 0𝑖\n|1010⟩\t0 + 0𝑖\n|1011⟩\t0.35355339059327384 + 0𝑖\n|1100⟩\t0.35355339059327384 + 0𝑖\n|1101⟩\t0 + 0𝑖\n|1110⟩\t0.35355339059327384 + 0𝑖\n|1111⟩\t0 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1000\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3],\"n_qubits\":4,\"amplitudes\":{\"0\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"1\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"2\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"3\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"4\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"5\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"6\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"7\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"8\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"13\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 8, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 8, + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + }, + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181452},\n {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 305540},\n {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 129},\n {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 129},\n {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 10, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task1_ResourceEstimationWrapper, jobName=\"RE for the task 1\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task1_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 1\n Job ID: 29e64fba-c09c-4841-8a5d-f40b1310137d\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[13:40:15] Current job status: Executing\n[13:40:20] Current job status: Succeeded\n" + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 12, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 0,\n 'cczCount': 1,\n 'measurementCount': 0,\n 'numQubits': 6,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 9,\n 'logicalCycleTime': 3600.0,\n 'logicalErrorRate': 3.0000000000000015e-07,\n 'physicalQubits': 162},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 3,\n 'algorithmicLogicalQubits': 20,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 13,\n 'numTfactories': 4,\n 'numTfactoryRuns': 1,\n 'numTsPerRotation': None,\n 'numTstates': 4,\n 'physicalQubitsForAlgorithm': 3240,\n 'physicalQubitsForTfactories': 15680,\n 'requiredLogicalQubitErrorRate': 1.923076923076923e-06,\n 'requiredLogicalTstateErrorRate': 0.000125},\n 'physicalQubits': 18920,\n 'runtime': 46800},\n 'physicalCountsFormatted': {'codeDistancePerRound': '7',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '3us 600ns',\n 'logicalErrorRate': '3.00e-7',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '82.88 %',\n 'physicalQubitsPerRound': '3920',\n 'requiredLogicalQubitErrorRate': '1.92e-6',\n 'requiredLogicalTstateErrorRate': '1.25e-4',\n 'runtime': '46us 800ns',\n 'tfactoryRuntime': '36us 400ns',\n 'tfactoryRuntimePerRound': '36us 400ns',\n 'tstateLogicalErrorRate': '2.13e-5',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 6$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 20$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 4 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{4\\\\;\\\\text{T states} \\\\cdot 36us 400ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 46us 800ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\\\cdot 4$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000001923076923076923)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{9 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 3us 600ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 162.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [7],\n 'logicalErrorRate': 2.133500000000001e-05,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 3920,\n 'physicalQubitsPerRound': [3920],\n 'runtime': 36400.0,\n 'runtimePerRound': [36400.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits18920\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime46us 800ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits20\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 6\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 20$ logical qubits.

\n\r\n
Algorithmic depth3\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth13\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states4\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories4\r\n

Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 4 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{4\\;\\text{T states} \\cdot 36us 400ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 46us 800ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations1\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.

\n\r\n
Physical algorithmic qubits3240\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits15680\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\cdot 4$ qubits.

\n\r\n
Required logical qubit error rate1.92e-6\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.

\n\r\n
Required logical T state error rate1.25e-4\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance9\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000001923076923076923)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits162\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time3us 600ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-7\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{9 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 3us 600ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 162.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits3920\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime36us 400ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances7\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round3920\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round36us 400ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.13e-5\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)6\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates1\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates0\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations0\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":0,\"cczCount\":1,\"measurementCount\":0,\"numQubits\":6,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":3,\"algorithmicLogicalQubits\":20,\"cliffordErrorRate\":0.001,\"logicalDepth\":13,\"numTfactories\":4,\"numTfactoryRuns\":1,\"numTsPerRotation\":null,\"numTstates\":4,\"physicalQubitsForAlgorithm\":3240,\"physicalQubitsForTfactories\":15680,\"requiredLogicalQubitErrorRate\":1.923076923076923E-06,\"requiredLogicalTstateErrorRate\":0.000125},\"physicalQubits\":18920,\"runtime\":46800},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"7\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"3us 600ns\",\"logicalErrorRate\":\"3.00e-7\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"82.88 %\",\"physicalQubitsPerRound\":\"3920\",\"requiredLogicalQubitErrorRate\":\"1.92e-6\",\"requiredLogicalTstateErrorRate\":\"1.25e-4\",\"runtime\":\"46us 800ns\",\"tfactoryRuntime\":\"36us 400ns\",\"tfactoryRuntimePerRound\":\"36us 400ns\",\"tstateLogicalErrorRate\":\"2.13e-5\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 6$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 20$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 4 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{4\\\\;\\\\text{T states} \\\\cdot 36us 400ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 46us 800ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\\\cdot 4$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000001923076923076923)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{9 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 3us 600ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 162.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[7],\"logicalErrorRate\":2.133500000000001E-05,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":3920,\"physicalQubitsPerRound\":[3920],\"runtime\":36400.0,\"runtimePerRound\":[36400.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 12, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 13, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 20\nAlgorithmic depth = 3\nScore = 60\n" + }, + { + "output_type": "execute_result", + "execution_count": 14, + "data": { + "text/plain": "60" + }, + "metadata": {} + } + ], + "execution_count": 14, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/iQuHack-challenge-2023-task2.ipynb b/iQuHack-challenge-2023-task2.ipynb new file mode 100644 index 0000000..a81f723 --- /dev/null +++ b/iQuHack-challenge-2023-task2.ipynb @@ -0,0 +1,545 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 2\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task2`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "\u001b[93mA web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\u001b[0m\n[\n {\n \"cloudName\": \"AzureCloud\",\n \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n \"isDefault\": true,\n \"managedByTenants\": [\n {\n \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n },\n {\n \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n },\n {\n \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n }\n ],\n \"name\": \"Azure for Students\",\n \"state\": \"Enabled\",\n \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"user\": {\n \"name\": \"190050110@kluniversity.in\",\n \"type\": \"user\"\n }\n }\n]\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task2\"]\n", + "slack_id=\"U04JME14R2B\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task2_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task2_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 2 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 2. Celebrate MIT iQuHack!\n", + "// (input will contain 5 qubits)\n", + "operation Task2(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " ControlledOnInt(13, X)(input, target); // M\n", + " ControlledOnInt( 9, X)(input, target); // I\n", + " ControlledOnInt(20, X)(input, target); // T\n", + "\n", + " ControlledOnInt( 9, X)(input, target); // I\n", + " ControlledOnInt(17, X)(input, target); // Q\n", + " ControlledOnInt(21, X)(input, target); // U\n", + " ControlledOnInt( 8, X)(input, target); // H\n", + " ControlledOnInt( 1, X)(input, target); // A\n", + " ControlledOnInt( 3, X)(input, target); // C\n", + " ControlledOnInt(11, X)(input, target); // K\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task2_DumpMachineWrapper() : Unit {\n", + " let N = 5;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task2(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task2_ResourceEstimationWrapper() : Unit {\n", + " let N = 5;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task2(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task2_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|000000⟩\t0.17677669529663698 + 0𝑖\n|000001⟩\t0 + 0𝑖\n|000010⟩\t0.17677669529663698 + 0𝑖\n|000011⟩\t0 + 0𝑖\n|000100⟩\t0 + 0𝑖\n|000101⟩\t0.17677669529663698 + 0𝑖\n|000110⟩\t0.17677669529663698 + 0𝑖\n|000111⟩\t0 + 0𝑖\n|001000⟩\t0.17677669529663698 + 0𝑖\n|001001⟩\t0 + 0𝑖\n|001010⟩\t0 + 0𝑖\n|001011⟩\t0.17677669529663698 + 0𝑖\n|001100⟩\t0.17677669529663698 + 0𝑖\n|001101⟩\t0 + 0𝑖\n|001110⟩\t0.17677669529663698 + 0𝑖\n|001111⟩\t0 + 0𝑖\n|010000⟩\t0.17677669529663698 + 0𝑖\n|010001⟩\t0 + 0𝑖\n|010010⟩\t0.17677669529663698 + 0𝑖\n|010011⟩\t0 + 0𝑖\n|010100⟩\t0.17677669529663698 + 0𝑖\n|010101⟩\t0 + 0𝑖\n|010110⟩\t0.17677669529663698 + 0𝑖\n|010111⟩\t0 + 0𝑖\n|011000⟩\t0.17677669529663698 + 0𝑖\n|011001⟩\t0 + 0𝑖\n|011010⟩\t0.17677669529663698 + 0𝑖\n|011011⟩\t0 + 0𝑖\n|011100⟩\t0.17677669529663698 + 0𝑖\n|011101⟩\t0 + 0𝑖\n|011110⟩\t0.17677669529663698 + 0𝑖\n|011111⟩\t0 + 0𝑖\n|100000⟩\t0 + 0𝑖\n|100001⟩\t0.17677669529663698 + 0𝑖\n|100010⟩\t0 + 0𝑖\n|100011⟩\t0.17677669529663698 + 0𝑖\n|100100⟩\t0.17677669529663698 + 0𝑖\n|100101⟩\t0 + 0𝑖\n|100110⟩\t0.17677669529663698 + 0𝑖\n|100111⟩\t0 + 0𝑖\n|101000⟩\t0.17677669529663698 + 0𝑖\n|101001⟩\t0 + 0𝑖\n|101010⟩\t0 + 0𝑖\n|101011⟩\t0.17677669529663698 + 0𝑖\n|101100⟩\t0 + 0𝑖\n|101101⟩\t0.17677669529663698 + 0𝑖\n|101110⟩\t0.17677669529663698 + 0𝑖\n|101111⟩\t0 + 0𝑖\n|110000⟩\t0 + 0𝑖\n|110001⟩\t0.17677669529663698 + 0𝑖\n|110010⟩\t0.17677669529663698 + 0𝑖\n|110011⟩\t0 + 0𝑖\n|110100⟩\t0 + 0𝑖\n|110101⟩\t0.17677669529663698 + 0𝑖\n|110110⟩\t0.17677669529663698 + 0𝑖\n|110111⟩\t0 + 0𝑖\n|111000⟩\t0.17677669529663698 + 0𝑖\n|111001⟩\t0 + 0𝑖\n|111010⟩\t0.17677669529663698 + 0𝑖\n|111011⟩\t0 + 0𝑖\n|111100⟩\t0.17677669529663698 + 0𝑖\n|111101⟩\t0 + 0𝑖\n|111110⟩\t0.17677669529663698 + 0𝑖\n|111111⟩\t0 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5],\"n_qubits\":6,\"amplitudes\":{\"0\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"1\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"2\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"5\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"6\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"7\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"8\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"9\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"10\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"13\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"14\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"15\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"16\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"17\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"18\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"19\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"20\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"23\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"24\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"25\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"26\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"27\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"28\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"29\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"30\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"31\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"32\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"33\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"34\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"35\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"44\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"45\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"46\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"47\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"48\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"49\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"53\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"56\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"59\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181491},\n {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 426924},\n {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 90},\n {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 167},\n {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 90},\n {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 167},\n {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 8, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task2_ResourceEstimationWrapper, jobName=\"RE for the task 2\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task2_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 2\n Job ID: d91a9afc-24cf-4c3b-adfe-0d03f8f277ac\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[13:30:22] Current job status: Executing\n[13:30:27] Current job status: Succeeded\n" + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 10, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 30,\n 'cczCount': 10,\n 'measurementCount': 30,\n 'numQubits': 9,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 11,\n 'logicalCycleTime': 4400.0,\n 'logicalErrorRate': 3.000000000000002e-08,\n 'physicalQubits': 242},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 150,\n 'algorithmicLogicalQubits': 28,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 150,\n 'numTfactories': 12,\n 'numTfactoryRuns': 14,\n 'numTsPerRotation': None,\n 'numTstates': 160,\n 'physicalQubitsForAlgorithm': 6776,\n 'physicalQubitsForTfactories': 77760,\n 'requiredLogicalQubitErrorRate': 1.1904761904761904e-07,\n 'requiredLogicalTstateErrorRate': 3.125e-06},\n 'physicalQubits': 84536,\n 'runtime': 660000},\n 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '4us 400ns',\n 'logicalErrorRate': '3.00e-8',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '91.98 %',\n 'physicalQubitsPerRound': '6480',\n 'requiredLogicalQubitErrorRate': '1.19e-7',\n 'requiredLogicalTstateErrorRate': '3.13e-6',\n 'runtime': '660us',\n 'tfactoryRuntime': '46us 800ns',\n 'tfactoryRuntimePerRound': '46us 800ns',\n 'tstateLogicalErrorRate': '2.17e-6',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 9$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 28$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{160\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 660us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000011904761904761904)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [9],\n 'logicalErrorRate': 2.165000000000001e-06,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 6480,\n 'physicalQubitsPerRound': [6480],\n 'runtime': 46800.0,\n 'runtimePerRound': [46800.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits84536\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime660us\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits28\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 9\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 28$ logical qubits.

\n\r\n
Algorithmic depth150\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth150\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states160\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{160\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 660us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations14\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.

\n\r\n
Physical algorithmic qubits6776\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits77760\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate1.19e-7\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.

\n\r\n
Required logical T state error rate3.13e-6\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance11\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000011904761904761904)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits242\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time4us 400ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-8\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits6480\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime46us 800ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances9\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round6480\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round46us 800ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.17e-6\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)9\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates10\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates30\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations30\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":30,\"cczCount\":10,\"measurementCount\":30,\"numQubits\":9,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":150,\"algorithmicLogicalQubits\":28,\"cliffordErrorRate\":0.001,\"logicalDepth\":150,\"numTfactories\":12,\"numTfactoryRuns\":14,\"numTsPerRotation\":null,\"numTstates\":160,\"physicalQubitsForAlgorithm\":6776,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.1904761904761904E-07,\"requiredLogicalTstateErrorRate\":3.125E-06},\"physicalQubits\":84536,\"runtime\":660000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"91.98 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.19e-7\",\"requiredLogicalTstateErrorRate\":\"3.13e-6\",\"runtime\":\"660us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 9$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 28$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{160\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 660us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000011904761904761904)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 28\nAlgorithmic depth = 150\nScore = 4200\n" + }, + { + "output_type": "execute_result", + "execution_count": 12, + "data": { + "text/plain": "4200" + }, + "metadata": {} + } + ], + "execution_count": 12, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/iQuHack-challenge-2023-task3.ipynb b/iQuHack-challenge-2023-task3.ipynb new file mode 100644 index 0000000..5681c60 --- /dev/null +++ b/iQuHack-challenge-2023-task3.ipynb @@ -0,0 +1,4995 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 3\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task3`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", + " \"isDefault\": true,\n", + " \"managedByTenants\": [\n", + " {\n", + " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", + " },\n", + " {\n", + " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", + " },\n", + " {\n", + " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", + " }\n", + " ],\n", + " \"name\": \"Azure for Students\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"user\": {\n", + " \"name\": \"jyothsnakavala2003@gmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" + ] + } + ], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Quibitrons\" # Update this field with your team name\n", + "task=[\"task3\"]\n", + "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task3_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task3_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 3 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 3. \n", + "// (input will contain 6 qubits)\n", + "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [7, 11, 14, 22, 26, 38, 41, 44, 50, 56] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task3_DumpMachineWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task3(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task3_ResourceEstimationWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task3(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6],\"n_qubits\":7,\"amplitudes\":{\"0\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"1\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"2\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"3\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"4\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"5\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"6\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"7\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"8\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"9\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"10\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"13\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"15\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"16\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"17\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"18\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"19\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"20\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"21\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"22\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"23\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"24\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"25\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"26\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"27\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"28\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"29\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"30\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"31\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"32\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"33\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"34\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"35\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"36\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"37\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"40\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"43\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"44\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"45\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"46\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"47\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"48\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"49\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"52\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"53\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"54\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"55\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"56\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"57\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"58\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"59\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"60\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"61\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"62\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"63\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"64\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"65\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"66\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"67\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"68\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"69\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"70\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"71\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"81\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"82\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"85\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"86\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"91\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"97\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"98\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"105\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"106\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"109\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001110\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100110\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101100\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110100\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000000⟩\t0.12500000000000008 + 0𝑖\n", + "|0000001⟩\t0 + 0𝑖\n", + "|0000010⟩\t0.12500000000000008 + 0𝑖\n", + "|0000011⟩\t0 + 0𝑖\n", + "|0000100⟩\t0.12500000000000008 + 0𝑖\n", + "|0000101⟩\t0 + 0𝑖\n", + "|0000110⟩\t0.12500000000000008 + 0𝑖\n", + "|0000111⟩\t0 + 0𝑖\n", + "|0001000⟩\t0.12500000000000008 + 0𝑖\n", + "|0001001⟩\t0 + 0𝑖\n", + "|0001010⟩\t0.12500000000000008 + 0𝑖\n", + "|0001011⟩\t0 + 0𝑖\n", + "|0001100⟩\t0.12500000000000008 + 0𝑖\n", + "|0001101⟩\t0 + 0𝑖\n", + "|0001110⟩\t0 + 0𝑖\n", + "|0001111⟩\t0.12500000000000008 + 0𝑖\n", + "|0010000⟩\t0.12500000000000008 + 0𝑖\n", + "|0010001⟩\t0 + 0𝑖\n", + "|0010010⟩\t0.12500000000000008 + 0𝑖\n", + "|0010011⟩\t0 + 0𝑖\n", + "|0010100⟩\t0.12500000000000008 + 0𝑖\n", + "|0010101⟩\t0 + 0𝑖\n", + "|0010110⟩\t0.12500000000000008 + 0𝑖\n", + "|0010111⟩\t0 + 0𝑖\n", + "|0011000⟩\t0.12500000000000008 + 0𝑖\n", + "|0011001⟩\t0 + 0𝑖\n", + "|0011010⟩\t0 + 0𝑖\n", + "|0011011⟩\t0.12500000000000008 + 0𝑖\n", + "|0011100⟩\t0.12500000000000008 + 0𝑖\n", + "|0011101⟩\t0 + 0𝑖\n", + "|0011110⟩\t0.12500000000000008 + 0𝑖\n", + "|0011111⟩\t0 + 0𝑖\n", + "|0100000⟩\t0.12500000000000008 + 0𝑖\n", + "|0100001⟩\t0 + 0𝑖\n", + "|0100010⟩\t0.12500000000000008 + 0𝑖\n", + "|0100011⟩\t0 + 0𝑖\n", + "|0100100⟩\t0.12500000000000008 + 0𝑖\n", + "|0100101⟩\t0 + 0𝑖\n", + "|0100110⟩\t0 + 0𝑖\n", + "|0100111⟩\t0.12500000000000008 + 0𝑖\n", + "|0101000⟩\t0.12500000000000008 + 0𝑖\n", + "|0101001⟩\t0 + 0𝑖\n", + "|0101010⟩\t0.12500000000000008 + 0𝑖\n", + "|0101011⟩\t0 + 0𝑖\n", + "|0101100⟩\t0 + 0𝑖\n", + "|0101101⟩\t0.12500000000000008 + 0𝑖\n", + "|0101110⟩\t0.12500000000000008 + 0𝑖\n", + "|0101111⟩\t0 + 0𝑖\n", + "|0110000⟩\t0.12500000000000008 + 0𝑖\n", + "|0110001⟩\t0 + 0𝑖\n", + "|0110010⟩\t0 + 0𝑖\n", + "|0110011⟩\t0.12500000000000008 + 0𝑖\n", + "|0110100⟩\t0 + 0𝑖\n", + "|0110101⟩\t0.12500000000000008 + 0𝑖\n", + "|0110110⟩\t0.12500000000000008 + 0𝑖\n", + "|0110111⟩\t0 + 0𝑖\n", + "|0111000⟩\t0 + 0𝑖\n", + "|0111001⟩\t0.12500000000000008 + 0𝑖\n", + "|0111010⟩\t0.12500000000000008 + 0𝑖\n", + "|0111011⟩\t0 + 0𝑖\n", + "|0111100⟩\t0.12500000000000008 + 0𝑖\n", + "|0111101⟩\t0 + 0𝑖\n", + "|0111110⟩\t0.12500000000000008 + 0𝑖\n", + "|0111111⟩\t0 + 0𝑖\n", + "|1000000⟩\t0.12500000000000008 + 0𝑖\n", + "|1000001⟩\t0 + 0𝑖\n", + "|1000010⟩\t0.12500000000000008 + 0𝑖\n", + "|1000011⟩\t0 + 0𝑖\n", + "|1000100⟩\t0.12500000000000008 + 0𝑖\n", + "|1000101⟩\t0 + 0𝑖\n", + "|1000110⟩\t0.12500000000000008 + 0𝑖\n", + "|1000111⟩\t0 + 0𝑖\n", + "|1001000⟩\t0.12500000000000008 + 0𝑖\n", + "|1001001⟩\t0 + 0𝑖\n", + "|1001010⟩\t0 + 0𝑖\n", + "|1001011⟩\t0.12500000000000008 + 0𝑖\n", + "|1001100⟩\t0.12500000000000008 + 0𝑖\n", + "|1001101⟩\t0 + 0𝑖\n", + "|1001110⟩\t0.12500000000000008 + 0𝑖\n", + "|1001111⟩\t0 + 0𝑖\n", + "|1010000⟩\t0.12500000000000008 + 0𝑖\n", + "|1010001⟩\t0 + 0𝑖\n", + "|1010010⟩\t0.12500000000000008 + 0𝑖\n", + "|1010011⟩\t0 + 0𝑖\n", + "|1010100⟩\t0.12500000000000008 + 0𝑖\n", + "|1010101⟩\t0 + 0𝑖\n", + "|1010110⟩\t0.12500000000000008 + 0𝑖\n", + "|1010111⟩\t0 + 0𝑖\n", + "|1011000⟩\t0.12500000000000008 + 0𝑖\n", + "|1011001⟩\t0 + 0𝑖\n", + "|1011010⟩\t0.12500000000000008 + 0𝑖\n", + "|1011011⟩\t0 + 0𝑖\n", + "|1011100⟩\t0.12500000000000008 + 0𝑖\n", + "|1011101⟩\t0 + 0𝑖\n", + "|1011110⟩\t0.12500000000000008 + 0𝑖\n", + "|1011111⟩\t0 + 0𝑖\n", + "|1100000⟩\t0.12500000000000008 + 0𝑖\n", + "|1100001⟩\t0 + 0𝑖\n", + "|1100010⟩\t0.12500000000000008 + 0𝑖\n", + "|1100011⟩\t0 + 0𝑖\n", + "|1100100⟩\t0.12500000000000008 + 0𝑖\n", + "|1100101⟩\t0 + 0𝑖\n", + "|1100110⟩\t0.12500000000000008 + 0𝑖\n", + "|1100111⟩\t0 + 0𝑖\n", + "|1101000⟩\t0 + 0𝑖\n", + "|1101001⟩\t0.12500000000000008 + 0𝑖\n", + "|1101010⟩\t0.12500000000000008 + 0𝑖\n", + "|1101011⟩\t0 + 0𝑖\n", + "|1101100⟩\t0.12500000000000008 + 0𝑖\n", + "|1101101⟩\t0 + 0𝑖\n", + "|1101110⟩\t0.12500000000000008 + 0𝑖\n", + "|1101111⟩\t0 + 0𝑖\n", + "|1110000⟩\t0 + 0𝑖\n", + "|1110001⟩\t0.12500000000000008 + 0𝑖\n", + "|1110010⟩\t0.12500000000000008 + 0𝑖\n", + "|1110011⟩\t0 + 0𝑖\n", + "|1110100⟩\t0.12500000000000008 + 0𝑖\n", + "|1110101⟩\t0 + 0𝑖\n", + "|1110110⟩\t0.12500000000000008 + 0𝑖\n", + "|1110111⟩\t0 + 0𝑖\n", + "|1111000⟩\t0.12500000000000008 + 0𝑖\n", + "|1111001⟩\t0 + 0𝑖\n", + "|1111010⟩\t0.12500000000000008 + 0𝑖\n", + "|1111011⟩\t0 + 0𝑖\n", + "|1111100⟩\t0.12500000000000008 + 0𝑖\n", + "|1111101⟩\t0 + 0𝑖\n", + "|1111110⟩\t0.12500000000000008 + 0𝑖\n", + "|1111111⟩\t0 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task3_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Azure.Identity.AzureCliCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181520},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 412042},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 3},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 285},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 165},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 285},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 165},\n", + " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"EAST US\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task3_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 3\n", + " Job ID: 58060d73-af33-4f24-bd05-7c0e5e2c61c4\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[19:27:25] Current job status: Executing\n", + "[19:27:30] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task3_ResourceEstimationWrapper, jobName=\"RE for the task 3\")" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":40,\"cczCount\":10,\"measurementCount\":40,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":190,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":190,\"numTfactories\":12,\"numTfactoryRuns\":17,\"numTsPerRotation\":null,\"numTstates\":200,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":7.974481658692185E-08,\"requiredLogicalTstateErrorRate\":2.5E-06},\"physicalQubits\":85746,\"runtime\":836000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.69 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"7.97e-8\",\"requiredLogicalTstateErrorRate\":\"2.50e-6\",\"runtime\":\"836us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits85746\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime836us\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical algorithmic qubits33\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 11\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 33$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth190\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth190\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states200\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{200\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 836us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations17\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.

\n", + "\r\n", + "
Physical algorithmic qubits7986\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits77760\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate7.97e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.

\n", + "\r\n", + "
Required logical T state error rate2.50e-6\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance11\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000007974481658692185)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits242\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time4us 400ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-8\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits6480\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime46us 800ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances9\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round6480\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round46us 800ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.17e-6\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical qubits (pre-layout)11\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates10\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates40\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations40\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\r\n", + "
\r\n", + " Assumptions\r\n", + "
    \r\n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \r\n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \r\n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \r\n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \r\n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \r\n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \r\n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \r\n", + "
\r\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 40,\n", + " 'cczCount': 10,\n", + " 'measurementCount': 40,\n", + " 'numQubits': 11,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 11,\n", + " 'logicalCycleTime': 4400.0,\n", + " 'logicalErrorRate': 3.000000000000002e-08,\n", + " 'physicalQubits': 242},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 190,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 190,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 17,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 200,\n", + " 'physicalQubitsForAlgorithm': 7986,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 7.974481658692185e-08,\n", + " 'requiredLogicalTstateErrorRate': 2.5e-06},\n", + " 'physicalQubits': 85746,\n", + " 'runtime': 836000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.69 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '7.97e-8',\n", + " 'requiredLogicalTstateErrorRate': '2.50e-6',\n", + " 'runtime': '836us',\n", + " 'tfactoryRuntime': '46us 800ns',\n", + " 'tfactoryRuntimePerRound': '46us 800ns',\n", + " 'tstateLogicalErrorRate': '2.17e-6',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 190\n", + "Score = 6270\n" + ] + }, + { + "data": { + "text/plain": [ + "6270" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/iQuHack-challenge-2023-task4.ipynb b/iQuHack-challenge-2023-task4.ipynb new file mode 100644 index 0000000..e3b5d78 --- /dev/null +++ b/iQuHack-challenge-2023-task4.ipynb @@ -0,0 +1,4995 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 4\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task4`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", + " \"isDefault\": true,\n", + " \"managedByTenants\": [\n", + " {\n", + " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", + " },\n", + " {\n", + " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", + " },\n", + " {\n", + " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", + " }\n", + " ],\n", + " \"name\": \"Azure for Students\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"user\": {\n", + " \"name\": \"ravisastrykolluru2021@gmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + } + ], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Quibitrons\" # Update this field with your team name\n", + "task=[\"task4\"]\n", + "slack_id=\"U04KPA19P2T\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task4_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task4_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 4 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 4. \n", + "// (input will contain 7 qubits)\n", + "operation Task4(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " let N = Length(input);\n", + " for i in 0 .. 3 .. 2^(N-1) - 1 {\n", + " ControlledOnInt(i, X)(input[0..N-1], target);\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "operation Task4_DumpMachineWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task4(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task4_ResourceEstimationWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task4(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"24\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"25\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"31\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"38\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"47\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"48\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"59\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"62\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"72\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"73\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"74\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"75\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"76\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"77\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"78\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"79\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"83\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"86\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"87\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"90\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"91\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"92\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"93\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"94\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"95\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"100\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"101\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"102\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"103\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"106\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"107\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"108\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"109\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"110\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"111\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"114\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"115\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"116\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"117\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"118\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"119\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"120\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"121\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"122\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"123\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"124\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"125\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"126\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"127\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"128\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"147\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"152\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"159\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"165\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"166\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"170\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"171\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"174\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"175\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"176\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"182\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"183\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"187\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"188\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"189\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"190\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"191\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"200\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"201\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"202\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"203\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"204\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"205\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"206\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"207\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"211\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"215\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"219\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"223\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"228\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"229\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"230\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"231\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"234\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"235\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"236\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"237\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"238\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"239\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"242\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"243\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"244\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"245\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"246\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"247\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"248\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"249\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"250\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"251\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"252\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"253\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"254\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"255\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00000010⟩\t0.0883883476483185 + 0𝑖\n", + "|00000100⟩\t0.0883883476483185 + 0𝑖\n", + "|00000110⟩\t0.0883883476483185 + 0𝑖\n", + "|00001000⟩\t0.0883883476483185 + 0𝑖\n", + "|00001010⟩\t0.0883883476483185 + 0𝑖\n", + "|0000110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00001110⟩\t0.0883883476483185 + 0𝑖\n", + "|00010000⟩\t0.0883883476483185 + 0𝑖\n", + "|00010010⟩\t0.0883883476483185 + 0𝑖\n", + "|00010100⟩\t0.0883883476483185 + 0𝑖\n", + "|00010110⟩\t0.0883883476483185 + 0𝑖\n", + "|0001100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00011010⟩\t0.0883883476483185 + 0𝑖\n", + "|00011100⟩\t0.0883883476483185 + 0𝑖\n", + "|00011110⟩\t0.0883883476483185 + 0𝑖\n", + "|00100000⟩\t0.0883883476483185 + 0𝑖\n", + "|00100010⟩\t0.0883883476483185 + 0𝑖\n", + "|0010010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00100110⟩\t0.0883883476483185 + 0𝑖\n", + "|00101000⟩\t0.0883883476483185 + 0𝑖\n", + "|00101010⟩\t0.0883883476483185 + 0𝑖\n", + "|00101100⟩\t0.0883883476483185 + 0𝑖\n", + "|00101110⟩\t0.0883883476483185 + 0𝑖\n", + "|0011000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00110010⟩\t0.0883883476483185 + 0𝑖\n", + "|00110100⟩\t0.0883883476483185 + 0𝑖\n", + "|00110110⟩\t0.0883883476483185 + 0𝑖\n", + "|00111000⟩\t0.0883883476483185 + 0𝑖\n", + "|00111010⟩\t0.0883883476483185 + 0𝑖\n", + "|0011110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00111110⟩\t0.0883883476483185 + 0𝑖\n", + "|01000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01000010⟩\t0.0883883476483185 + 0𝑖\n", + "|01000100⟩\t0.0883883476483185 + 0𝑖\n", + "|01000110⟩\t0.0883883476483185 + 0𝑖\n", + "|0100100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01001010⟩\t0.0883883476483185 + 0𝑖\n", + "|01001100⟩\t0.0883883476483185 + 0𝑖\n", + "|01001110⟩\t0.0883883476483185 + 0𝑖\n", + "|01010000⟩\t0.0883883476483185 + 0𝑖\n", + "|01010010⟩\t0.0883883476483185 + 0𝑖\n", + "|0101010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01010110⟩\t0.0883883476483185 + 0𝑖\n", + "|01011000⟩\t0.0883883476483185 + 0𝑖\n", + "|01011010⟩\t0.0883883476483185 + 0𝑖\n", + "|01011100⟩\t0.0883883476483185 + 0𝑖\n", + "|01011110⟩\t0.0883883476483185 + 0𝑖\n", + "|0110000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01100010⟩\t0.0883883476483185 + 0𝑖\n", + "|01100100⟩\t0.0883883476483185 + 0𝑖\n", + "|01100110⟩\t0.0883883476483185 + 0𝑖\n", + "|01101000⟩\t0.0883883476483185 + 0𝑖\n", + "|01101010⟩\t0.0883883476483185 + 0𝑖\n", + "|0110110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01101110⟩\t0.0883883476483185 + 0𝑖\n", + "|01110000⟩\t0.0883883476483185 + 0𝑖\n", + "|01110010⟩\t0.0883883476483185 + 0𝑖\n", + "|01110100⟩\t0.0883883476483185 + 0𝑖\n", + "|01110110⟩\t0.0883883476483185 + 0𝑖\n", + "|0111100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01111010⟩\t0.0883883476483185 + 0𝑖\n", + "|01111100⟩\t0.0883883476483185 + 0𝑖\n", + "|01111110⟩\t0.0883883476483185 + 0𝑖\n", + "|10000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10000010⟩\t0.0883883476483185 + 0𝑖\n", + "|1000010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10000110⟩\t0.0883883476483185 + 0𝑖\n", + "|10001000⟩\t0.0883883476483185 + 0𝑖\n", + "|10001010⟩\t0.0883883476483185 + 0𝑖\n", + "|10001100⟩\t0.0883883476483185 + 0𝑖\n", + "|10001110⟩\t0.0883883476483185 + 0𝑖\n", + "|1001000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10010010⟩\t0.0883883476483185 + 0𝑖\n", + "|10010100⟩\t0.0883883476483185 + 0𝑖\n", + "|10010110⟩\t0.0883883476483185 + 0𝑖\n", + "|10011000⟩\t0.0883883476483185 + 0𝑖\n", + "|10011010⟩\t0.0883883476483185 + 0𝑖\n", + "|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10011110⟩\t0.0883883476483185 + 0𝑖\n", + "|10100000⟩\t0.0883883476483185 + 0𝑖\n", + "|10100010⟩\t0.0883883476483185 + 0𝑖\n", + "|10100100⟩\t0.0883883476483185 + 0𝑖\n", + "|10100110⟩\t0.0883883476483185 + 0𝑖\n", + "|1010100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10101010⟩\t0.0883883476483185 + 0𝑖\n", + "|10101100⟩\t0.0883883476483185 + 0𝑖\n", + "|10101110⟩\t0.0883883476483185 + 0𝑖\n", + "|10110000⟩\t0.0883883476483185 + 0𝑖\n", + "|10110010⟩\t0.0883883476483185 + 0𝑖\n", + "|1011010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10110110⟩\t0.0883883476483185 + 0𝑖\n", + "|10111000⟩\t0.0883883476483185 + 0𝑖\n", + "|10111010⟩\t0.0883883476483185 + 0𝑖\n", + "|10111100⟩\t0.0883883476483185 + 0𝑖\n", + "|10111110⟩\t0.0883883476483185 + 0𝑖\n", + "|1100000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11000010⟩\t0.0883883476483185 + 0𝑖\n", + "|11000100⟩\t0.0883883476483185 + 0𝑖\n", + "|11000110⟩\t0.0883883476483185 + 0𝑖\n", + "|11001000⟩\t0.0883883476483185 + 0𝑖\n", + "|11001010⟩\t0.0883883476483185 + 0𝑖\n", + "|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11001110⟩\t0.0883883476483185 + 0𝑖\n", + "|11010000⟩\t0.0883883476483185 + 0𝑖\n", + "|11010010⟩\t0.0883883476483185 + 0𝑖\n", + "|11010100⟩\t0.0883883476483185 + 0𝑖\n", + "|11010110⟩\t0.0883883476483185 + 0𝑖\n", + "|1101100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11011010⟩\t0.0883883476483185 + 0𝑖\n", + "|11011100⟩\t0.0883883476483185 + 0𝑖\n", + "|11011110⟩\t0.0883883476483185 + 0𝑖\n", + "|11100000⟩\t0.0883883476483185 + 0𝑖\n", + "|11100010⟩\t0.0883883476483185 + 0𝑖\n", + "|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11100110⟩\t0.0883883476483185 + 0𝑖\n", + "|11101000⟩\t0.0883883476483185 + 0𝑖\n", + "|11101010⟩\t0.0883883476483185 + 0𝑖\n", + "|11101100⟩\t0.0883883476483185 + 0𝑖\n", + "|11101110⟩\t0.0883883476483185 + 0𝑖\n", + "|1111000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11110010⟩\t0.0883883476483185 + 0𝑖\n", + "|11110100⟩\t0.0883883476483185 + 0𝑖\n", + "|11110110⟩\t0.0883883476483185 + 0𝑖\n", + "|11111000⟩\t0.0883883476483185 + 0𝑖\n", + "|11111010⟩\t0.0883883476483185 + 0𝑖\n", + "|1111110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11111110⟩\t0.0883883476483185 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task4_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Azure.Identity.AzureCliCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181524},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 313983},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 120},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 120},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"EAST US\")" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task4_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 4\n", + " Job ID: 6b22f6cc-3800-4153-8e30-c2a9d765132f\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[19:08:23] Current job status: Executing\n", + "[19:08:28] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task4_ResourceEstimationWrapper, jobName=\"RE for the task 4\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":110,\"cczCount\":22,\"measurementCount\":110,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":506,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":506,\"numTfactories\":12,\"numTfactoryRuns\":44,\"numTsPerRotation\":null,\"numTstates\":528,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":2.6003744539213647E-08,\"requiredLogicalTstateErrorRate\":9.46969696969697E-07},\"physicalQubits\":129004,\"runtime\":2631200},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"2.60e-8\",\"requiredLogicalTstateErrorRate\":\"9.47e-7\",\"runtime\":\"2ms 631us 200ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{528\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 631us 200ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000026003744539213647)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits129004\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime2ms 631us 200ns\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical algorithmic qubits38\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth506\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth506\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states528\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{528\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 2ms 631us 200ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations44\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.

\n", + "\r\n", + "
Physical algorithmic qubits12844\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits116160\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate2.60e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.

\n", + "\r\n", + "
Required logical T state error rate9.47e-7\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance13\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000000026003744539213647)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits338\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time5us 200ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-9\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits9680\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime57us 200ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances11\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round9680\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round57us 200ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.48e-7\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical qubits (pre-layout)13\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates22\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates110\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations110\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\r\n", + "
\r\n", + " Assumptions\r\n", + "
    \r\n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \r\n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \r\n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \r\n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \r\n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \r\n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \r\n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \r\n", + "
\r\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 110,\n", + " 'cczCount': 22,\n", + " 'measurementCount': 110,\n", + " 'numQubits': 13,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 13,\n", + " 'logicalCycleTime': 5200.0,\n", + " 'logicalErrorRate': 3.000000000000002e-09,\n", + " 'physicalQubits': 338},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 506,\n", + " 'algorithmicLogicalQubits': 38,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 506,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 44,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 528,\n", + " 'physicalQubitsForAlgorithm': 12844,\n", + " 'physicalQubitsForTfactories': 116160,\n", + " 'requiredLogicalQubitErrorRate': 2.6003744539213647e-08,\n", + " 'requiredLogicalTstateErrorRate': 9.46969696969697e-07},\n", + " 'physicalQubits': 129004,\n", + " 'runtime': 2631200},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '5us 200ns',\n", + " 'logicalErrorRate': '3.00e-9',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n", + " 'physicalQubitsPerRound': '9680',\n", + " 'requiredLogicalQubitErrorRate': '2.60e-8',\n", + " 'requiredLogicalTstateErrorRate': '9.47e-7',\n", + " 'runtime': '2ms 631us 200ns',\n", + " 'tfactoryRuntime': '57us 200ns',\n", + " 'tfactoryRuntimePerRound': '57us 200ns',\n", + " 'tstateLogicalErrorRate': '2.48e-7',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{528\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 631us 200ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000026003744539213647)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [11],\n", + " 'logicalErrorRate': 2.480000000000001e-07,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 9680,\n", + " 'physicalQubitsPerRound': [9680],\n", + " 'runtime': 57200.0,\n", + " 'runtimePerRound': [57200.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 38\n", + "Algorithmic depth = 506\n", + "Score = 19228\n" + ] + }, + { + "data": { + "text/plain": [ + "19228" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/iQuHack-challenge-2023-task5.ipynb b/iQuHack-challenge-2023-task5.ipynb new file mode 100644 index 0000000..77053ec --- /dev/null +++ b/iQuHack-challenge-2023-task5.ipynb @@ -0,0 +1,3271 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 5\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task5`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Preparing Q# environment...\n", + "." + ] + } + ], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task5\"]\n", + "slack_id=\"U04KPA19P2T\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task5_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task5_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 5 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 5. \n", + "// (input will contain 6 qubits)\n", + "operation Task5(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [0, 9, 18, 21, 27, 36, 42, 45, 54, 63] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task5_DumpMachineWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task5(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task5_ResourceEstimationWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task5(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6],\"n_qubits\":7,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"2\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"3\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"4\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"5\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"6\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"7\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"8\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"11\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"12\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"13\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"14\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"15\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"16\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"17\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"20\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"23\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"24\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"25\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"26\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"29\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"30\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"31\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"32\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"33\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"34\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"35\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"38\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"39\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"40\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"41\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"44\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"47\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"48\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"49\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"50\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"51\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"52\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"53\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"56\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"57\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"58\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"59\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"60\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"61\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"62\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"65\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"66\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"67\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"68\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"69\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"70\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"71\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"81\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"82\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"85\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"86\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"91\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"97\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"98\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"109\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000001⟩\t0.12500000000000008 + 0𝑖\n", + "|0000010⟩\t0.12500000000000008 + 0𝑖\n", + "|0000100⟩\t0.12500000000000008 + 0𝑖\n", + "|0000110⟩\t0.12500000000000008 + 0𝑖\n", + "|0001000⟩\t0.12500000000000008 + 0𝑖\n", + "|0001010⟩\t0.12500000000000008 + 0𝑖\n", + "|0001100⟩\t0.12500000000000008 + 0𝑖\n", + "|0001110⟩\t0.12500000000000008 + 0𝑖\n", + "|0010000⟩\t0.12500000000000008 + 0𝑖\n", + "|0010011⟩\t0.12500000000000008 + 0𝑖\n", + "|0010100⟩\t0.12500000000000008 + 0𝑖\n", + "|0010110⟩\t0.12500000000000008 + 0𝑖\n", + "|0011000⟩\t0.12500000000000008 + 0𝑖\n", + "|0011010⟩\t0.12500000000000008 + 0𝑖\n", + "|0011100⟩\t0.12500000000000008 + 0𝑖\n", + "|0011110⟩\t0.12500000000000008 + 0𝑖\n", + "|0100000⟩\t0.12500000000000008 + 0𝑖\n", + "|0100010⟩\t0.12500000000000008 + 0𝑖\n", + "|0100101⟩\t0.12500000000000008 + 0𝑖\n", + "|0100110⟩\t0.12500000000000008 + 0𝑖\n", + "|0101000⟩\t0.12500000000000008 + 0𝑖\n", + "|0101011⟩\t0.12500000000000008 + 0𝑖\n", + "|0101100⟩\t0.12500000000000008 + 0𝑖\n", + "|0101110⟩\t0.12500000000000008 + 0𝑖\n", + "|0110000⟩\t0.12500000000000008 + 0𝑖\n", + "|0110010⟩\t0.12500000000000008 + 0𝑖\n", + "|0110100⟩\t0.12500000000000008 + 0𝑖\n", + "|0110111⟩\t0.12500000000000008 + 0𝑖\n", + "|0111000⟩\t0.12500000000000008 + 0𝑖\n", + "|0111010⟩\t0.12500000000000008 + 0𝑖\n", + "|0111100⟩\t0.12500000000000008 + 0𝑖\n", + "|0111110⟩\t0.12500000000000008 + 0𝑖\n", + "|1000000⟩\t0.12500000000000008 + 0𝑖\n", + "|1000010⟩\t0.12500000000000008 + 0𝑖\n", + "|1000100⟩\t0.12500000000000008 + 0𝑖\n", + "|1000110⟩\t0.12500000000000008 + 0𝑖\n", + "|1001001⟩\t0.12500000000000008 + 0𝑖\n", + "|1001010⟩\t0.12500000000000008 + 0𝑖\n", + "|1001100⟩\t0.12500000000000008 + 0𝑖\n", + "|1001110⟩\t0.12500000000000008 + 0𝑖\n", + "|1010000⟩\t0.12500000000000008 + 0𝑖\n", + "|1010010⟩\t0.12500000000000008 + 0𝑖\n", + "|1010101⟩\t0.12500000000000008 + 0𝑖\n", + "|1010110⟩\t0.12500000000000008 + 0𝑖\n", + "|1011000⟩\t0.12500000000000008 + 0𝑖\n", + "|1011011⟩\t0.12500000000000008 + 0𝑖\n", + "|1011100⟩\t0.12500000000000008 + 0𝑖\n", + "|1011110⟩\t0.12500000000000008 + 0𝑖\n", + "|1100000⟩\t0.12500000000000008 + 0𝑖\n", + "|1100010⟩\t0.12500000000000008 + 0𝑖\n", + "|1100100⟩\t0.12500000000000008 + 0𝑖\n", + "|1100110⟩\t0.12500000000000008 + 0𝑖\n", + "|1101000⟩\t0.12500000000000008 + 0𝑖\n", + "|1101010⟩\t0.12500000000000008 + 0𝑖\n", + "|1101101⟩\t0.12500000000000008 + 0𝑖\n", + "|1101110⟩\t0.12500000000000008 + 0𝑖\n", + "|1110000⟩\t0.12500000000000008 + 0𝑖\n", + "|1110010⟩\t0.12500000000000008 + 0𝑖\n", + "|1110100⟩\t0.12500000000000008 + 0𝑖\n", + "|1110110⟩\t0.12500000000000008 + 0𝑖\n", + "|1111000⟩\t0.12500000000000008 + 0𝑖\n", + "|1111010⟩\t0.12500000000000008 + 0𝑖\n", + "|1111100⟩\t0.12500000000000008 + 0𝑖\n", + "|1111111⟩\t0.12500000000000008 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task5_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n", + "this notebook is run on azure quantum workspace\n" + ] + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task5_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 5\n", + " Job ID: 647afaf6-9d17-4cf5-b65b-77a23f24ed11\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[14:13:37] Current job status: Executing\n", + "[14:13:42] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task5_ResourceEstimationWrapper, jobName=\"RE for the task 5\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":40,\"cczCount\":10,\"measurementCount\":40,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":190,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":190,\"numTfactories\":12,\"numTfactoryRuns\":17,\"numTsPerRotation\":null,\"numTstates\":200,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":7.974481658692185E-08,\"requiredLogicalTstateErrorRate\":2.5E-06},\"physicalQubits\":85746,\"runtime\":836000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.69 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"7.97e-8\",\"requiredLogicalTstateErrorRate\":\"2.50e-6\",\"runtime\":\"836us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Physical qubits85746\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime836us\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Logical algorithmic qubits33\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 11\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 33$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth190\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth190\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states200\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{200\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 836us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations17\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.

\n", + "\r\n", + "
Physical algorithmic qubits7986\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits77760\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate7.97e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.

\n", + "\r\n", + "
Required logical T state error rate2.50e-6\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance11\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000007974481658692185)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits242\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time4us 400ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-8\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Physical qubits6480\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime46us 800ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances9\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round6480\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round46us 800ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.17e-6\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Logical qubits (pre-layout)11\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates10\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates40\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations40\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\n", + "
\r\n", + " Assumptions\r\n", + "
    \n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \n", + "
\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 40,\n", + " 'cczCount': 10,\n", + " 'measurementCount': 40,\n", + " 'numQubits': 11,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 11,\n", + " 'logicalCycleTime': 4400.0,\n", + " 'logicalErrorRate': 3.000000000000002e-08,\n", + " 'physicalQubits': 242},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 190,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 190,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 17,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 200,\n", + " 'physicalQubitsForAlgorithm': 7986,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 7.974481658692185e-08,\n", + " 'requiredLogicalTstateErrorRate': 2.5e-06},\n", + " 'physicalQubits': 85746,\n", + " 'runtime': 836000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.69 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '7.97e-8',\n", + " 'requiredLogicalTstateErrorRate': '2.50e-6',\n", + " 'runtime': '836us',\n", + " 'tfactoryRuntime': '46us 800ns',\n", + " 'tfactoryRuntimePerRound': '46us 800ns',\n", + " 'tstateLogicalErrorRate': '2.17e-6',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 190\n", + "Score = 6270\n" + ] + }, + { + "data": { + "text/plain": [ + "6270" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/iQuHack-challenge-2023-task6.ipynb b/iQuHack-challenge-2023-task6.ipynb new file mode 100644 index 0000000..cb2706f --- /dev/null +++ b/iQuHack-challenge-2023-task6.ipynb @@ -0,0 +1,523 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 6\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task6`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task6\"]\n", + "slack_id=\"U04L0TSC0LD\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task6_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task6_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 6 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 6. \n", + "// (input will contain 8 qubits)\n", + "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [144, 145, 148, 149, 152, 153, 156, 157, 208, 209, 212, 213, 216, 217, 220, 221] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task6_DumpMachineWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task6(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task6_ResourceEstimationWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task6(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task6_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|000000000⟩\t0.06250000000000006 + 0𝑖\n|000000010000000000⟩\t0.06250000000000006 + 0𝑖\n|000000100⟩\t0.06250000000000006 + 0𝑖\n|000000110000000000⟩\t0.06250000000000006 + 0𝑖\n|000001000⟩\t0.06250000000000006 + 0𝑖\n|000001010000000000⟩\t0.06250000000000006 + 0𝑖\n|000001100⟩\t0.06250000000000006 + 0𝑖\n|000001110000000000⟩\t0.06250000000000006 + 0𝑖\n|000010000⟩\t0.06250000000000006 + 0𝑖\n|000010010100000000⟩\t0.06250000000000006 + 0𝑖\n|000010100⟩\t0.06250000000000006 + 0𝑖\n|000010110100000000⟩\t0.06250000000000006 + 0𝑖\n|000011000⟩\t0.06250000000000006 + 0𝑖\n|000011010000000000⟩\t0.06250000000000006 + 0𝑖\n|000011100⟩\t0.06250000000000006 + 0𝑖\n|000011110000000000⟩\t0.06250000000000006 + 0𝑖\n|000100000⟩\t0.06250000000000006 + 0𝑖\n|000100010000000000⟩\t0.06250000000000006 + 0𝑖\n|000100100⟩\t0.06250000000000006 + 0𝑖\n|000100110000000000⟩\t0.06250000000000006 + 0𝑖\n|000101000⟩\t0.06250000000000006 + 0𝑖\n|000101010000000000⟩\t0.06250000000000006 + 0𝑖\n|000101100⟩\t0.06250000000000006 + 0𝑖\n|000101110000000000⟩\t0.06250000000000006 + 0𝑖\n|000110000⟩\t0.06250000000000006 + 0𝑖\n|000110010100000000⟩\t0.06250000000000006 + 0𝑖\n|000110100⟩\t0.06250000000000006 + 0𝑖\n|000110110100000000⟩\t0.06250000000000006 + 0𝑖\n|000111000⟩\t0.06250000000000006 + 0𝑖\n|000111010000000000⟩\t0.06250000000000006 + 0𝑖\n|000111100⟩\t0.06250000000000006 + 0𝑖\n|000111110000000000⟩\t0.06250000000000006 + 0𝑖\n|001000000⟩\t0.06250000000000006 + 0𝑖\n|001000010000000000⟩\t0.06250000000000006 + 0𝑖\n|001000100⟩\t0.06250000000000006 + 0𝑖\n|001000110000000000⟩\t0.06250000000000006 + 0𝑖\n|001001000⟩\t0.06250000000000006 + 0𝑖\n|001001010000000000⟩\t0.06250000000000006 + 0𝑖\n|001001100⟩\t0.06250000000000006 + 0𝑖\n|001001110000000000⟩\t0.06250000000000006 + 0𝑖\n|001010000⟩\t0.06250000000000006 + 0𝑖\n|001010010100000000⟩\t0.06250000000000006 + 0𝑖\n|001010100⟩\t0.06250000000000006 + 0𝑖\n|001010110100000000⟩\t0.06250000000000006 + 0𝑖\n|001011000⟩\t0.06250000000000006 + 0𝑖\n|001011010000000000⟩\t0.06250000000000006 + 0𝑖\n|001011100⟩\t0.06250000000000006 + 0𝑖\n|001011110000000000⟩\t0.06250000000000006 + 0𝑖\n|001100000⟩\t0.06250000000000006 + 0𝑖\n|001100010000000000⟩\t0.06250000000000006 + 0𝑖\n|001100100⟩\t0.06250000000000006 + 0𝑖\n|001100110000000000⟩\t0.06250000000000006 + 0𝑖\n|001101000⟩\t0.06250000000000006 + 0𝑖\n|001101010000000000⟩\t0.06250000000000006 + 0𝑖\n|001101100⟩\t0.06250000000000006 + 0𝑖\n|001101110000000000⟩\t0.06250000000000006 + 0𝑖\n|001110000⟩\t0.06250000000000006 + 0𝑖\n|001110010100000000⟩\t0.06250000000000006 + 0𝑖\n|001110100⟩\t0.06250000000000006 + 0𝑖\n|001110110100000000⟩\t0.06250000000000006 + 0𝑖\n|001111000⟩\t0.06250000000000006 + 0𝑖\n|001111010000000000⟩\t0.06250000000000006 + 0𝑖\n|001111100⟩\t0.06250000000000006 + 0𝑖\n|001111110000000000⟩\t0.06250000000000006 + 0𝑖\n|010000000⟩\t0.06250000000000006 + 0𝑖\n|010000010000000000⟩\t0.06250000000000006 + 0𝑖\n|010000100⟩\t0.06250000000000006 + 0𝑖\n|010000110000000000⟩\t0.06250000000000006 + 0𝑖\n|010001000⟩\t0.06250000000000006 + 0𝑖\n|010001010000000000⟩\t0.06250000000000006 + 0𝑖\n|010001100⟩\t0.06250000000000006 + 0𝑖\n|010001110000000000⟩\t0.06250000000000006 + 0𝑖\n|010010000⟩\t0.06250000000000006 + 0𝑖\n|010010010000000000⟩\t0.06250000000000006 + 0𝑖\n|010010100⟩\t0.06250000000000006 + 0𝑖\n|010010110000000000⟩\t0.06250000000000006 + 0𝑖\n|010011000⟩\t0.06250000000000006 + 0𝑖\n|010011010000000000⟩\t0.06250000000000006 + 0𝑖\n|010011100⟩\t0.06250000000000006 + 0𝑖\n|010011110000000000⟩\t0.06250000000000006 + 0𝑖\n|010100000⟩\t0.06250000000000006 + 0𝑖\n|010100010000000000⟩\t0.06250000000000006 + 0𝑖\n|010100100⟩\t0.06250000000000006 + 0𝑖\n|010100110000000000⟩\t0.06250000000000006 + 0𝑖\n|010101000⟩\t0.06250000000000006 + 0𝑖\n|010101010000000000⟩\t0.06250000000000006 + 0𝑖\n|010101100⟩\t0.06250000000000006 + 0𝑖\n|010101110000000000⟩\t0.06250000000000006 + 0𝑖\n|010110000⟩\t0.06250000000000006 + 0𝑖\n|010110010000000000⟩\t0.06250000000000006 + 0𝑖\n|010110100⟩\t0.06250000000000006 + 0𝑖\n|010110110000000000⟩\t0.06250000000000006 + 0𝑖\n|010111000⟩\t0.06250000000000006 + 0𝑖\n|010111010000000000⟩\t0.06250000000000006 + 0𝑖\n|010111100⟩\t0.06250000000000006 + 0𝑖\n|010111110000000000⟩\t0.06250000000000006 + 0𝑖\n|011000000⟩\t0.06250000000000006 + 0𝑖\n|011000010000000000⟩\t0.06250000000000006 + 0𝑖\n|011000100⟩\t0.06250000000000006 + 0𝑖\n|011000110000000000⟩\t0.06250000000000006 + 0𝑖\n|011001000⟩\t0.06250000000000006 + 0𝑖\n|011001010000000000⟩\t0.06250000000000006 + 0𝑖\n|011001100⟩\t0.06250000000000006 + 0𝑖\n|011001110000000000⟩\t0.06250000000000006 + 0𝑖\n|011010000⟩\t0.06250000000000006 + 0𝑖\n|011010010000000000⟩\t0.06250000000000006 + 0𝑖\n|011010100⟩\t0.06250000000000006 + 0𝑖\n|011010110000000000⟩\t0.06250000000000006 + 0𝑖\n|011011000⟩\t0.06250000000000006 + 0𝑖\n|011011010000000000⟩\t0.06250000000000006 + 0𝑖\n|011011100⟩\t0.06250000000000006 + 0𝑖\n|011011110000000000⟩\t0.06250000000000006 + 0𝑖\n|011100000⟩\t0.06250000000000006 + 0𝑖\n|011100010000000000⟩\t0.06250000000000006 + 0𝑖\n|011100100⟩\t0.06250000000000006 + 0𝑖\n|011100110000000000⟩\t0.06250000000000006 + 0𝑖\n|011101000⟩\t0.06250000000000006 + 0𝑖\n|011101010000000000⟩\t0.06250000000000006 + 0𝑖\n|011101100⟩\t0.06250000000000006 + 0𝑖\n|011101110000000000⟩\t0.06250000000000006 + 0𝑖\n|011110000⟩\t0.06250000000000006 + 0𝑖\n|011110010000000000⟩\t0.06250000000000006 + 0𝑖\n|011110100⟩\t0.06250000000000006 + 0𝑖\n|011110110000000000⟩\t0.06250000000000006 + 0𝑖\n|011111000⟩\t0.06250000000000006 + 0𝑖\n|011111010000000000⟩\t0.06250000000000006 + 0𝑖\n|011111100⟩\t0.06250000000000006 + 0𝑖\n|011111110000000000⟩\t0.06250000000000006 + 0𝑖\n|100000000⟩\t0.06250000000000006 + 0𝑖\n|100000010000000000⟩\t0.06250000000000006 + 0𝑖\n|100000100⟩\t0.06250000000000006 + 0𝑖\n|100000110000000000⟩\t0.06250000000000006 + 0𝑖\n|100001000⟩\t0.06250000000000006 + 0𝑖\n|100001010000000000⟩\t0.06250000000000006 + 0𝑖\n|100001100⟩\t0.06250000000000006 + 0𝑖\n|100001110000000000⟩\t0.06250000000000006 + 0𝑖\n|100010000⟩\t0.06250000000000006 + 0𝑖\n|100010010100000000⟩\t0.06250000000000006 + 0𝑖\n|100010100⟩\t0.06250000000000006 + 0𝑖\n|100010110100000000⟩\t0.06250000000000006 + 0𝑖\n|100011000⟩\t0.06250000000000006 + 0𝑖\n|100011010000000000⟩\t0.06250000000000006 + 0𝑖\n|100011100⟩\t0.06250000000000006 + 0𝑖\n|100011110000000000⟩\t0.06250000000000006 + 0𝑖\n|100100000⟩\t0.06250000000000006 + 0𝑖\n|100100010000000000⟩\t0.06250000000000006 + 0𝑖\n|100100100⟩\t0.06250000000000006 + 0𝑖\n|100100110000000000⟩\t0.06250000000000006 + 0𝑖\n|100101000⟩\t0.06250000000000006 + 0𝑖\n|100101010000000000⟩\t0.06250000000000006 + 0𝑖\n|100101100⟩\t0.06250000000000006 + 0𝑖\n|100101110000000000⟩\t0.06250000000000006 + 0𝑖\n|100110000⟩\t0.06250000000000006 + 0𝑖\n|100110010100000000⟩\t0.06250000000000006 + 0𝑖\n|100110100⟩\t0.06250000000000006 + 0𝑖\n|100110110100000000⟩\t0.06250000000000006 + 0𝑖\n|100111000⟩\t0.06250000000000006 + 0𝑖\n|100111010000000000⟩\t0.06250000000000006 + 0𝑖\n|100111100⟩\t0.06250000000000006 + 0𝑖\n|100111110000000000⟩\t0.06250000000000006 + 0𝑖\n|101000000⟩\t0.06250000000000006 + 0𝑖\n|101000010000000000⟩\t0.06250000000000006 + 0𝑖\n|101000100⟩\t0.06250000000000006 + 0𝑖\n|101000110000000000⟩\t0.06250000000000006 + 0𝑖\n|101001000⟩\t0.06250000000000006 + 0𝑖\n|101001010000000000⟩\t0.06250000000000006 + 0𝑖\n|101001100⟩\t0.06250000000000006 + 0𝑖\n|101001110000000000⟩\t0.06250000000000006 + 0𝑖\n|101010000⟩\t0.06250000000000006 + 0𝑖\n|101010010100000000⟩\t0.06250000000000006 + 0𝑖\n|101010100⟩\t0.06250000000000006 + 0𝑖\n|101010110100000000⟩\t0.06250000000000006 + 0𝑖\n|101011000⟩\t0.06250000000000006 + 0𝑖\n|101011010000000000⟩\t0.06250000000000006 + 0𝑖\n|101011100⟩\t0.06250000000000006 + 0𝑖\n|101011110000000000⟩\t0.06250000000000006 + 0𝑖\n|101100000⟩\t0.06250000000000006 + 0𝑖\n|101100010000000000⟩\t0.06250000000000006 + 0𝑖\n|101100100⟩\t0.06250000000000006 + 0𝑖\n|101100110000000000⟩\t0.06250000000000006 + 0𝑖\n|101101000⟩\t0.06250000000000006 + 0𝑖\n|101101010000000000⟩\t0.06250000000000006 + 0𝑖\n|101101100⟩\t0.06250000000000006 + 0𝑖\n|101101110000000000⟩\t0.06250000000000006 + 0𝑖\n|101110000⟩\t0.06250000000000006 + 0𝑖\n|101110010100000000⟩\t0.06250000000000006 + 0𝑖\n|101110100⟩\t0.06250000000000006 + 0𝑖\n|101110110100000000⟩\t0.06250000000000006 + 0𝑖\n|101111000⟩\t0.06250000000000006 + 0𝑖\n|101111010000000000⟩\t0.06250000000000006 + 0𝑖\n|101111100⟩\t0.06250000000000006 + 0𝑖\n|101111110000000000⟩\t0.06250000000000006 + 0𝑖\n|110000000⟩\t0.06250000000000006 + 0𝑖\n|110000010000000000⟩\t0.06250000000000006 + 0𝑖\n|110000100⟩\t0.06250000000000006 + 0𝑖\n|110000110000000000⟩\t0.06250000000000006 + 0𝑖\n|110001000⟩\t0.06250000000000006 + 0𝑖\n|110001010000000000⟩\t0.06250000000000006 + 0𝑖\n|110001100⟩\t0.06250000000000006 + 0𝑖\n|110001110000000000⟩\t0.06250000000000006 + 0𝑖\n|110010000⟩\t0.06250000000000006 + 0𝑖\n|110010010000000000⟩\t0.06250000000000006 + 0𝑖\n|110010100⟩\t0.06250000000000006 + 0𝑖\n|110010110000000000⟩\t0.06250000000000006 + 0𝑖\n|110011000⟩\t0.06250000000000006 + 0𝑖\n|110011010000000000⟩\t0.06250000000000006 + 0𝑖\n|110011100⟩\t0.06250000000000006 + 0𝑖\n|110011110000000000⟩\t0.06250000000000006 + 0𝑖\n|110100000⟩\t0.06250000000000006 + 0𝑖\n|110100010000000000⟩\t0.06250000000000006 + 0𝑖\n|110100100⟩\t0.06250000000000006 + 0𝑖\n|110100110000000000⟩\t0.06250000000000006 + 0𝑖\n|110101000⟩\t0.06250000000000006 + 0𝑖\n|110101010000000000⟩\t0.06250000000000006 + 0𝑖\n|110101100⟩\t0.06250000000000006 + 0𝑖\n|110101110000000000⟩\t0.06250000000000006 + 0𝑖\n|110110000⟩\t0.06250000000000006 + 0𝑖\n|110110010000000000⟩\t0.06250000000000006 + 0𝑖\n|110110100⟩\t0.06250000000000006 + 0𝑖\n|110110110000000000⟩\t0.06250000000000006 + 0𝑖\n|110111000⟩\t0.06250000000000006 + 0𝑖\n|110111010000000000⟩\t0.06250000000000006 + 0𝑖\n|110111100⟩\t0.06250000000000006 + 0𝑖\n|110111110000000000⟩\t0.06250000000000006 + 0𝑖\n|111000000⟩\t0.06250000000000006 + 0𝑖\n|111000010000000000⟩\t0.06250000000000006 + 0𝑖\n|111000100⟩\t0.06250000000000006 + 0𝑖\n|111000110000000000⟩\t0.06250000000000006 + 0𝑖\n|111001000⟩\t0.06250000000000006 + 0𝑖\n|111001010000000000⟩\t0.06250000000000006 + 0𝑖\n|111001100⟩\t0.06250000000000006 + 0𝑖\n|111001110000000000⟩\t0.06250000000000006 + 0𝑖\n|111010000⟩\t0.06250000000000006 + 0𝑖\n|111010010000000000⟩\t0.06250000000000006 + 0𝑖\n|111010100⟩\t0.06250000000000006 + 0𝑖\n|111010110000000000⟩\t0.06250000000000006 + 0𝑖\n|111011000⟩\t0.06250000000000006 + 0𝑖\n|111011010000000000⟩\t0.06250000000000006 + 0𝑖\n|111011100⟩\t0.06250000000000006 + 0𝑖\n|111011110000000000⟩\t0.06250000000000006 + 0𝑖\n|111100000⟩\t0.06250000000000006 + 0𝑖\n|111100010000000000⟩\t0.06250000000000006 + 0𝑖\n|111100100⟩\t0.06250000000000006 + 0𝑖\n|111100110000000000⟩\t0.06250000000000006 + 0𝑖\n|111101000⟩\t0.06250000000000006 + 0𝑖\n|111101010000000000⟩\t0.06250000000000006 + 0𝑖\n|111101100⟩\t0.06250000000000006 + 0𝑖\n|111101110000000000⟩\t0.06250000000000006 + 0𝑖\n|111110000⟩\t0.06250000000000006 + 0𝑖\n|111110010000000000⟩\t0.06250000000000006 + 0𝑖\n|111110100⟩\t0.06250000000000006 + 0𝑖\n|111110110000000000⟩\t0.06250000000000006 + 0𝑖\n|111111000⟩\t0.06250000000000006 + 0𝑖\n|111111010000000000⟩\t0.06250000000000006 + 0𝑖\n|111111100⟩\t0.06250000000000006 + 0𝑖\n|111111110000000000⟩\t0.06250000000000006 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7, 8
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7,8],\"n_qubits\":9,\"amplitudes\":{\"0\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"1\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"2\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"3\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"4\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"5\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"6\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"7\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"8\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"9\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"10\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"11\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"12\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"13\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"14\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"15\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"16\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"17\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"18\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"19\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"20\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"21\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"22\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"23\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"24\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"25\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"26\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"27\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"28\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"29\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"30\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"31\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"32\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"33\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"34\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"35\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"36\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"37\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"38\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"39\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"40\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"41\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"42\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"43\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"44\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"45\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"46\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"47\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"48\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"49\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"50\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"51\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"52\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"53\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"54\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"55\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"56\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"57\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"58\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"59\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"60\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"61\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"62\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"63\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"64\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"65\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"66\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"67\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"68\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"69\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"70\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"71\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"72\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"73\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"74\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"75\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"76\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"77\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"78\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"79\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"80\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"81\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"82\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"83\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"84\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"85\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"86\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"87\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"88\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"89\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"90\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"91\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"92\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"93\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"94\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"95\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"96\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"97\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"98\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"99\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"100\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"101\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"102\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"103\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"104\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"105\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"106\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"107\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"108\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"109\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"110\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"111\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"112\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"113\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"114\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"115\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"116\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"117\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"118\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"119\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"120\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"121\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"122\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"123\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"124\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"125\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"126\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"127\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"128\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"129\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"130\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"131\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"132\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"133\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"134\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"135\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"136\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"137\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"138\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"139\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"140\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"141\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"142\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"143\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"147\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"151\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"155\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"159\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"160\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"161\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"162\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"163\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"164\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"165\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"166\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"167\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"168\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"169\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"170\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"171\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"172\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"173\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"174\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"175\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"176\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"177\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"178\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"179\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"180\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"181\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"182\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"183\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"184\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"185\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"186\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"187\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"188\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"189\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"190\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"191\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"192\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"193\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"194\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"195\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"196\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"197\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"198\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"199\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"200\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"201\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"202\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"203\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"204\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"205\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"206\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"207\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"211\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"215\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"219\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"223\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"224\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"225\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"226\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"227\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"228\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"229\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"230\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"231\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"232\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"233\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"234\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"235\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"236\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"237\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"238\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"239\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"240\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"241\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"242\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"243\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"244\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"245\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"246\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"247\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"248\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"249\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"250\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"251\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"252\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"253\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"254\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"255\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"256\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"257\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"258\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"259\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"260\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"261\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"262\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"263\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"264\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"265\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"266\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"267\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"268\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"269\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"270\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"271\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"272\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"273\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"274\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"275\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"276\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"277\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"278\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"279\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"280\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"281\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"282\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"283\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"284\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"285\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"286\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"287\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"288\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"289\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"290\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"291\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"292\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"293\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"294\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"295\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"296\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"297\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"298\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"299\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"300\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"301\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"302\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"303\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"304\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"305\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"306\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"307\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"308\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"309\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"310\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"311\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"312\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"313\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"314\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"315\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"316\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"317\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"318\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"319\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"320\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"321\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"322\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"323\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"324\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"325\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"326\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"327\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"328\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"329\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"330\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"331\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"332\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"333\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"334\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"335\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"336\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"337\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"338\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"339\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"340\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"341\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"342\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"343\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"344\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"345\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"346\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"347\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"348\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"349\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"350\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"351\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"352\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"353\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"354\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"355\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"356\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"357\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"358\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"359\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"360\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"361\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"362\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"363\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"364\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"365\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"366\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"367\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"368\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"369\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"370\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"371\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"372\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"373\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"374\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"375\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"376\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"377\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"378\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"379\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"380\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"381\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"382\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"383\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"384\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"385\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"386\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"387\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"388\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"389\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"390\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"391\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"392\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"393\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"394\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"395\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"396\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"397\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"398\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"399\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"400\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"401\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"402\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"403\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"404\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"405\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"406\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"407\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"408\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"409\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"410\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"411\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"412\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"413\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"414\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"415\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"416\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"417\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"418\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"419\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"420\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"421\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"422\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"423\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"424\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"425\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"426\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"427\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"428\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"429\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"430\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"431\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"432\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"433\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"434\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"435\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"436\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"437\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"438\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"439\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"440\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"441\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"442\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"443\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"444\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"445\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"446\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"447\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"448\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"449\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"450\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"451\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"452\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"453\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"454\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"455\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"456\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"457\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"458\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"459\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"460\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"461\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"462\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"463\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"464\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"465\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"466\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"467\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"468\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"469\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"470\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"471\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"472\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"473\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"474\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"475\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"476\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"477\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"478\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"479\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"480\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"481\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"482\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"483\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"484\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"485\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"486\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"487\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"488\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"489\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"490\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"491\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"492\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"493\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"494\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"495\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"496\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"497\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"498\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"499\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"500\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"501\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"502\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"503\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"504\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"505\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"506\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"507\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"508\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"509\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"510\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"511\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" + } + ], + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task6_ResourceEstimationWrapper, jobName=\"RE for the task 6\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 6\n Job ID: 328660f0-134c-4a7e-8bb7-b3e615dcb31a\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:20:28] Current job status: Executing\n[14:20:33] Current job status: Succeeded\n" + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 96,\n 'cczCount': 16,\n 'measurementCount': 96,\n 'numQubits': 15,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 432,\n 'algorithmicLogicalQubits': 42,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 432,\n 'numTfactories': 12,\n 'numTfactoryRuns': 38,\n 'numTsPerRotation': None,\n 'numTstates': 448,\n 'physicalQubitsForAlgorithm': 14196,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 2.755731922398589e-08,\n 'requiredLogicalTstateErrorRate': 1.1160714285714287e-06},\n 'physicalQubits': 130356,\n 'runtime': 2246400},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '89.11 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '2.76e-8',\n 'requiredLogicalTstateErrorRate': '1.12e-6',\n 'runtime': '2ms 246us 400ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{448\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 246us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000002755731922398589)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits130356\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime2ms 246us 400ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits42\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 15\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 42$ logical qubits.

\n\r\n
Algorithmic depth432\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth432\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states448\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{448\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 2ms 246us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations38\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.

\n\r\n
Physical algorithmic qubits14196\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate2.76e-8\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.

\n\r\n
Required logical T state error rate1.12e-6\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000002755731922398589)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)15\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates16\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates96\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations96\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":96,\"cczCount\":16,\"measurementCount\":96,\"numQubits\":15,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":432,\"algorithmicLogicalQubits\":42,\"cliffordErrorRate\":0.001,\"logicalDepth\":432,\"numTfactories\":12,\"numTfactoryRuns\":38,\"numTsPerRotation\":null,\"numTstates\":448,\"physicalQubitsForAlgorithm\":14196,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":2.755731922398589E-08,\"requiredLogicalTstateErrorRate\":1.1160714285714287E-06},\"physicalQubits\":130356,\"runtime\":2246400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"89.11 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"2.76e-8\",\"requiredLogicalTstateErrorRate\":\"1.12e-6\",\"runtime\":\"2ms 246us 400ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{448\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 246us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000002755731922398589)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 42\nAlgorithmic depth = 432\nScore = 18144\n" + }, + { + "output_type": "execute_result", + "execution_count": 11, + "data": { + "text/plain": "18144" + }, + "metadata": {} + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/iQuHack-challenge-2023-task7.ipynb b/iQuHack-challenge-2023-task7.ipynb new file mode 100644 index 0000000..8e6492a --- /dev/null +++ b/iQuHack-challenge-2023-task7.ipynb @@ -0,0 +1,523 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 7\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task7`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task7\"]\n", + "slack_id=\"U04L3RWQS6N\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task7_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task7_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 7 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 7. \n", + "// (input will contain 7 qubits)\n", + "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [9,18,19,25,36,37,38,39,41,50,51,57,72,73,74,75,76,77,78,79,82,83,89,100,101,102,103,105,114,115,121] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task7_DumpMachineWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task7(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task7_ResourceEstimationWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task7(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task7_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|00000000⟩\t0.0883883476483185 + 0𝑖\n|00000010⟩\t0.0883883476483185 + 0𝑖\n|00000100⟩\t0.0883883476483185 + 0𝑖\n|00000110⟩\t0.0883883476483185 + 0𝑖\n|00001000⟩\t0.0883883476483185 + 0𝑖\n|00001010⟩\t0.0883883476483185 + 0𝑖\n|00001100⟩\t0.0883883476483185 + 0𝑖\n|00001110⟩\t0.0883883476483185 + 0𝑖\n|00010000⟩\t0.0883883476483185 + 0𝑖\n|0001001100000000⟩\t0.0883883476483185 + 0𝑖\n|00010100⟩\t0.0883883476483185 + 0𝑖\n|00010110⟩\t0.0883883476483185 + 0𝑖\n|00011000⟩\t0.0883883476483185 + 0𝑖\n|00011010⟩\t0.0883883476483185 + 0𝑖\n|00011100⟩\t0.0883883476483185 + 0𝑖\n|00011110⟩\t0.0883883476483185 + 0𝑖\n|00100000⟩\t0.0883883476483185 + 0𝑖\n|00100010⟩\t0.0883883476483185 + 0𝑖\n|0010010100000000⟩\t0.0883883476483185 + 0𝑖\n|0010011100000000⟩\t0.0883883476483185 + 0𝑖\n|00101000⟩\t0.0883883476483185 + 0𝑖\n|00101010⟩\t0.0883883476483185 + 0𝑖\n|00101100⟩\t0.0883883476483185 + 0𝑖\n|00101110⟩\t0.0883883476483185 + 0𝑖\n|00110000⟩\t0.0883883476483185 + 0𝑖\n|0011001100000000⟩\t0.0883883476483185 + 0𝑖\n|00110100⟩\t0.0883883476483185 + 0𝑖\n|00110110⟩\t0.0883883476483185 + 0𝑖\n|00111000⟩\t0.0883883476483185 + 0𝑖\n|00111010⟩\t0.0883883476483185 + 0𝑖\n|00111100⟩\t0.0883883476483185 + 0𝑖\n|00111110⟩\t0.0883883476483185 + 0𝑖\n|01000000⟩\t0.0883883476483185 + 0𝑖\n|01000010⟩\t0.0883883476483185 + 0𝑖\n|01000100⟩\t0.0883883476483185 + 0𝑖\n|01000110⟩\t0.0883883476483185 + 0𝑖\n|0100100100000000⟩\t0.0883883476483185 + 0𝑖\n|0100101100000000⟩\t0.0883883476483185 + 0𝑖\n|0100110100000000⟩\t0.0883883476483185 + 0𝑖\n|0100111100000000⟩\t0.0883883476483185 + 0𝑖\n|01010000⟩\t0.0883883476483185 + 0𝑖\n|0101001100000000⟩\t0.0883883476483185 + 0𝑖\n|01010100⟩\t0.0883883476483185 + 0𝑖\n|01010110⟩\t0.0883883476483185 + 0𝑖\n|01011000⟩\t0.0883883476483185 + 0𝑖\n|01011010⟩\t0.0883883476483185 + 0𝑖\n|01011100⟩\t0.0883883476483185 + 0𝑖\n|01011110⟩\t0.0883883476483185 + 0𝑖\n|01100000⟩\t0.0883883476483185 + 0𝑖\n|01100010⟩\t0.0883883476483185 + 0𝑖\n|0110010100000000⟩\t0.0883883476483185 + 0𝑖\n|0110011100000000⟩\t0.0883883476483185 + 0𝑖\n|01101000⟩\t0.0883883476483185 + 0𝑖\n|01101010⟩\t0.0883883476483185 + 0𝑖\n|01101100⟩\t0.0883883476483185 + 0𝑖\n|01101110⟩\t0.0883883476483185 + 0𝑖\n|01110000⟩\t0.0883883476483185 + 0𝑖\n|0111001100000000⟩\t0.0883883476483185 + 0𝑖\n|01110100⟩\t0.0883883476483185 + 0𝑖\n|01110110⟩\t0.0883883476483185 + 0𝑖\n|01111000⟩\t0.0883883476483185 + 0𝑖\n|01111010⟩\t0.0883883476483185 + 0𝑖\n|01111100⟩\t0.0883883476483185 + 0𝑖\n|01111110⟩\t0.0883883476483185 + 0𝑖\n|10000000⟩\t0.0883883476483185 + 0𝑖\n|10000010⟩\t0.0883883476483185 + 0𝑖\n|10000100⟩\t0.0883883476483185 + 0𝑖\n|10000110⟩\t0.0883883476483185 + 0𝑖\n|10001000⟩\t0.0883883476483185 + 0𝑖\n|10001010⟩\t0.0883883476483185 + 0𝑖\n|10001100⟩\t0.0883883476483185 + 0𝑖\n|10001110⟩\t0.0883883476483185 + 0𝑖\n|1001000100000000⟩\t0.0883883476483185 + 0𝑖\n|1001001100000000⟩\t0.0883883476483185 + 0𝑖\n|1001010100000000⟩\t0.0883883476483185 + 0𝑖\n|1001011100000000⟩\t0.0883883476483185 + 0𝑖\n|1001100100000000⟩\t0.0883883476483185 + 0𝑖\n|1001101100000000⟩\t0.0883883476483185 + 0𝑖\n|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n|1001111100000000⟩\t0.0883883476483185 + 0𝑖\n|10100000⟩\t0.0883883476483185 + 0𝑖\n|10100010⟩\t0.0883883476483185 + 0𝑖\n|1010010100000000⟩\t0.0883883476483185 + 0𝑖\n|1010011100000000⟩\t0.0883883476483185 + 0𝑖\n|10101000⟩\t0.0883883476483185 + 0𝑖\n|10101010⟩\t0.0883883476483185 + 0𝑖\n|10101100⟩\t0.0883883476483185 + 0𝑖\n|10101110⟩\t0.0883883476483185 + 0𝑖\n|10110000⟩\t0.0883883476483185 + 0𝑖\n|1011001100000000⟩\t0.0883883476483185 + 0𝑖\n|10110100⟩\t0.0883883476483185 + 0𝑖\n|10110110⟩\t0.0883883476483185 + 0𝑖\n|10111000⟩\t0.0883883476483185 + 0𝑖\n|10111010⟩\t0.0883883476483185 + 0𝑖\n|10111100⟩\t0.0883883476483185 + 0𝑖\n|10111110⟩\t0.0883883476483185 + 0𝑖\n|11000000⟩\t0.0883883476483185 + 0𝑖\n|11000010⟩\t0.0883883476483185 + 0𝑖\n|11000100⟩\t0.0883883476483185 + 0𝑖\n|11000110⟩\t0.0883883476483185 + 0𝑖\n|1100100100000000⟩\t0.0883883476483185 + 0𝑖\n|1100101100000000⟩\t0.0883883476483185 + 0𝑖\n|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n|1100111100000000⟩\t0.0883883476483185 + 0𝑖\n|11010000⟩\t0.0883883476483185 + 0𝑖\n|1101001100000000⟩\t0.0883883476483185 + 0𝑖\n|11010100⟩\t0.0883883476483185 + 0𝑖\n|11010110⟩\t0.0883883476483185 + 0𝑖\n|11011000⟩\t0.0883883476483185 + 0𝑖\n|11011010⟩\t0.0883883476483185 + 0𝑖\n|11011100⟩\t0.0883883476483185 + 0𝑖\n|11011110⟩\t0.0883883476483185 + 0𝑖\n|11100000⟩\t0.0883883476483185 + 0𝑖\n|11100010⟩\t0.0883883476483185 + 0𝑖\n|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n|1110011100000000⟩\t0.0883883476483185 + 0𝑖\n|11101000⟩\t0.0883883476483185 + 0𝑖\n|11101010⟩\t0.0883883476483185 + 0𝑖\n|11101100⟩\t0.0883883476483185 + 0𝑖\n|11101110⟩\t0.0883883476483185 + 0𝑖\n|11110000⟩\t0.0883883476483185 + 0𝑖\n|1111001100000000⟩\t0.0883883476483185 + 0𝑖\n|11110100⟩\t0.0883883476483185 + 0𝑖\n|11110110⟩\t0.0883883476483185 + 0𝑖\n|11111000⟩\t0.0883883476483185 + 0𝑖\n|11111010⟩\t0.0883883476483185 + 0𝑖\n|11111100⟩\t0.0883883476483185 + 0𝑖\n|11111110⟩\t0.0883883476483185 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|00000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"24\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"25\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"30\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"31\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"43\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"46\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"47\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"48\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"54\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"55\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"59\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"60\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"61\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"62\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"63\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"86\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"87\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"91\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"92\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"93\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"94\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"95\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"107\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"108\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"109\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"110\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"111\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"117\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"118\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"119\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"120\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"123\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"124\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"125\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"126\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"127\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"128\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"147\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"159\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"165\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"166\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"170\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"171\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"174\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"175\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"176\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"182\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"183\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"187\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"188\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"189\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"190\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"191\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"200\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"201\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"202\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"203\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"204\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"205\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"207\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"211\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"215\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"218\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"219\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"223\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"228\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"229\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"231\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"234\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"235\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"236\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"237\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"238\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"239\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"242\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"243\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"244\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"245\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"246\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"247\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"248\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"249\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"250\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"251\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"252\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"253\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"254\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"255\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" + } + ], + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task7_ResourceEstimationWrapper, jobName=\"RE for the task 7\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 7\n Job ID: 120eae92-3cb6-4b9b-b602-31c3f675ec3d\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:26:01] Current job status: Executing\n[14:26:06] Current job status: Succeeded\n" + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 155,\n 'cczCount': 31,\n 'measurementCount': 155,\n 'numQubits': 13,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 713,\n 'algorithmicLogicalQubits': 38,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 713,\n 'numTfactories': 12,\n 'numTfactoryRuns': 62,\n 'numTsPerRotation': None,\n 'numTstates': 744,\n 'physicalQubitsForAlgorithm': 12844,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 1.845427031815162e-08,\n 'requiredLogicalTstateErrorRate': 6.720430107526882e-07},\n 'physicalQubits': 129004,\n 'runtime': 3707600},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '1.85e-8',\n 'requiredLogicalTstateErrorRate': '6.72e-7',\n 'runtime': '3ms 707us 600ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{744\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 3ms 707us 600ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000001845427031815162)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits129004\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime3ms 707us 600ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits38\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n\r\n
Algorithmic depth713\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth713\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states744\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{744\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 3ms 707us 600ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations62\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.

\n\r\n
Physical algorithmic qubits12844\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate1.85e-8\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.

\n\r\n
Required logical T state error rate6.72e-7\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000001845427031815162)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)13\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates31\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates155\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations155\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":155,\"cczCount\":31,\"measurementCount\":155,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":713,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":713,\"numTfactories\":12,\"numTfactoryRuns\":62,\"numTsPerRotation\":null,\"numTstates\":744,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":1.845427031815162E-08,\"requiredLogicalTstateErrorRate\":6.720430107526882E-07},\"physicalQubits\":129004,\"runtime\":3707600},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"1.85e-8\",\"requiredLogicalTstateErrorRate\":\"6.72e-7\",\"runtime\":\"3ms 707us 600ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{744\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 3ms 707us 600ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000001845427031815162)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 38\nAlgorithmic depth = 713\nScore = 27094\n" + }, + { + "output_type": "execute_result", + "execution_count": 11, + "data": { + "text/plain": "27094" + }, + "metadata": {} + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/iQuHack-challenge-2023-task8.ipynb b/iQuHack-challenge-2023-task8.ipynb new file mode 100644 index 0000000..de16d98 --- /dev/null +++ b/iQuHack-challenge-2023-task8.ipynb @@ -0,0 +1,526 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 8\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task8`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task8\"]\n", + "slack_id=\"U04L0TSC0LD\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task8_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task8_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 8 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 8. \n", + "// (input will contain 7 qubits)\n", + "operation Task8(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [15,23,27,29,30,31,39,43, 45,46,47,51,53,54,55,57, \n", + " 58,59,60,61,62,63,71,75, 77,78,79,83,85,86,87,89,\n", + " 90,91,92,93,94,95,99,101, 102,103,105,106,107,108,109,110,\n", + " 111,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task8_DumpMachineWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task8(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task8_ResourceEstimationWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task8(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task8_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|00000000⟩\t0.0883883476483185 + 0𝑖\n|00000010⟩\t0.0883883476483185 + 0𝑖\n|00000100⟩\t0.0883883476483185 + 0𝑖\n|00000110⟩\t0.0883883476483185 + 0𝑖\n|00001000⟩\t0.0883883476483185 + 0𝑖\n|00001010⟩\t0.0883883476483185 + 0𝑖\n|00001100⟩\t0.0883883476483185 + 0𝑖\n|00001110⟩\t0.0883883476483185 + 0𝑖\n|00010000⟩\t0.0883883476483185 + 0𝑖\n|00010010⟩\t0.0883883476483185 + 0𝑖\n|00010100⟩\t0.0883883476483185 + 0𝑖\n|00010110⟩\t0.0883883476483185 + 0𝑖\n|00011000⟩\t0.0883883476483185 + 0𝑖\n|00011010⟩\t0.0883883476483185 + 0𝑖\n|00011100⟩\t0.0883883476483185 + 0𝑖\n|0001111100000000⟩\t0.0883883476483185 + 0𝑖\n|00100000⟩\t0.0883883476483185 + 0𝑖\n|00100010⟩\t0.0883883476483185 + 0𝑖\n|00100100⟩\t0.0883883476483185 + 0𝑖\n|00100110⟩\t0.0883883476483185 + 0𝑖\n|00101000⟩\t0.0883883476483185 + 0𝑖\n|00101010⟩\t0.0883883476483185 + 0𝑖\n|00101100⟩\t0.0883883476483185 + 0𝑖\n|0010111100000000⟩\t0.0883883476483185 + 0𝑖\n|00110000⟩\t0.0883883476483185 + 0𝑖\n|00110010⟩\t0.0883883476483185 + 0𝑖\n|00110100⟩\t0.0883883476483185 + 0𝑖\n|0011011100000000⟩\t0.0883883476483185 + 0𝑖\n|00111000⟩\t0.0883883476483185 + 0𝑖\n|0011101100000000⟩\t0.0883883476483185 + 0𝑖\n|0011110100000000⟩\t0.0883883476483185 + 0𝑖\n|0011111100000000⟩\t0.0883883476483185 + 0𝑖\n|01000000⟩\t0.0883883476483185 + 0𝑖\n|01000010⟩\t0.0883883476483185 + 0𝑖\n|01000100⟩\t0.0883883476483185 + 0𝑖\n|01000110⟩\t0.0883883476483185 + 0𝑖\n|01001000⟩\t0.0883883476483185 + 0𝑖\n|01001010⟩\t0.0883883476483185 + 0𝑖\n|01001100⟩\t0.0883883476483185 + 0𝑖\n|0100111100000000⟩\t0.0883883476483185 + 0𝑖\n|01010000⟩\t0.0883883476483185 + 0𝑖\n|01010010⟩\t0.0883883476483185 + 0𝑖\n|01010100⟩\t0.0883883476483185 + 0𝑖\n|0101011100000000⟩\t0.0883883476483185 + 0𝑖\n|01011000⟩\t0.0883883476483185 + 0𝑖\n|0101101100000000⟩\t0.0883883476483185 + 0𝑖\n|0101110100000000⟩\t0.0883883476483185 + 0𝑖\n|0101111100000000⟩\t0.0883883476483185 + 0𝑖\n|01100000⟩\t0.0883883476483185 + 0𝑖\n|01100010⟩\t0.0883883476483185 + 0𝑖\n|01100100⟩\t0.0883883476483185 + 0𝑖\n|0110011100000000⟩\t0.0883883476483185 + 0𝑖\n|01101000⟩\t0.0883883476483185 + 0𝑖\n|0110101100000000⟩\t0.0883883476483185 + 0𝑖\n|0110110100000000⟩\t0.0883883476483185 + 0𝑖\n|0110111100000000⟩\t0.0883883476483185 + 0𝑖\n|01110000⟩\t0.0883883476483185 + 0𝑖\n|0111001100000000⟩\t0.0883883476483185 + 0𝑖\n|0111010100000000⟩\t0.0883883476483185 + 0𝑖\n|0111011100000000⟩\t0.0883883476483185 + 0𝑖\n|0111100100000000⟩\t0.0883883476483185 + 0𝑖\n|0111101100000000⟩\t0.0883883476483185 + 0𝑖\n|0111110100000000⟩\t0.0883883476483185 + 0𝑖\n|0111111100000000⟩\t0.0883883476483185 + 0𝑖\n|10000000⟩\t0.0883883476483185 + 0𝑖\n|10000010⟩\t0.0883883476483185 + 0𝑖\n|10000100⟩\t0.0883883476483185 + 0𝑖\n|10000110⟩\t0.0883883476483185 + 0𝑖\n|10001000⟩\t0.0883883476483185 + 0𝑖\n|10001010⟩\t0.0883883476483185 + 0𝑖\n|10001100⟩\t0.0883883476483185 + 0𝑖\n|1000111100000000⟩\t0.0883883476483185 + 0𝑖\n|10010000⟩\t0.0883883476483185 + 0𝑖\n|10010010⟩\t0.0883883476483185 + 0𝑖\n|10010100⟩\t0.0883883476483185 + 0𝑖\n|1001011100000000⟩\t0.0883883476483185 + 0𝑖\n|10011000⟩\t0.0883883476483185 + 0𝑖\n|1001101100000000⟩\t0.0883883476483185 + 0𝑖\n|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n|1001111100000000⟩\t0.0883883476483185 + 0𝑖\n|10100000⟩\t0.0883883476483185 + 0𝑖\n|10100010⟩\t0.0883883476483185 + 0𝑖\n|10100100⟩\t0.0883883476483185 + 0𝑖\n|1010011100000000⟩\t0.0883883476483185 + 0𝑖\n|10101000⟩\t0.0883883476483185 + 0𝑖\n|1010101100000000⟩\t0.0883883476483185 + 0𝑖\n|1010110100000000⟩\t0.0883883476483185 + 0𝑖\n|1010111100000000⟩\t0.0883883476483185 + 0𝑖\n|10110000⟩\t0.0883883476483185 + 0𝑖\n|1011001100000000⟩\t0.0883883476483185 + 0𝑖\n|1011010100000000⟩\t0.0883883476483185 + 0𝑖\n|1011011100000000⟩\t0.0883883476483185 + 0𝑖\n|1011100100000000⟩\t0.0883883476483185 + 0𝑖\n|1011101100000000⟩\t0.0883883476483185 + 0𝑖\n|1011110100000000⟩\t0.0883883476483185 + 0𝑖\n|1011111100000000⟩\t0.0883883476483185 + 0𝑖\n|11000000⟩\t0.0883883476483185 + 0𝑖\n|11000010⟩\t0.0883883476483185 + 0𝑖\n|11000100⟩\t0.0883883476483185 + 0𝑖\n|1100011100000000⟩\t0.0883883476483185 + 0𝑖\n|11001000⟩\t0.0883883476483185 + 0𝑖\n|1100101100000000⟩\t0.0883883476483185 + 0𝑖\n|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n|1100111100000000⟩\t0.0883883476483185 + 0𝑖\n|11010000⟩\t0.0883883476483185 + 0𝑖\n|1101001100000000⟩\t0.0883883476483185 + 0𝑖\n|1101010100000000⟩\t0.0883883476483185 + 0𝑖\n|1101011100000000⟩\t0.0883883476483185 + 0𝑖\n|1101100100000000⟩\t0.0883883476483185 + 0𝑖\n|1101101100000000⟩\t0.0883883476483185 + 0𝑖\n|1101110100000000⟩\t0.0883883476483185 + 0𝑖\n|1101111100000000⟩\t0.0883883476483185 + 0𝑖\n|11100000⟩\t0.0883883476483185 + 0𝑖\n|1110001100000000⟩\t0.0883883476483185 + 0𝑖\n|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n|1110011100000000⟩\t0.0883883476483185 + 0𝑖\n|1110100100000000⟩\t0.0883883476483185 + 0𝑖\n|1110101100000000⟩\t0.0883883476483185 + 0𝑖\n|1110110100000000⟩\t0.0883883476483185 + 0𝑖\n|1110111100000000⟩\t0.0883883476483185 + 0𝑖\n|1111000100000000⟩\t0.0883883476483185 + 0𝑖\n|1111001100000000⟩\t0.0883883476483185 + 0𝑖\n|1111010100000000⟩\t0.0883883476483185 + 0𝑖\n|1111011100000000⟩\t0.0883883476483185 + 0𝑖\n|1111100100000000⟩\t0.0883883476483185 + 0𝑖\n|1111101100000000⟩\t0.0883883476483185 + 0𝑖\n|1111110100000000⟩\t0.0883883476483185 + 0𝑖\n|1111111100000000⟩\t0.0883883476483185 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|00000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1000111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"19\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"24\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"25\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"31\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"37\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"38\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"42\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"43\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"47\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"48\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"59\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"72\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"73\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"74\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"86\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"91\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"109\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"128\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"147\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"158\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"159\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"165\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"166\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"170\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"171\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"174\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"175\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"176\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"182\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"183\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"187\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"188\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"189\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"190\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"191\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"200\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"201\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"202\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"203\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"204\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"205\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"207\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"211\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"214\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"215\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"218\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"219\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"220\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"221\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"222\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"223\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"228\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"229\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"231\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"234\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"235\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"236\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"237\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"238\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"239\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"242\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"243\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"244\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"245\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"246\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"247\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"248\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"249\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"250\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"251\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"252\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"253\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"254\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"255\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" + } + ], + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task8_ResourceEstimationWrapper, jobName=\"RE for the task 8\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task8_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 8\n Job ID: 642eb981-5774-4ad0-9c36-e396df5ab76f\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:29:47] Current job status: Executing\n[14:29:52] Current job status: Succeeded\n" + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 320,\n 'cczCount': 64,\n 'measurementCount': 320,\n 'numQubits': 13,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 1472,\n 'algorithmicLogicalQubits': 38,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 1472,\n 'numTfactories': 12,\n 'numTfactoryRuns': 128,\n 'numTsPerRotation': None,\n 'numTstates': 1536,\n 'physicalQubitsForAlgorithm': 12844,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 8.938787185354691e-09,\n 'requiredLogicalTstateErrorRate': 3.255208333333333e-07},\n 'physicalQubits': 129004,\n 'runtime': 7654400},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '8.94e-9',\n 'requiredLogicalTstateErrorRate': '3.26e-7',\n 'runtime': '7ms 654us 400ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{1536\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 7ms 654us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000008938787185354691)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits129004\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime7ms 654us 400ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits38\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n\r\n
Algorithmic depth1472\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth1472\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states1536\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{1536\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 7ms 654us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations128\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.

\n\r\n
Physical algorithmic qubits12844\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate8.94e-9\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.

\n\r\n
Required logical T state error rate3.26e-7\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000000008938787185354691)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)13\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates64\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates320\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations320\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":320,\"cczCount\":64,\"measurementCount\":320,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":1472,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":1472,\"numTfactories\":12,\"numTfactoryRuns\":128,\"numTsPerRotation\":null,\"numTstates\":1536,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":8.938787185354691E-09,\"requiredLogicalTstateErrorRate\":3.255208333333333E-07},\"physicalQubits\":129004,\"runtime\":7654400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"8.94e-9\",\"requiredLogicalTstateErrorRate\":\"3.26e-7\",\"runtime\":\"7ms 654us 400ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{1536\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 7ms 654us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000008938787185354691)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 38\nAlgorithmic depth = 1472\nScore = 55936\n" + }, + { + "output_type": "execute_result", + "execution_count": 11, + "data": { + "text/plain": "55936" + }, + "metadata": {} + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/iQuHack-challenge-2023-task9.ipynb b/iQuHack-challenge-2023-task9.ipynb new file mode 100644 index 0000000..196fe6a --- /dev/null +++ b/iQuHack-challenge-2023-task9.ipynb @@ -0,0 +1,8324 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 9\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task9`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", + " \"isDefault\": true,\n", + " \"managedByTenants\": [\n", + " {\n", + " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", + " },\n", + " {\n", + " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", + " },\n", + " {\n", + " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", + " }\n", + " ],\n", + " \"name\": \"Azure for Students\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"user\": {\n", + " \"name\": \"jyothsnakavala2003@gmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" + ] + } + ], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Quibitrons\" # Update this field with your team name\n", + "task=[\"task9\"]\n", + "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task9_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task9_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 9 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "// Task 9 \n", + "// (input will contain 7 qubits)\n", + "operation Task9(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " let N = Length(input);\n", + " for i in 0 .. N-1 {\n", + " ControlledOnInt(i, X)(input[0..N-1], target);\n", + " }\n", + "}\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task9_DumpMachineWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task9(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task9_ResourceEstimationWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task9(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7,8],\"n_qubits\":9,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"2\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"5\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"6\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"7\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"8\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"9\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"10\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"11\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"12\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"13\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"14\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"15\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"16\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"17\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"18\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"19\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"20\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"21\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"22\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"23\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"24\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"25\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"26\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"27\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"28\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"29\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"30\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"31\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"32\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"33\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"34\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"35\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"36\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"37\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"38\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"39\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"40\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"41\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"42\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"43\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"44\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"45\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"46\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"47\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"48\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"49\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"50\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"51\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"52\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"53\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"54\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"55\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"56\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"57\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"58\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"59\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"60\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"61\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"62\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"63\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"64\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"65\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"66\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"67\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"68\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"69\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"70\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"71\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"72\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"73\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"74\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"75\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"76\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"77\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"78\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"79\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"80\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"81\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"82\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"83\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"84\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"85\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"86\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"87\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"88\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"89\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"90\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"91\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"92\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"93\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"94\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"95\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"96\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"97\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"98\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"99\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"100\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"101\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"102\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"103\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"104\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"105\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"106\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"107\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"108\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"109\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"110\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"111\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"112\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"113\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"114\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"115\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"116\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"117\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"118\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"119\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"120\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"121\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"122\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"123\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"124\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"125\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"126\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"127\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"128\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"129\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"130\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"131\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"132\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"133\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"134\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"135\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"136\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"137\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"138\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"139\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"140\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"141\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"142\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"143\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"144\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"145\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"146\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"147\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"148\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"149\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"150\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"151\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"152\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"153\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"154\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"155\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"156\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"157\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"158\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"159\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"160\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"161\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"162\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"163\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"164\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"165\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"166\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"167\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"168\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"169\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"170\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"171\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"172\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"173\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"174\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"175\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"176\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"177\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"178\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"179\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"180\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"181\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"182\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"183\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"184\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"185\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"186\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"187\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"188\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"189\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"190\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"191\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"192\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"193\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"194\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"195\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"196\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"197\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"198\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"199\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"200\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"201\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"202\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"203\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"204\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"205\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"206\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"207\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"208\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"209\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"210\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"211\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"212\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"213\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"214\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"215\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"216\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"217\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"218\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"219\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"220\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"221\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"222\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"223\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"224\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"225\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"226\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"227\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"228\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"229\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"230\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"231\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"232\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"233\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"234\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"235\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"236\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"237\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"238\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"239\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"240\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"241\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"242\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"243\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"244\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"245\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"246\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"247\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"248\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"249\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"250\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"251\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"252\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"253\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"254\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"255\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"256\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"257\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"258\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"259\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"260\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"261\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"262\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"263\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"264\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"265\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"266\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"267\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"268\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"269\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"270\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"271\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"272\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"273\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"274\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"275\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"276\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"277\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"278\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"279\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"280\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"281\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"282\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"283\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"284\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"285\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"286\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"287\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"288\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"289\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"290\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"291\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"292\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"293\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"294\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"295\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"296\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"297\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"298\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"299\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"300\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"301\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"302\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"303\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"304\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"305\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"306\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"307\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"308\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"309\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"310\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"311\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"312\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"313\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"314\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"315\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"316\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"317\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"318\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"319\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"320\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"321\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"322\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"323\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"324\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"325\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"326\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"327\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"328\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"329\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"330\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"331\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"332\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"333\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"334\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"335\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"336\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"337\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"338\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"339\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"340\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"341\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"342\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"343\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"344\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"345\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"346\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"347\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"348\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"349\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"350\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"351\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"352\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"353\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"354\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"355\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"356\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"357\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"358\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"359\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"360\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"361\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"362\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"363\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"364\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"365\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"366\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"367\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"368\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"369\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"370\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"371\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"372\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"373\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"374\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"375\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"376\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"377\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"378\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"379\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"380\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"381\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"382\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"383\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"384\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"385\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"386\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"387\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"388\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"389\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"390\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"391\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"392\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"393\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"394\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"395\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"396\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"397\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"398\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"399\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"400\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"401\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"402\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"403\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"404\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"405\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"406\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"407\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"408\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"409\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"410\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"411\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"412\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"413\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"414\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"415\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"416\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"417\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"418\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"419\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"420\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"421\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"422\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"423\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"424\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"425\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"426\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"427\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"428\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"429\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"430\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"431\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"432\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"433\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"434\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"435\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"436\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"437\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"438\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"439\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"440\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"441\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"442\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"443\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"444\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"445\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"446\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"447\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"448\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"449\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"450\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"451\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"452\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"453\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"454\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"455\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"456\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"457\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"458\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"459\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"460\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"461\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"462\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"463\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"464\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"465\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"466\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"467\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"468\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"469\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"470\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"471\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"472\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"473\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"474\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"475\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"476\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"477\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"478\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"479\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"480\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"481\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"482\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"483\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"484\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"485\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"486\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"487\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"488\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"489\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"490\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"491\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"492\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"493\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"494\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"495\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"496\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"497\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"498\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"499\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"500\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"501\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"502\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"503\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"504\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"505\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"506\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"507\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"508\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"509\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"510\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"511\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7, 8
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|000000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000000100⟩\t0.06250000000000006 + 0𝑖\n", + "|000000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000001000⟩\t0.06250000000000006 + 0𝑖\n", + "|000001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000001100⟩\t0.06250000000000006 + 0𝑖\n", + "|000001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000010000⟩\t0.06250000000000006 + 0𝑖\n", + "|000010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000010100⟩\t0.06250000000000006 + 0𝑖\n", + "|000010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000011000⟩\t0.06250000000000006 + 0𝑖\n", + "|000011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000011100⟩\t0.06250000000000006 + 0𝑖\n", + "|000011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000100000⟩\t0.06250000000000006 + 0𝑖\n", + "|000100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000100100⟩\t0.06250000000000006 + 0𝑖\n", + "|000100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000101000⟩\t0.06250000000000006 + 0𝑖\n", + "|000101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000101100⟩\t0.06250000000000006 + 0𝑖\n", + "|000101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000110000⟩\t0.06250000000000006 + 0𝑖\n", + "|000110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000110100⟩\t0.06250000000000006 + 0𝑖\n", + "|000110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000111000⟩\t0.06250000000000006 + 0𝑖\n", + "|000111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000111100⟩\t0.06250000000000006 + 0𝑖\n", + "|000111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000100⟩\t0.06250000000000006 + 0𝑖\n", + "|001000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001001000⟩\t0.06250000000000006 + 0𝑖\n", + "|001001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001001100⟩\t0.06250000000000006 + 0𝑖\n", + "|001001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001010000⟩\t0.06250000000000006 + 0𝑖\n", + "|001010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001010100⟩\t0.06250000000000006 + 0𝑖\n", + "|001010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001011000⟩\t0.06250000000000006 + 0𝑖\n", + "|001011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001011100⟩\t0.06250000000000006 + 0𝑖\n", + "|001011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001100000⟩\t0.06250000000000006 + 0𝑖\n", + "|001100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001100100⟩\t0.06250000000000006 + 0𝑖\n", + "|001100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001101000⟩\t0.06250000000000006 + 0𝑖\n", + "|001101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001101100⟩\t0.06250000000000006 + 0𝑖\n", + "|001101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001110000⟩\t0.06250000000000006 + 0𝑖\n", + "|001110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001110100⟩\t0.06250000000000006 + 0𝑖\n", + "|001110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001111000⟩\t0.06250000000000006 + 0𝑖\n", + "|001111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001111100⟩\t0.06250000000000006 + 0𝑖\n", + "|001111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010000100⟩\t0.06250000000000006 + 0𝑖\n", + "|010000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010001000⟩\t0.06250000000000006 + 0𝑖\n", + "|010001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010001100⟩\t0.06250000000000006 + 0𝑖\n", + "|010001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010010000⟩\t0.06250000000000006 + 0𝑖\n", + "|010010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010010100⟩\t0.06250000000000006 + 0𝑖\n", + "|010010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010011000⟩\t0.06250000000000006 + 0𝑖\n", + "|010011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010011100⟩\t0.06250000000000006 + 0𝑖\n", + "|010011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010100000⟩\t0.06250000000000006 + 0𝑖\n", + "|010100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010100100⟩\t0.06250000000000006 + 0𝑖\n", + "|010100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010101000⟩\t0.06250000000000006 + 0𝑖\n", + "|010101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010101100⟩\t0.06250000000000006 + 0𝑖\n", + "|010101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010110000⟩\t0.06250000000000006 + 0𝑖\n", + "|010110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010110100⟩\t0.06250000000000006 + 0𝑖\n", + "|010110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010111000⟩\t0.06250000000000006 + 0𝑖\n", + "|010111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010111100⟩\t0.06250000000000006 + 0𝑖\n", + "|010111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011000100⟩\t0.06250000000000006 + 0𝑖\n", + "|011000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011001000⟩\t0.06250000000000006 + 0𝑖\n", + "|011001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011001100⟩\t0.06250000000000006 + 0𝑖\n", + "|011001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011010000⟩\t0.06250000000000006 + 0𝑖\n", + "|011010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011010100⟩\t0.06250000000000006 + 0𝑖\n", + "|011010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011011000⟩\t0.06250000000000006 + 0𝑖\n", + "|011011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011011100⟩\t0.06250000000000006 + 0𝑖\n", + "|011011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011100000⟩\t0.06250000000000006 + 0𝑖\n", + "|011100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011100100⟩\t0.06250000000000006 + 0𝑖\n", + "|011100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011101000⟩\t0.06250000000000006 + 0𝑖\n", + "|011101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011101100⟩\t0.06250000000000006 + 0𝑖\n", + "|011101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011110000⟩\t0.06250000000000006 + 0𝑖\n", + "|011110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011110100⟩\t0.06250000000000006 + 0𝑖\n", + "|011110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011111000⟩\t0.06250000000000006 + 0𝑖\n", + "|011111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011111100⟩\t0.06250000000000006 + 0𝑖\n", + "|011111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100000100⟩\t0.06250000000000006 + 0𝑖\n", + "|100000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100001000⟩\t0.06250000000000006 + 0𝑖\n", + "|100001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100001100⟩\t0.06250000000000006 + 0𝑖\n", + "|100001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100010000⟩\t0.06250000000000006 + 0𝑖\n", + "|100010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100010100⟩\t0.06250000000000006 + 0𝑖\n", + "|100010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100011000⟩\t0.06250000000000006 + 0𝑖\n", + "|100011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100011100⟩\t0.06250000000000006 + 0𝑖\n", + "|100011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100100000⟩\t0.06250000000000006 + 0𝑖\n", + "|100100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100100100⟩\t0.06250000000000006 + 0𝑖\n", + "|100100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100101000⟩\t0.06250000000000006 + 0𝑖\n", + "|100101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100101100⟩\t0.06250000000000006 + 0𝑖\n", + "|100101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100110000⟩\t0.06250000000000006 + 0𝑖\n", + "|100110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100110100⟩\t0.06250000000000006 + 0𝑖\n", + "|100110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100111000⟩\t0.06250000000000006 + 0𝑖\n", + "|100111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100111100⟩\t0.06250000000000006 + 0𝑖\n", + "|100111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101000100⟩\t0.06250000000000006 + 0𝑖\n", + "|101000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101001000⟩\t0.06250000000000006 + 0𝑖\n", + "|101001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101001100⟩\t0.06250000000000006 + 0𝑖\n", + "|101001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101010000⟩\t0.06250000000000006 + 0𝑖\n", + "|101010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101010100⟩\t0.06250000000000006 + 0𝑖\n", + "|101010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011100⟩\t0.06250000000000006 + 0𝑖\n", + "|101011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101100000⟩\t0.06250000000000006 + 0𝑖\n", + "|101100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101100100⟩\t0.06250000000000006 + 0𝑖\n", + "|101100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101101000⟩\t0.06250000000000006 + 0𝑖\n", + "|101101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101101100⟩\t0.06250000000000006 + 0𝑖\n", + "|101101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101110000⟩\t0.06250000000000006 + 0𝑖\n", + "|101110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101110100⟩\t0.06250000000000006 + 0𝑖\n", + "|101110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101111000⟩\t0.06250000000000006 + 0𝑖\n", + "|101111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101111100⟩\t0.06250000000000006 + 0𝑖\n", + "|101111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110000100⟩\t0.06250000000000006 + 0𝑖\n", + "|110000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110001000⟩\t0.06250000000000006 + 0𝑖\n", + "|110001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110001100⟩\t0.06250000000000006 + 0𝑖\n", + "|110001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110010000⟩\t0.06250000000000006 + 0𝑖\n", + "|110010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110010100⟩\t0.06250000000000006 + 0𝑖\n", + "|110010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110011000⟩\t0.06250000000000006 + 0𝑖\n", + "|110011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110011100⟩\t0.06250000000000006 + 0𝑖\n", + "|110011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110100000⟩\t0.06250000000000006 + 0𝑖\n", + "|110100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110100100⟩\t0.06250000000000006 + 0𝑖\n", + "|110100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110101000⟩\t0.06250000000000006 + 0𝑖\n", + "|110101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110101100⟩\t0.06250000000000006 + 0𝑖\n", + "|110101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110110000⟩\t0.06250000000000006 + 0𝑖\n", + "|110110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110110100⟩\t0.06250000000000006 + 0𝑖\n", + "|110110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110111000⟩\t0.06250000000000006 + 0𝑖\n", + "|110111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110111100⟩\t0.06250000000000006 + 0𝑖\n", + "|110111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111000100⟩\t0.06250000000000006 + 0𝑖\n", + "|111000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111001000⟩\t0.06250000000000006 + 0𝑖\n", + "|111001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111001100⟩\t0.06250000000000006 + 0𝑖\n", + "|111001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111010000⟩\t0.06250000000000006 + 0𝑖\n", + "|111010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111010100⟩\t0.06250000000000006 + 0𝑖\n", + "|111010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111011000⟩\t0.06250000000000006 + 0𝑖\n", + "|111011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111011100⟩\t0.06250000000000006 + 0𝑖\n", + "|111011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111100000⟩\t0.06250000000000006 + 0𝑖\n", + "|111100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111100100⟩\t0.06250000000000006 + 0𝑖\n", + "|111100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111101000⟩\t0.06250000000000006 + 0𝑖\n", + "|111101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111101100⟩\t0.06250000000000006 + 0𝑖\n", + "|111101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111110000⟩\t0.06250000000000006 + 0𝑖\n", + "|111110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111110100⟩\t0.06250000000000006 + 0𝑖\n", + "|111110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111111000⟩\t0.06250000000000006 + 0𝑖\n", + "|111111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111111100⟩\t0.06250000000000006 + 0𝑖\n", + "|111111110000000000⟩\t0.06250000000000006 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task9_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Azure.Identity.AzureCliCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181141},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 368938},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 202},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 167},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 202},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 167},\n", + " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"EAST US\")" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task9_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 9\n", + " Job ID: a157f2e4-4f9f-4bc8-b210-72a0ce1a9123\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[19:18:19] Current job status: Executing\n", + "[19:18:24] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task9_ResourceEstimationWrapper, jobName=\"RE for the task 9\")" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":48,\"cczCount\":8,\"measurementCount\":48,\"numQubits\":15,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":216,\"algorithmicLogicalQubits\":42,\"cliffordErrorRate\":0.001,\"logicalDepth\":216,\"numTfactories\":12,\"numTfactoryRuns\":19,\"numTsPerRotation\":null,\"numTstates\":224,\"physicalQubitsForAlgorithm\":10164,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":5.511463844797178E-08,\"requiredLogicalTstateErrorRate\":2.2321428571428573E-06},\"physicalQubits\":87924,\"runtime\":950400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"88.44 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"5.51e-8\",\"requiredLogicalTstateErrorRate\":\"2.23e-6\",\"runtime\":\"950us 400ns\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{224\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 950us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000005511463844797178)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits87924\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime950us 400ns\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical algorithmic qubits42\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 15\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 42$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth216\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth216\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states224\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{224\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 950us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations19\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.

\n", + "\r\n", + "
Physical algorithmic qubits10164\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits77760\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate5.51e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.

\n", + "\r\n", + "
Required logical T state error rate2.23e-6\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance11\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000005511463844797178)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits242\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time4us 400ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-8\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits6480\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime46us 800ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances9\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round6480\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round46us 800ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.17e-6\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical qubits (pre-layout)15\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates8\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates48\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations48\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\r\n", + "
\r\n", + " Assumptions\r\n", + "
    \r\n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \r\n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \r\n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \r\n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \r\n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \r\n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \r\n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \r\n", + "
\r\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 48,\n", + " 'cczCount': 8,\n", + " 'measurementCount': 48,\n", + " 'numQubits': 15,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 11,\n", + " 'logicalCycleTime': 4400.0,\n", + " 'logicalErrorRate': 3.000000000000002e-08,\n", + " 'physicalQubits': 242},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 216,\n", + " 'algorithmicLogicalQubits': 42,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 216,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 19,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 224,\n", + " 'physicalQubitsForAlgorithm': 10164,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 5.511463844797178e-08,\n", + " 'requiredLogicalTstateErrorRate': 2.2321428571428573e-06},\n", + " 'physicalQubits': 87924,\n", + " 'runtime': 950400},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '88.44 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '5.51e-8',\n", + " 'requiredLogicalTstateErrorRate': '2.23e-6',\n", + " 'runtime': '950us 400ns',\n", + " 'tfactoryRuntime': '46us 800ns',\n", + " 'tfactoryRuntimePerRound': '46us 800ns',\n", + " 'tstateLogicalErrorRate': '2.17e-6',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{224\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 950us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000005511463844797178)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 42\n", + "Algorithmic depth = 216\n", + "Score = 9072\n" + ] + }, + { + "data": { + "text/plain": [ + "9072" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From abb44ca5c87c85ccdf4bf00f3e7476a08cdfff29 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:38:51 +0530 Subject: [PATCH 11/27] Create sample.txt --- team_solutions/Qubitrons/sample.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 team_solutions/Qubitrons/sample.txt diff --git a/team_solutions/Qubitrons/sample.txt b/team_solutions/Qubitrons/sample.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/team_solutions/Qubitrons/sample.txt @@ -0,0 +1 @@ + From 887e0df450f755d58e47aa146d74ee20c2639d2b Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:41:20 +0530 Subject: [PATCH 12/27] Add files via upload --- team_solutions/Qubitrons/README.md | 78 + .../iQuHack-challenge-2023-task1.ipynb | 534 ++ .../iQuHack-challenge-2023-task2.ipynb | 545 ++ .../iQuHack-challenge-2023-task3.ipynb | 4995 ++++++++++ .../iQuHack-challenge-2023-task4.ipynb | 4995 ++++++++++ .../iQuHack-challenge-2023-task5.ipynb | 3271 +++++++ .../iQuHack-challenge-2023-task6.ipynb | 523 ++ .../iQuHack-challenge-2023-task7.ipynb | 523 ++ .../iQuHack-challenge-2023-task8.ipynb | 526 ++ .../iQuHack-challenge-2023-task9.ipynb | 8324 +++++++++++++++++ 10 files changed, 24314 insertions(+) create mode 100644 team_solutions/Qubitrons/README.md create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task1.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task2.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task5.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task6.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task7.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task8.ipynb create mode 100644 team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb diff --git a/team_solutions/Qubitrons/README.md b/team_solutions/Qubitrons/README.md new file mode 100644 index 0000000..58743d7 --- /dev/null +++ b/team_solutions/Qubitrons/README.md @@ -0,0 +1,78 @@ +# Welcome to the Microsoft Challenge @ MIT iQuHACK 2023! + +## Challenge overview + +In this challenge, you will explore optimizing quantum circuits, and more specficially - optimizing quantum oracles. +In each task, you'll be given a quantum oracle that implements a certain classical function (the classical function definition is not included in the task). +You'll need to rewrite the code so that it maintains its correctness, but requires as few resources as possible. + +## Working on the challenge + +* The challenge contains 9 independent tasks. Your team can work on each task independently; tasks are submitted and scored separately. +* You can work on the challenge using a local Quantum Development Kit setup, Azure Quantum hosted notebooks, or qBraid platform. +* You'll need to [create an Azure account and an Azure Quantum workspace](https://aka.ms/iQuHack2023/AQJobSubmit) to evaluate the resources used by your solution, regardless of the platform you're using. +* To work on each task, use the Jupyter notebooks iQuHack-challenge-2023-taskX.ipynb. Each notebook contains the step-by-step instructions for working on the task, including the code that helps you evaluate your solution. +* **You will submit the tasks for challenge using qBraid platform.** + Each task submission is evaluated automatically in two steps. + 1. First, the task correctness is checked by verifying that your code acts the same as the original oracle implementation. If your solution doesn't compile, throws a runtime error, or acts differently from the original oracle implementation, this submission will be ignored. + 2. Second, if the task is logically correct, its resource consumption is evaluated. For this, we submit a resource estimation job for your code, and calculate your score as **(logical algorithmic qubits) * (algorithmic depth)** (see [resource estimation documentation](https://learn.microsoft.com/en-us/azure/quantum/learn-how-the-resource-estimator-works#algorithmic-logical-estimation), [introductory workshop](https://www.twitch.tv/videos/1718264700) or resource estimation samples for the meaning of these parameters). + 3. Your goal is to minimize your score for each task. Your aggregate score in the scoreboard is a sum of ratios (your score for the task) / (the score of the initial oracle implementation for the task) for all tasks. + + +### Tips and tricks for optimizing your quantum programs + +**The score is defined as a product: (logical algorithmic qubits) * (algorithmic depth)** + +* The number of logical qubits after mapping scales proportional to the number of qubits in the circuit. Therefore, reducing the qubits in the circuit always helps, unless it leads to an increase in operations. +* The number of logical cycles depend on the number of Toffoli gates (translated to CCZ), T gates, single-qubit measurements (which you will not be using in this challenge), and rotation gates. Clifford operations do not increase logical cycles. +* Rotation gates are the most expensive ones and should be avoided when possible! (For this challenge, you should be able to avoid them completely, using only reversible computation) +* Multiple-controlled X gates (multiple-controlled Toffoli gates) are decomposed by the resource estimator. The number of cycles is 3 * (n - 1), where n >= 1 is the number of control qubits. +* The concrete formulas to determine the logical qubits and logical cycles (after mapping) from the input program is provided in the paper https://arxiv.org/pdf/2211.07629.pdf + * Number of logical qubits in (D1, page 29) + * Number of logical cycles in (D3, page 30) + + +## Working on qBraid and submitting the tasks +[](https://account.qbraid.com?gitHubUrl=https://github.com/iQuHACK/2023_microsoft.git) +1. If you're working on qBraid, first fork this repository and click the above `Launch on qBraid` button. It will take you to your qBraid Lab with the repository cloned. +2. Once cloned, open terminal (first icon in the **Other** column in Launcher) and `cd` into this repo. Set the repo's remote origin using the git clone url you copied in Step 1, and then create a new branch for your team: +```bash +cd +git remote set-url origin +git branch +git checkout +``` +3. Use the environment manager (**ENVS** tab in the right sidebar) to activate the "Microsoft Q#". click **Activate** to [add a new ipykernel](https://qbraid-qbraid.readthedocs-hosted.com/en/latest/lab/kernels.html#add-remove-kernels) for "Microsoft Q#". + +image + + +4. From the **FILES** tab in the left sidebar, double-click on the `2023_Microsoft_Challenge` directory. + +5. You are now ready to begin hacking! Work with your team to complete the Microsoft Q# Challenge. + + +### qBraid Auto Grader Submission Process To Leaderboard: + +**PLEASE MAKE SURE TO DO THE FOLLOWING BEFORE YOU SUBMIT** + +- Your team name, task #, and a point person's slack name (just in case we need to reach out). +Once you have completed any of the tasks and have added the team name, task # and a point person's slack name, if you are confused). Please got to File (**File** on the top left of the topbar) and click on the `Share notebook` button. +スクリーンショット 2023-01-26 午後4 42 50 + +- Enter `rickyyoung@qbraid.com` and share the file. If it shares successfully, the email should dissapear. Ricky will periodically run the autograder and the leaderboard will be updated accordingly. + +- Then submit the remote project submission form that will show up on the iQuHACK website during the last 8 hours of hacking. The form will ask for a link to your repository and your team members (all of whom have to be remote iQuHACK participants to maintain elligibility). + +## Prizes + +Up to (3) teams with the highest team scores will be chosen as the winners of the Hackathon. +Each member of the winning teams will get a Surface 2 headset. + +## Resources + +* [Introduction to Azure Quantum workshop at MIT iQuHack](https://www.twitch.tv/videos/1718264700), Wednesday, January 25, 2023 +* [The Quantum Katas](https://github.com/Microsoft/QuantumKatas/) - a collection of tutorials and practice problems (chapters "Quantum Oracles and Simple Oracle Algorithms" and "Grover's search algorithm" are a good place to practice your work with marking oracles) +* [Getting started with the resources estimator service](https://learn.microsoft.com/en-us/azure/quantum/quickstart-microsoft-resources-estimator) +* [A deep dive in resource estimation](https://arxiv.org/pdf/2211.07629.pdf) +* [Azure Quantum and Microsoft Quantum Development Kit documentation](https://learn.microsoft.com/azure/quantum/) diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task1.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task1.ipynb new file mode 100644 index 0000000..ab8347a --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task1.ipynb @@ -0,0 +1,534 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 1\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task1`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "\u001b[93mA web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\u001b[0m\n[\n {\n \"cloudName\": \"AzureCloud\",\n \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n \"isDefault\": true,\n \"managedByTenants\": [\n {\n \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n },\n {\n \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n },\n {\n \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n }\n ],\n \"name\": \"Azure for Students\",\n \"state\": \"Enabled\",\n \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"user\": {\n \"name\": \"190050110@kluniversity.in\",\n \"type\": \"user\"\n }\n }\n]\n" + } + ], + "execution_count": 22, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure\n", + "print(\"imported qsharp and azure\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n.imported qsharp and azure\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task1\"]\n", + "slack_id=\"U04JME14R2B\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task1_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task1_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 1 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 1. Warm up with simple bit manipulation\n", + "// (input will contain 3 qubits)\n", + "operation Task1(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " let N = Length(input);\n", + " use aux = Qubit[N - 1];\n", + " within {\n", + " for i in 0 .. N - 2 {\n", + " CNOT(input[i], aux[i]);\n", + " CNOT(input[i + 1], aux[i]);\n", + " }\n", + " } apply {\n", + " Controlled X(aux, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task1_DumpMachineWrapper() : Unit {\n", + " let N = 3;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task1(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task1_ResourceEstimationWrapper() : Unit {\n", + " let N = 3;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task1(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task1_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|0000⟩\t0.35355339059327384 + 0𝑖\n|0001⟩\t0 + 0𝑖\n|0010⟩\t0.35355339059327384 + 0𝑖\n|0011⟩\t0 + 0𝑖\n|0100⟩\t0 + 0𝑖\n|0101⟩\t0.35355339059327384 + 0𝑖\n|0110⟩\t0.35355339059327384 + 0𝑖\n|0111⟩\t0 + 0𝑖\n|1000⟩\t0.35355339059327384 + 0𝑖\n|1001⟩\t0 + 0𝑖\n|1010⟩\t0 + 0𝑖\n|1011⟩\t0.35355339059327384 + 0𝑖\n|1100⟩\t0.35355339059327384 + 0𝑖\n|1101⟩\t0 + 0𝑖\n|1110⟩\t0.35355339059327384 + 0𝑖\n|1111⟩\t0 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1000\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3],\"n_qubits\":4,\"amplitudes\":{\"0\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"1\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"2\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"3\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"4\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"5\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"6\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"7\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"8\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"13\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 8, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 8, + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + }, + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181452},\n {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 305540},\n {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 129},\n {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 129},\n {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 10, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task1_ResourceEstimationWrapper, jobName=\"RE for the task 1\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task1_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 1\n Job ID: 29e64fba-c09c-4841-8a5d-f40b1310137d\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[13:40:15] Current job status: Executing\n[13:40:20] Current job status: Succeeded\n" + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 12, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 0,\n 'cczCount': 1,\n 'measurementCount': 0,\n 'numQubits': 6,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 9,\n 'logicalCycleTime': 3600.0,\n 'logicalErrorRate': 3.0000000000000015e-07,\n 'physicalQubits': 162},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 3,\n 'algorithmicLogicalQubits': 20,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 13,\n 'numTfactories': 4,\n 'numTfactoryRuns': 1,\n 'numTsPerRotation': None,\n 'numTstates': 4,\n 'physicalQubitsForAlgorithm': 3240,\n 'physicalQubitsForTfactories': 15680,\n 'requiredLogicalQubitErrorRate': 1.923076923076923e-06,\n 'requiredLogicalTstateErrorRate': 0.000125},\n 'physicalQubits': 18920,\n 'runtime': 46800},\n 'physicalCountsFormatted': {'codeDistancePerRound': '7',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '3us 600ns',\n 'logicalErrorRate': '3.00e-7',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '82.88 %',\n 'physicalQubitsPerRound': '3920',\n 'requiredLogicalQubitErrorRate': '1.92e-6',\n 'requiredLogicalTstateErrorRate': '1.25e-4',\n 'runtime': '46us 800ns',\n 'tfactoryRuntime': '36us 400ns',\n 'tfactoryRuntimePerRound': '36us 400ns',\n 'tstateLogicalErrorRate': '2.13e-5',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 6$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 20$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 4 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{4\\\\;\\\\text{T states} \\\\cdot 36us 400ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 46us 800ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\\\cdot 4$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000001923076923076923)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{9 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 3us 600ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 162.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [7],\n 'logicalErrorRate': 2.133500000000001e-05,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 3920,\n 'physicalQubitsPerRound': [3920],\n 'runtime': 36400.0,\n 'runtimePerRound': [36400.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits18920\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime46us 800ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits20\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 6\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 20$ logical qubits.

\n\r\n
Algorithmic depth3\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth13\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states4\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories4\r\n

Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 4 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{4\\;\\text{T states} \\cdot 36us 400ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 46us 800ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations1\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.

\n\r\n
Physical algorithmic qubits3240\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits15680\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\cdot 4$ qubits.

\n\r\n
Required logical qubit error rate1.92e-6\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.

\n\r\n
Required logical T state error rate1.25e-4\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance9\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000001923076923076923)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits162\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time3us 600ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-7\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{9 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 3us 600ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 162.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits3920\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime36us 400ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances7\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round3920\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round36us 400ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.13e-5\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)6\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates1\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates0\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations0\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":0,\"cczCount\":1,\"measurementCount\":0,\"numQubits\":6,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":3,\"algorithmicLogicalQubits\":20,\"cliffordErrorRate\":0.001,\"logicalDepth\":13,\"numTfactories\":4,\"numTfactoryRuns\":1,\"numTsPerRotation\":null,\"numTstates\":4,\"physicalQubitsForAlgorithm\":3240,\"physicalQubitsForTfactories\":15680,\"requiredLogicalQubitErrorRate\":1.923076923076923E-06,\"requiredLogicalTstateErrorRate\":0.000125},\"physicalQubits\":18920,\"runtime\":46800},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"7\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"3us 600ns\",\"logicalErrorRate\":\"3.00e-7\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"82.88 %\",\"physicalQubitsPerRound\":\"3920\",\"requiredLogicalQubitErrorRate\":\"1.92e-6\",\"requiredLogicalTstateErrorRate\":\"1.25e-4\",\"runtime\":\"46us 800ns\",\"tfactoryRuntime\":\"36us 400ns\",\"tfactoryRuntimePerRound\":\"36us 400ns\",\"tstateLogicalErrorRate\":\"2.13e-5\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 6$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 20$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 4 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{4\\\\;\\\\text{T states} \\\\cdot 36us 400ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 46us 800ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\\\cdot 4$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000001923076923076923)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{9 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 3us 600ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 162.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[7],\"logicalErrorRate\":2.133500000000001E-05,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":3920,\"physicalQubitsPerRound\":[3920],\"runtime\":36400.0,\"runtimePerRound\":[36400.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 12, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 13, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 20\nAlgorithmic depth = 3\nScore = 60\n" + }, + { + "output_type": "execute_result", + "execution_count": 14, + "data": { + "text/plain": "60" + }, + "metadata": {} + } + ], + "execution_count": 14, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task2.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task2.ipynb new file mode 100644 index 0000000..a81f723 --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task2.ipynb @@ -0,0 +1,545 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 2\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task2`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "\u001b[93mA web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\u001b[0m\n[\n {\n \"cloudName\": \"AzureCloud\",\n \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n \"isDefault\": true,\n \"managedByTenants\": [\n {\n \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n },\n {\n \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n },\n {\n \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n }\n ],\n \"name\": \"Azure for Students\",\n \"state\": \"Enabled\",\n \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"user\": {\n \"name\": \"190050110@kluniversity.in\",\n \"type\": \"user\"\n }\n }\n]\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task2\"]\n", + "slack_id=\"U04JME14R2B\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task2_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task2_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 2 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 2. Celebrate MIT iQuHack!\n", + "// (input will contain 5 qubits)\n", + "operation Task2(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " ControlledOnInt(13, X)(input, target); // M\n", + " ControlledOnInt( 9, X)(input, target); // I\n", + " ControlledOnInt(20, X)(input, target); // T\n", + "\n", + " ControlledOnInt( 9, X)(input, target); // I\n", + " ControlledOnInt(17, X)(input, target); // Q\n", + " ControlledOnInt(21, X)(input, target); // U\n", + " ControlledOnInt( 8, X)(input, target); // H\n", + " ControlledOnInt( 1, X)(input, target); // A\n", + " ControlledOnInt( 3, X)(input, target); // C\n", + " ControlledOnInt(11, X)(input, target); // K\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task2_DumpMachineWrapper() : Unit {\n", + " let N = 5;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task2(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task2_ResourceEstimationWrapper() : Unit {\n", + " let N = 5;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task2(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task2_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|000000⟩\t0.17677669529663698 + 0𝑖\n|000001⟩\t0 + 0𝑖\n|000010⟩\t0.17677669529663698 + 0𝑖\n|000011⟩\t0 + 0𝑖\n|000100⟩\t0 + 0𝑖\n|000101⟩\t0.17677669529663698 + 0𝑖\n|000110⟩\t0.17677669529663698 + 0𝑖\n|000111⟩\t0 + 0𝑖\n|001000⟩\t0.17677669529663698 + 0𝑖\n|001001⟩\t0 + 0𝑖\n|001010⟩\t0 + 0𝑖\n|001011⟩\t0.17677669529663698 + 0𝑖\n|001100⟩\t0.17677669529663698 + 0𝑖\n|001101⟩\t0 + 0𝑖\n|001110⟩\t0.17677669529663698 + 0𝑖\n|001111⟩\t0 + 0𝑖\n|010000⟩\t0.17677669529663698 + 0𝑖\n|010001⟩\t0 + 0𝑖\n|010010⟩\t0.17677669529663698 + 0𝑖\n|010011⟩\t0 + 0𝑖\n|010100⟩\t0.17677669529663698 + 0𝑖\n|010101⟩\t0 + 0𝑖\n|010110⟩\t0.17677669529663698 + 0𝑖\n|010111⟩\t0 + 0𝑖\n|011000⟩\t0.17677669529663698 + 0𝑖\n|011001⟩\t0 + 0𝑖\n|011010⟩\t0.17677669529663698 + 0𝑖\n|011011⟩\t0 + 0𝑖\n|011100⟩\t0.17677669529663698 + 0𝑖\n|011101⟩\t0 + 0𝑖\n|011110⟩\t0.17677669529663698 + 0𝑖\n|011111⟩\t0 + 0𝑖\n|100000⟩\t0 + 0𝑖\n|100001⟩\t0.17677669529663698 + 0𝑖\n|100010⟩\t0 + 0𝑖\n|100011⟩\t0.17677669529663698 + 0𝑖\n|100100⟩\t0.17677669529663698 + 0𝑖\n|100101⟩\t0 + 0𝑖\n|100110⟩\t0.17677669529663698 + 0𝑖\n|100111⟩\t0 + 0𝑖\n|101000⟩\t0.17677669529663698 + 0𝑖\n|101001⟩\t0 + 0𝑖\n|101010⟩\t0 + 0𝑖\n|101011⟩\t0.17677669529663698 + 0𝑖\n|101100⟩\t0 + 0𝑖\n|101101⟩\t0.17677669529663698 + 0𝑖\n|101110⟩\t0.17677669529663698 + 0𝑖\n|101111⟩\t0 + 0𝑖\n|110000⟩\t0 + 0𝑖\n|110001⟩\t0.17677669529663698 + 0𝑖\n|110010⟩\t0.17677669529663698 + 0𝑖\n|110011⟩\t0 + 0𝑖\n|110100⟩\t0 + 0𝑖\n|110101⟩\t0.17677669529663698 + 0𝑖\n|110110⟩\t0.17677669529663698 + 0𝑖\n|110111⟩\t0 + 0𝑖\n|111000⟩\t0.17677669529663698 + 0𝑖\n|111001⟩\t0 + 0𝑖\n|111010⟩\t0.17677669529663698 + 0𝑖\n|111011⟩\t0 + 0𝑖\n|111100⟩\t0.17677669529663698 + 0𝑖\n|111101⟩\t0 + 0𝑖\n|111110⟩\t0.17677669529663698 + 0𝑖\n|111111⟩\t0 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5],\"n_qubits\":6,\"amplitudes\":{\"0\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"1\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"2\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"5\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"6\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"7\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"8\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"9\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"10\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"13\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"14\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"15\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"16\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"17\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"18\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"19\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"20\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"23\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"24\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"25\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"26\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"27\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"28\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"29\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"30\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"31\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"32\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"33\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"34\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"35\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"44\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"45\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"46\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"47\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"48\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"49\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"53\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"56\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"59\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181491},\n {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 426924},\n {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 90},\n {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 167},\n {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 90},\n {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 167},\n {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 8, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task2_ResourceEstimationWrapper, jobName=\"RE for the task 2\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task2_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 2\n Job ID: d91a9afc-24cf-4c3b-adfe-0d03f8f277ac\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[13:30:22] Current job status: Executing\n[13:30:27] Current job status: Succeeded\n" + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 10, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 30,\n 'cczCount': 10,\n 'measurementCount': 30,\n 'numQubits': 9,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 11,\n 'logicalCycleTime': 4400.0,\n 'logicalErrorRate': 3.000000000000002e-08,\n 'physicalQubits': 242},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 150,\n 'algorithmicLogicalQubits': 28,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 150,\n 'numTfactories': 12,\n 'numTfactoryRuns': 14,\n 'numTsPerRotation': None,\n 'numTstates': 160,\n 'physicalQubitsForAlgorithm': 6776,\n 'physicalQubitsForTfactories': 77760,\n 'requiredLogicalQubitErrorRate': 1.1904761904761904e-07,\n 'requiredLogicalTstateErrorRate': 3.125e-06},\n 'physicalQubits': 84536,\n 'runtime': 660000},\n 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '4us 400ns',\n 'logicalErrorRate': '3.00e-8',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '91.98 %',\n 'physicalQubitsPerRound': '6480',\n 'requiredLogicalQubitErrorRate': '1.19e-7',\n 'requiredLogicalTstateErrorRate': '3.13e-6',\n 'runtime': '660us',\n 'tfactoryRuntime': '46us 800ns',\n 'tfactoryRuntimePerRound': '46us 800ns',\n 'tstateLogicalErrorRate': '2.17e-6',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 9$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 28$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{160\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 660us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000011904761904761904)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [9],\n 'logicalErrorRate': 2.165000000000001e-06,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 6480,\n 'physicalQubitsPerRound': [6480],\n 'runtime': 46800.0,\n 'runtimePerRound': [46800.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits84536\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime660us\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits28\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 9\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 28$ logical qubits.

\n\r\n
Algorithmic depth150\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth150\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states160\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{160\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 660us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations14\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.

\n\r\n
Physical algorithmic qubits6776\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits77760\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate1.19e-7\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.

\n\r\n
Required logical T state error rate3.13e-6\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance11\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000011904761904761904)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits242\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time4us 400ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-8\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits6480\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime46us 800ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances9\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round6480\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round46us 800ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.17e-6\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)9\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates10\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates30\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations30\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":30,\"cczCount\":10,\"measurementCount\":30,\"numQubits\":9,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":150,\"algorithmicLogicalQubits\":28,\"cliffordErrorRate\":0.001,\"logicalDepth\":150,\"numTfactories\":12,\"numTfactoryRuns\":14,\"numTsPerRotation\":null,\"numTstates\":160,\"physicalQubitsForAlgorithm\":6776,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.1904761904761904E-07,\"requiredLogicalTstateErrorRate\":3.125E-06},\"physicalQubits\":84536,\"runtime\":660000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"91.98 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.19e-7\",\"requiredLogicalTstateErrorRate\":\"3.13e-6\",\"runtime\":\"660us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 9$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 28$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{160\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 660us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000011904761904761904)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 28\nAlgorithmic depth = 150\nScore = 4200\n" + }, + { + "output_type": "execute_result", + "execution_count": 12, + "data": { + "text/plain": "4200" + }, + "metadata": {} + } + ], + "execution_count": 12, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb new file mode 100644 index 0000000..5681c60 --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb @@ -0,0 +1,4995 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 3\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task3`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", + " \"isDefault\": true,\n", + " \"managedByTenants\": [\n", + " {\n", + " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", + " },\n", + " {\n", + " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", + " },\n", + " {\n", + " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", + " }\n", + " ],\n", + " \"name\": \"Azure for Students\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"user\": {\n", + " \"name\": \"jyothsnakavala2003@gmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" + ] + } + ], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Quibitrons\" # Update this field with your team name\n", + "task=[\"task3\"]\n", + "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task3_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task3_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 3 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 3. \n", + "// (input will contain 6 qubits)\n", + "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [7, 11, 14, 22, 26, 38, 41, 44, 50, 56] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task3_DumpMachineWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task3(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task3_ResourceEstimationWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task3(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6],\"n_qubits\":7,\"amplitudes\":{\"0\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"1\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"2\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"3\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"4\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"5\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"6\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"7\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"8\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"9\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"10\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"13\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"15\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"16\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"17\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"18\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"19\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"20\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"21\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"22\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"23\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"24\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"25\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"26\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"27\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"28\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"29\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"30\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"31\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"32\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"33\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"34\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"35\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"36\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"37\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"40\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"43\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"44\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"45\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"46\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"47\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"48\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"49\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"52\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"53\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"54\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"55\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"56\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"57\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"58\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"59\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"60\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"61\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"62\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"63\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"64\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"65\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"66\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"67\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"68\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"69\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"70\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"71\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"81\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"82\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"85\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"86\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"91\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"97\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"98\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"105\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"106\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"109\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001110\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100110\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101100\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110100\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000000⟩\t0.12500000000000008 + 0𝑖\n", + "|0000001⟩\t0 + 0𝑖\n", + "|0000010⟩\t0.12500000000000008 + 0𝑖\n", + "|0000011⟩\t0 + 0𝑖\n", + "|0000100⟩\t0.12500000000000008 + 0𝑖\n", + "|0000101⟩\t0 + 0𝑖\n", + "|0000110⟩\t0.12500000000000008 + 0𝑖\n", + "|0000111⟩\t0 + 0𝑖\n", + "|0001000⟩\t0.12500000000000008 + 0𝑖\n", + "|0001001⟩\t0 + 0𝑖\n", + "|0001010⟩\t0.12500000000000008 + 0𝑖\n", + "|0001011⟩\t0 + 0𝑖\n", + "|0001100⟩\t0.12500000000000008 + 0𝑖\n", + "|0001101⟩\t0 + 0𝑖\n", + "|0001110⟩\t0 + 0𝑖\n", + "|0001111⟩\t0.12500000000000008 + 0𝑖\n", + "|0010000⟩\t0.12500000000000008 + 0𝑖\n", + "|0010001⟩\t0 + 0𝑖\n", + "|0010010⟩\t0.12500000000000008 + 0𝑖\n", + "|0010011⟩\t0 + 0𝑖\n", + "|0010100⟩\t0.12500000000000008 + 0𝑖\n", + "|0010101⟩\t0 + 0𝑖\n", + "|0010110⟩\t0.12500000000000008 + 0𝑖\n", + "|0010111⟩\t0 + 0𝑖\n", + "|0011000⟩\t0.12500000000000008 + 0𝑖\n", + "|0011001⟩\t0 + 0𝑖\n", + "|0011010⟩\t0 + 0𝑖\n", + "|0011011⟩\t0.12500000000000008 + 0𝑖\n", + "|0011100⟩\t0.12500000000000008 + 0𝑖\n", + "|0011101⟩\t0 + 0𝑖\n", + "|0011110⟩\t0.12500000000000008 + 0𝑖\n", + "|0011111⟩\t0 + 0𝑖\n", + "|0100000⟩\t0.12500000000000008 + 0𝑖\n", + "|0100001⟩\t0 + 0𝑖\n", + "|0100010⟩\t0.12500000000000008 + 0𝑖\n", + "|0100011⟩\t0 + 0𝑖\n", + "|0100100⟩\t0.12500000000000008 + 0𝑖\n", + "|0100101⟩\t0 + 0𝑖\n", + "|0100110⟩\t0 + 0𝑖\n", + "|0100111⟩\t0.12500000000000008 + 0𝑖\n", + "|0101000⟩\t0.12500000000000008 + 0𝑖\n", + "|0101001⟩\t0 + 0𝑖\n", + "|0101010⟩\t0.12500000000000008 + 0𝑖\n", + "|0101011⟩\t0 + 0𝑖\n", + "|0101100⟩\t0 + 0𝑖\n", + "|0101101⟩\t0.12500000000000008 + 0𝑖\n", + "|0101110⟩\t0.12500000000000008 + 0𝑖\n", + "|0101111⟩\t0 + 0𝑖\n", + "|0110000⟩\t0.12500000000000008 + 0𝑖\n", + "|0110001⟩\t0 + 0𝑖\n", + "|0110010⟩\t0 + 0𝑖\n", + "|0110011⟩\t0.12500000000000008 + 0𝑖\n", + "|0110100⟩\t0 + 0𝑖\n", + "|0110101⟩\t0.12500000000000008 + 0𝑖\n", + "|0110110⟩\t0.12500000000000008 + 0𝑖\n", + "|0110111⟩\t0 + 0𝑖\n", + "|0111000⟩\t0 + 0𝑖\n", + "|0111001⟩\t0.12500000000000008 + 0𝑖\n", + "|0111010⟩\t0.12500000000000008 + 0𝑖\n", + "|0111011⟩\t0 + 0𝑖\n", + "|0111100⟩\t0.12500000000000008 + 0𝑖\n", + "|0111101⟩\t0 + 0𝑖\n", + "|0111110⟩\t0.12500000000000008 + 0𝑖\n", + "|0111111⟩\t0 + 0𝑖\n", + "|1000000⟩\t0.12500000000000008 + 0𝑖\n", + "|1000001⟩\t0 + 0𝑖\n", + "|1000010⟩\t0.12500000000000008 + 0𝑖\n", + "|1000011⟩\t0 + 0𝑖\n", + "|1000100⟩\t0.12500000000000008 + 0𝑖\n", + "|1000101⟩\t0 + 0𝑖\n", + "|1000110⟩\t0.12500000000000008 + 0𝑖\n", + "|1000111⟩\t0 + 0𝑖\n", + "|1001000⟩\t0.12500000000000008 + 0𝑖\n", + "|1001001⟩\t0 + 0𝑖\n", + "|1001010⟩\t0 + 0𝑖\n", + "|1001011⟩\t0.12500000000000008 + 0𝑖\n", + "|1001100⟩\t0.12500000000000008 + 0𝑖\n", + "|1001101⟩\t0 + 0𝑖\n", + "|1001110⟩\t0.12500000000000008 + 0𝑖\n", + "|1001111⟩\t0 + 0𝑖\n", + "|1010000⟩\t0.12500000000000008 + 0𝑖\n", + "|1010001⟩\t0 + 0𝑖\n", + "|1010010⟩\t0.12500000000000008 + 0𝑖\n", + "|1010011⟩\t0 + 0𝑖\n", + "|1010100⟩\t0.12500000000000008 + 0𝑖\n", + "|1010101⟩\t0 + 0𝑖\n", + "|1010110⟩\t0.12500000000000008 + 0𝑖\n", + "|1010111⟩\t0 + 0𝑖\n", + "|1011000⟩\t0.12500000000000008 + 0𝑖\n", + "|1011001⟩\t0 + 0𝑖\n", + "|1011010⟩\t0.12500000000000008 + 0𝑖\n", + "|1011011⟩\t0 + 0𝑖\n", + "|1011100⟩\t0.12500000000000008 + 0𝑖\n", + "|1011101⟩\t0 + 0𝑖\n", + "|1011110⟩\t0.12500000000000008 + 0𝑖\n", + "|1011111⟩\t0 + 0𝑖\n", + "|1100000⟩\t0.12500000000000008 + 0𝑖\n", + "|1100001⟩\t0 + 0𝑖\n", + "|1100010⟩\t0.12500000000000008 + 0𝑖\n", + "|1100011⟩\t0 + 0𝑖\n", + "|1100100⟩\t0.12500000000000008 + 0𝑖\n", + "|1100101⟩\t0 + 0𝑖\n", + "|1100110⟩\t0.12500000000000008 + 0𝑖\n", + "|1100111⟩\t0 + 0𝑖\n", + "|1101000⟩\t0 + 0𝑖\n", + "|1101001⟩\t0.12500000000000008 + 0𝑖\n", + "|1101010⟩\t0.12500000000000008 + 0𝑖\n", + "|1101011⟩\t0 + 0𝑖\n", + "|1101100⟩\t0.12500000000000008 + 0𝑖\n", + "|1101101⟩\t0 + 0𝑖\n", + "|1101110⟩\t0.12500000000000008 + 0𝑖\n", + "|1101111⟩\t0 + 0𝑖\n", + "|1110000⟩\t0 + 0𝑖\n", + "|1110001⟩\t0.12500000000000008 + 0𝑖\n", + "|1110010⟩\t0.12500000000000008 + 0𝑖\n", + "|1110011⟩\t0 + 0𝑖\n", + "|1110100⟩\t0.12500000000000008 + 0𝑖\n", + "|1110101⟩\t0 + 0𝑖\n", + "|1110110⟩\t0.12500000000000008 + 0𝑖\n", + "|1110111⟩\t0 + 0𝑖\n", + "|1111000⟩\t0.12500000000000008 + 0𝑖\n", + "|1111001⟩\t0 + 0𝑖\n", + "|1111010⟩\t0.12500000000000008 + 0𝑖\n", + "|1111011⟩\t0 + 0𝑖\n", + "|1111100⟩\t0.12500000000000008 + 0𝑖\n", + "|1111101⟩\t0 + 0𝑖\n", + "|1111110⟩\t0.12500000000000008 + 0𝑖\n", + "|1111111⟩\t0 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task3_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Azure.Identity.AzureCliCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181520},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 412042},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 3},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 285},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 165},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 285},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 165},\n", + " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"EAST US\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task3_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 3\n", + " Job ID: 58060d73-af33-4f24-bd05-7c0e5e2c61c4\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[19:27:25] Current job status: Executing\n", + "[19:27:30] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task3_ResourceEstimationWrapper, jobName=\"RE for the task 3\")" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":40,\"cczCount\":10,\"measurementCount\":40,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":190,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":190,\"numTfactories\":12,\"numTfactoryRuns\":17,\"numTsPerRotation\":null,\"numTstates\":200,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":7.974481658692185E-08,\"requiredLogicalTstateErrorRate\":2.5E-06},\"physicalQubits\":85746,\"runtime\":836000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.69 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"7.97e-8\",\"requiredLogicalTstateErrorRate\":\"2.50e-6\",\"runtime\":\"836us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits85746\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime836us\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical algorithmic qubits33\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 11\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 33$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth190\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth190\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states200\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{200\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 836us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations17\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.

\n", + "\r\n", + "
Physical algorithmic qubits7986\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits77760\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate7.97e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.

\n", + "\r\n", + "
Required logical T state error rate2.50e-6\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance11\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000007974481658692185)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits242\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time4us 400ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-8\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits6480\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime46us 800ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances9\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round6480\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round46us 800ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.17e-6\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical qubits (pre-layout)11\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates10\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates40\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations40\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\r\n", + "
\r\n", + " Assumptions\r\n", + "
    \r\n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \r\n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \r\n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \r\n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \r\n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \r\n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \r\n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \r\n", + "
\r\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 40,\n", + " 'cczCount': 10,\n", + " 'measurementCount': 40,\n", + " 'numQubits': 11,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 11,\n", + " 'logicalCycleTime': 4400.0,\n", + " 'logicalErrorRate': 3.000000000000002e-08,\n", + " 'physicalQubits': 242},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 190,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 190,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 17,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 200,\n", + " 'physicalQubitsForAlgorithm': 7986,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 7.974481658692185e-08,\n", + " 'requiredLogicalTstateErrorRate': 2.5e-06},\n", + " 'physicalQubits': 85746,\n", + " 'runtime': 836000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.69 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '7.97e-8',\n", + " 'requiredLogicalTstateErrorRate': '2.50e-6',\n", + " 'runtime': '836us',\n", + " 'tfactoryRuntime': '46us 800ns',\n", + " 'tfactoryRuntimePerRound': '46us 800ns',\n", + " 'tstateLogicalErrorRate': '2.17e-6',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 190\n", + "Score = 6270\n" + ] + }, + { + "data": { + "text/plain": [ + "6270" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb new file mode 100644 index 0000000..e3b5d78 --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb @@ -0,0 +1,4995 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 4\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task4`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", + " \"isDefault\": true,\n", + " \"managedByTenants\": [\n", + " {\n", + " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", + " },\n", + " {\n", + " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", + " },\n", + " {\n", + " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", + " }\n", + " ],\n", + " \"name\": \"Azure for Students\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"user\": {\n", + " \"name\": \"ravisastrykolluru2021@gmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + } + ], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Quibitrons\" # Update this field with your team name\n", + "task=[\"task4\"]\n", + "slack_id=\"U04KPA19P2T\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task4_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task4_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 4 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 4. \n", + "// (input will contain 7 qubits)\n", + "operation Task4(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " let N = Length(input);\n", + " for i in 0 .. 3 .. 2^(N-1) - 1 {\n", + " ControlledOnInt(i, X)(input[0..N-1], target);\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "operation Task4_DumpMachineWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task4(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task4_ResourceEstimationWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task4(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"24\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"25\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"31\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"38\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"47\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"48\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"59\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"62\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"72\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"73\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"74\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"75\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"76\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"77\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"78\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"79\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"83\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"86\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"87\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"90\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"91\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"92\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"93\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"94\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"95\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"100\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"101\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"102\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"103\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"106\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"107\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"108\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"109\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"110\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"111\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"114\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"115\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"116\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"117\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"118\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"119\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"120\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"121\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"122\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"123\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"124\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"125\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"126\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"127\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"128\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"147\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"152\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"159\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"165\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"166\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"170\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"171\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"174\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"175\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"176\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"182\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"183\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"187\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"188\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"189\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"190\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"191\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"200\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"201\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"202\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"203\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"204\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"205\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"206\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"207\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"211\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"215\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"219\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"223\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"228\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"229\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"230\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"231\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"234\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"235\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"236\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"237\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"238\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"239\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"242\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"243\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"244\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"245\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"246\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"247\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"248\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"249\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"250\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"251\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"252\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"253\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"254\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"255\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|00111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|01111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|10111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|11111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00000010⟩\t0.0883883476483185 + 0𝑖\n", + "|00000100⟩\t0.0883883476483185 + 0𝑖\n", + "|00000110⟩\t0.0883883476483185 + 0𝑖\n", + "|00001000⟩\t0.0883883476483185 + 0𝑖\n", + "|00001010⟩\t0.0883883476483185 + 0𝑖\n", + "|0000110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00001110⟩\t0.0883883476483185 + 0𝑖\n", + "|00010000⟩\t0.0883883476483185 + 0𝑖\n", + "|00010010⟩\t0.0883883476483185 + 0𝑖\n", + "|00010100⟩\t0.0883883476483185 + 0𝑖\n", + "|00010110⟩\t0.0883883476483185 + 0𝑖\n", + "|0001100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00011010⟩\t0.0883883476483185 + 0𝑖\n", + "|00011100⟩\t0.0883883476483185 + 0𝑖\n", + "|00011110⟩\t0.0883883476483185 + 0𝑖\n", + "|00100000⟩\t0.0883883476483185 + 0𝑖\n", + "|00100010⟩\t0.0883883476483185 + 0𝑖\n", + "|0010010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00100110⟩\t0.0883883476483185 + 0𝑖\n", + "|00101000⟩\t0.0883883476483185 + 0𝑖\n", + "|00101010⟩\t0.0883883476483185 + 0𝑖\n", + "|00101100⟩\t0.0883883476483185 + 0𝑖\n", + "|00101110⟩\t0.0883883476483185 + 0𝑖\n", + "|0011000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00110010⟩\t0.0883883476483185 + 0𝑖\n", + "|00110100⟩\t0.0883883476483185 + 0𝑖\n", + "|00110110⟩\t0.0883883476483185 + 0𝑖\n", + "|00111000⟩\t0.0883883476483185 + 0𝑖\n", + "|00111010⟩\t0.0883883476483185 + 0𝑖\n", + "|0011110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|00111110⟩\t0.0883883476483185 + 0𝑖\n", + "|01000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01000010⟩\t0.0883883476483185 + 0𝑖\n", + "|01000100⟩\t0.0883883476483185 + 0𝑖\n", + "|01000110⟩\t0.0883883476483185 + 0𝑖\n", + "|0100100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01001010⟩\t0.0883883476483185 + 0𝑖\n", + "|01001100⟩\t0.0883883476483185 + 0𝑖\n", + "|01001110⟩\t0.0883883476483185 + 0𝑖\n", + "|01010000⟩\t0.0883883476483185 + 0𝑖\n", + "|01010010⟩\t0.0883883476483185 + 0𝑖\n", + "|0101010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01010110⟩\t0.0883883476483185 + 0𝑖\n", + "|01011000⟩\t0.0883883476483185 + 0𝑖\n", + "|01011010⟩\t0.0883883476483185 + 0𝑖\n", + "|01011100⟩\t0.0883883476483185 + 0𝑖\n", + "|01011110⟩\t0.0883883476483185 + 0𝑖\n", + "|0110000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01100010⟩\t0.0883883476483185 + 0𝑖\n", + "|01100100⟩\t0.0883883476483185 + 0𝑖\n", + "|01100110⟩\t0.0883883476483185 + 0𝑖\n", + "|01101000⟩\t0.0883883476483185 + 0𝑖\n", + "|01101010⟩\t0.0883883476483185 + 0𝑖\n", + "|0110110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01101110⟩\t0.0883883476483185 + 0𝑖\n", + "|01110000⟩\t0.0883883476483185 + 0𝑖\n", + "|01110010⟩\t0.0883883476483185 + 0𝑖\n", + "|01110100⟩\t0.0883883476483185 + 0𝑖\n", + "|01110110⟩\t0.0883883476483185 + 0𝑖\n", + "|0111100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|01111010⟩\t0.0883883476483185 + 0𝑖\n", + "|01111100⟩\t0.0883883476483185 + 0𝑖\n", + "|01111110⟩\t0.0883883476483185 + 0𝑖\n", + "|10000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10000010⟩\t0.0883883476483185 + 0𝑖\n", + "|1000010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10000110⟩\t0.0883883476483185 + 0𝑖\n", + "|10001000⟩\t0.0883883476483185 + 0𝑖\n", + "|10001010⟩\t0.0883883476483185 + 0𝑖\n", + "|10001100⟩\t0.0883883476483185 + 0𝑖\n", + "|10001110⟩\t0.0883883476483185 + 0𝑖\n", + "|1001000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10010010⟩\t0.0883883476483185 + 0𝑖\n", + "|10010100⟩\t0.0883883476483185 + 0𝑖\n", + "|10010110⟩\t0.0883883476483185 + 0𝑖\n", + "|10011000⟩\t0.0883883476483185 + 0𝑖\n", + "|10011010⟩\t0.0883883476483185 + 0𝑖\n", + "|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10011110⟩\t0.0883883476483185 + 0𝑖\n", + "|10100000⟩\t0.0883883476483185 + 0𝑖\n", + "|10100010⟩\t0.0883883476483185 + 0𝑖\n", + "|10100100⟩\t0.0883883476483185 + 0𝑖\n", + "|10100110⟩\t0.0883883476483185 + 0𝑖\n", + "|1010100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10101010⟩\t0.0883883476483185 + 0𝑖\n", + "|10101100⟩\t0.0883883476483185 + 0𝑖\n", + "|10101110⟩\t0.0883883476483185 + 0𝑖\n", + "|10110000⟩\t0.0883883476483185 + 0𝑖\n", + "|10110010⟩\t0.0883883476483185 + 0𝑖\n", + "|1011010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|10110110⟩\t0.0883883476483185 + 0𝑖\n", + "|10111000⟩\t0.0883883476483185 + 0𝑖\n", + "|10111010⟩\t0.0883883476483185 + 0𝑖\n", + "|10111100⟩\t0.0883883476483185 + 0𝑖\n", + "|10111110⟩\t0.0883883476483185 + 0𝑖\n", + "|1100000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11000010⟩\t0.0883883476483185 + 0𝑖\n", + "|11000100⟩\t0.0883883476483185 + 0𝑖\n", + "|11000110⟩\t0.0883883476483185 + 0𝑖\n", + "|11001000⟩\t0.0883883476483185 + 0𝑖\n", + "|11001010⟩\t0.0883883476483185 + 0𝑖\n", + "|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11001110⟩\t0.0883883476483185 + 0𝑖\n", + "|11010000⟩\t0.0883883476483185 + 0𝑖\n", + "|11010010⟩\t0.0883883476483185 + 0𝑖\n", + "|11010100⟩\t0.0883883476483185 + 0𝑖\n", + "|11010110⟩\t0.0883883476483185 + 0𝑖\n", + "|1101100100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11011010⟩\t0.0883883476483185 + 0𝑖\n", + "|11011100⟩\t0.0883883476483185 + 0𝑖\n", + "|11011110⟩\t0.0883883476483185 + 0𝑖\n", + "|11100000⟩\t0.0883883476483185 + 0𝑖\n", + "|11100010⟩\t0.0883883476483185 + 0𝑖\n", + "|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11100110⟩\t0.0883883476483185 + 0𝑖\n", + "|11101000⟩\t0.0883883476483185 + 0𝑖\n", + "|11101010⟩\t0.0883883476483185 + 0𝑖\n", + "|11101100⟩\t0.0883883476483185 + 0𝑖\n", + "|11101110⟩\t0.0883883476483185 + 0𝑖\n", + "|1111000100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11110010⟩\t0.0883883476483185 + 0𝑖\n", + "|11110100⟩\t0.0883883476483185 + 0𝑖\n", + "|11110110⟩\t0.0883883476483185 + 0𝑖\n", + "|11111000⟩\t0.0883883476483185 + 0𝑖\n", + "|11111010⟩\t0.0883883476483185 + 0𝑖\n", + "|1111110100000000⟩\t0.0883883476483185 + 0𝑖\n", + "|11111110⟩\t0.0883883476483185 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task4_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Azure.Identity.AzureCliCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181524},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 313983},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 120},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 120},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"EAST US\")" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task4_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 4\n", + " Job ID: 6b22f6cc-3800-4153-8e30-c2a9d765132f\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[19:08:23] Current job status: Executing\n", + "[19:08:28] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task4_ResourceEstimationWrapper, jobName=\"RE for the task 4\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":110,\"cczCount\":22,\"measurementCount\":110,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":506,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":506,\"numTfactories\":12,\"numTfactoryRuns\":44,\"numTsPerRotation\":null,\"numTstates\":528,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":2.6003744539213647E-08,\"requiredLogicalTstateErrorRate\":9.46969696969697E-07},\"physicalQubits\":129004,\"runtime\":2631200},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"2.60e-8\",\"requiredLogicalTstateErrorRate\":\"9.47e-7\",\"runtime\":\"2ms 631us 200ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{528\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 631us 200ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000026003744539213647)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits129004\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime2ms 631us 200ns\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical algorithmic qubits38\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth506\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth506\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states528\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{528\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 2ms 631us 200ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations44\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.

\n", + "\r\n", + "
Physical algorithmic qubits12844\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits116160\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate2.60e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.

\n", + "\r\n", + "
Required logical T state error rate9.47e-7\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance13\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000000026003744539213647)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits338\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time5us 200ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-9\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits9680\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime57us 200ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances11\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round9680\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round57us 200ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.48e-7\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical qubits (pre-layout)13\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates22\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates110\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations110\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\r\n", + "
\r\n", + " Assumptions\r\n", + "
    \r\n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \r\n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \r\n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \r\n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \r\n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \r\n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \r\n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \r\n", + "
\r\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 110,\n", + " 'cczCount': 22,\n", + " 'measurementCount': 110,\n", + " 'numQubits': 13,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 13,\n", + " 'logicalCycleTime': 5200.0,\n", + " 'logicalErrorRate': 3.000000000000002e-09,\n", + " 'physicalQubits': 338},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 506,\n", + " 'algorithmicLogicalQubits': 38,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 506,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 44,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 528,\n", + " 'physicalQubitsForAlgorithm': 12844,\n", + " 'physicalQubitsForTfactories': 116160,\n", + " 'requiredLogicalQubitErrorRate': 2.6003744539213647e-08,\n", + " 'requiredLogicalTstateErrorRate': 9.46969696969697e-07},\n", + " 'physicalQubits': 129004,\n", + " 'runtime': 2631200},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '5us 200ns',\n", + " 'logicalErrorRate': '3.00e-9',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n", + " 'physicalQubitsPerRound': '9680',\n", + " 'requiredLogicalQubitErrorRate': '2.60e-8',\n", + " 'requiredLogicalTstateErrorRate': '9.47e-7',\n", + " 'runtime': '2ms 631us 200ns',\n", + " 'tfactoryRuntime': '57us 200ns',\n", + " 'tfactoryRuntimePerRound': '57us 200ns',\n", + " 'tstateLogicalErrorRate': '2.48e-7',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{528\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 631us 200ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000026003744539213647)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [11],\n", + " 'logicalErrorRate': 2.480000000000001e-07,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 9680,\n", + " 'physicalQubitsPerRound': [9680],\n", + " 'runtime': 57200.0,\n", + " 'runtimePerRound': [57200.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 38\n", + "Algorithmic depth = 506\n", + "Score = 19228\n" + ] + }, + { + "data": { + "text/plain": [ + "19228" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task5.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task5.ipynb new file mode 100644 index 0000000..77053ec --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task5.ipynb @@ -0,0 +1,3271 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 5\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task5`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Preparing Q# environment...\n", + "." + ] + } + ], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task5\"]\n", + "slack_id=\"U04KPA19P2T\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task5_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task5_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 5 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 5. \n", + "// (input will contain 6 qubits)\n", + "operation Task5(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [0, 9, 18, 21, 27, 36, 42, 45, 54, 63] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task5_DumpMachineWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task5(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task5_ResourceEstimationWrapper() : Unit {\n", + " let N = 6;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task5(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6],\"n_qubits\":7,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"2\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"3\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"4\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"5\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"6\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"7\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"8\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"11\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"12\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"13\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"14\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"15\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"16\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"17\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"20\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"23\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"24\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"25\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"26\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"29\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"30\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"31\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"32\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"33\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"34\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"35\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"38\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"39\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"40\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"41\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"44\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"47\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"48\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"49\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"50\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"51\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"52\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"53\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"56\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"57\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"58\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"59\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"60\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"61\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"62\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"65\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"66\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"67\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"68\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"69\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"70\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"71\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"81\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"82\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"85\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"86\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"91\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"97\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"98\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"109\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0110111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1111111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000001⟩\t0.12500000000000008 + 0𝑖\n", + "|0000010⟩\t0.12500000000000008 + 0𝑖\n", + "|0000100⟩\t0.12500000000000008 + 0𝑖\n", + "|0000110⟩\t0.12500000000000008 + 0𝑖\n", + "|0001000⟩\t0.12500000000000008 + 0𝑖\n", + "|0001010⟩\t0.12500000000000008 + 0𝑖\n", + "|0001100⟩\t0.12500000000000008 + 0𝑖\n", + "|0001110⟩\t0.12500000000000008 + 0𝑖\n", + "|0010000⟩\t0.12500000000000008 + 0𝑖\n", + "|0010011⟩\t0.12500000000000008 + 0𝑖\n", + "|0010100⟩\t0.12500000000000008 + 0𝑖\n", + "|0010110⟩\t0.12500000000000008 + 0𝑖\n", + "|0011000⟩\t0.12500000000000008 + 0𝑖\n", + "|0011010⟩\t0.12500000000000008 + 0𝑖\n", + "|0011100⟩\t0.12500000000000008 + 0𝑖\n", + "|0011110⟩\t0.12500000000000008 + 0𝑖\n", + "|0100000⟩\t0.12500000000000008 + 0𝑖\n", + "|0100010⟩\t0.12500000000000008 + 0𝑖\n", + "|0100101⟩\t0.12500000000000008 + 0𝑖\n", + "|0100110⟩\t0.12500000000000008 + 0𝑖\n", + "|0101000⟩\t0.12500000000000008 + 0𝑖\n", + "|0101011⟩\t0.12500000000000008 + 0𝑖\n", + "|0101100⟩\t0.12500000000000008 + 0𝑖\n", + "|0101110⟩\t0.12500000000000008 + 0𝑖\n", + "|0110000⟩\t0.12500000000000008 + 0𝑖\n", + "|0110010⟩\t0.12500000000000008 + 0𝑖\n", + "|0110100⟩\t0.12500000000000008 + 0𝑖\n", + "|0110111⟩\t0.12500000000000008 + 0𝑖\n", + "|0111000⟩\t0.12500000000000008 + 0𝑖\n", + "|0111010⟩\t0.12500000000000008 + 0𝑖\n", + "|0111100⟩\t0.12500000000000008 + 0𝑖\n", + "|0111110⟩\t0.12500000000000008 + 0𝑖\n", + "|1000000⟩\t0.12500000000000008 + 0𝑖\n", + "|1000010⟩\t0.12500000000000008 + 0𝑖\n", + "|1000100⟩\t0.12500000000000008 + 0𝑖\n", + "|1000110⟩\t0.12500000000000008 + 0𝑖\n", + "|1001001⟩\t0.12500000000000008 + 0𝑖\n", + "|1001010⟩\t0.12500000000000008 + 0𝑖\n", + "|1001100⟩\t0.12500000000000008 + 0𝑖\n", + "|1001110⟩\t0.12500000000000008 + 0𝑖\n", + "|1010000⟩\t0.12500000000000008 + 0𝑖\n", + "|1010010⟩\t0.12500000000000008 + 0𝑖\n", + "|1010101⟩\t0.12500000000000008 + 0𝑖\n", + "|1010110⟩\t0.12500000000000008 + 0𝑖\n", + "|1011000⟩\t0.12500000000000008 + 0𝑖\n", + "|1011011⟩\t0.12500000000000008 + 0𝑖\n", + "|1011100⟩\t0.12500000000000008 + 0𝑖\n", + "|1011110⟩\t0.12500000000000008 + 0𝑖\n", + "|1100000⟩\t0.12500000000000008 + 0𝑖\n", + "|1100010⟩\t0.12500000000000008 + 0𝑖\n", + "|1100100⟩\t0.12500000000000008 + 0𝑖\n", + "|1100110⟩\t0.12500000000000008 + 0𝑖\n", + "|1101000⟩\t0.12500000000000008 + 0𝑖\n", + "|1101010⟩\t0.12500000000000008 + 0𝑖\n", + "|1101101⟩\t0.12500000000000008 + 0𝑖\n", + "|1101110⟩\t0.12500000000000008 + 0𝑖\n", + "|1110000⟩\t0.12500000000000008 + 0𝑖\n", + "|1110010⟩\t0.12500000000000008 + 0𝑖\n", + "|1110100⟩\t0.12500000000000008 + 0𝑖\n", + "|1110110⟩\t0.12500000000000008 + 0𝑖\n", + "|1111000⟩\t0.12500000000000008 + 0𝑖\n", + "|1111010⟩\t0.12500000000000008 + 0𝑖\n", + "|1111100⟩\t0.12500000000000008 + 0𝑖\n", + "|1111111⟩\t0.12500000000000008 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task5_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n", + "this notebook is run on azure quantum workspace\n" + ] + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task5_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 5\n", + " Job ID: 647afaf6-9d17-4cf5-b65b-77a23f24ed11\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[14:13:37] Current job status: Executing\n", + "[14:13:42] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task5_ResourceEstimationWrapper, jobName=\"RE for the task 5\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":40,\"cczCount\":10,\"measurementCount\":40,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":190,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":190,\"numTfactories\":12,\"numTfactoryRuns\":17,\"numTsPerRotation\":null,\"numTstates\":200,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":7.974481658692185E-08,\"requiredLogicalTstateErrorRate\":2.5E-06},\"physicalQubits\":85746,\"runtime\":836000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.69 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"7.97e-8\",\"requiredLogicalTstateErrorRate\":\"2.50e-6\",\"runtime\":\"836us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Physical qubits85746\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime836us\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Logical algorithmic qubits33\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 11\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 33$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth190\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth190\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states200\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{200\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 836us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations17\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.

\n", + "\r\n", + "
Physical algorithmic qubits7986\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits77760\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate7.97e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.

\n", + "\r\n", + "
Required logical T state error rate2.50e-6\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance11\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000007974481658692185)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits242\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time4us 400ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-8\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Physical qubits6480\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime46us 800ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances9\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round6480\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round46us 800ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.17e-6\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Logical qubits (pre-layout)11\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates10\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates40\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations40\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\n", + "
\r\n", + " Assumptions\r\n", + "
    \n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \n", + "
\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 40,\n", + " 'cczCount': 10,\n", + " 'measurementCount': 40,\n", + " 'numQubits': 11,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 11,\n", + " 'logicalCycleTime': 4400.0,\n", + " 'logicalErrorRate': 3.000000000000002e-08,\n", + " 'physicalQubits': 242},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 190,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 190,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 17,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 200,\n", + " 'physicalQubitsForAlgorithm': 7986,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 7.974481658692185e-08,\n", + " 'requiredLogicalTstateErrorRate': 2.5e-06},\n", + " 'physicalQubits': 85746,\n", + " 'runtime': 836000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.69 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '7.97e-8',\n", + " 'requiredLogicalTstateErrorRate': '2.50e-6',\n", + " 'runtime': '836us',\n", + " 'tfactoryRuntime': '46us 800ns',\n", + " 'tfactoryRuntimePerRound': '46us 800ns',\n", + " 'tstateLogicalErrorRate': '2.17e-6',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 190\n", + "Score = 6270\n" + ] + }, + { + "data": { + "text/plain": [ + "6270" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task6.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task6.ipynb new file mode 100644 index 0000000..cb2706f --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task6.ipynb @@ -0,0 +1,523 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 6\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task6`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task6\"]\n", + "slack_id=\"U04L0TSC0LD\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task6_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task6_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 6 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 6. \n", + "// (input will contain 8 qubits)\n", + "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [144, 145, 148, 149, 152, 153, 156, 157, 208, 209, 212, 213, 216, 217, 220, 221] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task6_DumpMachineWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task6(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task6_ResourceEstimationWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task6(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task6_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|000000000⟩\t0.06250000000000006 + 0𝑖\n|000000010000000000⟩\t0.06250000000000006 + 0𝑖\n|000000100⟩\t0.06250000000000006 + 0𝑖\n|000000110000000000⟩\t0.06250000000000006 + 0𝑖\n|000001000⟩\t0.06250000000000006 + 0𝑖\n|000001010000000000⟩\t0.06250000000000006 + 0𝑖\n|000001100⟩\t0.06250000000000006 + 0𝑖\n|000001110000000000⟩\t0.06250000000000006 + 0𝑖\n|000010000⟩\t0.06250000000000006 + 0𝑖\n|000010010100000000⟩\t0.06250000000000006 + 0𝑖\n|000010100⟩\t0.06250000000000006 + 0𝑖\n|000010110100000000⟩\t0.06250000000000006 + 0𝑖\n|000011000⟩\t0.06250000000000006 + 0𝑖\n|000011010000000000⟩\t0.06250000000000006 + 0𝑖\n|000011100⟩\t0.06250000000000006 + 0𝑖\n|000011110000000000⟩\t0.06250000000000006 + 0𝑖\n|000100000⟩\t0.06250000000000006 + 0𝑖\n|000100010000000000⟩\t0.06250000000000006 + 0𝑖\n|000100100⟩\t0.06250000000000006 + 0𝑖\n|000100110000000000⟩\t0.06250000000000006 + 0𝑖\n|000101000⟩\t0.06250000000000006 + 0𝑖\n|000101010000000000⟩\t0.06250000000000006 + 0𝑖\n|000101100⟩\t0.06250000000000006 + 0𝑖\n|000101110000000000⟩\t0.06250000000000006 + 0𝑖\n|000110000⟩\t0.06250000000000006 + 0𝑖\n|000110010100000000⟩\t0.06250000000000006 + 0𝑖\n|000110100⟩\t0.06250000000000006 + 0𝑖\n|000110110100000000⟩\t0.06250000000000006 + 0𝑖\n|000111000⟩\t0.06250000000000006 + 0𝑖\n|000111010000000000⟩\t0.06250000000000006 + 0𝑖\n|000111100⟩\t0.06250000000000006 + 0𝑖\n|000111110000000000⟩\t0.06250000000000006 + 0𝑖\n|001000000⟩\t0.06250000000000006 + 0𝑖\n|001000010000000000⟩\t0.06250000000000006 + 0𝑖\n|001000100⟩\t0.06250000000000006 + 0𝑖\n|001000110000000000⟩\t0.06250000000000006 + 0𝑖\n|001001000⟩\t0.06250000000000006 + 0𝑖\n|001001010000000000⟩\t0.06250000000000006 + 0𝑖\n|001001100⟩\t0.06250000000000006 + 0𝑖\n|001001110000000000⟩\t0.06250000000000006 + 0𝑖\n|001010000⟩\t0.06250000000000006 + 0𝑖\n|001010010100000000⟩\t0.06250000000000006 + 0𝑖\n|001010100⟩\t0.06250000000000006 + 0𝑖\n|001010110100000000⟩\t0.06250000000000006 + 0𝑖\n|001011000⟩\t0.06250000000000006 + 0𝑖\n|001011010000000000⟩\t0.06250000000000006 + 0𝑖\n|001011100⟩\t0.06250000000000006 + 0𝑖\n|001011110000000000⟩\t0.06250000000000006 + 0𝑖\n|001100000⟩\t0.06250000000000006 + 0𝑖\n|001100010000000000⟩\t0.06250000000000006 + 0𝑖\n|001100100⟩\t0.06250000000000006 + 0𝑖\n|001100110000000000⟩\t0.06250000000000006 + 0𝑖\n|001101000⟩\t0.06250000000000006 + 0𝑖\n|001101010000000000⟩\t0.06250000000000006 + 0𝑖\n|001101100⟩\t0.06250000000000006 + 0𝑖\n|001101110000000000⟩\t0.06250000000000006 + 0𝑖\n|001110000⟩\t0.06250000000000006 + 0𝑖\n|001110010100000000⟩\t0.06250000000000006 + 0𝑖\n|001110100⟩\t0.06250000000000006 + 0𝑖\n|001110110100000000⟩\t0.06250000000000006 + 0𝑖\n|001111000⟩\t0.06250000000000006 + 0𝑖\n|001111010000000000⟩\t0.06250000000000006 + 0𝑖\n|001111100⟩\t0.06250000000000006 + 0𝑖\n|001111110000000000⟩\t0.06250000000000006 + 0𝑖\n|010000000⟩\t0.06250000000000006 + 0𝑖\n|010000010000000000⟩\t0.06250000000000006 + 0𝑖\n|010000100⟩\t0.06250000000000006 + 0𝑖\n|010000110000000000⟩\t0.06250000000000006 + 0𝑖\n|010001000⟩\t0.06250000000000006 + 0𝑖\n|010001010000000000⟩\t0.06250000000000006 + 0𝑖\n|010001100⟩\t0.06250000000000006 + 0𝑖\n|010001110000000000⟩\t0.06250000000000006 + 0𝑖\n|010010000⟩\t0.06250000000000006 + 0𝑖\n|010010010000000000⟩\t0.06250000000000006 + 0𝑖\n|010010100⟩\t0.06250000000000006 + 0𝑖\n|010010110000000000⟩\t0.06250000000000006 + 0𝑖\n|010011000⟩\t0.06250000000000006 + 0𝑖\n|010011010000000000⟩\t0.06250000000000006 + 0𝑖\n|010011100⟩\t0.06250000000000006 + 0𝑖\n|010011110000000000⟩\t0.06250000000000006 + 0𝑖\n|010100000⟩\t0.06250000000000006 + 0𝑖\n|010100010000000000⟩\t0.06250000000000006 + 0𝑖\n|010100100⟩\t0.06250000000000006 + 0𝑖\n|010100110000000000⟩\t0.06250000000000006 + 0𝑖\n|010101000⟩\t0.06250000000000006 + 0𝑖\n|010101010000000000⟩\t0.06250000000000006 + 0𝑖\n|010101100⟩\t0.06250000000000006 + 0𝑖\n|010101110000000000⟩\t0.06250000000000006 + 0𝑖\n|010110000⟩\t0.06250000000000006 + 0𝑖\n|010110010000000000⟩\t0.06250000000000006 + 0𝑖\n|010110100⟩\t0.06250000000000006 + 0𝑖\n|010110110000000000⟩\t0.06250000000000006 + 0𝑖\n|010111000⟩\t0.06250000000000006 + 0𝑖\n|010111010000000000⟩\t0.06250000000000006 + 0𝑖\n|010111100⟩\t0.06250000000000006 + 0𝑖\n|010111110000000000⟩\t0.06250000000000006 + 0𝑖\n|011000000⟩\t0.06250000000000006 + 0𝑖\n|011000010000000000⟩\t0.06250000000000006 + 0𝑖\n|011000100⟩\t0.06250000000000006 + 0𝑖\n|011000110000000000⟩\t0.06250000000000006 + 0𝑖\n|011001000⟩\t0.06250000000000006 + 0𝑖\n|011001010000000000⟩\t0.06250000000000006 + 0𝑖\n|011001100⟩\t0.06250000000000006 + 0𝑖\n|011001110000000000⟩\t0.06250000000000006 + 0𝑖\n|011010000⟩\t0.06250000000000006 + 0𝑖\n|011010010000000000⟩\t0.06250000000000006 + 0𝑖\n|011010100⟩\t0.06250000000000006 + 0𝑖\n|011010110000000000⟩\t0.06250000000000006 + 0𝑖\n|011011000⟩\t0.06250000000000006 + 0𝑖\n|011011010000000000⟩\t0.06250000000000006 + 0𝑖\n|011011100⟩\t0.06250000000000006 + 0𝑖\n|011011110000000000⟩\t0.06250000000000006 + 0𝑖\n|011100000⟩\t0.06250000000000006 + 0𝑖\n|011100010000000000⟩\t0.06250000000000006 + 0𝑖\n|011100100⟩\t0.06250000000000006 + 0𝑖\n|011100110000000000⟩\t0.06250000000000006 + 0𝑖\n|011101000⟩\t0.06250000000000006 + 0𝑖\n|011101010000000000⟩\t0.06250000000000006 + 0𝑖\n|011101100⟩\t0.06250000000000006 + 0𝑖\n|011101110000000000⟩\t0.06250000000000006 + 0𝑖\n|011110000⟩\t0.06250000000000006 + 0𝑖\n|011110010000000000⟩\t0.06250000000000006 + 0𝑖\n|011110100⟩\t0.06250000000000006 + 0𝑖\n|011110110000000000⟩\t0.06250000000000006 + 0𝑖\n|011111000⟩\t0.06250000000000006 + 0𝑖\n|011111010000000000⟩\t0.06250000000000006 + 0𝑖\n|011111100⟩\t0.06250000000000006 + 0𝑖\n|011111110000000000⟩\t0.06250000000000006 + 0𝑖\n|100000000⟩\t0.06250000000000006 + 0𝑖\n|100000010000000000⟩\t0.06250000000000006 + 0𝑖\n|100000100⟩\t0.06250000000000006 + 0𝑖\n|100000110000000000⟩\t0.06250000000000006 + 0𝑖\n|100001000⟩\t0.06250000000000006 + 0𝑖\n|100001010000000000⟩\t0.06250000000000006 + 0𝑖\n|100001100⟩\t0.06250000000000006 + 0𝑖\n|100001110000000000⟩\t0.06250000000000006 + 0𝑖\n|100010000⟩\t0.06250000000000006 + 0𝑖\n|100010010100000000⟩\t0.06250000000000006 + 0𝑖\n|100010100⟩\t0.06250000000000006 + 0𝑖\n|100010110100000000⟩\t0.06250000000000006 + 0𝑖\n|100011000⟩\t0.06250000000000006 + 0𝑖\n|100011010000000000⟩\t0.06250000000000006 + 0𝑖\n|100011100⟩\t0.06250000000000006 + 0𝑖\n|100011110000000000⟩\t0.06250000000000006 + 0𝑖\n|100100000⟩\t0.06250000000000006 + 0𝑖\n|100100010000000000⟩\t0.06250000000000006 + 0𝑖\n|100100100⟩\t0.06250000000000006 + 0𝑖\n|100100110000000000⟩\t0.06250000000000006 + 0𝑖\n|100101000⟩\t0.06250000000000006 + 0𝑖\n|100101010000000000⟩\t0.06250000000000006 + 0𝑖\n|100101100⟩\t0.06250000000000006 + 0𝑖\n|100101110000000000⟩\t0.06250000000000006 + 0𝑖\n|100110000⟩\t0.06250000000000006 + 0𝑖\n|100110010100000000⟩\t0.06250000000000006 + 0𝑖\n|100110100⟩\t0.06250000000000006 + 0𝑖\n|100110110100000000⟩\t0.06250000000000006 + 0𝑖\n|100111000⟩\t0.06250000000000006 + 0𝑖\n|100111010000000000⟩\t0.06250000000000006 + 0𝑖\n|100111100⟩\t0.06250000000000006 + 0𝑖\n|100111110000000000⟩\t0.06250000000000006 + 0𝑖\n|101000000⟩\t0.06250000000000006 + 0𝑖\n|101000010000000000⟩\t0.06250000000000006 + 0𝑖\n|101000100⟩\t0.06250000000000006 + 0𝑖\n|101000110000000000⟩\t0.06250000000000006 + 0𝑖\n|101001000⟩\t0.06250000000000006 + 0𝑖\n|101001010000000000⟩\t0.06250000000000006 + 0𝑖\n|101001100⟩\t0.06250000000000006 + 0𝑖\n|101001110000000000⟩\t0.06250000000000006 + 0𝑖\n|101010000⟩\t0.06250000000000006 + 0𝑖\n|101010010100000000⟩\t0.06250000000000006 + 0𝑖\n|101010100⟩\t0.06250000000000006 + 0𝑖\n|101010110100000000⟩\t0.06250000000000006 + 0𝑖\n|101011000⟩\t0.06250000000000006 + 0𝑖\n|101011010000000000⟩\t0.06250000000000006 + 0𝑖\n|101011100⟩\t0.06250000000000006 + 0𝑖\n|101011110000000000⟩\t0.06250000000000006 + 0𝑖\n|101100000⟩\t0.06250000000000006 + 0𝑖\n|101100010000000000⟩\t0.06250000000000006 + 0𝑖\n|101100100⟩\t0.06250000000000006 + 0𝑖\n|101100110000000000⟩\t0.06250000000000006 + 0𝑖\n|101101000⟩\t0.06250000000000006 + 0𝑖\n|101101010000000000⟩\t0.06250000000000006 + 0𝑖\n|101101100⟩\t0.06250000000000006 + 0𝑖\n|101101110000000000⟩\t0.06250000000000006 + 0𝑖\n|101110000⟩\t0.06250000000000006 + 0𝑖\n|101110010100000000⟩\t0.06250000000000006 + 0𝑖\n|101110100⟩\t0.06250000000000006 + 0𝑖\n|101110110100000000⟩\t0.06250000000000006 + 0𝑖\n|101111000⟩\t0.06250000000000006 + 0𝑖\n|101111010000000000⟩\t0.06250000000000006 + 0𝑖\n|101111100⟩\t0.06250000000000006 + 0𝑖\n|101111110000000000⟩\t0.06250000000000006 + 0𝑖\n|110000000⟩\t0.06250000000000006 + 0𝑖\n|110000010000000000⟩\t0.06250000000000006 + 0𝑖\n|110000100⟩\t0.06250000000000006 + 0𝑖\n|110000110000000000⟩\t0.06250000000000006 + 0𝑖\n|110001000⟩\t0.06250000000000006 + 0𝑖\n|110001010000000000⟩\t0.06250000000000006 + 0𝑖\n|110001100⟩\t0.06250000000000006 + 0𝑖\n|110001110000000000⟩\t0.06250000000000006 + 0𝑖\n|110010000⟩\t0.06250000000000006 + 0𝑖\n|110010010000000000⟩\t0.06250000000000006 + 0𝑖\n|110010100⟩\t0.06250000000000006 + 0𝑖\n|110010110000000000⟩\t0.06250000000000006 + 0𝑖\n|110011000⟩\t0.06250000000000006 + 0𝑖\n|110011010000000000⟩\t0.06250000000000006 + 0𝑖\n|110011100⟩\t0.06250000000000006 + 0𝑖\n|110011110000000000⟩\t0.06250000000000006 + 0𝑖\n|110100000⟩\t0.06250000000000006 + 0𝑖\n|110100010000000000⟩\t0.06250000000000006 + 0𝑖\n|110100100⟩\t0.06250000000000006 + 0𝑖\n|110100110000000000⟩\t0.06250000000000006 + 0𝑖\n|110101000⟩\t0.06250000000000006 + 0𝑖\n|110101010000000000⟩\t0.06250000000000006 + 0𝑖\n|110101100⟩\t0.06250000000000006 + 0𝑖\n|110101110000000000⟩\t0.06250000000000006 + 0𝑖\n|110110000⟩\t0.06250000000000006 + 0𝑖\n|110110010000000000⟩\t0.06250000000000006 + 0𝑖\n|110110100⟩\t0.06250000000000006 + 0𝑖\n|110110110000000000⟩\t0.06250000000000006 + 0𝑖\n|110111000⟩\t0.06250000000000006 + 0𝑖\n|110111010000000000⟩\t0.06250000000000006 + 0𝑖\n|110111100⟩\t0.06250000000000006 + 0𝑖\n|110111110000000000⟩\t0.06250000000000006 + 0𝑖\n|111000000⟩\t0.06250000000000006 + 0𝑖\n|111000010000000000⟩\t0.06250000000000006 + 0𝑖\n|111000100⟩\t0.06250000000000006 + 0𝑖\n|111000110000000000⟩\t0.06250000000000006 + 0𝑖\n|111001000⟩\t0.06250000000000006 + 0𝑖\n|111001010000000000⟩\t0.06250000000000006 + 0𝑖\n|111001100⟩\t0.06250000000000006 + 0𝑖\n|111001110000000000⟩\t0.06250000000000006 + 0𝑖\n|111010000⟩\t0.06250000000000006 + 0𝑖\n|111010010000000000⟩\t0.06250000000000006 + 0𝑖\n|111010100⟩\t0.06250000000000006 + 0𝑖\n|111010110000000000⟩\t0.06250000000000006 + 0𝑖\n|111011000⟩\t0.06250000000000006 + 0𝑖\n|111011010000000000⟩\t0.06250000000000006 + 0𝑖\n|111011100⟩\t0.06250000000000006 + 0𝑖\n|111011110000000000⟩\t0.06250000000000006 + 0𝑖\n|111100000⟩\t0.06250000000000006 + 0𝑖\n|111100010000000000⟩\t0.06250000000000006 + 0𝑖\n|111100100⟩\t0.06250000000000006 + 0𝑖\n|111100110000000000⟩\t0.06250000000000006 + 0𝑖\n|111101000⟩\t0.06250000000000006 + 0𝑖\n|111101010000000000⟩\t0.06250000000000006 + 0𝑖\n|111101100⟩\t0.06250000000000006 + 0𝑖\n|111101110000000000⟩\t0.06250000000000006 + 0𝑖\n|111110000⟩\t0.06250000000000006 + 0𝑖\n|111110010000000000⟩\t0.06250000000000006 + 0𝑖\n|111110100⟩\t0.06250000000000006 + 0𝑖\n|111110110000000000⟩\t0.06250000000000006 + 0𝑖\n|111111000⟩\t0.06250000000000006 + 0𝑖\n|111111010000000000⟩\t0.06250000000000006 + 0𝑖\n|111111100⟩\t0.06250000000000006 + 0𝑖\n|111111110000000000⟩\t0.06250000000000006 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7, 8
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7,8],\"n_qubits\":9,\"amplitudes\":{\"0\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"1\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"2\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"3\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"4\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"5\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"6\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"7\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"8\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"9\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"10\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"11\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"12\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"13\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"14\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"15\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"16\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"17\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"18\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"19\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"20\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"21\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"22\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"23\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"24\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"25\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"26\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"27\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"28\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"29\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"30\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"31\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"32\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"33\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"34\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"35\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"36\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"37\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"38\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"39\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"40\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"41\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"42\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"43\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"44\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"45\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"46\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"47\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"48\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"49\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"50\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"51\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"52\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"53\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"54\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"55\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"56\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"57\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"58\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"59\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"60\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"61\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"62\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"63\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"64\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"65\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"66\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"67\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"68\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"69\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"70\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"71\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"72\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"73\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"74\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"75\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"76\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"77\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"78\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"79\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"80\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"81\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"82\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"83\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"84\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"85\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"86\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"87\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"88\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"89\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"90\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"91\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"92\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"93\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"94\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"95\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"96\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"97\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"98\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"99\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"100\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"101\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"102\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"103\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"104\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"105\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"106\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"107\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"108\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"109\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"110\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"111\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"112\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"113\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"114\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"115\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"116\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"117\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"118\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"119\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"120\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"121\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"122\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"123\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"124\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"125\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"126\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"127\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"128\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"129\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"130\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"131\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"132\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"133\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"134\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"135\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"136\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"137\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"138\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"139\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"140\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"141\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"142\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"143\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"147\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"151\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"155\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"159\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"160\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"161\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"162\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"163\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"164\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"165\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"166\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"167\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"168\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"169\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"170\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"171\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"172\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"173\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"174\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"175\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"176\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"177\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"178\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"179\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"180\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"181\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"182\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"183\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"184\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"185\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"186\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"187\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"188\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"189\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"190\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"191\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"192\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"193\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"194\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"195\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"196\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"197\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"198\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"199\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"200\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"201\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"202\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"203\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"204\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"205\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"206\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"207\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"211\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"215\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"219\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"223\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"224\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"225\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"226\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"227\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"228\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"229\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"230\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"231\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"232\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"233\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"234\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"235\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"236\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"237\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"238\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"239\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"240\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"241\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"242\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"243\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"244\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"245\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"246\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"247\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"248\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"249\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"250\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"251\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"252\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"253\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"254\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"255\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"256\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"257\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"258\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"259\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"260\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"261\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"262\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"263\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"264\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"265\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"266\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"267\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"268\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"269\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"270\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"271\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"272\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"273\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"274\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"275\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"276\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"277\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"278\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"279\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"280\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"281\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"282\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"283\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"284\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"285\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"286\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"287\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"288\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"289\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"290\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"291\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"292\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"293\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"294\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"295\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"296\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"297\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"298\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"299\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"300\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"301\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"302\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"303\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"304\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"305\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"306\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"307\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"308\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"309\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"310\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"311\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"312\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"313\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"314\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"315\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"316\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"317\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"318\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"319\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"320\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"321\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"322\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"323\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"324\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"325\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"326\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"327\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"328\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"329\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"330\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"331\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"332\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"333\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"334\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"335\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"336\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"337\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"338\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"339\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"340\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"341\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"342\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"343\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"344\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"345\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"346\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"347\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"348\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"349\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"350\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"351\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"352\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"353\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"354\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"355\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"356\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"357\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"358\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"359\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"360\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"361\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"362\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"363\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"364\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"365\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"366\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"367\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"368\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"369\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"370\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"371\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"372\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"373\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"374\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"375\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"376\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"377\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"378\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"379\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"380\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"381\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"382\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"383\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"384\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"385\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"386\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"387\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"388\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"389\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"390\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"391\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"392\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"393\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"394\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"395\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"396\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"397\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"398\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"399\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"400\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"401\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"402\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"403\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"404\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"405\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"406\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"407\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"408\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"409\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"410\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"411\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"412\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"413\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"414\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"415\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"416\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"417\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"418\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"419\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"420\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"421\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"422\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"423\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"424\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"425\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"426\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"427\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"428\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"429\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"430\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"431\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"432\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"433\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"434\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"435\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"436\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"437\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"438\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"439\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"440\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"441\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"442\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"443\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"444\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"445\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"446\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"447\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"448\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"449\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"450\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"451\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"452\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"453\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"454\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"455\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"456\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"457\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"458\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"459\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"460\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"461\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"462\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"463\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"464\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"465\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"466\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"467\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"468\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"469\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"470\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"471\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"472\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"473\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"474\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"475\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"476\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"477\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"478\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"479\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"480\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"481\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"482\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"483\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"484\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"485\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"486\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"487\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"488\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"489\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"490\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"491\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"492\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"493\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"494\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"495\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"496\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"497\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"498\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"499\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"500\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"501\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"502\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"503\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"504\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"505\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"506\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"507\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"508\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"509\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"510\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"511\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" + } + ], + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task6_ResourceEstimationWrapper, jobName=\"RE for the task 6\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 6\n Job ID: 328660f0-134c-4a7e-8bb7-b3e615dcb31a\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:20:28] Current job status: Executing\n[14:20:33] Current job status: Succeeded\n" + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 96,\n 'cczCount': 16,\n 'measurementCount': 96,\n 'numQubits': 15,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 432,\n 'algorithmicLogicalQubits': 42,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 432,\n 'numTfactories': 12,\n 'numTfactoryRuns': 38,\n 'numTsPerRotation': None,\n 'numTstates': 448,\n 'physicalQubitsForAlgorithm': 14196,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 2.755731922398589e-08,\n 'requiredLogicalTstateErrorRate': 1.1160714285714287e-06},\n 'physicalQubits': 130356,\n 'runtime': 2246400},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '89.11 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '2.76e-8',\n 'requiredLogicalTstateErrorRate': '1.12e-6',\n 'runtime': '2ms 246us 400ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{448\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 246us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000002755731922398589)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits130356\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime2ms 246us 400ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits42\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 15\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 42$ logical qubits.

\n\r\n
Algorithmic depth432\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth432\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states448\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{448\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 2ms 246us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations38\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.

\n\r\n
Physical algorithmic qubits14196\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate2.76e-8\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.

\n\r\n
Required logical T state error rate1.12e-6\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000002755731922398589)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)15\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates16\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates96\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations96\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":96,\"cczCount\":16,\"measurementCount\":96,\"numQubits\":15,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":432,\"algorithmicLogicalQubits\":42,\"cliffordErrorRate\":0.001,\"logicalDepth\":432,\"numTfactories\":12,\"numTfactoryRuns\":38,\"numTsPerRotation\":null,\"numTstates\":448,\"physicalQubitsForAlgorithm\":14196,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":2.755731922398589E-08,\"requiredLogicalTstateErrorRate\":1.1160714285714287E-06},\"physicalQubits\":130356,\"runtime\":2246400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"89.11 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"2.76e-8\",\"requiredLogicalTstateErrorRate\":\"1.12e-6\",\"runtime\":\"2ms 246us 400ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{448\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 246us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000002755731922398589)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 42\nAlgorithmic depth = 432\nScore = 18144\n" + }, + { + "output_type": "execute_result", + "execution_count": 11, + "data": { + "text/plain": "18144" + }, + "metadata": {} + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task7.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task7.ipynb new file mode 100644 index 0000000..8e6492a --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task7.ipynb @@ -0,0 +1,523 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 7\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task7`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task7\"]\n", + "slack_id=\"U04L3RWQS6N\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task7_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task7_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 7 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 7. \n", + "// (input will contain 7 qubits)\n", + "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [9,18,19,25,36,37,38,39,41,50,51,57,72,73,74,75,76,77,78,79,82,83,89,100,101,102,103,105,114,115,121] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task7_DumpMachineWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task7(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task7_ResourceEstimationWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task7(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task7_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|00000000⟩\t0.0883883476483185 + 0𝑖\n|00000010⟩\t0.0883883476483185 + 0𝑖\n|00000100⟩\t0.0883883476483185 + 0𝑖\n|00000110⟩\t0.0883883476483185 + 0𝑖\n|00001000⟩\t0.0883883476483185 + 0𝑖\n|00001010⟩\t0.0883883476483185 + 0𝑖\n|00001100⟩\t0.0883883476483185 + 0𝑖\n|00001110⟩\t0.0883883476483185 + 0𝑖\n|00010000⟩\t0.0883883476483185 + 0𝑖\n|0001001100000000⟩\t0.0883883476483185 + 0𝑖\n|00010100⟩\t0.0883883476483185 + 0𝑖\n|00010110⟩\t0.0883883476483185 + 0𝑖\n|00011000⟩\t0.0883883476483185 + 0𝑖\n|00011010⟩\t0.0883883476483185 + 0𝑖\n|00011100⟩\t0.0883883476483185 + 0𝑖\n|00011110⟩\t0.0883883476483185 + 0𝑖\n|00100000⟩\t0.0883883476483185 + 0𝑖\n|00100010⟩\t0.0883883476483185 + 0𝑖\n|0010010100000000⟩\t0.0883883476483185 + 0𝑖\n|0010011100000000⟩\t0.0883883476483185 + 0𝑖\n|00101000⟩\t0.0883883476483185 + 0𝑖\n|00101010⟩\t0.0883883476483185 + 0𝑖\n|00101100⟩\t0.0883883476483185 + 0𝑖\n|00101110⟩\t0.0883883476483185 + 0𝑖\n|00110000⟩\t0.0883883476483185 + 0𝑖\n|0011001100000000⟩\t0.0883883476483185 + 0𝑖\n|00110100⟩\t0.0883883476483185 + 0𝑖\n|00110110⟩\t0.0883883476483185 + 0𝑖\n|00111000⟩\t0.0883883476483185 + 0𝑖\n|00111010⟩\t0.0883883476483185 + 0𝑖\n|00111100⟩\t0.0883883476483185 + 0𝑖\n|00111110⟩\t0.0883883476483185 + 0𝑖\n|01000000⟩\t0.0883883476483185 + 0𝑖\n|01000010⟩\t0.0883883476483185 + 0𝑖\n|01000100⟩\t0.0883883476483185 + 0𝑖\n|01000110⟩\t0.0883883476483185 + 0𝑖\n|0100100100000000⟩\t0.0883883476483185 + 0𝑖\n|0100101100000000⟩\t0.0883883476483185 + 0𝑖\n|0100110100000000⟩\t0.0883883476483185 + 0𝑖\n|0100111100000000⟩\t0.0883883476483185 + 0𝑖\n|01010000⟩\t0.0883883476483185 + 0𝑖\n|0101001100000000⟩\t0.0883883476483185 + 0𝑖\n|01010100⟩\t0.0883883476483185 + 0𝑖\n|01010110⟩\t0.0883883476483185 + 0𝑖\n|01011000⟩\t0.0883883476483185 + 0𝑖\n|01011010⟩\t0.0883883476483185 + 0𝑖\n|01011100⟩\t0.0883883476483185 + 0𝑖\n|01011110⟩\t0.0883883476483185 + 0𝑖\n|01100000⟩\t0.0883883476483185 + 0𝑖\n|01100010⟩\t0.0883883476483185 + 0𝑖\n|0110010100000000⟩\t0.0883883476483185 + 0𝑖\n|0110011100000000⟩\t0.0883883476483185 + 0𝑖\n|01101000⟩\t0.0883883476483185 + 0𝑖\n|01101010⟩\t0.0883883476483185 + 0𝑖\n|01101100⟩\t0.0883883476483185 + 0𝑖\n|01101110⟩\t0.0883883476483185 + 0𝑖\n|01110000⟩\t0.0883883476483185 + 0𝑖\n|0111001100000000⟩\t0.0883883476483185 + 0𝑖\n|01110100⟩\t0.0883883476483185 + 0𝑖\n|01110110⟩\t0.0883883476483185 + 0𝑖\n|01111000⟩\t0.0883883476483185 + 0𝑖\n|01111010⟩\t0.0883883476483185 + 0𝑖\n|01111100⟩\t0.0883883476483185 + 0𝑖\n|01111110⟩\t0.0883883476483185 + 0𝑖\n|10000000⟩\t0.0883883476483185 + 0𝑖\n|10000010⟩\t0.0883883476483185 + 0𝑖\n|10000100⟩\t0.0883883476483185 + 0𝑖\n|10000110⟩\t0.0883883476483185 + 0𝑖\n|10001000⟩\t0.0883883476483185 + 0𝑖\n|10001010⟩\t0.0883883476483185 + 0𝑖\n|10001100⟩\t0.0883883476483185 + 0𝑖\n|10001110⟩\t0.0883883476483185 + 0𝑖\n|1001000100000000⟩\t0.0883883476483185 + 0𝑖\n|1001001100000000⟩\t0.0883883476483185 + 0𝑖\n|1001010100000000⟩\t0.0883883476483185 + 0𝑖\n|1001011100000000⟩\t0.0883883476483185 + 0𝑖\n|1001100100000000⟩\t0.0883883476483185 + 0𝑖\n|1001101100000000⟩\t0.0883883476483185 + 0𝑖\n|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n|1001111100000000⟩\t0.0883883476483185 + 0𝑖\n|10100000⟩\t0.0883883476483185 + 0𝑖\n|10100010⟩\t0.0883883476483185 + 0𝑖\n|1010010100000000⟩\t0.0883883476483185 + 0𝑖\n|1010011100000000⟩\t0.0883883476483185 + 0𝑖\n|10101000⟩\t0.0883883476483185 + 0𝑖\n|10101010⟩\t0.0883883476483185 + 0𝑖\n|10101100⟩\t0.0883883476483185 + 0𝑖\n|10101110⟩\t0.0883883476483185 + 0𝑖\n|10110000⟩\t0.0883883476483185 + 0𝑖\n|1011001100000000⟩\t0.0883883476483185 + 0𝑖\n|10110100⟩\t0.0883883476483185 + 0𝑖\n|10110110⟩\t0.0883883476483185 + 0𝑖\n|10111000⟩\t0.0883883476483185 + 0𝑖\n|10111010⟩\t0.0883883476483185 + 0𝑖\n|10111100⟩\t0.0883883476483185 + 0𝑖\n|10111110⟩\t0.0883883476483185 + 0𝑖\n|11000000⟩\t0.0883883476483185 + 0𝑖\n|11000010⟩\t0.0883883476483185 + 0𝑖\n|11000100⟩\t0.0883883476483185 + 0𝑖\n|11000110⟩\t0.0883883476483185 + 0𝑖\n|1100100100000000⟩\t0.0883883476483185 + 0𝑖\n|1100101100000000⟩\t0.0883883476483185 + 0𝑖\n|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n|1100111100000000⟩\t0.0883883476483185 + 0𝑖\n|11010000⟩\t0.0883883476483185 + 0𝑖\n|1101001100000000⟩\t0.0883883476483185 + 0𝑖\n|11010100⟩\t0.0883883476483185 + 0𝑖\n|11010110⟩\t0.0883883476483185 + 0𝑖\n|11011000⟩\t0.0883883476483185 + 0𝑖\n|11011010⟩\t0.0883883476483185 + 0𝑖\n|11011100⟩\t0.0883883476483185 + 0𝑖\n|11011110⟩\t0.0883883476483185 + 0𝑖\n|11100000⟩\t0.0883883476483185 + 0𝑖\n|11100010⟩\t0.0883883476483185 + 0𝑖\n|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n|1110011100000000⟩\t0.0883883476483185 + 0𝑖\n|11101000⟩\t0.0883883476483185 + 0𝑖\n|11101010⟩\t0.0883883476483185 + 0𝑖\n|11101100⟩\t0.0883883476483185 + 0𝑖\n|11101110⟩\t0.0883883476483185 + 0𝑖\n|11110000⟩\t0.0883883476483185 + 0𝑖\n|1111001100000000⟩\t0.0883883476483185 + 0𝑖\n|11110100⟩\t0.0883883476483185 + 0𝑖\n|11110110⟩\t0.0883883476483185 + 0𝑖\n|11111000⟩\t0.0883883476483185 + 0𝑖\n|11111010⟩\t0.0883883476483185 + 0𝑖\n|11111100⟩\t0.0883883476483185 + 0𝑖\n|11111110⟩\t0.0883883476483185 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|00000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"24\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"25\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"30\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"31\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"43\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"46\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"47\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"48\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"54\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"55\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"59\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"60\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"61\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"62\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"63\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"86\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"87\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"91\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"92\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"93\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"94\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"95\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"107\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"108\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"109\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"110\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"111\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"117\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"118\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"119\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"120\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"123\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"124\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"125\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"126\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"127\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"128\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"147\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"159\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"165\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"166\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"170\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"171\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"174\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"175\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"176\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"182\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"183\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"187\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"188\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"189\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"190\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"191\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"200\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"201\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"202\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"203\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"204\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"205\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"207\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"211\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"215\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"218\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"219\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"223\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"228\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"229\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"231\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"234\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"235\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"236\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"237\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"238\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"239\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"242\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"243\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"244\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"245\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"246\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"247\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"248\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"249\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"250\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"251\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"252\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"253\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"254\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"255\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" + } + ], + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task7_ResourceEstimationWrapper, jobName=\"RE for the task 7\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 7\n Job ID: 120eae92-3cb6-4b9b-b602-31c3f675ec3d\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:26:01] Current job status: Executing\n[14:26:06] Current job status: Succeeded\n" + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 155,\n 'cczCount': 31,\n 'measurementCount': 155,\n 'numQubits': 13,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 713,\n 'algorithmicLogicalQubits': 38,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 713,\n 'numTfactories': 12,\n 'numTfactoryRuns': 62,\n 'numTsPerRotation': None,\n 'numTstates': 744,\n 'physicalQubitsForAlgorithm': 12844,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 1.845427031815162e-08,\n 'requiredLogicalTstateErrorRate': 6.720430107526882e-07},\n 'physicalQubits': 129004,\n 'runtime': 3707600},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '1.85e-8',\n 'requiredLogicalTstateErrorRate': '6.72e-7',\n 'runtime': '3ms 707us 600ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{744\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 3ms 707us 600ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000001845427031815162)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits129004\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime3ms 707us 600ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits38\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n\r\n
Algorithmic depth713\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth713\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states744\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{744\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 3ms 707us 600ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations62\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.

\n\r\n
Physical algorithmic qubits12844\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate1.85e-8\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.

\n\r\n
Required logical T state error rate6.72e-7\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000001845427031815162)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)13\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates31\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates155\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations155\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":155,\"cczCount\":31,\"measurementCount\":155,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":713,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":713,\"numTfactories\":12,\"numTfactoryRuns\":62,\"numTsPerRotation\":null,\"numTstates\":744,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":1.845427031815162E-08,\"requiredLogicalTstateErrorRate\":6.720430107526882E-07},\"physicalQubits\":129004,\"runtime\":3707600},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"1.85e-8\",\"requiredLogicalTstateErrorRate\":\"6.72e-7\",\"runtime\":\"3ms 707us 600ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{744\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 3ms 707us 600ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000001845427031815162)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 38\nAlgorithmic depth = 713\nScore = 27094\n" + }, + { + "output_type": "execute_result", + "execution_count": 11, + "data": { + "text/plain": "27094" + }, + "metadata": {} + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task8.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task8.ipynb new file mode 100644 index 0000000..de16d98 --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task8.ipynb @@ -0,0 +1,526 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 8\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task8`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "!az login" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 1. Write the code" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Preparing Q# environment...\n" + } + ], + "execution_count": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "teamname=\"Qubitrons\" # Update this field with your team name\n", + "task=[\"task8\"]\n", + "slack_id=\"U04L0TSC0LD\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ], + "outputs": [], + "execution_count": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task8_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task8_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ], + "outputs": [], + "execution_count": null, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "**The complete code for Task 8 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "\n", + "// Task 8. \n", + "// (input will contain 7 qubits)\n", + "operation Task8(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [15,23,27,29,30,31,39,43, 45,46,47,51,53,54,55,57, \n", + " 58,59,60,61,62,63,71,75, 77,78,79,83,85,86,87,89,\n", + " 90,91,92,93,94,95,99,101, 102,103,105,106,107,108,109,110,\n", + " 111,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}" + ], + "outputs": [], + "execution_count": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task8_DumpMachineWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task8(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task8_ResourceEstimationWrapper() : Unit {\n", + " let N = 7;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task8(input, target);\n", + "}" + ], + "outputs": [], + "execution_count": 4, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task8_DumpMachineWrapper.simulate()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "|00000000⟩\t0.0883883476483185 + 0𝑖\n|00000010⟩\t0.0883883476483185 + 0𝑖\n|00000100⟩\t0.0883883476483185 + 0𝑖\n|00000110⟩\t0.0883883476483185 + 0𝑖\n|00001000⟩\t0.0883883476483185 + 0𝑖\n|00001010⟩\t0.0883883476483185 + 0𝑖\n|00001100⟩\t0.0883883476483185 + 0𝑖\n|00001110⟩\t0.0883883476483185 + 0𝑖\n|00010000⟩\t0.0883883476483185 + 0𝑖\n|00010010⟩\t0.0883883476483185 + 0𝑖\n|00010100⟩\t0.0883883476483185 + 0𝑖\n|00010110⟩\t0.0883883476483185 + 0𝑖\n|00011000⟩\t0.0883883476483185 + 0𝑖\n|00011010⟩\t0.0883883476483185 + 0𝑖\n|00011100⟩\t0.0883883476483185 + 0𝑖\n|0001111100000000⟩\t0.0883883476483185 + 0𝑖\n|00100000⟩\t0.0883883476483185 + 0𝑖\n|00100010⟩\t0.0883883476483185 + 0𝑖\n|00100100⟩\t0.0883883476483185 + 0𝑖\n|00100110⟩\t0.0883883476483185 + 0𝑖\n|00101000⟩\t0.0883883476483185 + 0𝑖\n|00101010⟩\t0.0883883476483185 + 0𝑖\n|00101100⟩\t0.0883883476483185 + 0𝑖\n|0010111100000000⟩\t0.0883883476483185 + 0𝑖\n|00110000⟩\t0.0883883476483185 + 0𝑖\n|00110010⟩\t0.0883883476483185 + 0𝑖\n|00110100⟩\t0.0883883476483185 + 0𝑖\n|0011011100000000⟩\t0.0883883476483185 + 0𝑖\n|00111000⟩\t0.0883883476483185 + 0𝑖\n|0011101100000000⟩\t0.0883883476483185 + 0𝑖\n|0011110100000000⟩\t0.0883883476483185 + 0𝑖\n|0011111100000000⟩\t0.0883883476483185 + 0𝑖\n|01000000⟩\t0.0883883476483185 + 0𝑖\n|01000010⟩\t0.0883883476483185 + 0𝑖\n|01000100⟩\t0.0883883476483185 + 0𝑖\n|01000110⟩\t0.0883883476483185 + 0𝑖\n|01001000⟩\t0.0883883476483185 + 0𝑖\n|01001010⟩\t0.0883883476483185 + 0𝑖\n|01001100⟩\t0.0883883476483185 + 0𝑖\n|0100111100000000⟩\t0.0883883476483185 + 0𝑖\n|01010000⟩\t0.0883883476483185 + 0𝑖\n|01010010⟩\t0.0883883476483185 + 0𝑖\n|01010100⟩\t0.0883883476483185 + 0𝑖\n|0101011100000000⟩\t0.0883883476483185 + 0𝑖\n|01011000⟩\t0.0883883476483185 + 0𝑖\n|0101101100000000⟩\t0.0883883476483185 + 0𝑖\n|0101110100000000⟩\t0.0883883476483185 + 0𝑖\n|0101111100000000⟩\t0.0883883476483185 + 0𝑖\n|01100000⟩\t0.0883883476483185 + 0𝑖\n|01100010⟩\t0.0883883476483185 + 0𝑖\n|01100100⟩\t0.0883883476483185 + 0𝑖\n|0110011100000000⟩\t0.0883883476483185 + 0𝑖\n|01101000⟩\t0.0883883476483185 + 0𝑖\n|0110101100000000⟩\t0.0883883476483185 + 0𝑖\n|0110110100000000⟩\t0.0883883476483185 + 0𝑖\n|0110111100000000⟩\t0.0883883476483185 + 0𝑖\n|01110000⟩\t0.0883883476483185 + 0𝑖\n|0111001100000000⟩\t0.0883883476483185 + 0𝑖\n|0111010100000000⟩\t0.0883883476483185 + 0𝑖\n|0111011100000000⟩\t0.0883883476483185 + 0𝑖\n|0111100100000000⟩\t0.0883883476483185 + 0𝑖\n|0111101100000000⟩\t0.0883883476483185 + 0𝑖\n|0111110100000000⟩\t0.0883883476483185 + 0𝑖\n|0111111100000000⟩\t0.0883883476483185 + 0𝑖\n|10000000⟩\t0.0883883476483185 + 0𝑖\n|10000010⟩\t0.0883883476483185 + 0𝑖\n|10000100⟩\t0.0883883476483185 + 0𝑖\n|10000110⟩\t0.0883883476483185 + 0𝑖\n|10001000⟩\t0.0883883476483185 + 0𝑖\n|10001010⟩\t0.0883883476483185 + 0𝑖\n|10001100⟩\t0.0883883476483185 + 0𝑖\n|1000111100000000⟩\t0.0883883476483185 + 0𝑖\n|10010000⟩\t0.0883883476483185 + 0𝑖\n|10010010⟩\t0.0883883476483185 + 0𝑖\n|10010100⟩\t0.0883883476483185 + 0𝑖\n|1001011100000000⟩\t0.0883883476483185 + 0𝑖\n|10011000⟩\t0.0883883476483185 + 0𝑖\n|1001101100000000⟩\t0.0883883476483185 + 0𝑖\n|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n|1001111100000000⟩\t0.0883883476483185 + 0𝑖\n|10100000⟩\t0.0883883476483185 + 0𝑖\n|10100010⟩\t0.0883883476483185 + 0𝑖\n|10100100⟩\t0.0883883476483185 + 0𝑖\n|1010011100000000⟩\t0.0883883476483185 + 0𝑖\n|10101000⟩\t0.0883883476483185 + 0𝑖\n|1010101100000000⟩\t0.0883883476483185 + 0𝑖\n|1010110100000000⟩\t0.0883883476483185 + 0𝑖\n|1010111100000000⟩\t0.0883883476483185 + 0𝑖\n|10110000⟩\t0.0883883476483185 + 0𝑖\n|1011001100000000⟩\t0.0883883476483185 + 0𝑖\n|1011010100000000⟩\t0.0883883476483185 + 0𝑖\n|1011011100000000⟩\t0.0883883476483185 + 0𝑖\n|1011100100000000⟩\t0.0883883476483185 + 0𝑖\n|1011101100000000⟩\t0.0883883476483185 + 0𝑖\n|1011110100000000⟩\t0.0883883476483185 + 0𝑖\n|1011111100000000⟩\t0.0883883476483185 + 0𝑖\n|11000000⟩\t0.0883883476483185 + 0𝑖\n|11000010⟩\t0.0883883476483185 + 0𝑖\n|11000100⟩\t0.0883883476483185 + 0𝑖\n|1100011100000000⟩\t0.0883883476483185 + 0𝑖\n|11001000⟩\t0.0883883476483185 + 0𝑖\n|1100101100000000⟩\t0.0883883476483185 + 0𝑖\n|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n|1100111100000000⟩\t0.0883883476483185 + 0𝑖\n|11010000⟩\t0.0883883476483185 + 0𝑖\n|1101001100000000⟩\t0.0883883476483185 + 0𝑖\n|1101010100000000⟩\t0.0883883476483185 + 0𝑖\n|1101011100000000⟩\t0.0883883476483185 + 0𝑖\n|1101100100000000⟩\t0.0883883476483185 + 0𝑖\n|1101101100000000⟩\t0.0883883476483185 + 0𝑖\n|1101110100000000⟩\t0.0883883476483185 + 0𝑖\n|1101111100000000⟩\t0.0883883476483185 + 0𝑖\n|11100000⟩\t0.0883883476483185 + 0𝑖\n|1110001100000000⟩\t0.0883883476483185 + 0𝑖\n|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n|1110011100000000⟩\t0.0883883476483185 + 0𝑖\n|1110100100000000⟩\t0.0883883476483185 + 0𝑖\n|1110101100000000⟩\t0.0883883476483185 + 0𝑖\n|1110110100000000⟩\t0.0883883476483185 + 0𝑖\n|1110111100000000⟩\t0.0883883476483185 + 0𝑖\n|1111000100000000⟩\t0.0883883476483185 + 0𝑖\n|1111001100000000⟩\t0.0883883476483185 + 0𝑖\n|1111010100000000⟩\t0.0883883476483185 + 0𝑖\n|1111011100000000⟩\t0.0883883476483185 + 0𝑖\n|1111100100000000⟩\t0.0883883476483185 + 0𝑖\n|1111101100000000⟩\t0.0883883476483185 + 0𝑖\n|1111110100000000⟩\t0.0883883476483185 + 0𝑖\n|1111111100000000⟩\t0.0883883476483185 + 0𝑖", + "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|00000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1000111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"19\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"24\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"25\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"31\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"37\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"38\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"42\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"43\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"47\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"48\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"59\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"72\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"73\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"74\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"86\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"91\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"109\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"128\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"147\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"158\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"159\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"165\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"166\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"170\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"171\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"174\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"175\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"176\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"182\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"183\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"187\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"188\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"189\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"190\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"191\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"200\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"201\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"202\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"203\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"204\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"205\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"207\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"211\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"214\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"215\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"218\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"219\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"220\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"221\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"222\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"223\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"228\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"229\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"231\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"234\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"235\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"236\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"237\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"238\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"239\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"242\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"243\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"244\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"245\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"246\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"247\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"248\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"249\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"250\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"251\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"252\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"253\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"254\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"255\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0}}}" + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "execution_count": 5, + "data": { + "text/plain": "()" + }, + "metadata": {} + } + ], + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "markdown", + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ], + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"East US\")\n", + "print(\"this notebook is run on azure quantum workspace\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "Connecting to Azure Quantum...", + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" + }, + "metadata": {} + }, + { + "output_type": "stream", + "name": "stdout", + "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" + } + ], + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" + }, + { + "output_type": "execute_result", + "execution_count": 7, + "data": { + "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + }, + "metadata": {} + } + ], + "execution_count": 7, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task8_ResourceEstimationWrapper, jobName=\"RE for the task 8\")" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Submitting Task8_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 8\n Job ID: 642eb981-5774-4ad0-9c36-e396df5ab76f\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:29:47] Current job status: Executing\n[14:29:52] Current job status: Succeeded\n" + } + ], + "execution_count": 8, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ], + "outputs": [ + { + "output_type": "execute_result", + "execution_count": 9, + "data": { + "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 320,\n 'cczCount': 64,\n 'measurementCount': 320,\n 'numQubits': 13,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 1472,\n 'algorithmicLogicalQubits': 38,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 1472,\n 'numTfactories': 12,\n 'numTfactoryRuns': 128,\n 'numTsPerRotation': None,\n 'numTstates': 1536,\n 'physicalQubitsForAlgorithm': 12844,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 8.938787185354691e-09,\n 'requiredLogicalTstateErrorRate': 3.255208333333333e-07},\n 'physicalQubits': 129004,\n 'runtime': 7654400},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '8.94e-9',\n 'requiredLogicalTstateErrorRate': '3.26e-7',\n 'runtime': '7ms 654us 400ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{1536\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 7ms 654us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000008938787185354691)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", + "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits129004\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime7ms 654us 400ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits38\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n\r\n
Algorithmic depth1472\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth1472\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states1536\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{1536\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 7ms 654us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations128\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.

\n\r\n
Physical algorithmic qubits12844\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate8.94e-9\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.

\n\r\n
Required logical T state error rate3.26e-7\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000000008938787185354691)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)13\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates64\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates320\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations320\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":320,\"cczCount\":64,\"measurementCount\":320,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":1472,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":1472,\"numTfactories\":12,\"numTfactoryRuns\":128,\"numTsPerRotation\":null,\"numTstates\":1536,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":8.938787185354691E-09,\"requiredLogicalTstateErrorRate\":3.255208333333333E-07},\"physicalQubits\":129004,\"runtime\":7654400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"8.94e-9\",\"requiredLogicalTstateErrorRate\":\"3.26e-7\",\"runtime\":\"7ms 654us 400ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{1536\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 7ms 654us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000008938787185354691)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" + }, + "metadata": {} + } + ], + "execution_count": 9, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ], + "outputs": [], + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + }, + { + "cell_type": "code", + "source": [ + "evaluate_results(result)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": "Logical algorithmic qubits = 38\nAlgorithmic depth = 1472\nScore = 55936\n" + }, + { + "output_type": "execute_result", + "execution_count": 11, + "data": { + "text/plain": "55936" + }, + "metadata": {} + } + ], + "execution_count": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + } + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "language": "python", + "display_name": "Python 3 (ipykernel)" + }, + "language_info": { + "name": "python", + "version": "3.9.15", + "mimetype": "text/x-python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "pygments_lexer": "ipython3", + "nbconvert_exporter": "python", + "file_extension": ".py" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb new file mode 100644 index 0000000..196fe6a --- /dev/null +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb @@ -0,0 +1,8324 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 9\n", + "\n", + "To work on this task,\n", + "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", + "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", + "3. Work on your task in the cell that contains operation `Task9`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", + "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", + " \"isDefault\": true,\n", + " \"managedByTenants\": [\n", + " {\n", + " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", + " },\n", + " {\n", + " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", + " },\n", + " {\n", + " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", + " }\n", + " ],\n", + " \"name\": \"Azure for Students\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", + " \"user\": {\n", + " \"name\": \"jyothsnakavala2003@gmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" + ] + } + ], + "source": [ + "!az login" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 1. Write the code" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# Run this code cell to import the modules required to work with Q# and Azure\n", + "import qsharp\n", + "from qsharp import azure" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"Quibitrons\" # Update this field with your team name\n", + "task=[\"task9\"]\n", + "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", + "Task9_DumpMachineWrapper : qsharp.QSharpCallable = None\n", + "Task9_ResourceEstimationWrapper : qsharp.QSharpCallable = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "**The complete code for Task 9 should be in this cell.** \n", + "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", + "If you define helper operations in other cells, they will not be picked up by the grader!" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "// Task 9 \n", + "// (input will contain 7 qubits)\n", + "operation Task9(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " let N = Length(input);\n", + " for i in 0 .. N-1 {\n", + " ControlledOnInt(i, X)(input[0..N-1], target);\n", + " }\n", + "}\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "microsoft": { + "language": "qsharp" + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "%%qsharp\n", + "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", + "operation Task9_DumpMachineWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " // Prepare an equal superposition of all input states in the input register.\n", + " ApplyToEach(H, input);\n", + " // Apply the oracle.\n", + " Task9(input, target);\n", + " // Print the state of the system after the oracle application.\n", + " DumpMachine();\n", + " ResetAll(input + [target]);\n", + "}\n", + "\n", + "// Wrapper operation that allows to run resource estimation for the task.\n", + "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", + "operation Task9_ResourceEstimationWrapper() : Unit {\n", + " let N = 8;\n", + " use (input, target) = (Qubit[N], Qubit());\n", + " Task9(input, target);\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 2. Run the code on a simulator to see what it does\n", + "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7,8],\"n_qubits\":9,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"2\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"5\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"6\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"7\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"8\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"9\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"10\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"11\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"12\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"13\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"14\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"15\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"16\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"17\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"18\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"19\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"20\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"21\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"22\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"23\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"24\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"25\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"26\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"27\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"28\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"29\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"30\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"31\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"32\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"33\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"34\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"35\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"36\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"37\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"38\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"39\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"40\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"41\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"42\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"43\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"44\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"45\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"46\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"47\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"48\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"49\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"50\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"51\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"52\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"53\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"54\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"55\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"56\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"57\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"58\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"59\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"60\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"61\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"62\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"63\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"64\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"65\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"66\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"67\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"68\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"69\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"70\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"71\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"72\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"73\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"74\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"75\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"76\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"77\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"78\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"79\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"80\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"81\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"82\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"83\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"84\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"85\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"86\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"87\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"88\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"89\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"90\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"91\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"92\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"93\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"94\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"95\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"96\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"97\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"98\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"99\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"100\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"101\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"102\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"103\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"104\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"105\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"106\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"107\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"108\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"109\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"110\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"111\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"112\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"113\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"114\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"115\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"116\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"117\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"118\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"119\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"120\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"121\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"122\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"123\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"124\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"125\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"126\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"127\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"128\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"129\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"130\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"131\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"132\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"133\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"134\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"135\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"136\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"137\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"138\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"139\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"140\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"141\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"142\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"143\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"144\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"145\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"146\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"147\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"148\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"149\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"150\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"151\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"152\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"153\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"154\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"155\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"156\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"157\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"158\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"159\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"160\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"161\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"162\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"163\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"164\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"165\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"166\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"167\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"168\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"169\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"170\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"171\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"172\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"173\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"174\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"175\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"176\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"177\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"178\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"179\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"180\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"181\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"182\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"183\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"184\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"185\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"186\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"187\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"188\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"189\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"190\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"191\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"192\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"193\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"194\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"195\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"196\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"197\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"198\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"199\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"200\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"201\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"202\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"203\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"204\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"205\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"206\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"207\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"208\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"209\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"210\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"211\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"212\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"213\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"214\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"215\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"216\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"217\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"218\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"219\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"220\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"221\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"222\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"223\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"224\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"225\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"226\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"227\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"228\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"229\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"230\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"231\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"232\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"233\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"234\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"235\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"236\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"237\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"238\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"239\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"240\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"241\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"242\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"243\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"244\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"245\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"246\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"247\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"248\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"249\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"250\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"251\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"252\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"253\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"254\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"255\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"256\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"257\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"258\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"259\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"260\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"261\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"262\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"263\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"264\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"265\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"266\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"267\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"268\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"269\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"270\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"271\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"272\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"273\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"274\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"275\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"276\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"277\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"278\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"279\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"280\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"281\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"282\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"283\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"284\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"285\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"286\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"287\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"288\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"289\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"290\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"291\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"292\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"293\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"294\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"295\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"296\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"297\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"298\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"299\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"300\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"301\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"302\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"303\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"304\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"305\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"306\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"307\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"308\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"309\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"310\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"311\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"312\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"313\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"314\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"315\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"316\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"317\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"318\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"319\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"320\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"321\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"322\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"323\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"324\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"325\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"326\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"327\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"328\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"329\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"330\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"331\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"332\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"333\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"334\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"335\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"336\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"337\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"338\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"339\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"340\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"341\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"342\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"343\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"344\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"345\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"346\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"347\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"348\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"349\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"350\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"351\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"352\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"353\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"354\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"355\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"356\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"357\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"358\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"359\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"360\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"361\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"362\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"363\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"364\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"365\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"366\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"367\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"368\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"369\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"370\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"371\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"372\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"373\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"374\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"375\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"376\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"377\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"378\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"379\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"380\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"381\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"382\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"383\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"384\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"385\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"386\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"387\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"388\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"389\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"390\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"391\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"392\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"393\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"394\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"395\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"396\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"397\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"398\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"399\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"400\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"401\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"402\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"403\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"404\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"405\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"406\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"407\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"408\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"409\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"410\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"411\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"412\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"413\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"414\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"415\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"416\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"417\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"418\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"419\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"420\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"421\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"422\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"423\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"424\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"425\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"426\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"427\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"428\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"429\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"430\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"431\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"432\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"433\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"434\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"435\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"436\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"437\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"438\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"439\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"440\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"441\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"442\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"443\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"444\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"445\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"446\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"447\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"448\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"449\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"450\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"451\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"452\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"453\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"454\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"455\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"456\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"457\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"458\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"459\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"460\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"461\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"462\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"463\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"464\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"465\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"466\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"467\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"468\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"469\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"470\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"471\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"472\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"473\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"474\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"475\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"476\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"477\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"478\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"479\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"480\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"481\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"482\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"483\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"484\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"485\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"486\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"487\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"488\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"489\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"490\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"491\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"492\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"493\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"494\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"495\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"496\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"497\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"498\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"499\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"500\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"501\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"502\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"503\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"504\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"505\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"506\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"507\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"508\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"509\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"510\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"511\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", + "text/html": [ + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7, 8
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|010111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|011111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|100111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|101111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|000000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000000100⟩\t0.06250000000000006 + 0𝑖\n", + "|000000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000001000⟩\t0.06250000000000006 + 0𝑖\n", + "|000001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000001100⟩\t0.06250000000000006 + 0𝑖\n", + "|000001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000010000⟩\t0.06250000000000006 + 0𝑖\n", + "|000010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000010100⟩\t0.06250000000000006 + 0𝑖\n", + "|000010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000011000⟩\t0.06250000000000006 + 0𝑖\n", + "|000011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000011100⟩\t0.06250000000000006 + 0𝑖\n", + "|000011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000100000⟩\t0.06250000000000006 + 0𝑖\n", + "|000100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000100100⟩\t0.06250000000000006 + 0𝑖\n", + "|000100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000101000⟩\t0.06250000000000006 + 0𝑖\n", + "|000101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000101100⟩\t0.06250000000000006 + 0𝑖\n", + "|000101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000110000⟩\t0.06250000000000006 + 0𝑖\n", + "|000110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000110100⟩\t0.06250000000000006 + 0𝑖\n", + "|000110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000111000⟩\t0.06250000000000006 + 0𝑖\n", + "|000111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|000111100⟩\t0.06250000000000006 + 0𝑖\n", + "|000111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000100⟩\t0.06250000000000006 + 0𝑖\n", + "|001000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001001000⟩\t0.06250000000000006 + 0𝑖\n", + "|001001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001001100⟩\t0.06250000000000006 + 0𝑖\n", + "|001001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001010000⟩\t0.06250000000000006 + 0𝑖\n", + "|001010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001010100⟩\t0.06250000000000006 + 0𝑖\n", + "|001010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001011000⟩\t0.06250000000000006 + 0𝑖\n", + "|001011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001011100⟩\t0.06250000000000006 + 0𝑖\n", + "|001011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001100000⟩\t0.06250000000000006 + 0𝑖\n", + "|001100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001100100⟩\t0.06250000000000006 + 0𝑖\n", + "|001100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001101000⟩\t0.06250000000000006 + 0𝑖\n", + "|001101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001101100⟩\t0.06250000000000006 + 0𝑖\n", + "|001101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001110000⟩\t0.06250000000000006 + 0𝑖\n", + "|001110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001110100⟩\t0.06250000000000006 + 0𝑖\n", + "|001110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001111000⟩\t0.06250000000000006 + 0𝑖\n", + "|001111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001111100⟩\t0.06250000000000006 + 0𝑖\n", + "|001111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010000100⟩\t0.06250000000000006 + 0𝑖\n", + "|010000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010001000⟩\t0.06250000000000006 + 0𝑖\n", + "|010001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010001100⟩\t0.06250000000000006 + 0𝑖\n", + "|010001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010010000⟩\t0.06250000000000006 + 0𝑖\n", + "|010010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010010100⟩\t0.06250000000000006 + 0𝑖\n", + "|010010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010011000⟩\t0.06250000000000006 + 0𝑖\n", + "|010011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010011100⟩\t0.06250000000000006 + 0𝑖\n", + "|010011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010100000⟩\t0.06250000000000006 + 0𝑖\n", + "|010100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010100100⟩\t0.06250000000000006 + 0𝑖\n", + "|010100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010101000⟩\t0.06250000000000006 + 0𝑖\n", + "|010101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010101100⟩\t0.06250000000000006 + 0𝑖\n", + "|010101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010110000⟩\t0.06250000000000006 + 0𝑖\n", + "|010110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010110100⟩\t0.06250000000000006 + 0𝑖\n", + "|010110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010111000⟩\t0.06250000000000006 + 0𝑖\n", + "|010111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|010111100⟩\t0.06250000000000006 + 0𝑖\n", + "|010111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011000100⟩\t0.06250000000000006 + 0𝑖\n", + "|011000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011001000⟩\t0.06250000000000006 + 0𝑖\n", + "|011001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011001100⟩\t0.06250000000000006 + 0𝑖\n", + "|011001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011010000⟩\t0.06250000000000006 + 0𝑖\n", + "|011010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011010100⟩\t0.06250000000000006 + 0𝑖\n", + "|011010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011011000⟩\t0.06250000000000006 + 0𝑖\n", + "|011011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011011100⟩\t0.06250000000000006 + 0𝑖\n", + "|011011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011100000⟩\t0.06250000000000006 + 0𝑖\n", + "|011100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011100100⟩\t0.06250000000000006 + 0𝑖\n", + "|011100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011101000⟩\t0.06250000000000006 + 0𝑖\n", + "|011101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011101100⟩\t0.06250000000000006 + 0𝑖\n", + "|011101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011110000⟩\t0.06250000000000006 + 0𝑖\n", + "|011110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011110100⟩\t0.06250000000000006 + 0𝑖\n", + "|011110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011111000⟩\t0.06250000000000006 + 0𝑖\n", + "|011111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|011111100⟩\t0.06250000000000006 + 0𝑖\n", + "|011111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100000100⟩\t0.06250000000000006 + 0𝑖\n", + "|100000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100001000⟩\t0.06250000000000006 + 0𝑖\n", + "|100001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100001100⟩\t0.06250000000000006 + 0𝑖\n", + "|100001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100010000⟩\t0.06250000000000006 + 0𝑖\n", + "|100010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100010100⟩\t0.06250000000000006 + 0𝑖\n", + "|100010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100011000⟩\t0.06250000000000006 + 0𝑖\n", + "|100011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100011100⟩\t0.06250000000000006 + 0𝑖\n", + "|100011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100100000⟩\t0.06250000000000006 + 0𝑖\n", + "|100100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100100100⟩\t0.06250000000000006 + 0𝑖\n", + "|100100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100101000⟩\t0.06250000000000006 + 0𝑖\n", + "|100101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100101100⟩\t0.06250000000000006 + 0𝑖\n", + "|100101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100110000⟩\t0.06250000000000006 + 0𝑖\n", + "|100110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100110100⟩\t0.06250000000000006 + 0𝑖\n", + "|100110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100111000⟩\t0.06250000000000006 + 0𝑖\n", + "|100111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|100111100⟩\t0.06250000000000006 + 0𝑖\n", + "|100111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101000100⟩\t0.06250000000000006 + 0𝑖\n", + "|101000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101001000⟩\t0.06250000000000006 + 0𝑖\n", + "|101001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101001100⟩\t0.06250000000000006 + 0𝑖\n", + "|101001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101010000⟩\t0.06250000000000006 + 0𝑖\n", + "|101010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101010100⟩\t0.06250000000000006 + 0𝑖\n", + "|101010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011100⟩\t0.06250000000000006 + 0𝑖\n", + "|101011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101100000⟩\t0.06250000000000006 + 0𝑖\n", + "|101100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101100100⟩\t0.06250000000000006 + 0𝑖\n", + "|101100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101101000⟩\t0.06250000000000006 + 0𝑖\n", + "|101101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101101100⟩\t0.06250000000000006 + 0𝑖\n", + "|101101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101110000⟩\t0.06250000000000006 + 0𝑖\n", + "|101110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101110100⟩\t0.06250000000000006 + 0𝑖\n", + "|101110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101111000⟩\t0.06250000000000006 + 0𝑖\n", + "|101111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101111100⟩\t0.06250000000000006 + 0𝑖\n", + "|101111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110000100⟩\t0.06250000000000006 + 0𝑖\n", + "|110000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110001000⟩\t0.06250000000000006 + 0𝑖\n", + "|110001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110001100⟩\t0.06250000000000006 + 0𝑖\n", + "|110001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110010000⟩\t0.06250000000000006 + 0𝑖\n", + "|110010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110010100⟩\t0.06250000000000006 + 0𝑖\n", + "|110010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110011000⟩\t0.06250000000000006 + 0𝑖\n", + "|110011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110011100⟩\t0.06250000000000006 + 0𝑖\n", + "|110011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110100000⟩\t0.06250000000000006 + 0𝑖\n", + "|110100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110100100⟩\t0.06250000000000006 + 0𝑖\n", + "|110100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110101000⟩\t0.06250000000000006 + 0𝑖\n", + "|110101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110101100⟩\t0.06250000000000006 + 0𝑖\n", + "|110101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110110000⟩\t0.06250000000000006 + 0𝑖\n", + "|110110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110110100⟩\t0.06250000000000006 + 0𝑖\n", + "|110110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110111000⟩\t0.06250000000000006 + 0𝑖\n", + "|110111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|110111100⟩\t0.06250000000000006 + 0𝑖\n", + "|110111110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111000000100000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111000100⟩\t0.06250000000000006 + 0𝑖\n", + "|111000110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111001000⟩\t0.06250000000000006 + 0𝑖\n", + "|111001010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111001100⟩\t0.06250000000000006 + 0𝑖\n", + "|111001110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111010000⟩\t0.06250000000000006 + 0𝑖\n", + "|111010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111010100⟩\t0.06250000000000006 + 0𝑖\n", + "|111010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111011000⟩\t0.06250000000000006 + 0𝑖\n", + "|111011010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111011100⟩\t0.06250000000000006 + 0𝑖\n", + "|111011110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111100000⟩\t0.06250000000000006 + 0𝑖\n", + "|111100010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111100100⟩\t0.06250000000000006 + 0𝑖\n", + "|111100110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111101000⟩\t0.06250000000000006 + 0𝑖\n", + "|111101010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111101100⟩\t0.06250000000000006 + 0𝑖\n", + "|111101110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111110000⟩\t0.06250000000000006 + 0𝑖\n", + "|111110010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111110100⟩\t0.06250000000000006 + 0𝑖\n", + "|111110110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111111000⟩\t0.06250000000000006 + 0𝑖\n", + "|111111010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|111111100⟩\t0.06250000000000006 + 0𝑖\n", + "|111111110000000000⟩\t0.06250000000000006 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", + "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", + "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", + "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", + "Task9_DumpMachineWrapper.simulate()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "nteract": { + "transient": { + "deleting": false + } + } + }, + "source": [ + "## Step 3. Evaluate the code using resource estimation" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", + "text/plain": [ + "Connecting to Azure Quantum..." + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Authenticated using Azure.Identity.AzureCliCredential\n", + "\n", + "\n", + "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181141},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 368938},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 202},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 167},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 202},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 167},\n", + " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", + " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", + "# If you're using this notebook in qBraid, keep it\n", + "qsharp.azure.connect(\n", + " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", + " location=\"EAST US\")" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", + "Active target is now microsoft.estimator\n" + ] + }, + { + "data": { + "text/plain": [ + "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task9_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 9\n", + " Job ID: a157f2e4-4f9f-4bc8-b210-72a0ce1a9123\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[19:18:19] Current job status: Executing\n", + "[19:18:24] Current job status: Succeeded\n" + ] + } + ], + "source": [ + "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", + "result = qsharp.azure.execute(Task9_ResourceEstimationWrapper, jobName=\"RE for the task 9\")" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "data": { + "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":48,\"cczCount\":8,\"measurementCount\":48,\"numQubits\":15,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":216,\"algorithmicLogicalQubits\":42,\"cliffordErrorRate\":0.001,\"logicalDepth\":216,\"numTfactories\":12,\"numTfactoryRuns\":19,\"numTsPerRotation\":null,\"numTstates\":224,\"physicalQubitsForAlgorithm\":10164,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":5.511463844797178E-08,\"requiredLogicalTstateErrorRate\":2.2321428571428573E-06},\"physicalQubits\":87924,\"runtime\":950400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"88.44 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"5.51e-8\",\"requiredLogicalTstateErrorRate\":\"2.23e-6\",\"runtime\":\"950us 400ns\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{224\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 950us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000005511463844797178)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Physical resource estimates\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits87924\r\n", + "

Number of physical qubits

\n", + "
\r\n", + "
\r\n", + "

This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime950us 400ns\r\n", + "

Total runtime

\n", + "
\r\n", + "
\r\n", + "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Resource estimates breakdown\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical algorithmic qubits42\r\n", + "

Number of logical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 15\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 42$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth216\r\n", + "

Number of logical cycles for the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", + "\r\n", + "
Logical depth216\r\n", + "

Number of logical cycles performed

\n", + "
\r\n", + "
\r\n", + "

This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", + "\r\n", + "
Number of T states224\r\n", + "

Number of T states consumed by the algorithm

\n", + "
\r\n", + "
\r\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "\r\n", + "
Number of T factories12\r\n", + "

Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime

\n", + "
\r\n", + "
\r\n", + "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{224\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 950us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "\r\n", + "
Number of T factory invocations19\r\n", + "

Number of times all T factories are invoked

\n", + "
\r\n", + "
\r\n", + "

In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.

\n", + "\r\n", + "
Physical algorithmic qubits10164\r\n", + "

Number of physical qubits for the algorithm after layout

\n", + "
\r\n", + "
\r\n", + "

The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", + "\r\n", + "
Physical T factory qubits77760\r\n", + "

Number of physical qubits for the T factories

\n", + "
\r\n", + "
\r\n", + "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate5.51e-8\r\n", + "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", + "
\r\n", + "
\r\n", + "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.

\n", + "\r\n", + "
Required logical T state error rate2.23e-6\r\n", + "

The minimum T state error rate required for distilled T states

\n", + "
\r\n", + "
\r\n", + "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.

\n", + "\r\n", + "
Number of T states per rotationNo rotations in algorithm\r\n", + "

Number of T states to implement a rotation with an arbitrary angle

\n", + "
\r\n", + "
\r\n", + "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Logical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
QEC schemesurface_code\r\n", + "

Name of QEC scheme

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", + "\r\n", + "
Code distance11\r\n", + "

Required code distance for error correction

\n", + "
\r\n", + "
\r\n", + "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000005511463844797178)}{\\log(0.01/0.001)} - 1\\)

\n", + "\r\n", + "
Physical qubits242\r\n", + "

Number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical cycle time4us 400ns\r\n", + "

Duration of a logical cycle in nanoseconds

\n", + "
\r\n", + "
\r\n", + "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", + "\r\n", + "
Logical qubit error rate3.00e-8\r\n", + "

Logical qubit error rate

\n", + "
\r\n", + "
\r\n", + "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", + "\r\n", + "
Crossing prefactor0.03\r\n", + "

Crossing prefactor used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", + "\r\n", + "
Error correction threshold0.01\r\n", + "

Error correction threshold used in QEC scheme

\n", + "
\r\n", + "
\r\n", + "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", + "\r\n", + "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", + "

QEC scheme formula used to compute logical cycle time

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", + "\r\n", + "
Physical qubits formula2 * codeDistance * codeDistance\r\n", + "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", + "
\r\n", + "
\r\n", + "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " T factory parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Physical qubits6480\r\n", + "

Number of physical qubits for a single T factory

\n", + "
\r\n", + "
\r\n", + "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", + "\r\n", + "
Runtime46us 800ns\r\n", + "

Runtime of a single T factory

\n", + "
\r\n", + "
\r\n", + "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", + "\r\n", + "
Number of output T states per run1\r\n", + "

Number of output T states produced in a single run of T factory

\n", + "
\r\n", + "
\r\n", + "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", + "\r\n", + "
Number of input T states per run30\r\n", + "

Number of physical input T states consumed in a single run of a T factory

\n", + "
\r\n", + "
\r\n", + "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", + "\r\n", + "
Distillation rounds1\r\n", + "

The number of distillation rounds

\n", + "
\r\n", + "
\r\n", + "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", + "\r\n", + "
Distillation units per round2\r\n", + "

The number of units in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the number of copies for the distillation units per round.

\n", + "\r\n", + "
Distillation units15-to-1 space efficient logical\r\n", + "

The types of distillation units

\n", + "
\r\n", + "
\r\n", + "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", + "\r\n", + "
Distillation code distances9\r\n", + "

The code distance in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", + "\r\n", + "
Number of physical qubits per round6480\r\n", + "

The number of physical qubits used in each round of distillation

\n", + "
\r\n", + "
\r\n", + "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", + "\r\n", + "
Runtime per round46us 800ns\r\n", + "

The runtime of each distillation round

\n", + "
\r\n", + "
\r\n", + "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", + "\r\n", + "
Logical T state error rate2.17e-6\r\n", + "

Logical T state error rate

\n", + "
\r\n", + "
\r\n", + "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Pre-layout logical resources\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Logical qubits (pre-layout)15\r\n", + "

Number of logical qubits in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", + "\r\n", + "
T gates0\r\n", + "

Number of T gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", + "\r\n", + "
Rotation gates0\r\n", + "

Number of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", + "\r\n", + "
Rotation depth0\r\n", + "

Depth of rotation gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", + "\r\n", + "
CCZ gates8\r\n", + "

Number of CCZ-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCZ gates.

\n", + "\r\n", + "
CCiX gates48\r\n", + "

Number of CCiX-gates in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", + "\r\n", + "
Measurement operations48\r\n", + "

Number of single qubit measurements in the input quantum program

\n", + "
\r\n", + "
\r\n", + "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Assumed error budget\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Total error budget1.00e-3\r\n", + "

Total error budget for the algorithm

\n", + "
\r\n", + "
\r\n", + "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", + "\r\n", + "
Logical error probability5.00e-4\r\n", + "

Probability of at least one logical error

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
T distillation error probability5.00e-4\r\n", + "

Probability of at least one faulty T distillation

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", + "\r\n", + "
Rotation synthesis error probability0.00e0\r\n", + "

Probability of at least one failed rotation synthesis

\n", + "
\r\n", + "
\r\n", + "

This is one third of the total error budget 1.00e-3.

\n", + "\r\n", + "
\r\n", + "\r\n", + "
\r\n", + " \r\n", + " Physical qubit parameters\r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
Qubit namequbit_gate_ns_e3\r\n", + "

Some descriptive name for the qubit model

\n", + "
\r\n", + "
\r\n", + "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", + "\r\n", + "
Instruction setGateBased\r\n", + "

Underlying qubit technology (gate-based or Majorana)

\n", + "
\r\n", + "
\r\n", + "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", + "\r\n", + "
Single-qubit measurement time100 ns\r\n", + "

Operation time for single-qubit measurement (t_meas) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", + "\r\n", + "
Single-qubit gate time50 ns\r\n", + "

Operation time for single-qubit gate (t_gate) in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", + "\r\n", + "
Two-qubit gate time50 ns\r\n", + "

Operation time for two-qubit gate in ns

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", + "\r\n", + "
T gate time50 ns\r\n", + "

Operation time for a T gate

\n", + "
\r\n", + "
\r\n", + "

This is the operation time in nanoseconds to execute a T gate.

\n", + "\r\n", + "
Single-qubit measurement error rate0.001\r\n", + "

Error rate for single-qubit measurement

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", + "\r\n", + "
Single-qubit error rate0.001\r\n", + "

Error rate for single-qubit Clifford gate (p)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", + "\r\n", + "
Two-qubit error rate0.001\r\n", + "

Error rate for two-qubit Clifford gate

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", + "\r\n", + "
T gate error rate0.001\r\n", + "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", + "
\r\n", + "
\r\n", + "

This is the probability in which executing a single T gate may fail.

\n", + "\r\n", + "
\r\n", + "
\r\n", + " Assumptions\r\n", + "
    \r\n", + "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", + "
  • \r\n", + "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", + "
  • \r\n", + "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", + "
  • \r\n", + "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", + "
  • \r\n", + "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", + "
  • \r\n", + "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", + "
  • \r\n", + "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", + "
  • \r\n", + "
\r\n" + ], + "text/plain": [ + "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", + " 'jobParams': {'errorBudget': 0.001,\n", + " 'qecScheme': {'crossingPrefactor': 0.03,\n", + " 'errorCorrectionThreshold': 0.01,\n", + " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", + " 'name': 'surface_code',\n", + " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", + " 'qubitParams': {'instructionSet': 'GateBased',\n", + " 'name': 'qubit_gate_ns_e3',\n", + " 'oneQubitGateErrorRate': 0.001,\n", + " 'oneQubitGateTime': '50 ns',\n", + " 'oneQubitMeasurementErrorRate': 0.001,\n", + " 'oneQubitMeasurementTime': '100 ns',\n", + " 'tGateErrorRate': 0.001,\n", + " 'tGateTime': '50 ns',\n", + " 'twoQubitGateErrorRate': 0.001,\n", + " 'twoQubitGateTime': '50 ns'}},\n", + " 'logicalCounts': {'ccixCount': 48,\n", + " 'cczCount': 8,\n", + " 'measurementCount': 48,\n", + " 'numQubits': 15,\n", + " 'rotationCount': 0,\n", + " 'rotationDepth': 0,\n", + " 'tCount': 0},\n", + " 'logicalQubit': {'codeDistance': 11,\n", + " 'logicalCycleTime': 4400.0,\n", + " 'logicalErrorRate': 3.000000000000002e-08,\n", + " 'physicalQubits': 242},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 216,\n", + " 'algorithmicLogicalQubits': 42,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 216,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 19,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 224,\n", + " 'physicalQubitsForAlgorithm': 10164,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 5.511463844797178e-08,\n", + " 'requiredLogicalTstateErrorRate': 2.2321428571428573e-06},\n", + " 'physicalQubits': 87924,\n", + " 'runtime': 950400},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", + " 'errorBudget': '1.00e-3',\n", + " 'errorBudgetLogical': '5.00e-4',\n", + " 'errorBudgetRotations': '0.00e0',\n", + " 'errorBudgetTstates': '5.00e-4',\n", + " 'logicalCycleTime': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '88.44 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '5.51e-8',\n", + " 'requiredLogicalTstateErrorRate': '2.23e-6',\n", + " 'runtime': '950us 400ns',\n", + " 'tfactoryRuntime': '46us 800ns',\n", + " 'tfactoryRuntimePerRound': '46us 800ns',\n", + " 'tstateLogicalErrorRate': '2.17e-6',\n", + " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", + " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", + " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", + " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", + " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", + " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", + " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", + " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", + " 'groups': [{'alwaysVisible': True,\n", + " 'entries': [{'description': 'Number of physical qubits',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'physicalCounts/physicalQubits'},\n", + " {'description': 'Total runtime',\n", + " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/runtime'}],\n", + " 'title': 'Physical resource estimates'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", + " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.',\n", + " 'label': 'Logical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", + " {'description': 'Number of logical cycles for the algorithm',\n", + " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", + " 'label': 'Algorithmic depth',\n", + " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", + " {'description': 'Number of logical cycles performed',\n", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", + " 'label': 'Logical depth',\n", + " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", + " {'description': 'Number of T states consumed by the algorithm',\n", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", + " 'label': 'Number of T states',\n", + " 'path': 'physicalCounts/breakdown/numTstates'},\n", + " {'description': \"Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{224\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 950us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " 'label': 'Number of T factories',\n", + " 'path': 'physicalCounts/breakdown/numTfactories'},\n", + " {'description': 'Number of times all T factories are invoked',\n", + " 'explanation': 'In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.',\n", + " 'label': 'Number of T factory invocations',\n", + " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", + " {'description': 'Number of physical qubits for the algorithm after layout',\n", + " 'explanation': 'The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", + " 'label': 'Physical algorithmic qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", + " {'description': 'Number of physical qubits for the T factories',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", + " 'label': 'Physical T factory qubits',\n", + " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", + " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.',\n", + " 'label': 'Required logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", + " {'description': 'The minimum T state error rate required for distilled T states',\n", + " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.',\n", + " 'label': 'Required logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", + " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", + " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", + " 'label': 'Number of T states per rotation',\n", + " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", + " 'title': 'Resource estimates breakdown'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Name of QEC scheme',\n", + " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", + " 'label': 'QEC scheme',\n", + " 'path': 'jobParams/qecScheme/name'},\n", + " {'description': 'Required code distance for error correction',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000005511463844797178)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'label': 'Code distance',\n", + " 'path': 'logicalQubit/codeDistance'},\n", + " {'description': 'Number of physical qubits per logical qubit',\n", + " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'logicalQubit/physicalQubits'},\n", + " {'description': 'Duration of a logical cycle in nanoseconds',\n", + " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", + " 'label': 'Logical cycle time',\n", + " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", + " {'description': 'Logical qubit error rate',\n", + " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", + " 'label': 'Logical qubit error rate',\n", + " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", + " {'description': 'Crossing prefactor used in QEC scheme',\n", + " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", + " 'label': 'Crossing prefactor',\n", + " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", + " {'description': 'Error correction threshold used in QEC scheme',\n", + " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", + " 'label': 'Error correction threshold',\n", + " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", + " {'description': 'QEC scheme formula used to compute logical cycle time',\n", + " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", + " 'label': 'Logical cycle time formula',\n", + " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", + " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", + " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", + " 'label': 'Physical qubits formula',\n", + " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", + " 'title': 'Logical qubit parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", + " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", + " 'label': 'Physical qubits',\n", + " 'path': 'tfactory/physicalQubits'},\n", + " {'description': 'Runtime of a single T factory',\n", + " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", + " 'label': 'Runtime',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", + " {'description': 'Number of output T states produced in a single run of T factory',\n", + " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", + " 'label': 'Number of output T states per run',\n", + " 'path': 'tfactory/numTstates'},\n", + " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", + " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", + " 'label': 'Number of input T states per run',\n", + " 'path': 'tfactory/numInputTstates'},\n", + " {'description': 'The number of distillation rounds',\n", + " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", + " 'label': 'Distillation rounds',\n", + " 'path': 'tfactory/numRounds'},\n", + " {'description': 'The number of units in each round of distillation',\n", + " 'explanation': 'This is the number of copies for the distillation units per round.',\n", + " 'label': 'Distillation units per round',\n", + " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", + " {'description': 'The types of distillation units',\n", + " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", + " 'label': 'Distillation units',\n", + " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", + " {'description': 'The code distance in each round of distillation',\n", + " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", + " 'label': 'Distillation code distances',\n", + " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", + " {'description': 'The number of physical qubits used in each round of distillation',\n", + " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", + " 'label': 'Number of physical qubits per round',\n", + " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", + " {'description': 'The runtime of each distillation round',\n", + " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", + " 'label': 'Runtime per round',\n", + " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", + " {'description': 'Logical T state error rate',\n", + " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.',\n", + " 'label': 'Logical T state error rate',\n", + " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", + " 'title': 'T factory parameters'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", + " 'explanation': 'We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", + " 'label': 'Logical qubits (pre-layout)',\n", + " 'path': 'logicalCounts/numQubits'},\n", + " {'description': 'Number of T gates in the input quantum program',\n", + " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", + " 'label': 'T gates',\n", + " 'path': 'logicalCounts/tCount'},\n", + " {'description': 'Number of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", + " 'label': 'Rotation gates',\n", + " 'path': 'logicalCounts/rotationCount'},\n", + " {'description': 'Depth of rotation gates in the input quantum program',\n", + " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", + " 'label': 'Rotation depth',\n", + " 'path': 'logicalCounts/rotationDepth'},\n", + " {'description': 'Number of CCZ-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCZ gates.',\n", + " 'label': 'CCZ gates',\n", + " 'path': 'logicalCounts/cczCount'},\n", + " {'description': 'Number of CCiX-gates in the input quantum program',\n", + " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", + " 'label': 'CCiX gates',\n", + " 'path': 'logicalCounts/ccixCount'},\n", + " {'description': 'Number of single qubit measurements in the input quantum program',\n", + " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", + " 'label': 'Measurement operations',\n", + " 'path': 'logicalCounts/measurementCount'}],\n", + " 'title': 'Pre-layout logical resources'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Total error budget for the algorithm',\n", + " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", + " 'label': 'Total error budget',\n", + " 'path': 'physicalCountsFormatted/errorBudget'},\n", + " {'description': 'Probability of at least one logical error',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'Logical error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", + " {'description': 'Probability of at least one faulty T distillation',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", + " 'label': 'T distillation error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", + " {'description': 'Probability of at least one failed rotation synthesis',\n", + " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", + " 'label': 'Rotation synthesis error probability',\n", + " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", + " 'title': 'Assumed error budget'},\n", + " {'alwaysVisible': False,\n", + " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", + " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", + " 'label': 'Qubit name',\n", + " 'path': 'jobParams/qubitParams/name'},\n", + " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", + " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", + " 'label': 'Instruction set',\n", + " 'path': 'jobParams/qubitParams/instructionSet'},\n", + " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", + " 'label': 'Single-qubit measurement time',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", + " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", + " 'label': 'Single-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", + " {'description': 'Operation time for two-qubit gate in ns',\n", + " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", + " 'label': 'Two-qubit gate time',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", + " {'description': 'Operation time for a T gate',\n", + " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", + " 'label': 'T gate time',\n", + " 'path': 'jobParams/qubitParams/tGateTime'},\n", + " {'description': 'Error rate for single-qubit measurement',\n", + " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", + " 'label': 'Single-qubit measurement error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", + " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", + " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", + " 'label': 'Single-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", + " {'description': 'Error rate for two-qubit Clifford gate',\n", + " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", + " 'label': 'Two-qubit error rate',\n", + " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", + " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", + " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", + " 'label': 'T gate error rate',\n", + " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", + " 'title': 'Physical qubit parameters'}]},\n", + " 'status': 'success',\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'numInputTstates': 30,\n", + " 'numRounds': 1,\n", + " 'numTstates': 1,\n", + " 'numUnitsPerRound': [2],\n", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", + " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", + "# result = qsharp.azure.output(\"...\")\n", + "result" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", + "def evaluate_results(res) : \n", + " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", + " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", + " print(f\"Logical algorithmic qubits = {width}\")\n", + " print(f\"Algorithmic depth = {depth}\")\n", + " print(f\"Score = {width * depth}\")\n", + " return width * depth\n" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 42\n", + "Algorithmic depth = 216\n", + "Score = 9072\n" + ] + }, + { + "data": { + "text/plain": [ + "9072" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From f34f42c224ff5ae04142e29963d9b4d5ce52d821 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:41:45 +0530 Subject: [PATCH 13/27] Delete README.md --- README.md | 78 ------------------------------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 58743d7..0000000 --- a/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# Welcome to the Microsoft Challenge @ MIT iQuHACK 2023! - -## Challenge overview - -In this challenge, you will explore optimizing quantum circuits, and more specficially - optimizing quantum oracles. -In each task, you'll be given a quantum oracle that implements a certain classical function (the classical function definition is not included in the task). -You'll need to rewrite the code so that it maintains its correctness, but requires as few resources as possible. - -## Working on the challenge - -* The challenge contains 9 independent tasks. Your team can work on each task independently; tasks are submitted and scored separately. -* You can work on the challenge using a local Quantum Development Kit setup, Azure Quantum hosted notebooks, or qBraid platform. -* You'll need to [create an Azure account and an Azure Quantum workspace](https://aka.ms/iQuHack2023/AQJobSubmit) to evaluate the resources used by your solution, regardless of the platform you're using. -* To work on each task, use the Jupyter notebooks iQuHack-challenge-2023-taskX.ipynb. Each notebook contains the step-by-step instructions for working on the task, including the code that helps you evaluate your solution. -* **You will submit the tasks for challenge using qBraid platform.** - Each task submission is evaluated automatically in two steps. - 1. First, the task correctness is checked by verifying that your code acts the same as the original oracle implementation. If your solution doesn't compile, throws a runtime error, or acts differently from the original oracle implementation, this submission will be ignored. - 2. Second, if the task is logically correct, its resource consumption is evaluated. For this, we submit a resource estimation job for your code, and calculate your score as **(logical algorithmic qubits) * (algorithmic depth)** (see [resource estimation documentation](https://learn.microsoft.com/en-us/azure/quantum/learn-how-the-resource-estimator-works#algorithmic-logical-estimation), [introductory workshop](https://www.twitch.tv/videos/1718264700) or resource estimation samples for the meaning of these parameters). - 3. Your goal is to minimize your score for each task. Your aggregate score in the scoreboard is a sum of ratios (your score for the task) / (the score of the initial oracle implementation for the task) for all tasks. - - -### Tips and tricks for optimizing your quantum programs - -**The score is defined as a product: (logical algorithmic qubits) * (algorithmic depth)** - -* The number of logical qubits after mapping scales proportional to the number of qubits in the circuit. Therefore, reducing the qubits in the circuit always helps, unless it leads to an increase in operations. -* The number of logical cycles depend on the number of Toffoli gates (translated to CCZ), T gates, single-qubit measurements (which you will not be using in this challenge), and rotation gates. Clifford operations do not increase logical cycles. -* Rotation gates are the most expensive ones and should be avoided when possible! (For this challenge, you should be able to avoid them completely, using only reversible computation) -* Multiple-controlled X gates (multiple-controlled Toffoli gates) are decomposed by the resource estimator. The number of cycles is 3 * (n - 1), where n >= 1 is the number of control qubits. -* The concrete formulas to determine the logical qubits and logical cycles (after mapping) from the input program is provided in the paper https://arxiv.org/pdf/2211.07629.pdf - * Number of logical qubits in (D1, page 29) - * Number of logical cycles in (D3, page 30) - - -## Working on qBraid and submitting the tasks -[](https://account.qbraid.com?gitHubUrl=https://github.com/iQuHACK/2023_microsoft.git) -1. If you're working on qBraid, first fork this repository and click the above `Launch on qBraid` button. It will take you to your qBraid Lab with the repository cloned. -2. Once cloned, open terminal (first icon in the **Other** column in Launcher) and `cd` into this repo. Set the repo's remote origin using the git clone url you copied in Step 1, and then create a new branch for your team: -```bash -cd -git remote set-url origin -git branch -git checkout -``` -3. Use the environment manager (**ENVS** tab in the right sidebar) to activate the "Microsoft Q#". click **Activate** to [add a new ipykernel](https://qbraid-qbraid.readthedocs-hosted.com/en/latest/lab/kernels.html#add-remove-kernels) for "Microsoft Q#". - -image - - -4. From the **FILES** tab in the left sidebar, double-click on the `2023_Microsoft_Challenge` directory. - -5. You are now ready to begin hacking! Work with your team to complete the Microsoft Q# Challenge. - - -### qBraid Auto Grader Submission Process To Leaderboard: - -**PLEASE MAKE SURE TO DO THE FOLLOWING BEFORE YOU SUBMIT** - -- Your team name, task #, and a point person's slack name (just in case we need to reach out). -Once you have completed any of the tasks and have added the team name, task # and a point person's slack name, if you are confused). Please got to File (**File** on the top left of the topbar) and click on the `Share notebook` button. -スクリーンショット 2023-01-26 午後4 42 50 - -- Enter `rickyyoung@qbraid.com` and share the file. If it shares successfully, the email should dissapear. Ricky will periodically run the autograder and the leaderboard will be updated accordingly. - -- Then submit the remote project submission form that will show up on the iQuHACK website during the last 8 hours of hacking. The form will ask for a link to your repository and your team members (all of whom have to be remote iQuHACK participants to maintain elligibility). - -## Prizes - -Up to (3) teams with the highest team scores will be chosen as the winners of the Hackathon. -Each member of the winning teams will get a Surface 2 headset. - -## Resources - -* [Introduction to Azure Quantum workshop at MIT iQuHack](https://www.twitch.tv/videos/1718264700), Wednesday, January 25, 2023 -* [The Quantum Katas](https://github.com/Microsoft/QuantumKatas/) - a collection of tutorials and practice problems (chapters "Quantum Oracles and Simple Oracle Algorithms" and "Grover's search algorithm" are a good place to practice your work with marking oracles) -* [Getting started with the resources estimator service](https://learn.microsoft.com/en-us/azure/quantum/quickstart-microsoft-resources-estimator) -* [A deep dive in resource estimation](https://arxiv.org/pdf/2211.07629.pdf) -* [Azure Quantum and Microsoft Quantum Development Kit documentation](https://learn.microsoft.com/azure/quantum/) From 54db68dc41d4aa6812bafe205ef660303300c85c Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:41:53 +0530 Subject: [PATCH 14/27] Delete iQuHack-challenge-2023-task1.ipynb --- iQuHack-challenge-2023-task1.ipynb | 534 ----------------------------- 1 file changed, 534 deletions(-) delete mode 100644 iQuHack-challenge-2023-task1.ipynb diff --git a/iQuHack-challenge-2023-task1.ipynb b/iQuHack-challenge-2023-task1.ipynb deleted file mode 100644 index ab8347a..0000000 --- a/iQuHack-challenge-2023-task1.ipynb +++ /dev/null @@ -1,534 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 1\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task1`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "!az login" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "\u001b[93mA web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\u001b[0m\n[\n {\n \"cloudName\": \"AzureCloud\",\n \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n \"isDefault\": true,\n \"managedByTenants\": [\n {\n \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n },\n {\n \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n },\n {\n \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n }\n ],\n \"name\": \"Azure for Students\",\n \"state\": \"Enabled\",\n \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"user\": {\n \"name\": \"190050110@kluniversity.in\",\n \"type\": \"user\"\n }\n }\n]\n" - } - ], - "execution_count": 22, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 1. Write the code" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure\n", - "print(\"imported qsharp and azure\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Preparing Q# environment...\n.imported qsharp and azure\n" - } - ], - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "teamname=\"Qubitrons\" # Update this field with your team name\n", - "task=[\"task1\"]\n", - "slack_id=\"U04JME14R2B\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task1_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task1_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "**The complete code for Task 1 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 1. Warm up with simple bit manipulation\n", - "// (input will contain 3 qubits)\n", - "operation Task1(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " let N = Length(input);\n", - " use aux = Qubit[N - 1];\n", - " within {\n", - " for i in 0 .. N - 2 {\n", - " CNOT(input[i], aux[i]);\n", - " CNOT(input[i + 1], aux[i]);\n", - " }\n", - " } apply {\n", - " Controlled X(aux, target);\n", - " }\n", - "}" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task1_DumpMachineWrapper() : Unit {\n", - " let N = 3;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task1(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task1_ResourceEstimationWrapper() : Unit {\n", - " let N = 3;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task1(input, target);\n", - "}" - ], - "outputs": [], - "execution_count": 4, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task1_DumpMachineWrapper.simulate()" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "|0000⟩\t0.35355339059327384 + 0𝑖\n|0001⟩\t0 + 0𝑖\n|0010⟩\t0.35355339059327384 + 0𝑖\n|0011⟩\t0 + 0𝑖\n|0100⟩\t0 + 0𝑖\n|0101⟩\t0.35355339059327384 + 0𝑖\n|0110⟩\t0.35355339059327384 + 0𝑖\n|0111⟩\t0 + 0𝑖\n|1000⟩\t0.35355339059327384 + 0𝑖\n|1001⟩\t0 + 0𝑖\n|1010⟩\t0 + 0𝑖\n|1011⟩\t0.35355339059327384 + 0𝑖\n|1100⟩\t0.35355339059327384 + 0𝑖\n|1101⟩\t0 + 0𝑖\n|1110⟩\t0.35355339059327384 + 0𝑖\n|1111⟩\t0 + 0𝑖", - "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1000\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110\\right\\rangle$$0.3536 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3],\"n_qubits\":4,\"amplitudes\":{\"0\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"1\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"2\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"3\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"4\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"5\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"6\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"7\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"8\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"13\":{\"Real\":0.35355339059327384,\"Imaginary\":0.0,\"Magnitude\":0.35355339059327384,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" - }, - "metadata": {} - }, - { - "output_type": "execute_result", - "execution_count": 8, - "data": { - "text/plain": "()" - }, - "metadata": {} - } - ], - "execution_count": 8, - "metadata": {} - }, - { - "cell_type": "markdown", - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"East US\")\n", - "print(\"this notebook is run on azure quantum workspace\")" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "Connecting to Azure Quantum...", - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" - }, - "metadata": {} - }, - { - "output_type": "stream", - "name": "stdout", - "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" - }, - { - "output_type": "execute_result", - "execution_count": 9, - "data": { - "text/plain": "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181452},\n {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 305540},\n {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 129},\n {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 129},\n {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" - }, - "metadata": {} - } - ], - "execution_count": 9, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" - }, - { - "output_type": "execute_result", - "execution_count": 10, - "data": { - "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - }, - "metadata": {} - } - ], - "execution_count": 10, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task1_ResourceEstimationWrapper, jobName=\"RE for the task 1\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Submitting Task1_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 1\n Job ID: 29e64fba-c09c-4841-8a5d-f40b1310137d\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[13:40:15] Current job status: Executing\n[13:40:20] Current job status: Succeeded\n" - } - ], - "execution_count": 11, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ], - "outputs": [ - { - "output_type": "execute_result", - "execution_count": 12, - "data": { - "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 0,\n 'cczCount': 1,\n 'measurementCount': 0,\n 'numQubits': 6,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 9,\n 'logicalCycleTime': 3600.0,\n 'logicalErrorRate': 3.0000000000000015e-07,\n 'physicalQubits': 162},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 3,\n 'algorithmicLogicalQubits': 20,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 13,\n 'numTfactories': 4,\n 'numTfactoryRuns': 1,\n 'numTsPerRotation': None,\n 'numTstates': 4,\n 'physicalQubitsForAlgorithm': 3240,\n 'physicalQubitsForTfactories': 15680,\n 'requiredLogicalQubitErrorRate': 1.923076923076923e-06,\n 'requiredLogicalTstateErrorRate': 0.000125},\n 'physicalQubits': 18920,\n 'runtime': 46800},\n 'physicalCountsFormatted': {'codeDistancePerRound': '7',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '3us 600ns',\n 'logicalErrorRate': '3.00e-7',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '82.88 %',\n 'physicalQubitsPerRound': '3920',\n 'requiredLogicalQubitErrorRate': '1.92e-6',\n 'requiredLogicalTstateErrorRate': '1.25e-4',\n 'runtime': '46us 800ns',\n 'tfactoryRuntime': '36us 400ns',\n 'tfactoryRuntimePerRound': '36us 400ns',\n 'tstateLogicalErrorRate': '2.13e-5',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 6$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 20$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 4 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{4\\\\;\\\\text{T states} \\\\cdot 36us 400ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 46us 800ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\\\cdot 4$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000001923076923076923)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{9 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 3us 600ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 162.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [7],\n 'logicalErrorRate': 2.133500000000001e-05,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 3920,\n 'physicalQubitsPerRound': [3920],\n 'runtime': 36400.0,\n 'runtimePerRound': [36400.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", - "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits18920\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime46us 800ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits20\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 6\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 20$ logical qubits.

\n\r\n
Algorithmic depth3\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth13\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states4\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories4\r\n

Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 4 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{4\\;\\text{T states} \\cdot 36us 400ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 46us 800ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations1\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.

\n\r\n
Physical algorithmic qubits3240\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits15680\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\cdot 4$ qubits.

\n\r\n
Required logical qubit error rate1.92e-6\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.

\n\r\n
Required logical T state error rate1.25e-4\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance9\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000001923076923076923)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits162\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time3us 600ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-7\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{9 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 3us 600ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 162.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits3920\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime36us 400ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances7\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round3920\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round36us 400ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.13e-5\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)6\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates1\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates0\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations0\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":0,\"cczCount\":1,\"measurementCount\":0,\"numQubits\":6,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":3,\"algorithmicLogicalQubits\":20,\"cliffordErrorRate\":0.001,\"logicalDepth\":13,\"numTfactories\":4,\"numTfactoryRuns\":1,\"numTsPerRotation\":null,\"numTstates\":4,\"physicalQubitsForAlgorithm\":3240,\"physicalQubitsForTfactories\":15680,\"requiredLogicalQubitErrorRate\":1.923076923076923E-06,\"requiredLogicalTstateErrorRate\":0.000125},\"physicalQubits\":18920,\"runtime\":46800},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"7\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"3us 600ns\",\"logicalErrorRate\":\"3.00e-7\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"82.88 %\",\"physicalQubitsPerRound\":\"3920\",\"requiredLogicalQubitErrorRate\":\"1.92e-6\",\"requiredLogicalTstateErrorRate\":\"1.25e-4\",\"runtime\":\"46us 800ns\",\"tfactoryRuntime\":\"36us 400ns\",\"tfactoryRuntimePerRound\":\"36us 400ns\",\"tstateLogicalErrorRate\":\"2.13e-5\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 3240 physical qubits to implement the algorithm logic, and 15680 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (3us 600ns) multiplied by the 3 logical cycles to run the algorithm. If however the duration of a single T factory (here: 36us 400ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 6$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 20$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 0 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 1 CCZ and 0 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 3. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 1 CCZ and 0 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 4 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 4 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{4\\\\;\\\\text{T states} \\\\cdot 36us 400ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 46us 800ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 4 T states, the 4 copies of the T factory are repeatedly invoked 1 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 3240 are the product of the 20 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 3920 physical qubits and we run 4 in parallel, therefore we need $15680 = 3920 \\\\cdot 4$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 20 logical qubits and the total cycle count 13.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 4.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000001923076923076923)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{9 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 3us 600ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 162.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.13e-5.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.25e-4.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 20 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[7],\"logicalErrorRate\":2.133500000000001E-05,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":3920,\"physicalQubitsPerRound\":[3920],\"runtime\":36400.0,\"runtimePerRound\":[36400.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" - }, - "metadata": {} - } - ], - "execution_count": 12, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ], - "outputs": [], - "execution_count": 13, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "evaluate_results(result)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Logical algorithmic qubits = 20\nAlgorithmic depth = 3\nScore = 60\n" - }, - { - "output_type": "execute_result", - "execution_count": 14, - "data": { - "text/plain": "60" - }, - "metadata": {} - } - ], - "execution_count": 14, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "name": "python3", - "language": "python", - "display_name": "Python 3 (ipykernel)" - }, - "language_info": { - "name": "python", - "version": "3.9.15", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file From f37c7c9a70b3549e4528047f6d059ca9b2470c37 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:42:02 +0530 Subject: [PATCH 15/27] Delete iQuHack-challenge-2023-task2.ipynb --- iQuHack-challenge-2023-task2.ipynb | 545 ----------------------------- 1 file changed, 545 deletions(-) delete mode 100644 iQuHack-challenge-2023-task2.ipynb diff --git a/iQuHack-challenge-2023-task2.ipynb b/iQuHack-challenge-2023-task2.ipynb deleted file mode 100644 index a81f723..0000000 --- a/iQuHack-challenge-2023-task2.ipynb +++ /dev/null @@ -1,545 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 2\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task2`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "!az login" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "\u001b[93mA web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\u001b[0m\n[\n {\n \"cloudName\": \"AzureCloud\",\n \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n \"isDefault\": true,\n \"managedByTenants\": [\n {\n \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n },\n {\n \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n },\n {\n \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n }\n ],\n \"name\": \"Azure for Students\",\n \"state\": \"Enabled\",\n \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n \"user\": {\n \"name\": \"190050110@kluniversity.in\",\n \"type\": \"user\"\n }\n }\n]\n" - } - ], - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 1. Write the code" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Preparing Q# environment...\n" - } - ], - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "teamname=\"Qubitrons\" # Update this field with your team name\n", - "task=[\"task2\"]\n", - "slack_id=\"U04JME14R2B\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task2_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task2_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "**The complete code for Task 2 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 2. Celebrate MIT iQuHack!\n", - "// (input will contain 5 qubits)\n", - "operation Task2(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " ControlledOnInt(13, X)(input, target); // M\n", - " ControlledOnInt( 9, X)(input, target); // I\n", - " ControlledOnInt(20, X)(input, target); // T\n", - "\n", - " ControlledOnInt( 9, X)(input, target); // I\n", - " ControlledOnInt(17, X)(input, target); // Q\n", - " ControlledOnInt(21, X)(input, target); // U\n", - " ControlledOnInt( 8, X)(input, target); // H\n", - " ControlledOnInt( 1, X)(input, target); // A\n", - " ControlledOnInt( 3, X)(input, target); // C\n", - " ControlledOnInt(11, X)(input, target); // K\n", - "}" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task2_DumpMachineWrapper() : Unit {\n", - " let N = 5;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task2(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task2_ResourceEstimationWrapper() : Unit {\n", - " let N = 5;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task2(input, target);\n", - "}" - ], - "outputs": [], - "execution_count": 4, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task2_DumpMachineWrapper.simulate()" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "|000000⟩\t0.17677669529663698 + 0𝑖\n|000001⟩\t0 + 0𝑖\n|000010⟩\t0.17677669529663698 + 0𝑖\n|000011⟩\t0 + 0𝑖\n|000100⟩\t0 + 0𝑖\n|000101⟩\t0.17677669529663698 + 0𝑖\n|000110⟩\t0.17677669529663698 + 0𝑖\n|000111⟩\t0 + 0𝑖\n|001000⟩\t0.17677669529663698 + 0𝑖\n|001001⟩\t0 + 0𝑖\n|001010⟩\t0 + 0𝑖\n|001011⟩\t0.17677669529663698 + 0𝑖\n|001100⟩\t0.17677669529663698 + 0𝑖\n|001101⟩\t0 + 0𝑖\n|001110⟩\t0.17677669529663698 + 0𝑖\n|001111⟩\t0 + 0𝑖\n|010000⟩\t0.17677669529663698 + 0𝑖\n|010001⟩\t0 + 0𝑖\n|010010⟩\t0.17677669529663698 + 0𝑖\n|010011⟩\t0 + 0𝑖\n|010100⟩\t0.17677669529663698 + 0𝑖\n|010101⟩\t0 + 0𝑖\n|010110⟩\t0.17677669529663698 + 0𝑖\n|010111⟩\t0 + 0𝑖\n|011000⟩\t0.17677669529663698 + 0𝑖\n|011001⟩\t0 + 0𝑖\n|011010⟩\t0.17677669529663698 + 0𝑖\n|011011⟩\t0 + 0𝑖\n|011100⟩\t0.17677669529663698 + 0𝑖\n|011101⟩\t0 + 0𝑖\n|011110⟩\t0.17677669529663698 + 0𝑖\n|011111⟩\t0 + 0𝑖\n|100000⟩\t0 + 0𝑖\n|100001⟩\t0.17677669529663698 + 0𝑖\n|100010⟩\t0 + 0𝑖\n|100011⟩\t0.17677669529663698 + 0𝑖\n|100100⟩\t0.17677669529663698 + 0𝑖\n|100101⟩\t0 + 0𝑖\n|100110⟩\t0.17677669529663698 + 0𝑖\n|100111⟩\t0 + 0𝑖\n|101000⟩\t0.17677669529663698 + 0𝑖\n|101001⟩\t0 + 0𝑖\n|101010⟩\t0 + 0𝑖\n|101011⟩\t0.17677669529663698 + 0𝑖\n|101100⟩\t0 + 0𝑖\n|101101⟩\t0.17677669529663698 + 0𝑖\n|101110⟩\t0.17677669529663698 + 0𝑖\n|101111⟩\t0 + 0𝑖\n|110000⟩\t0 + 0𝑖\n|110001⟩\t0.17677669529663698 + 0𝑖\n|110010⟩\t0.17677669529663698 + 0𝑖\n|110011⟩\t0 + 0𝑖\n|110100⟩\t0 + 0𝑖\n|110101⟩\t0.17677669529663698 + 0𝑖\n|110110⟩\t0.17677669529663698 + 0𝑖\n|110111⟩\t0 + 0𝑖\n|111000⟩\t0.17677669529663698 + 0𝑖\n|111001⟩\t0 + 0𝑖\n|111010⟩\t0.17677669529663698 + 0𝑖\n|111011⟩\t0 + 0𝑖\n|111100⟩\t0.17677669529663698 + 0𝑖\n|111101⟩\t0 + 0𝑖\n|111110⟩\t0.17677669529663698 + 0𝑖\n|111111⟩\t0 + 0𝑖", - "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110\\right\\rangle$$0.1768 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5],\"n_qubits\":6,\"amplitudes\":{\"0\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"1\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"2\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"5\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"6\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"7\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"8\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"9\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"10\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"13\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"14\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"15\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"16\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"17\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"18\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"19\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"20\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"23\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"24\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"25\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"26\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"27\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"28\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"29\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"30\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"31\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"32\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"33\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"34\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"35\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"44\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"45\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"46\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"47\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"48\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"49\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"53\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"56\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"59\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" - }, - "metadata": {} - }, - { - "output_type": "execute_result", - "execution_count": 5, - "data": { - "text/plain": "()" - }, - "metadata": {} - } - ], - "execution_count": 5, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"East US\")\n", - "print(\"this notebook is run on azure quantum workspace\")" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "Connecting to Azure Quantum...", - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" - }, - "metadata": {} - }, - { - "output_type": "stream", - "name": "stdout", - "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" - }, - { - "output_type": "execute_result", - "execution_count": 7, - "data": { - "text/plain": "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181491},\n {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 426924},\n {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 90},\n {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 167},\n {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 90},\n {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 167},\n {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" - }, - "metadata": {} - } - ], - "execution_count": 7, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" - }, - { - "output_type": "execute_result", - "execution_count": 8, - "data": { - "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - }, - "metadata": {} - } - ], - "execution_count": 8, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task2_ResourceEstimationWrapper, jobName=\"RE for the task 2\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Submitting Task2_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 2\n Job ID: d91a9afc-24cf-4c3b-adfe-0d03f8f277ac\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[13:30:22] Current job status: Executing\n[13:30:27] Current job status: Succeeded\n" - } - ], - "execution_count": 9, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ], - "outputs": [ - { - "output_type": "execute_result", - "execution_count": 10, - "data": { - "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 30,\n 'cczCount': 10,\n 'measurementCount': 30,\n 'numQubits': 9,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 11,\n 'logicalCycleTime': 4400.0,\n 'logicalErrorRate': 3.000000000000002e-08,\n 'physicalQubits': 242},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 150,\n 'algorithmicLogicalQubits': 28,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 150,\n 'numTfactories': 12,\n 'numTfactoryRuns': 14,\n 'numTsPerRotation': None,\n 'numTstates': 160,\n 'physicalQubitsForAlgorithm': 6776,\n 'physicalQubitsForTfactories': 77760,\n 'requiredLogicalQubitErrorRate': 1.1904761904761904e-07,\n 'requiredLogicalTstateErrorRate': 3.125e-06},\n 'physicalQubits': 84536,\n 'runtime': 660000},\n 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '4us 400ns',\n 'logicalErrorRate': '3.00e-8',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '91.98 %',\n 'physicalQubitsPerRound': '6480',\n 'requiredLogicalQubitErrorRate': '1.19e-7',\n 'requiredLogicalTstateErrorRate': '3.13e-6',\n 'runtime': '660us',\n 'tfactoryRuntime': '46us 800ns',\n 'tfactoryRuntimePerRound': '46us 800ns',\n 'tstateLogicalErrorRate': '2.17e-6',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 9$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 28$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{160\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 660us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000011904761904761904)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [9],\n 'logicalErrorRate': 2.165000000000001e-06,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 6480,\n 'physicalQubitsPerRound': [6480],\n 'runtime': 46800.0,\n 'runtimePerRound': [46800.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", - "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits84536\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime660us\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits28\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 9\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 28$ logical qubits.

\n\r\n
Algorithmic depth150\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth150\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states160\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{160\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 660us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations14\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.

\n\r\n
Physical algorithmic qubits6776\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits77760\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate1.19e-7\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.

\n\r\n
Required logical T state error rate3.13e-6\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance11\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000011904761904761904)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits242\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time4us 400ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-8\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits6480\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime46us 800ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances9\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round6480\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round46us 800ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.17e-6\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)9\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates10\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates30\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations30\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":30,\"cczCount\":10,\"measurementCount\":30,\"numQubits\":9,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":150,\"algorithmicLogicalQubits\":28,\"cliffordErrorRate\":0.001,\"logicalDepth\":150,\"numTfactories\":12,\"numTfactoryRuns\":14,\"numTsPerRotation\":null,\"numTstates\":160,\"physicalQubitsForAlgorithm\":6776,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.1904761904761904E-07,\"requiredLogicalTstateErrorRate\":3.125E-06},\"physicalQubits\":84536,\"runtime\":660000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"91.98 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.19e-7\",\"requiredLogicalTstateErrorRate\":\"3.13e-6\",\"runtime\":\"660us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 6776 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 150 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 9$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 28$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 30 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 30 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 150. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 30 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 160 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{160\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 660us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 160 T states, the 12 copies of the T factory are repeatedly invoked 14 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 6776 are the product of the 28 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 28 logical qubits and the total cycle count 150.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 160.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000011904761904761904)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.13e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 28 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" - }, - "metadata": {} - } - ], - "execution_count": 10, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ], - "outputs": [], - "execution_count": 11, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "evaluate_results(result)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Logical algorithmic qubits = 28\nAlgorithmic depth = 150\nScore = 4200\n" - }, - { - "output_type": "execute_result", - "execution_count": 12, - "data": { - "text/plain": "4200" - }, - "metadata": {} - } - ], - "execution_count": 12, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "name": "python3", - "language": "python", - "display_name": "Python 3 (ipykernel)" - }, - "language_info": { - "name": "python", - "version": "3.9.15", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file From 5749ab861c20bd3bcd1444ec6149c18a8b3fcee6 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:42:11 +0530 Subject: [PATCH 16/27] Delete iQuHack-challenge-2023-task3.ipynb --- iQuHack-challenge-2023-task3.ipynb | 4995 ---------------------------- 1 file changed, 4995 deletions(-) delete mode 100644 iQuHack-challenge-2023-task3.ipynb diff --git a/iQuHack-challenge-2023-task3.ipynb b/iQuHack-challenge-2023-task3.ipynb deleted file mode 100644 index 5681c60..0000000 --- a/iQuHack-challenge-2023-task3.ipynb +++ /dev/null @@ -1,4995 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 3\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task3`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\n", - " {\n", - " \"cloudName\": \"AzureCloud\",\n", - " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", - " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", - " \"isDefault\": true,\n", - " \"managedByTenants\": [\n", - " {\n", - " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", - " },\n", - " {\n", - " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", - " },\n", - " {\n", - " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", - " }\n", - " ],\n", - " \"name\": \"Azure for Students\",\n", - " \"state\": \"Enabled\",\n", - " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", - " \"user\": {\n", - " \"name\": \"jyothsnakavala2003@gmail.com\",\n", - " \"type\": \"user\"\n", - " }\n", - " }\n", - "]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" - ] - } - ], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"Quibitrons\" # Update this field with your team name\n", - "task=[\"task3\"]\n", - "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task3_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task3_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 3 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 3. \n", - "// (input will contain 6 qubits)\n", - "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [7, 11, 14, 22, 26, 38, 41, 44, 50, 56] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task3_DumpMachineWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task3(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task3_ResourceEstimationWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task3(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6],\"n_qubits\":7,\"amplitudes\":{\"0\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"1\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"2\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"3\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"4\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"5\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"6\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"7\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"8\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"9\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"10\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"11\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"12\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"13\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"15\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"16\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"17\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"18\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"19\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"20\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"21\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"22\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"23\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"24\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"25\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"26\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"27\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"28\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"29\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"30\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"31\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"32\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"33\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"34\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"35\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"36\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"37\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"40\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"43\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"44\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"45\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"46\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"47\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"48\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"49\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"52\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"53\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"54\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"55\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"56\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"57\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"58\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"59\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"60\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"61\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"62\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"63\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"64\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"65\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"66\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"67\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"68\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"69\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"70\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"71\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"81\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"82\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"85\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"86\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"91\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"97\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"98\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"105\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"106\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"109\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", - "text/html": [ - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Qubit IDs0, 1, 2, 3, 4, 5, 6
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001110\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100110\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101100\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110100\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001010\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110000\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111001\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111011\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111101\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
" - ], - "text/plain": [ - "|0000000⟩\t0.12500000000000008 + 0𝑖\n", - "|0000001⟩\t0 + 0𝑖\n", - "|0000010⟩\t0.12500000000000008 + 0𝑖\n", - "|0000011⟩\t0 + 0𝑖\n", - "|0000100⟩\t0.12500000000000008 + 0𝑖\n", - "|0000101⟩\t0 + 0𝑖\n", - "|0000110⟩\t0.12500000000000008 + 0𝑖\n", - "|0000111⟩\t0 + 0𝑖\n", - "|0001000⟩\t0.12500000000000008 + 0𝑖\n", - "|0001001⟩\t0 + 0𝑖\n", - "|0001010⟩\t0.12500000000000008 + 0𝑖\n", - "|0001011⟩\t0 + 0𝑖\n", - "|0001100⟩\t0.12500000000000008 + 0𝑖\n", - "|0001101⟩\t0 + 0𝑖\n", - "|0001110⟩\t0 + 0𝑖\n", - "|0001111⟩\t0.12500000000000008 + 0𝑖\n", - "|0010000⟩\t0.12500000000000008 + 0𝑖\n", - "|0010001⟩\t0 + 0𝑖\n", - "|0010010⟩\t0.12500000000000008 + 0𝑖\n", - "|0010011⟩\t0 + 0𝑖\n", - "|0010100⟩\t0.12500000000000008 + 0𝑖\n", - "|0010101⟩\t0 + 0𝑖\n", - "|0010110⟩\t0.12500000000000008 + 0𝑖\n", - "|0010111⟩\t0 + 0𝑖\n", - "|0011000⟩\t0.12500000000000008 + 0𝑖\n", - "|0011001⟩\t0 + 0𝑖\n", - "|0011010⟩\t0 + 0𝑖\n", - "|0011011⟩\t0.12500000000000008 + 0𝑖\n", - "|0011100⟩\t0.12500000000000008 + 0𝑖\n", - "|0011101⟩\t0 + 0𝑖\n", - "|0011110⟩\t0.12500000000000008 + 0𝑖\n", - "|0011111⟩\t0 + 0𝑖\n", - "|0100000⟩\t0.12500000000000008 + 0𝑖\n", - "|0100001⟩\t0 + 0𝑖\n", - "|0100010⟩\t0.12500000000000008 + 0𝑖\n", - "|0100011⟩\t0 + 0𝑖\n", - "|0100100⟩\t0.12500000000000008 + 0𝑖\n", - "|0100101⟩\t0 + 0𝑖\n", - "|0100110⟩\t0 + 0𝑖\n", - "|0100111⟩\t0.12500000000000008 + 0𝑖\n", - "|0101000⟩\t0.12500000000000008 + 0𝑖\n", - "|0101001⟩\t0 + 0𝑖\n", - "|0101010⟩\t0.12500000000000008 + 0𝑖\n", - "|0101011⟩\t0 + 0𝑖\n", - "|0101100⟩\t0 + 0𝑖\n", - "|0101101⟩\t0.12500000000000008 + 0𝑖\n", - "|0101110⟩\t0.12500000000000008 + 0𝑖\n", - "|0101111⟩\t0 + 0𝑖\n", - "|0110000⟩\t0.12500000000000008 + 0𝑖\n", - "|0110001⟩\t0 + 0𝑖\n", - "|0110010⟩\t0 + 0𝑖\n", - "|0110011⟩\t0.12500000000000008 + 0𝑖\n", - "|0110100⟩\t0 + 0𝑖\n", - "|0110101⟩\t0.12500000000000008 + 0𝑖\n", - "|0110110⟩\t0.12500000000000008 + 0𝑖\n", - "|0110111⟩\t0 + 0𝑖\n", - "|0111000⟩\t0 + 0𝑖\n", - "|0111001⟩\t0.12500000000000008 + 0𝑖\n", - "|0111010⟩\t0.12500000000000008 + 0𝑖\n", - "|0111011⟩\t0 + 0𝑖\n", - "|0111100⟩\t0.12500000000000008 + 0𝑖\n", - "|0111101⟩\t0 + 0𝑖\n", - "|0111110⟩\t0.12500000000000008 + 0𝑖\n", - "|0111111⟩\t0 + 0𝑖\n", - "|1000000⟩\t0.12500000000000008 + 0𝑖\n", - "|1000001⟩\t0 + 0𝑖\n", - "|1000010⟩\t0.12500000000000008 + 0𝑖\n", - "|1000011⟩\t0 + 0𝑖\n", - "|1000100⟩\t0.12500000000000008 + 0𝑖\n", - "|1000101⟩\t0 + 0𝑖\n", - "|1000110⟩\t0.12500000000000008 + 0𝑖\n", - "|1000111⟩\t0 + 0𝑖\n", - "|1001000⟩\t0.12500000000000008 + 0𝑖\n", - "|1001001⟩\t0 + 0𝑖\n", - "|1001010⟩\t0 + 0𝑖\n", - "|1001011⟩\t0.12500000000000008 + 0𝑖\n", - "|1001100⟩\t0.12500000000000008 + 0𝑖\n", - "|1001101⟩\t0 + 0𝑖\n", - "|1001110⟩\t0.12500000000000008 + 0𝑖\n", - "|1001111⟩\t0 + 0𝑖\n", - "|1010000⟩\t0.12500000000000008 + 0𝑖\n", - "|1010001⟩\t0 + 0𝑖\n", - "|1010010⟩\t0.12500000000000008 + 0𝑖\n", - "|1010011⟩\t0 + 0𝑖\n", - "|1010100⟩\t0.12500000000000008 + 0𝑖\n", - "|1010101⟩\t0 + 0𝑖\n", - "|1010110⟩\t0.12500000000000008 + 0𝑖\n", - "|1010111⟩\t0 + 0𝑖\n", - "|1011000⟩\t0.12500000000000008 + 0𝑖\n", - "|1011001⟩\t0 + 0𝑖\n", - "|1011010⟩\t0.12500000000000008 + 0𝑖\n", - "|1011011⟩\t0 + 0𝑖\n", - "|1011100⟩\t0.12500000000000008 + 0𝑖\n", - "|1011101⟩\t0 + 0𝑖\n", - "|1011110⟩\t0.12500000000000008 + 0𝑖\n", - "|1011111⟩\t0 + 0𝑖\n", - "|1100000⟩\t0.12500000000000008 + 0𝑖\n", - "|1100001⟩\t0 + 0𝑖\n", - "|1100010⟩\t0.12500000000000008 + 0𝑖\n", - "|1100011⟩\t0 + 0𝑖\n", - "|1100100⟩\t0.12500000000000008 + 0𝑖\n", - "|1100101⟩\t0 + 0𝑖\n", - "|1100110⟩\t0.12500000000000008 + 0𝑖\n", - "|1100111⟩\t0 + 0𝑖\n", - "|1101000⟩\t0 + 0𝑖\n", - "|1101001⟩\t0.12500000000000008 + 0𝑖\n", - "|1101010⟩\t0.12500000000000008 + 0𝑖\n", - "|1101011⟩\t0 + 0𝑖\n", - "|1101100⟩\t0.12500000000000008 + 0𝑖\n", - "|1101101⟩\t0 + 0𝑖\n", - "|1101110⟩\t0.12500000000000008 + 0𝑖\n", - "|1101111⟩\t0 + 0𝑖\n", - "|1110000⟩\t0 + 0𝑖\n", - "|1110001⟩\t0.12500000000000008 + 0𝑖\n", - "|1110010⟩\t0.12500000000000008 + 0𝑖\n", - "|1110011⟩\t0 + 0𝑖\n", - "|1110100⟩\t0.12500000000000008 + 0𝑖\n", - "|1110101⟩\t0 + 0𝑖\n", - "|1110110⟩\t0.12500000000000008 + 0𝑖\n", - "|1110111⟩\t0 + 0𝑖\n", - "|1111000⟩\t0.12500000000000008 + 0𝑖\n", - "|1111001⟩\t0 + 0𝑖\n", - "|1111010⟩\t0.12500000000000008 + 0𝑖\n", - "|1111011⟩\t0 + 0𝑖\n", - "|1111100⟩\t0.12500000000000008 + 0𝑖\n", - "|1111101⟩\t0 + 0𝑖\n", - "|1111110⟩\t0.12500000000000008 + 0𝑖\n", - "|1111111⟩\t0 + 0𝑖" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "()" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "# qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task3_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", - "text/plain": [ - "Connecting to Azure Quantum..." - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Authenticated using Azure.Identity.AzureCliCredential\n", - "\n", - "\n", - "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181520},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 412042},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 3},\n", - " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 285},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 165},\n", - " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 285},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 165},\n", - " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", - " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", - " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"EAST US\")" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", - "Active target is now microsoft.estimator\n" - ] - }, - { - "data": { - "text/plain": [ - "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Submitting Task3_ResourceEstimationWrapper to target microsoft.estimator...\n", - "Job successfully submitted.\n", - " Job name: RE for the task 3\n", - " Job ID: 58060d73-af33-4f24-bd05-7c0e5e2c61c4\n", - "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[19:27:25] Current job status: Executing\n", - "[19:27:30] Current job status: Succeeded\n" - ] - } - ], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task3_ResourceEstimationWrapper, jobName=\"RE for the task 3\")" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":40,\"cczCount\":10,\"measurementCount\":40,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":190,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":190,\"numTfactories\":12,\"numTfactoryRuns\":17,\"numTsPerRotation\":null,\"numTstates\":200,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":7.974481658692185E-08,\"requiredLogicalTstateErrorRate\":2.5E-06},\"physicalQubits\":85746,\"runtime\":836000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.69 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"7.97e-8\",\"requiredLogicalTstateErrorRate\":\"2.50e-6\",\"runtime\":\"836us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", - "text/html": [ - "\r\n", - "
\r\n", - " \r\n", - " Physical resource estimates\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Physical qubits85746\r\n", - "

Number of physical qubits

\n", - "
\r\n", - "
\r\n", - "

This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", - "\r\n", - "
Runtime836us\r\n", - "

Total runtime

\n", - "
\r\n", - "
\r\n", - "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Resource estimates breakdown\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Logical algorithmic qubits33\r\n", - "

Number of logical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 11\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 33$ logical qubits.

\n", - "\r\n", - "
Algorithmic depth190\r\n", - "

Number of logical cycles for the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", - "\r\n", - "
Logical depth190\r\n", - "

Number of logical cycles performed

\n", - "
\r\n", - "
\r\n", - "

This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", - "\r\n", - "
Number of T states200\r\n", - "

Number of T states consumed by the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", - "\r\n", - "
Number of T factories12\r\n", - "

Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime

\n", - "
\r\n", - "
\r\n", - "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{200\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 836us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", - "\r\n", - "
Number of T factory invocations17\r\n", - "

Number of times all T factories are invoked

\n", - "
\r\n", - "
\r\n", - "

In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.

\n", - "\r\n", - "
Physical algorithmic qubits7986\r\n", - "

Number of physical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", - "\r\n", - "
Physical T factory qubits77760\r\n", - "

Number of physical qubits for the T factories

\n", - "
\r\n", - "
\r\n", - "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", - "\r\n", - "
Required logical qubit error rate7.97e-8\r\n", - "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", - "
\r\n", - "
\r\n", - "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.

\n", - "\r\n", - "
Required logical T state error rate2.50e-6\r\n", - "

The minimum T state error rate required for distilled T states

\n", - "
\r\n", - "
\r\n", - "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.

\n", - "\r\n", - "
Number of T states per rotationNo rotations in algorithm\r\n", - "

Number of T states to implement a rotation with an arbitrary angle

\n", - "
\r\n", - "
\r\n", - "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Logical qubit parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
QEC schemesurface_code\r\n", - "

Name of QEC scheme

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", - "\r\n", - "
Code distance11\r\n", - "

Required code distance for error correction

\n", - "
\r\n", - "
\r\n", - "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000007974481658692185)}{\\log(0.01/0.001)} - 1\\)

\n", - "\r\n", - "
Physical qubits242\r\n", - "

Number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical cycle time4us 400ns\r\n", - "

Duration of a logical cycle in nanoseconds

\n", - "
\r\n", - "
\r\n", - "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical qubit error rate3.00e-8\r\n", - "

Logical qubit error rate

\n", - "
\r\n", - "
\r\n", - "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", - "\r\n", - "
Crossing prefactor0.03\r\n", - "

Crossing prefactor used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", - "\r\n", - "
Error correction threshold0.01\r\n", - "

Error correction threshold used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", - "\r\n", - "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", - "

QEC scheme formula used to compute logical cycle time

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", - "\r\n", - "
Physical qubits formula2 * codeDistance * codeDistance\r\n", - "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " T factory parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Physical qubits6480\r\n", - "

Number of physical qubits for a single T factory

\n", - "
\r\n", - "
\r\n", - "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", - "\r\n", - "
Runtime46us 800ns\r\n", - "

Runtime of a single T factory

\n", - "
\r\n", - "
\r\n", - "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", - "\r\n", - "
Number of output T states per run1\r\n", - "

Number of output T states produced in a single run of T factory

\n", - "
\r\n", - "
\r\n", - "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", - "\r\n", - "
Number of input T states per run30\r\n", - "

Number of physical input T states consumed in a single run of a T factory

\n", - "
\r\n", - "
\r\n", - "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", - "\r\n", - "
Distillation rounds1\r\n", - "

The number of distillation rounds

\n", - "
\r\n", - "
\r\n", - "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", - "\r\n", - "
Distillation units per round2\r\n", - "

The number of units in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the number of copies for the distillation units per round.

\n", - "\r\n", - "
Distillation units15-to-1 space efficient logical\r\n", - "

The types of distillation units

\n", - "
\r\n", - "
\r\n", - "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", - "\r\n", - "
Distillation code distances9\r\n", - "

The code distance in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", - "\r\n", - "
Number of physical qubits per round6480\r\n", - "

The number of physical qubits used in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", - "\r\n", - "
Runtime per round46us 800ns\r\n", - "

The runtime of each distillation round

\n", - "
\r\n", - "
\r\n", - "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", - "\r\n", - "
Logical T state error rate2.17e-6\r\n", - "

Logical T state error rate

\n", - "
\r\n", - "
\r\n", - "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Pre-layout logical resources\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Logical qubits (pre-layout)11\r\n", - "

Number of logical qubits in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", - "\r\n", - "
T gates0\r\n", - "

Number of T gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", - "\r\n", - "
Rotation gates0\r\n", - "

Number of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", - "\r\n", - "
Rotation depth0\r\n", - "

Depth of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", - "\r\n", - "
CCZ gates10\r\n", - "

Number of CCZ-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCZ gates.

\n", - "\r\n", - "
CCiX gates40\r\n", - "

Number of CCiX-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", - "\r\n", - "
Measurement operations40\r\n", - "

Number of single qubit measurements in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Assumed error budget\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Total error budget1.00e-3\r\n", - "

Total error budget for the algorithm

\n", - "
\r\n", - "
\r\n", - "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", - "\r\n", - "
Logical error probability5.00e-4\r\n", - "

Probability of at least one logical error

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
T distillation error probability5.00e-4\r\n", - "

Probability of at least one faulty T distillation

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
Rotation synthesis error probability0.00e0\r\n", - "

Probability of at least one failed rotation synthesis

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Physical qubit parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Qubit namequbit_gate_ns_e3\r\n", - "

Some descriptive name for the qubit model

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", - "\r\n", - "
Instruction setGateBased\r\n", - "

Underlying qubit technology (gate-based or Majorana)

\n", - "
\r\n", - "
\r\n", - "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", - "\r\n", - "
Single-qubit measurement time100 ns\r\n", - "

Operation time for single-qubit measurement (t_meas) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", - "\r\n", - "
Single-qubit gate time50 ns\r\n", - "

Operation time for single-qubit gate (t_gate) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", - "\r\n", - "
Two-qubit gate time50 ns\r\n", - "

Operation time for two-qubit gate in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", - "\r\n", - "
T gate time50 ns\r\n", - "

Operation time for a T gate

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to execute a T gate.

\n", - "\r\n", - "
Single-qubit measurement error rate0.001\r\n", - "

Error rate for single-qubit measurement

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", - "\r\n", - "
Single-qubit error rate0.001\r\n", - "

Error rate for single-qubit Clifford gate (p)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", - "\r\n", - "
Two-qubit error rate0.001\r\n", - "

Error rate for two-qubit Clifford gate

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", - "\r\n", - "
T gate error rate0.001\r\n", - "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which executing a single T gate may fail.

\n", - "\r\n", - "
\r\n", - "
\r\n", - " Assumptions\r\n", - "
    \r\n", - "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", - "
  • \r\n", - "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", - "
  • \r\n", - "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", - "
  • \r\n", - "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", - "
  • \r\n", - "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", - "
  • \r\n", - "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", - "
  • \r\n", - "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", - "
  • \r\n", - "
\r\n" - ], - "text/plain": [ - "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", - " 'jobParams': {'errorBudget': 0.001,\n", - " 'qecScheme': {'crossingPrefactor': 0.03,\n", - " 'errorCorrectionThreshold': 0.01,\n", - " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", - " 'name': 'surface_code',\n", - " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", - " 'qubitParams': {'instructionSet': 'GateBased',\n", - " 'name': 'qubit_gate_ns_e3',\n", - " 'oneQubitGateErrorRate': 0.001,\n", - " 'oneQubitGateTime': '50 ns',\n", - " 'oneQubitMeasurementErrorRate': 0.001,\n", - " 'oneQubitMeasurementTime': '100 ns',\n", - " 'tGateErrorRate': 0.001,\n", - " 'tGateTime': '50 ns',\n", - " 'twoQubitGateErrorRate': 0.001,\n", - " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 40,\n", - " 'cczCount': 10,\n", - " 'measurementCount': 40,\n", - " 'numQubits': 11,\n", - " 'rotationCount': 0,\n", - " 'rotationDepth': 0,\n", - " 'tCount': 0},\n", - " 'logicalQubit': {'codeDistance': 11,\n", - " 'logicalCycleTime': 4400.0,\n", - " 'logicalErrorRate': 3.000000000000002e-08,\n", - " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 190,\n", - " 'algorithmicLogicalQubits': 33,\n", - " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 190,\n", - " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 17,\n", - " 'numTsPerRotation': None,\n", - " 'numTstates': 200,\n", - " 'physicalQubitsForAlgorithm': 7986,\n", - " 'physicalQubitsForTfactories': 77760,\n", - " 'requiredLogicalQubitErrorRate': 7.974481658692185e-08,\n", - " 'requiredLogicalTstateErrorRate': 2.5e-06},\n", - " 'physicalQubits': 85746,\n", - " 'runtime': 836000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", - " 'errorBudget': '1.00e-3',\n", - " 'errorBudgetLogical': '5.00e-4',\n", - " 'errorBudgetRotations': '0.00e0',\n", - " 'errorBudgetTstates': '5.00e-4',\n", - " 'logicalCycleTime': '4us 400ns',\n", - " 'logicalErrorRate': '3.00e-8',\n", - " 'numTsPerRotation': 'No rotations in algorithm',\n", - " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '90.69 %',\n", - " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '7.97e-8',\n", - " 'requiredLogicalTstateErrorRate': '2.50e-6',\n", - " 'runtime': '836us',\n", - " 'tfactoryRuntime': '46us 800ns',\n", - " 'tfactoryRuntimePerRound': '46us 800ns',\n", - " 'tstateLogicalErrorRate': '2.17e-6',\n", - " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", - " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", - " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", - " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", - " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", - " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", - " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", - " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", - " 'groups': [{'alwaysVisible': True,\n", - " 'entries': [{'description': 'Number of physical qubits',\n", - " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'physicalCounts/physicalQubits'},\n", - " {'description': 'Total runtime',\n", - " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/runtime'}],\n", - " 'title': 'Physical resource estimates'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", - " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.',\n", - " 'label': 'Logical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", - " {'description': 'Number of logical cycles for the algorithm',\n", - " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", - " 'label': 'Algorithmic depth',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", - " {'description': 'Number of logical cycles performed',\n", - " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", - " 'label': 'Logical depth',\n", - " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", - " {'description': 'Number of T states consumed by the algorithm',\n", - " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", - " 'label': 'Number of T states',\n", - " 'path': 'physicalCounts/breakdown/numTstates'},\n", - " {'description': \"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", - " 'label': 'Number of T factories',\n", - " 'path': 'physicalCounts/breakdown/numTfactories'},\n", - " {'description': 'Number of times all T factories are invoked',\n", - " 'explanation': 'In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.',\n", - " 'label': 'Number of T factory invocations',\n", - " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", - " {'description': 'Number of physical qubits for the algorithm after layout',\n", - " 'explanation': 'The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", - " 'label': 'Physical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", - " {'description': 'Number of physical qubits for the T factories',\n", - " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", - " 'label': 'Physical T factory qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", - " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", - " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.',\n", - " 'label': 'Required logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", - " {'description': 'The minimum T state error rate required for distilled T states',\n", - " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.',\n", - " 'label': 'Required logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", - " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", - " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", - " 'label': 'Number of T states per rotation',\n", - " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", - " 'title': 'Resource estimates breakdown'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Name of QEC scheme',\n", - " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", - " 'label': 'QEC scheme',\n", - " 'path': 'jobParams/qecScheme/name'},\n", - " {'description': 'Required code distance for error correction',\n", - " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$',\n", - " 'label': 'Code distance',\n", - " 'path': 'logicalQubit/codeDistance'},\n", - " {'description': 'Number of physical qubits per logical qubit',\n", - " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'logicalQubit/physicalQubits'},\n", - " {'description': 'Duration of a logical cycle in nanoseconds',\n", - " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", - " 'label': 'Logical cycle time',\n", - " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", - " {'description': 'Logical qubit error rate',\n", - " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", - " 'label': 'Logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", - " {'description': 'Crossing prefactor used in QEC scheme',\n", - " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", - " 'label': 'Crossing prefactor',\n", - " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", - " {'description': 'Error correction threshold used in QEC scheme',\n", - " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", - " 'label': 'Error correction threshold',\n", - " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", - " {'description': 'QEC scheme formula used to compute logical cycle time',\n", - " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", - " 'label': 'Logical cycle time formula',\n", - " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", - " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", - " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", - " 'label': 'Physical qubits formula',\n", - " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", - " 'title': 'Logical qubit parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", - " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'tfactory/physicalQubits'},\n", - " {'description': 'Runtime of a single T factory',\n", - " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", - " {'description': 'Number of output T states produced in a single run of T factory',\n", - " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", - " 'label': 'Number of output T states per run',\n", - " 'path': 'tfactory/numTstates'},\n", - " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", - " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", - " 'label': 'Number of input T states per run',\n", - " 'path': 'tfactory/numInputTstates'},\n", - " {'description': 'The number of distillation rounds',\n", - " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", - " 'label': 'Distillation rounds',\n", - " 'path': 'tfactory/numRounds'},\n", - " {'description': 'The number of units in each round of distillation',\n", - " 'explanation': 'This is the number of copies for the distillation units per round.',\n", - " 'label': 'Distillation units per round',\n", - " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", - " {'description': 'The types of distillation units',\n", - " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", - " 'label': 'Distillation units',\n", - " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", - " {'description': 'The code distance in each round of distillation',\n", - " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", - " 'label': 'Distillation code distances',\n", - " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", - " {'description': 'The number of physical qubits used in each round of distillation',\n", - " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", - " 'label': 'Number of physical qubits per round',\n", - " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", - " {'description': 'The runtime of each distillation round',\n", - " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", - " 'label': 'Runtime per round',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", - " {'description': 'Logical T state error rate',\n", - " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.',\n", - " 'label': 'Logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", - " 'title': 'T factory parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", - " 'explanation': 'We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", - " 'label': 'Logical qubits (pre-layout)',\n", - " 'path': 'logicalCounts/numQubits'},\n", - " {'description': 'Number of T gates in the input quantum program',\n", - " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", - " 'label': 'T gates',\n", - " 'path': 'logicalCounts/tCount'},\n", - " {'description': 'Number of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", - " 'label': 'Rotation gates',\n", - " 'path': 'logicalCounts/rotationCount'},\n", - " {'description': 'Depth of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", - " 'label': 'Rotation depth',\n", - " 'path': 'logicalCounts/rotationDepth'},\n", - " {'description': 'Number of CCZ-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCZ gates.',\n", - " 'label': 'CCZ gates',\n", - " 'path': 'logicalCounts/cczCount'},\n", - " {'description': 'Number of CCiX-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", - " 'label': 'CCiX gates',\n", - " 'path': 'logicalCounts/ccixCount'},\n", - " {'description': 'Number of single qubit measurements in the input quantum program',\n", - " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", - " 'label': 'Measurement operations',\n", - " 'path': 'logicalCounts/measurementCount'}],\n", - " 'title': 'Pre-layout logical resources'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Total error budget for the algorithm',\n", - " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", - " 'label': 'Total error budget',\n", - " 'path': 'physicalCountsFormatted/errorBudget'},\n", - " {'description': 'Probability of at least one logical error',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'Logical error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", - " {'description': 'Probability of at least one faulty T distillation',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'T distillation error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", - " {'description': 'Probability of at least one failed rotation synthesis',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", - " 'label': 'Rotation synthesis error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", - " 'title': 'Assumed error budget'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", - " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", - " 'label': 'Qubit name',\n", - " 'path': 'jobParams/qubitParams/name'},\n", - " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", - " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", - " 'label': 'Instruction set',\n", - " 'path': 'jobParams/qubitParams/instructionSet'},\n", - " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", - " 'label': 'Single-qubit measurement time',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", - " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", - " 'label': 'Single-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", - " {'description': 'Operation time for two-qubit gate in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", - " 'label': 'Two-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", - " {'description': 'Operation time for a T gate',\n", - " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", - " 'label': 'T gate time',\n", - " 'path': 'jobParams/qubitParams/tGateTime'},\n", - " {'description': 'Error rate for single-qubit measurement',\n", - " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", - " 'label': 'Single-qubit measurement error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", - " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", - " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", - " 'label': 'Single-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", - " {'description': 'Error rate for two-qubit Clifford gate',\n", - " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", - " 'label': 'Two-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", - " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", - " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", - " 'label': 'T gate error rate',\n", - " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", - " 'title': 'Physical qubit parameters'}]},\n", - " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [9],\n", - " 'logicalErrorRate': 2.165000000000001e-06,\n", - " 'numInputTstates': 30,\n", - " 'numRounds': 1,\n", - " 'numTstates': 1,\n", - " 'numUnitsPerRound': [2],\n", - " 'physicalQubits': 6480,\n", - " 'physicalQubitsPerRound': [6480],\n", - " 'runtime': 46800.0,\n", - " 'runtimePerRound': [46800.0],\n", - " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Logical algorithmic qubits = 33\n", - "Algorithmic depth = 190\n", - "Score = 6270\n" - ] - }, - { - "data": { - "text/plain": [ - "6270" - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 220b42e469551b52cfe25be0e2db0b8e95dd3a13 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:42:21 +0530 Subject: [PATCH 17/27] Delete iQuHack-challenge-2023-task4.ipynb --- iQuHack-challenge-2023-task4.ipynb | 4995 ---------------------------- 1 file changed, 4995 deletions(-) delete mode 100644 iQuHack-challenge-2023-task4.ipynb diff --git a/iQuHack-challenge-2023-task4.ipynb b/iQuHack-challenge-2023-task4.ipynb deleted file mode 100644 index e3b5d78..0000000 --- a/iQuHack-challenge-2023-task4.ipynb +++ /dev/null @@ -1,4995 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 4\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task4`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\n", - " {\n", - " \"cloudName\": \"AzureCloud\",\n", - " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", - " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", - " \"isDefault\": true,\n", - " \"managedByTenants\": [\n", - " {\n", - " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", - " },\n", - " {\n", - " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", - " },\n", - " {\n", - " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", - " }\n", - " ],\n", - " \"name\": \"Azure for Students\",\n", - " \"state\": \"Enabled\",\n", - " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", - " \"user\": {\n", - " \"name\": \"ravisastrykolluru2021@gmail.com\",\n", - " \"type\": \"user\"\n", - " }\n", - " }\n", - "]\n" - ] - } - ], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": 46, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"Quibitrons\" # Update this field with your team name\n", - "task=[\"task4\"]\n", - "slack_id=\"U04KPA19P2T\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task4_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task4_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 4 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 4. \n", - "// (input will contain 7 qubits)\n", - "operation Task4(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " let N = Length(input);\n", - " for i in 0 .. 3 .. 2^(N-1) - 1 {\n", - " ControlledOnInt(i, X)(input[0..N-1], target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "operation Task4_DumpMachineWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task4(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task4_ResourceEstimationWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task4(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"24\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"25\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"31\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"38\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"47\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"48\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"59\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"62\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"72\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"73\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"74\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"75\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"76\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"77\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"78\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"79\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"83\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"86\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"87\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"90\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"91\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"92\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"93\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"94\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"95\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"100\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"101\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"102\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"103\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"106\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"107\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"108\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"109\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"110\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"111\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"114\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"115\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"116\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"117\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"118\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"119\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"120\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"121\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"122\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"123\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"124\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"125\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"126\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"127\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"128\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"147\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"152\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"159\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"165\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"166\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"170\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"171\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"174\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"175\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"176\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"182\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"183\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"187\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"188\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"189\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"190\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"191\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"200\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"201\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"202\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"203\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"204\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"205\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"206\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"207\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"211\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"215\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"219\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"223\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"228\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"229\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"230\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"231\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"234\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"235\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"236\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"237\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"238\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"239\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"242\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"243\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"244\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"245\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"246\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"247\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"248\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"249\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"250\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"251\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"252\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"253\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"254\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"255\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", - "text/html": [ - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|00111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|01111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|10111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|11111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
" - ], - "text/plain": [ - "|0000000100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|00000010⟩\t0.0883883476483185 + 0𝑖\n", - "|00000100⟩\t0.0883883476483185 + 0𝑖\n", - "|00000110⟩\t0.0883883476483185 + 0𝑖\n", - "|00001000⟩\t0.0883883476483185 + 0𝑖\n", - "|00001010⟩\t0.0883883476483185 + 0𝑖\n", - "|0000110100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|00001110⟩\t0.0883883476483185 + 0𝑖\n", - "|00010000⟩\t0.0883883476483185 + 0𝑖\n", - "|00010010⟩\t0.0883883476483185 + 0𝑖\n", - "|00010100⟩\t0.0883883476483185 + 0𝑖\n", - "|00010110⟩\t0.0883883476483185 + 0𝑖\n", - "|0001100100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|00011010⟩\t0.0883883476483185 + 0𝑖\n", - "|00011100⟩\t0.0883883476483185 + 0𝑖\n", - "|00011110⟩\t0.0883883476483185 + 0𝑖\n", - "|00100000⟩\t0.0883883476483185 + 0𝑖\n", - "|00100010⟩\t0.0883883476483185 + 0𝑖\n", - "|0010010100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|00100110⟩\t0.0883883476483185 + 0𝑖\n", - "|00101000⟩\t0.0883883476483185 + 0𝑖\n", - "|00101010⟩\t0.0883883476483185 + 0𝑖\n", - "|00101100⟩\t0.0883883476483185 + 0𝑖\n", - "|00101110⟩\t0.0883883476483185 + 0𝑖\n", - "|0011000100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|00110010⟩\t0.0883883476483185 + 0𝑖\n", - "|00110100⟩\t0.0883883476483185 + 0𝑖\n", - "|00110110⟩\t0.0883883476483185 + 0𝑖\n", - "|00111000⟩\t0.0883883476483185 + 0𝑖\n", - "|00111010⟩\t0.0883883476483185 + 0𝑖\n", - "|0011110100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|00111110⟩\t0.0883883476483185 + 0𝑖\n", - "|01000000⟩\t0.0883883476483185 + 0𝑖\n", - "|01000010⟩\t0.0883883476483185 + 0𝑖\n", - "|01000100⟩\t0.0883883476483185 + 0𝑖\n", - "|01000110⟩\t0.0883883476483185 + 0𝑖\n", - "|0100100100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|01001010⟩\t0.0883883476483185 + 0𝑖\n", - "|01001100⟩\t0.0883883476483185 + 0𝑖\n", - "|01001110⟩\t0.0883883476483185 + 0𝑖\n", - "|01010000⟩\t0.0883883476483185 + 0𝑖\n", - "|01010010⟩\t0.0883883476483185 + 0𝑖\n", - "|0101010100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|01010110⟩\t0.0883883476483185 + 0𝑖\n", - "|01011000⟩\t0.0883883476483185 + 0𝑖\n", - "|01011010⟩\t0.0883883476483185 + 0𝑖\n", - "|01011100⟩\t0.0883883476483185 + 0𝑖\n", - "|01011110⟩\t0.0883883476483185 + 0𝑖\n", - "|0110000100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|01100010⟩\t0.0883883476483185 + 0𝑖\n", - "|01100100⟩\t0.0883883476483185 + 0𝑖\n", - "|01100110⟩\t0.0883883476483185 + 0𝑖\n", - "|01101000⟩\t0.0883883476483185 + 0𝑖\n", - "|01101010⟩\t0.0883883476483185 + 0𝑖\n", - "|0110110100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|01101110⟩\t0.0883883476483185 + 0𝑖\n", - "|01110000⟩\t0.0883883476483185 + 0𝑖\n", - "|01110010⟩\t0.0883883476483185 + 0𝑖\n", - "|01110100⟩\t0.0883883476483185 + 0𝑖\n", - "|01110110⟩\t0.0883883476483185 + 0𝑖\n", - "|0111100100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|01111010⟩\t0.0883883476483185 + 0𝑖\n", - "|01111100⟩\t0.0883883476483185 + 0𝑖\n", - "|01111110⟩\t0.0883883476483185 + 0𝑖\n", - "|10000000⟩\t0.0883883476483185 + 0𝑖\n", - "|10000010⟩\t0.0883883476483185 + 0𝑖\n", - "|1000010100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|10000110⟩\t0.0883883476483185 + 0𝑖\n", - "|10001000⟩\t0.0883883476483185 + 0𝑖\n", - "|10001010⟩\t0.0883883476483185 + 0𝑖\n", - "|10001100⟩\t0.0883883476483185 + 0𝑖\n", - "|10001110⟩\t0.0883883476483185 + 0𝑖\n", - "|1001000100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|10010010⟩\t0.0883883476483185 + 0𝑖\n", - "|10010100⟩\t0.0883883476483185 + 0𝑖\n", - "|10010110⟩\t0.0883883476483185 + 0𝑖\n", - "|10011000⟩\t0.0883883476483185 + 0𝑖\n", - "|10011010⟩\t0.0883883476483185 + 0𝑖\n", - "|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|10011110⟩\t0.0883883476483185 + 0𝑖\n", - "|10100000⟩\t0.0883883476483185 + 0𝑖\n", - "|10100010⟩\t0.0883883476483185 + 0𝑖\n", - "|10100100⟩\t0.0883883476483185 + 0𝑖\n", - "|10100110⟩\t0.0883883476483185 + 0𝑖\n", - "|1010100100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|10101010⟩\t0.0883883476483185 + 0𝑖\n", - "|10101100⟩\t0.0883883476483185 + 0𝑖\n", - "|10101110⟩\t0.0883883476483185 + 0𝑖\n", - "|10110000⟩\t0.0883883476483185 + 0𝑖\n", - "|10110010⟩\t0.0883883476483185 + 0𝑖\n", - "|1011010100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|10110110⟩\t0.0883883476483185 + 0𝑖\n", - "|10111000⟩\t0.0883883476483185 + 0𝑖\n", - "|10111010⟩\t0.0883883476483185 + 0𝑖\n", - "|10111100⟩\t0.0883883476483185 + 0𝑖\n", - "|10111110⟩\t0.0883883476483185 + 0𝑖\n", - "|1100000100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|11000010⟩\t0.0883883476483185 + 0𝑖\n", - "|11000100⟩\t0.0883883476483185 + 0𝑖\n", - "|11000110⟩\t0.0883883476483185 + 0𝑖\n", - "|11001000⟩\t0.0883883476483185 + 0𝑖\n", - "|11001010⟩\t0.0883883476483185 + 0𝑖\n", - "|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|11001110⟩\t0.0883883476483185 + 0𝑖\n", - "|11010000⟩\t0.0883883476483185 + 0𝑖\n", - "|11010010⟩\t0.0883883476483185 + 0𝑖\n", - "|11010100⟩\t0.0883883476483185 + 0𝑖\n", - "|11010110⟩\t0.0883883476483185 + 0𝑖\n", - "|1101100100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|11011010⟩\t0.0883883476483185 + 0𝑖\n", - "|11011100⟩\t0.0883883476483185 + 0𝑖\n", - "|11011110⟩\t0.0883883476483185 + 0𝑖\n", - "|11100000⟩\t0.0883883476483185 + 0𝑖\n", - "|11100010⟩\t0.0883883476483185 + 0𝑖\n", - "|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|11100110⟩\t0.0883883476483185 + 0𝑖\n", - "|11101000⟩\t0.0883883476483185 + 0𝑖\n", - "|11101010⟩\t0.0883883476483185 + 0𝑖\n", - "|11101100⟩\t0.0883883476483185 + 0𝑖\n", - "|11101110⟩\t0.0883883476483185 + 0𝑖\n", - "|1111000100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|11110010⟩\t0.0883883476483185 + 0𝑖\n", - "|11110100⟩\t0.0883883476483185 + 0𝑖\n", - "|11110110⟩\t0.0883883476483185 + 0𝑖\n", - "|11111000⟩\t0.0883883476483185 + 0𝑖\n", - "|11111010⟩\t0.0883883476483185 + 0𝑖\n", - "|1111110100000000⟩\t0.0883883476483185 + 0𝑖\n", - "|11111110⟩\t0.0883883476483185 + 0𝑖" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "()" - ] - }, - "execution_count": 49, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task4_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", - "text/plain": [ - "Connecting to Azure Quantum..." - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Authenticated using Azure.Identity.AzureCliCredential\n", - "\n", - "\n", - "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181524},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 313983},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", - " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 120},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n", - " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 120},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n", - " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", - " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", - " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"EAST US\")" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", - "Active target is now microsoft.estimator\n" - ] - }, - { - "data": { - "text/plain": [ - "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - ] - }, - "execution_count": 51, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Submitting Task4_ResourceEstimationWrapper to target microsoft.estimator...\n", - "Job successfully submitted.\n", - " Job name: RE for the task 4\n", - " Job ID: 6b22f6cc-3800-4153-8e30-c2a9d765132f\n", - "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[19:08:23] Current job status: Executing\n", - "[19:08:28] Current job status: Succeeded\n" - ] - } - ], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task4_ResourceEstimationWrapper, jobName=\"RE for the task 4\")" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":110,\"cczCount\":22,\"measurementCount\":110,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":506,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":506,\"numTfactories\":12,\"numTfactoryRuns\":44,\"numTsPerRotation\":null,\"numTstates\":528,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":2.6003744539213647E-08,\"requiredLogicalTstateErrorRate\":9.46969696969697E-07},\"physicalQubits\":129004,\"runtime\":2631200},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"2.60e-8\",\"requiredLogicalTstateErrorRate\":\"9.47e-7\",\"runtime\":\"2ms 631us 200ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{528\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 631us 200ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000026003744539213647)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", - "text/html": [ - "\r\n", - "
\r\n", - " \r\n", - " Physical resource estimates\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Physical qubits129004\r\n", - "

Number of physical qubits

\n", - "
\r\n", - "
\r\n", - "

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", - "\r\n", - "
Runtime2ms 631us 200ns\r\n", - "

Total runtime

\n", - "
\r\n", - "
\r\n", - "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Resource estimates breakdown\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Logical algorithmic qubits38\r\n", - "

Number of logical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n", - "\r\n", - "
Algorithmic depth506\r\n", - "

Number of logical cycles for the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", - "\r\n", - "
Logical depth506\r\n", - "

Number of logical cycles performed

\n", - "
\r\n", - "
\r\n", - "

This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", - "\r\n", - "
Number of T states528\r\n", - "

Number of T states consumed by the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", - "\r\n", - "
Number of T factories12\r\n", - "

Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime

\n", - "
\r\n", - "
\r\n", - "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{528\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 2ms 631us 200ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", - "\r\n", - "
Number of T factory invocations44\r\n", - "

Number of times all T factories are invoked

\n", - "
\r\n", - "
\r\n", - "

In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.

\n", - "\r\n", - "
Physical algorithmic qubits12844\r\n", - "

Number of physical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n", - "\r\n", - "
Physical T factory qubits116160\r\n", - "

Number of physical qubits for the T factories

\n", - "
\r\n", - "
\r\n", - "

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n", - "\r\n", - "
Required logical qubit error rate2.60e-8\r\n", - "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", - "
\r\n", - "
\r\n", - "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.

\n", - "\r\n", - "
Required logical T state error rate9.47e-7\r\n", - "

The minimum T state error rate required for distilled T states

\n", - "
\r\n", - "
\r\n", - "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.

\n", - "\r\n", - "
Number of T states per rotationNo rotations in algorithm\r\n", - "

Number of T states to implement a rotation with an arbitrary angle

\n", - "
\r\n", - "
\r\n", - "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Logical qubit parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
QEC schemesurface_code\r\n", - "

Name of QEC scheme

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", - "\r\n", - "
Code distance13\r\n", - "

Required code distance for error correction

\n", - "
\r\n", - "
\r\n", - "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000000026003744539213647)}{\\log(0.01/0.001)} - 1\\)

\n", - "\r\n", - "
Physical qubits338\r\n", - "

Number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical cycle time5us 200ns\r\n", - "

Duration of a logical cycle in nanoseconds

\n", - "
\r\n", - "
\r\n", - "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical qubit error rate3.00e-9\r\n", - "

Logical qubit error rate

\n", - "
\r\n", - "
\r\n", - "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n", - "\r\n", - "
Crossing prefactor0.03\r\n", - "

Crossing prefactor used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", - "\r\n", - "
Error correction threshold0.01\r\n", - "

Error correction threshold used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", - "\r\n", - "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", - "

QEC scheme formula used to compute logical cycle time

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n", - "\r\n", - "
Physical qubits formula2 * codeDistance * codeDistance\r\n", - "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " T factory parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Physical qubits9680\r\n", - "

Number of physical qubits for a single T factory

\n", - "
\r\n", - "
\r\n", - "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", - "\r\n", - "
Runtime57us 200ns\r\n", - "

Runtime of a single T factory

\n", - "
\r\n", - "
\r\n", - "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", - "\r\n", - "
Number of output T states per run1\r\n", - "

Number of output T states produced in a single run of T factory

\n", - "
\r\n", - "
\r\n", - "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n", - "\r\n", - "
Number of input T states per run30\r\n", - "

Number of physical input T states consumed in a single run of a T factory

\n", - "
\r\n", - "
\r\n", - "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", - "\r\n", - "
Distillation rounds1\r\n", - "

The number of distillation rounds

\n", - "
\r\n", - "
\r\n", - "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", - "\r\n", - "
Distillation units per round2\r\n", - "

The number of units in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the number of copies for the distillation units per round.

\n", - "\r\n", - "
Distillation units15-to-1 space efficient logical\r\n", - "

The types of distillation units

\n", - "
\r\n", - "
\r\n", - "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", - "\r\n", - "
Distillation code distances11\r\n", - "

The code distance in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", - "\r\n", - "
Number of physical qubits per round9680\r\n", - "

The number of physical qubits used in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", - "\r\n", - "
Runtime per round57us 200ns\r\n", - "

The runtime of each distillation round

\n", - "
\r\n", - "
\r\n", - "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", - "\r\n", - "
Logical T state error rate2.48e-7\r\n", - "

Logical T state error rate

\n", - "
\r\n", - "
\r\n", - "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Pre-layout logical resources\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Logical qubits (pre-layout)13\r\n", - "

Number of logical qubits in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", - "\r\n", - "
T gates0\r\n", - "

Number of T gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", - "\r\n", - "
Rotation gates0\r\n", - "

Number of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", - "\r\n", - "
Rotation depth0\r\n", - "

Depth of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", - "\r\n", - "
CCZ gates22\r\n", - "

Number of CCZ-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCZ gates.

\n", - "\r\n", - "
CCiX gates110\r\n", - "

Number of CCiX-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", - "\r\n", - "
Measurement operations110\r\n", - "

Number of single qubit measurements in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Assumed error budget\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Total error budget1.00e-3\r\n", - "

Total error budget for the algorithm

\n", - "
\r\n", - "
\r\n", - "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", - "\r\n", - "
Logical error probability5.00e-4\r\n", - "

Probability of at least one logical error

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
T distillation error probability5.00e-4\r\n", - "

Probability of at least one faulty T distillation

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
Rotation synthesis error probability0.00e0\r\n", - "

Probability of at least one failed rotation synthesis

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Physical qubit parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Qubit namequbit_gate_ns_e3\r\n", - "

Some descriptive name for the qubit model

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", - "\r\n", - "
Instruction setGateBased\r\n", - "

Underlying qubit technology (gate-based or Majorana)

\n", - "
\r\n", - "
\r\n", - "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", - "\r\n", - "
Single-qubit measurement time100 ns\r\n", - "

Operation time for single-qubit measurement (t_meas) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", - "\r\n", - "
Single-qubit gate time50 ns\r\n", - "

Operation time for single-qubit gate (t_gate) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", - "\r\n", - "
Two-qubit gate time50 ns\r\n", - "

Operation time for two-qubit gate in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", - "\r\n", - "
T gate time50 ns\r\n", - "

Operation time for a T gate

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to execute a T gate.

\n", - "\r\n", - "
Single-qubit measurement error rate0.001\r\n", - "

Error rate for single-qubit measurement

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", - "\r\n", - "
Single-qubit error rate0.001\r\n", - "

Error rate for single-qubit Clifford gate (p)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", - "\r\n", - "
Two-qubit error rate0.001\r\n", - "

Error rate for two-qubit Clifford gate

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", - "\r\n", - "
T gate error rate0.001\r\n", - "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which executing a single T gate may fail.

\n", - "\r\n", - "
\r\n", - "
\r\n", - " Assumptions\r\n", - "
    \r\n", - "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", - "
  • \r\n", - "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", - "
  • \r\n", - "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", - "
  • \r\n", - "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", - "
  • \r\n", - "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", - "
  • \r\n", - "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", - "
  • \r\n", - "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", - "
  • \r\n", - "
\r\n" - ], - "text/plain": [ - "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", - " 'jobParams': {'errorBudget': 0.001,\n", - " 'qecScheme': {'crossingPrefactor': 0.03,\n", - " 'errorCorrectionThreshold': 0.01,\n", - " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", - " 'name': 'surface_code',\n", - " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", - " 'qubitParams': {'instructionSet': 'GateBased',\n", - " 'name': 'qubit_gate_ns_e3',\n", - " 'oneQubitGateErrorRate': 0.001,\n", - " 'oneQubitGateTime': '50 ns',\n", - " 'oneQubitMeasurementErrorRate': 0.001,\n", - " 'oneQubitMeasurementTime': '100 ns',\n", - " 'tGateErrorRate': 0.001,\n", - " 'tGateTime': '50 ns',\n", - " 'twoQubitGateErrorRate': 0.001,\n", - " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 110,\n", - " 'cczCount': 22,\n", - " 'measurementCount': 110,\n", - " 'numQubits': 13,\n", - " 'rotationCount': 0,\n", - " 'rotationDepth': 0,\n", - " 'tCount': 0},\n", - " 'logicalQubit': {'codeDistance': 13,\n", - " 'logicalCycleTime': 5200.0,\n", - " 'logicalErrorRate': 3.000000000000002e-09,\n", - " 'physicalQubits': 338},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 506,\n", - " 'algorithmicLogicalQubits': 38,\n", - " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 506,\n", - " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 44,\n", - " 'numTsPerRotation': None,\n", - " 'numTstates': 528,\n", - " 'physicalQubitsForAlgorithm': 12844,\n", - " 'physicalQubitsForTfactories': 116160,\n", - " 'requiredLogicalQubitErrorRate': 2.6003744539213647e-08,\n", - " 'requiredLogicalTstateErrorRate': 9.46969696969697e-07},\n", - " 'physicalQubits': 129004,\n", - " 'runtime': 2631200},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n", - " 'errorBudget': '1.00e-3',\n", - " 'errorBudgetLogical': '5.00e-4',\n", - " 'errorBudgetRotations': '0.00e0',\n", - " 'errorBudgetTstates': '5.00e-4',\n", - " 'logicalCycleTime': '5us 200ns',\n", - " 'logicalErrorRate': '3.00e-9',\n", - " 'numTsPerRotation': 'No rotations in algorithm',\n", - " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n", - " 'physicalQubitsPerRound': '9680',\n", - " 'requiredLogicalQubitErrorRate': '2.60e-8',\n", - " 'requiredLogicalTstateErrorRate': '9.47e-7',\n", - " 'runtime': '2ms 631us 200ns',\n", - " 'tfactoryRuntime': '57us 200ns',\n", - " 'tfactoryRuntimePerRound': '57us 200ns',\n", - " 'tstateLogicalErrorRate': '2.48e-7',\n", - " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", - " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", - " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", - " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", - " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", - " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", - " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", - " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", - " 'groups': [{'alwaysVisible': True,\n", - " 'entries': [{'description': 'Number of physical qubits',\n", - " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'physicalCounts/physicalQubits'},\n", - " {'description': 'Total runtime',\n", - " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 506 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/runtime'}],\n", - " 'title': 'Physical resource estimates'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", - " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n", - " 'label': 'Logical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", - " {'description': 'Number of logical cycles for the algorithm',\n", - " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 110 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 22 CCZ and 110 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", - " 'label': 'Algorithmic depth',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", - " {'description': 'Number of logical cycles performed',\n", - " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 506. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", - " 'label': 'Logical depth',\n", - " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", - " {'description': 'Number of T states consumed by the algorithm',\n", - " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 22 CCZ and 110 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", - " 'label': 'Number of T states',\n", - " 'path': 'physicalCounts/breakdown/numTstates'},\n", - " {'description': \"Number of T factories capable of producing the demanded 528 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{528\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 631us 200ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", - " 'label': 'Number of T factories',\n", - " 'path': 'physicalCounts/breakdown/numTfactories'},\n", - " {'description': 'Number of times all T factories are invoked',\n", - " 'explanation': 'In order to prepare the 528 T states, the 12 copies of the T factory are repeatedly invoked 44 times.',\n", - " 'label': 'Number of T factory invocations',\n", - " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", - " {'description': 'Number of physical qubits for the algorithm after layout',\n", - " 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n", - " 'label': 'Physical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", - " {'description': 'Number of physical qubits for the T factories',\n", - " 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n", - " 'label': 'Physical T factory qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", - " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", - " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 506.',\n", - " 'label': 'Required logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", - " {'description': 'The minimum T state error rate required for distilled T states',\n", - " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 528.',\n", - " 'label': 'Required logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", - " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", - " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", - " 'label': 'Number of T states per rotation',\n", - " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", - " 'title': 'Resource estimates breakdown'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Name of QEC scheme',\n", - " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", - " 'label': 'QEC scheme',\n", - " 'path': 'jobParams/qecScheme/name'},\n", - " {'description': 'Required code distance for error correction',\n", - " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000026003744539213647)}{\\\\log(0.01/0.001)} - 1$',\n", - " 'label': 'Code distance',\n", - " 'path': 'logicalQubit/codeDistance'},\n", - " {'description': 'Number of physical qubits per logical qubit',\n", - " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'logicalQubit/physicalQubits'},\n", - " {'description': 'Duration of a logical cycle in nanoseconds',\n", - " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", - " 'label': 'Logical cycle time',\n", - " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", - " {'description': 'Logical qubit error rate',\n", - " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n", - " 'label': 'Logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", - " {'description': 'Crossing prefactor used in QEC scheme',\n", - " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", - " 'label': 'Crossing prefactor',\n", - " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", - " {'description': 'Error correction threshold used in QEC scheme',\n", - " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", - " 'label': 'Error correction threshold',\n", - " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", - " {'description': 'QEC scheme formula used to compute logical cycle time',\n", - " 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n", - " 'label': 'Logical cycle time formula',\n", - " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", - " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", - " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n", - " 'label': 'Physical qubits formula',\n", - " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", - " 'title': 'Logical qubit parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", - " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'tfactory/physicalQubits'},\n", - " {'description': 'Runtime of a single T factory',\n", - " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", - " {'description': 'Number of output T states produced in a single run of T factory',\n", - " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n", - " 'label': 'Number of output T states per run',\n", - " 'path': 'tfactory/numTstates'},\n", - " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", - " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", - " 'label': 'Number of input T states per run',\n", - " 'path': 'tfactory/numInputTstates'},\n", - " {'description': 'The number of distillation rounds',\n", - " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", - " 'label': 'Distillation rounds',\n", - " 'path': 'tfactory/numRounds'},\n", - " {'description': 'The number of units in each round of distillation',\n", - " 'explanation': 'This is the number of copies for the distillation units per round.',\n", - " 'label': 'Distillation units per round',\n", - " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", - " {'description': 'The types of distillation units',\n", - " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", - " 'label': 'Distillation units',\n", - " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", - " {'description': 'The code distance in each round of distillation',\n", - " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", - " 'label': 'Distillation code distances',\n", - " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", - " {'description': 'The number of physical qubits used in each round of distillation',\n", - " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", - " 'label': 'Number of physical qubits per round',\n", - " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", - " {'description': 'The runtime of each distillation round',\n", - " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", - " 'label': 'Runtime per round',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", - " {'description': 'Logical T state error rate',\n", - " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 9.47e-7.',\n", - " 'label': 'Logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", - " 'title': 'T factory parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", - " 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", - " 'label': 'Logical qubits (pre-layout)',\n", - " 'path': 'logicalCounts/numQubits'},\n", - " {'description': 'Number of T gates in the input quantum program',\n", - " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", - " 'label': 'T gates',\n", - " 'path': 'logicalCounts/tCount'},\n", - " {'description': 'Number of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", - " 'label': 'Rotation gates',\n", - " 'path': 'logicalCounts/rotationCount'},\n", - " {'description': 'Depth of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", - " 'label': 'Rotation depth',\n", - " 'path': 'logicalCounts/rotationDepth'},\n", - " {'description': 'Number of CCZ-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCZ gates.',\n", - " 'label': 'CCZ gates',\n", - " 'path': 'logicalCounts/cczCount'},\n", - " {'description': 'Number of CCiX-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", - " 'label': 'CCiX gates',\n", - " 'path': 'logicalCounts/ccixCount'},\n", - " {'description': 'Number of single qubit measurements in the input quantum program',\n", - " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", - " 'label': 'Measurement operations',\n", - " 'path': 'logicalCounts/measurementCount'}],\n", - " 'title': 'Pre-layout logical resources'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Total error budget for the algorithm',\n", - " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", - " 'label': 'Total error budget',\n", - " 'path': 'physicalCountsFormatted/errorBudget'},\n", - " {'description': 'Probability of at least one logical error',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'Logical error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", - " {'description': 'Probability of at least one faulty T distillation',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'T distillation error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", - " {'description': 'Probability of at least one failed rotation synthesis',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", - " 'label': 'Rotation synthesis error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", - " 'title': 'Assumed error budget'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", - " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", - " 'label': 'Qubit name',\n", - " 'path': 'jobParams/qubitParams/name'},\n", - " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", - " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", - " 'label': 'Instruction set',\n", - " 'path': 'jobParams/qubitParams/instructionSet'},\n", - " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", - " 'label': 'Single-qubit measurement time',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", - " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", - " 'label': 'Single-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", - " {'description': 'Operation time for two-qubit gate in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", - " 'label': 'Two-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", - " {'description': 'Operation time for a T gate',\n", - " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", - " 'label': 'T gate time',\n", - " 'path': 'jobParams/qubitParams/tGateTime'},\n", - " {'description': 'Error rate for single-qubit measurement',\n", - " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", - " 'label': 'Single-qubit measurement error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", - " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", - " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", - " 'label': 'Single-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", - " {'description': 'Error rate for two-qubit Clifford gate',\n", - " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", - " 'label': 'Two-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", - " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", - " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", - " 'label': 'T gate error rate',\n", - " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", - " 'title': 'Physical qubit parameters'}]},\n", - " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [11],\n", - " 'logicalErrorRate': 2.480000000000001e-07,\n", - " 'numInputTstates': 30,\n", - " 'numRounds': 1,\n", - " 'numTstates': 1,\n", - " 'numUnitsPerRound': [2],\n", - " 'physicalQubits': 9680,\n", - " 'physicalQubitsPerRound': [9680],\n", - " 'runtime': 57200.0,\n", - " 'runtimePerRound': [57200.0],\n", - " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Logical algorithmic qubits = 38\n", - "Algorithmic depth = 506\n", - "Score = 19228\n" - ] - }, - { - "data": { - "text/plain": [ - "19228" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From ca949e4cb87944a6f8eb5f7be5e9fb406617cfaf Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:42:28 +0530 Subject: [PATCH 18/27] Delete iQuHack-challenge-2023-task5.ipynb --- iQuHack-challenge-2023-task5.ipynb | 3271 ---------------------------- 1 file changed, 3271 deletions(-) delete mode 100644 iQuHack-challenge-2023-task5.ipynb diff --git a/iQuHack-challenge-2023-task5.ipynb b/iQuHack-challenge-2023-task5.ipynb deleted file mode 100644 index 77053ec..0000000 --- a/iQuHack-challenge-2023-task5.ipynb +++ /dev/null @@ -1,3271 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 5\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task5`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Preparing Q# environment...\n", - "." - ] - } - ], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"Qubitrons\" # Update this field with your team name\n", - "task=[\"task5\"]\n", - "slack_id=\"U04KPA19P2T\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task5_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task5_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 5 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 5. \n", - "// (input will contain 6 qubits)\n", - "operation Task5(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [0, 9, 18, 21, 27, 36, 42, 45, 54, 63] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task5_DumpMachineWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task5(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task5_ResourceEstimationWrapper() : Unit {\n", - " let N = 6;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task5(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6],\"n_qubits\":7,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"2\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"3\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"4\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"5\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"6\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"7\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"8\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"11\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"12\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"13\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"14\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"15\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"16\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"17\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"20\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"21\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"22\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"23\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"24\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"25\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"26\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"29\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"30\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"31\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"32\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"33\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"34\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"35\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"38\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"39\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"40\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"41\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"42\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"43\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"44\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"47\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"48\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"49\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"50\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"51\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"52\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"53\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"56\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"57\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"58\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"59\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"60\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"61\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"62\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"65\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"66\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"67\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"68\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"69\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"70\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"71\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"81\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"82\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"85\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"86\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"91\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"97\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"98\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"109\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0}}}", - "text/html": [ - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Qubit IDs0, 1, 2, 3, 4, 5, 6
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|0000001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0110111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|0111110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1000110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001001\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1001110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1010110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011011\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1011110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1100110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101101\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1101110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1110110\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111000\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111010\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111100\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|1111111\\right\\rangle$$0.1250 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
" - ], - "text/plain": [ - "|0000001⟩\t0.12500000000000008 + 0𝑖\n", - "|0000010⟩\t0.12500000000000008 + 0𝑖\n", - "|0000100⟩\t0.12500000000000008 + 0𝑖\n", - "|0000110⟩\t0.12500000000000008 + 0𝑖\n", - "|0001000⟩\t0.12500000000000008 + 0𝑖\n", - "|0001010⟩\t0.12500000000000008 + 0𝑖\n", - "|0001100⟩\t0.12500000000000008 + 0𝑖\n", - "|0001110⟩\t0.12500000000000008 + 0𝑖\n", - "|0010000⟩\t0.12500000000000008 + 0𝑖\n", - "|0010011⟩\t0.12500000000000008 + 0𝑖\n", - "|0010100⟩\t0.12500000000000008 + 0𝑖\n", - "|0010110⟩\t0.12500000000000008 + 0𝑖\n", - "|0011000⟩\t0.12500000000000008 + 0𝑖\n", - "|0011010⟩\t0.12500000000000008 + 0𝑖\n", - "|0011100⟩\t0.12500000000000008 + 0𝑖\n", - "|0011110⟩\t0.12500000000000008 + 0𝑖\n", - "|0100000⟩\t0.12500000000000008 + 0𝑖\n", - "|0100010⟩\t0.12500000000000008 + 0𝑖\n", - "|0100101⟩\t0.12500000000000008 + 0𝑖\n", - "|0100110⟩\t0.12500000000000008 + 0𝑖\n", - "|0101000⟩\t0.12500000000000008 + 0𝑖\n", - "|0101011⟩\t0.12500000000000008 + 0𝑖\n", - "|0101100⟩\t0.12500000000000008 + 0𝑖\n", - "|0101110⟩\t0.12500000000000008 + 0𝑖\n", - "|0110000⟩\t0.12500000000000008 + 0𝑖\n", - "|0110010⟩\t0.12500000000000008 + 0𝑖\n", - "|0110100⟩\t0.12500000000000008 + 0𝑖\n", - "|0110111⟩\t0.12500000000000008 + 0𝑖\n", - "|0111000⟩\t0.12500000000000008 + 0𝑖\n", - "|0111010⟩\t0.12500000000000008 + 0𝑖\n", - "|0111100⟩\t0.12500000000000008 + 0𝑖\n", - "|0111110⟩\t0.12500000000000008 + 0𝑖\n", - "|1000000⟩\t0.12500000000000008 + 0𝑖\n", - "|1000010⟩\t0.12500000000000008 + 0𝑖\n", - "|1000100⟩\t0.12500000000000008 + 0𝑖\n", - "|1000110⟩\t0.12500000000000008 + 0𝑖\n", - "|1001001⟩\t0.12500000000000008 + 0𝑖\n", - "|1001010⟩\t0.12500000000000008 + 0𝑖\n", - "|1001100⟩\t0.12500000000000008 + 0𝑖\n", - "|1001110⟩\t0.12500000000000008 + 0𝑖\n", - "|1010000⟩\t0.12500000000000008 + 0𝑖\n", - "|1010010⟩\t0.12500000000000008 + 0𝑖\n", - "|1010101⟩\t0.12500000000000008 + 0𝑖\n", - "|1010110⟩\t0.12500000000000008 + 0𝑖\n", - "|1011000⟩\t0.12500000000000008 + 0𝑖\n", - "|1011011⟩\t0.12500000000000008 + 0𝑖\n", - "|1011100⟩\t0.12500000000000008 + 0𝑖\n", - "|1011110⟩\t0.12500000000000008 + 0𝑖\n", - "|1100000⟩\t0.12500000000000008 + 0𝑖\n", - "|1100010⟩\t0.12500000000000008 + 0𝑖\n", - "|1100100⟩\t0.12500000000000008 + 0𝑖\n", - "|1100110⟩\t0.12500000000000008 + 0𝑖\n", - "|1101000⟩\t0.12500000000000008 + 0𝑖\n", - "|1101010⟩\t0.12500000000000008 + 0𝑖\n", - "|1101101⟩\t0.12500000000000008 + 0𝑖\n", - "|1101110⟩\t0.12500000000000008 + 0𝑖\n", - "|1110000⟩\t0.12500000000000008 + 0𝑖\n", - "|1110010⟩\t0.12500000000000008 + 0𝑖\n", - "|1110100⟩\t0.12500000000000008 + 0𝑖\n", - "|1110110⟩\t0.12500000000000008 + 0𝑖\n", - "|1111000⟩\t0.12500000000000008 + 0𝑖\n", - "|1111010⟩\t0.12500000000000008 + 0𝑖\n", - "|1111100⟩\t0.12500000000000008 + 0𝑖\n", - "|1111111⟩\t0.12500000000000008 + 0𝑖" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "()" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task5_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", - "text/plain": [ - "Connecting to Azure Quantum..." - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n", - "\n", - "\n", - "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n", - "this notebook is run on azure quantum workspace\n" - ] - } - ], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"East US\")\n", - "print(\"this notebook is run on azure quantum workspace\")" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", - "Active target is now microsoft.estimator\n" - ] - }, - { - "data": { - "text/plain": [ - "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Submitting Task5_ResourceEstimationWrapper to target microsoft.estimator...\n", - "Job successfully submitted.\n", - " Job name: RE for the task 5\n", - " Job ID: 647afaf6-9d17-4cf5-b65b-77a23f24ed11\n", - "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[14:13:37] Current job status: Executing\n", - "[14:13:42] Current job status: Succeeded\n" - ] - } - ], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task5_ResourceEstimationWrapper, jobName=\"RE for the task 5\")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":40,\"cczCount\":10,\"measurementCount\":40,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":190,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":190,\"numTfactories\":12,\"numTfactoryRuns\":17,\"numTsPerRotation\":null,\"numTstates\":200,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":7.974481658692185E-08,\"requiredLogicalTstateErrorRate\":2.5E-06},\"physicalQubits\":85746,\"runtime\":836000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.69 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"7.97e-8\",\"requiredLogicalTstateErrorRate\":\"2.50e-6\",\"runtime\":\"836us\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", - "text/html": [ - "\r\n", - "
\r\n", - " \r\n", - " Physical resource estimates\r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "
Physical qubits85746\r\n", - "

Number of physical qubits

\n", - "
\r\n", - "
\r\n", - "

This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", - "\r\n", - "
Runtime836us\r\n", - "

Total runtime

\n", - "
\r\n", - "
\r\n", - "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", - "\r\n", - "
\n", - "\r\n", - "
\r\n", - " \r\n", - " Resource estimates breakdown\r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "
Logical algorithmic qubits33\r\n", - "

Number of logical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 11\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 33$ logical qubits.

\n", - "\r\n", - "
Algorithmic depth190\r\n", - "

Number of logical cycles for the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", - "\r\n", - "
Logical depth190\r\n", - "

Number of logical cycles performed

\n", - "
\r\n", - "
\r\n", - "

This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", - "\r\n", - "
Number of T states200\r\n", - "

Number of T states consumed by the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", - "\r\n", - "
Number of T factories12\r\n", - "

Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime

\n", - "
\r\n", - "
\r\n", - "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{200\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 836us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", - "\r\n", - "
Number of T factory invocations17\r\n", - "

Number of times all T factories are invoked

\n", - "
\r\n", - "
\r\n", - "

In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.

\n", - "\r\n", - "
Physical algorithmic qubits7986\r\n", - "

Number of physical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", - "\r\n", - "
Physical T factory qubits77760\r\n", - "

Number of physical qubits for the T factories

\n", - "
\r\n", - "
\r\n", - "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", - "\r\n", - "
Required logical qubit error rate7.97e-8\r\n", - "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", - "
\r\n", - "
\r\n", - "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.

\n", - "\r\n", - "
Required logical T state error rate2.50e-6\r\n", - "

The minimum T state error rate required for distilled T states

\n", - "
\r\n", - "
\r\n", - "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.

\n", - "\r\n", - "
Number of T states per rotationNo rotations in algorithm\r\n", - "

Number of T states to implement a rotation with an arbitrary angle

\n", - "
\r\n", - "
\r\n", - "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", - "\r\n", - "
\n", - "\r\n", - "
\r\n", - " \r\n", - " Logical qubit parameters\r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "
QEC schemesurface_code\r\n", - "

Name of QEC scheme

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", - "\r\n", - "
Code distance11\r\n", - "

Required code distance for error correction

\n", - "
\r\n", - "
\r\n", - "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000007974481658692185)}{\\log(0.01/0.001)} - 1\\)

\n", - "\r\n", - "
Physical qubits242\r\n", - "

Number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical cycle time4us 400ns\r\n", - "

Duration of a logical cycle in nanoseconds

\n", - "
\r\n", - "
\r\n", - "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical qubit error rate3.00e-8\r\n", - "

Logical qubit error rate

\n", - "
\r\n", - "
\r\n", - "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", - "\r\n", - "
Crossing prefactor0.03\r\n", - "

Crossing prefactor used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", - "\r\n", - "
Error correction threshold0.01\r\n", - "

Error correction threshold used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", - "\r\n", - "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", - "

QEC scheme formula used to compute logical cycle time

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", - "\r\n", - "
Physical qubits formula2 * codeDistance * codeDistance\r\n", - "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", - "\r\n", - "
\n", - "\r\n", - "
\r\n", - " \r\n", - " T factory parameters\r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "
Physical qubits6480\r\n", - "

Number of physical qubits for a single T factory

\n", - "
\r\n", - "
\r\n", - "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", - "\r\n", - "
Runtime46us 800ns\r\n", - "

Runtime of a single T factory

\n", - "
\r\n", - "
\r\n", - "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", - "\r\n", - "
Number of output T states per run1\r\n", - "

Number of output T states produced in a single run of T factory

\n", - "
\r\n", - "
\r\n", - "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", - "\r\n", - "
Number of input T states per run30\r\n", - "

Number of physical input T states consumed in a single run of a T factory

\n", - "
\r\n", - "
\r\n", - "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", - "\r\n", - "
Distillation rounds1\r\n", - "

The number of distillation rounds

\n", - "
\r\n", - "
\r\n", - "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", - "\r\n", - "
Distillation units per round2\r\n", - "

The number of units in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the number of copies for the distillation units per round.

\n", - "\r\n", - "
Distillation units15-to-1 space efficient logical\r\n", - "

The types of distillation units

\n", - "
\r\n", - "
\r\n", - "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", - "\r\n", - "
Distillation code distances9\r\n", - "

The code distance in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", - "\r\n", - "
Number of physical qubits per round6480\r\n", - "

The number of physical qubits used in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", - "\r\n", - "
Runtime per round46us 800ns\r\n", - "

The runtime of each distillation round

\n", - "
\r\n", - "
\r\n", - "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", - "\r\n", - "
Logical T state error rate2.17e-6\r\n", - "

Logical T state error rate

\n", - "
\r\n", - "
\r\n", - "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.

\n", - "\r\n", - "
\n", - "\r\n", - "
\r\n", - " \r\n", - " Pre-layout logical resources\r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "
Logical qubits (pre-layout)11\r\n", - "

Number of logical qubits in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", - "\r\n", - "
T gates0\r\n", - "

Number of T gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", - "\r\n", - "
Rotation gates0\r\n", - "

Number of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", - "\r\n", - "
Rotation depth0\r\n", - "

Depth of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", - "\r\n", - "
CCZ gates10\r\n", - "

Number of CCZ-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCZ gates.

\n", - "\r\n", - "
CCiX gates40\r\n", - "

Number of CCiX-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", - "\r\n", - "
Measurement operations40\r\n", - "

Number of single qubit measurements in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", - "\r\n", - "
\n", - "\r\n", - "
\r\n", - " \r\n", - " Assumed error budget\r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "
Total error budget1.00e-3\r\n", - "

Total error budget for the algorithm

\n", - "
\r\n", - "
\r\n", - "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", - "\r\n", - "
Logical error probability5.00e-4\r\n", - "

Probability of at least one logical error

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
T distillation error probability5.00e-4\r\n", - "

Probability of at least one faulty T distillation

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
Rotation synthesis error probability0.00e0\r\n", - "

Probability of at least one failed rotation synthesis

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3.

\n", - "\r\n", - "
\n", - "\r\n", - "
\r\n", - " \r\n", - " Physical qubit parameters\r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "
Qubit namequbit_gate_ns_e3\r\n", - "

Some descriptive name for the qubit model

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", - "\r\n", - "
Instruction setGateBased\r\n", - "

Underlying qubit technology (gate-based or Majorana)

\n", - "
\r\n", - "
\r\n", - "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", - "\r\n", - "
Single-qubit measurement time100 ns\r\n", - "

Operation time for single-qubit measurement (t_meas) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", - "\r\n", - "
Single-qubit gate time50 ns\r\n", - "

Operation time for single-qubit gate (t_gate) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", - "\r\n", - "
Two-qubit gate time50 ns\r\n", - "

Operation time for two-qubit gate in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", - "\r\n", - "
T gate time50 ns\r\n", - "

Operation time for a T gate

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to execute a T gate.

\n", - "\r\n", - "
Single-qubit measurement error rate0.001\r\n", - "

Error rate for single-qubit measurement

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", - "\r\n", - "
Single-qubit error rate0.001\r\n", - "

Error rate for single-qubit Clifford gate (p)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", - "\r\n", - "
Two-qubit error rate0.001\r\n", - "

Error rate for two-qubit Clifford gate

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", - "\r\n", - "
T gate error rate0.001\r\n", - "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which executing a single T gate may fail.

\n", - "\r\n", - "
\n", - "
\r\n", - " Assumptions\r\n", - "
    \n", - "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", - "
  • \n", - "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", - "
  • \n", - "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", - "
  • \n", - "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", - "
  • \n", - "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", - "
  • \n", - "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", - "
  • \n", - "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", - "
  • \n", - "
\n" - ], - "text/plain": [ - "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", - " 'jobParams': {'errorBudget': 0.001,\n", - " 'qecScheme': {'crossingPrefactor': 0.03,\n", - " 'errorCorrectionThreshold': 0.01,\n", - " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", - " 'name': 'surface_code',\n", - " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", - " 'qubitParams': {'instructionSet': 'GateBased',\n", - " 'name': 'qubit_gate_ns_e3',\n", - " 'oneQubitGateErrorRate': 0.001,\n", - " 'oneQubitGateTime': '50 ns',\n", - " 'oneQubitMeasurementErrorRate': 0.001,\n", - " 'oneQubitMeasurementTime': '100 ns',\n", - " 'tGateErrorRate': 0.001,\n", - " 'tGateTime': '50 ns',\n", - " 'twoQubitGateErrorRate': 0.001,\n", - " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 40,\n", - " 'cczCount': 10,\n", - " 'measurementCount': 40,\n", - " 'numQubits': 11,\n", - " 'rotationCount': 0,\n", - " 'rotationDepth': 0,\n", - " 'tCount': 0},\n", - " 'logicalQubit': {'codeDistance': 11,\n", - " 'logicalCycleTime': 4400.0,\n", - " 'logicalErrorRate': 3.000000000000002e-08,\n", - " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 190,\n", - " 'algorithmicLogicalQubits': 33,\n", - " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 190,\n", - " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 17,\n", - " 'numTsPerRotation': None,\n", - " 'numTstates': 200,\n", - " 'physicalQubitsForAlgorithm': 7986,\n", - " 'physicalQubitsForTfactories': 77760,\n", - " 'requiredLogicalQubitErrorRate': 7.974481658692185e-08,\n", - " 'requiredLogicalTstateErrorRate': 2.5e-06},\n", - " 'physicalQubits': 85746,\n", - " 'runtime': 836000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", - " 'errorBudget': '1.00e-3',\n", - " 'errorBudgetLogical': '5.00e-4',\n", - " 'errorBudgetRotations': '0.00e0',\n", - " 'errorBudgetTstates': '5.00e-4',\n", - " 'logicalCycleTime': '4us 400ns',\n", - " 'logicalErrorRate': '3.00e-8',\n", - " 'numTsPerRotation': 'No rotations in algorithm',\n", - " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '90.69 %',\n", - " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '7.97e-8',\n", - " 'requiredLogicalTstateErrorRate': '2.50e-6',\n", - " 'runtime': '836us',\n", - " 'tfactoryRuntime': '46us 800ns',\n", - " 'tfactoryRuntimePerRound': '46us 800ns',\n", - " 'tstateLogicalErrorRate': '2.17e-6',\n", - " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", - " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", - " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", - " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", - " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", - " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", - " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", - " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", - " 'groups': [{'alwaysVisible': True,\n", - " 'entries': [{'description': 'Number of physical qubits',\n", - " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 7986 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'physicalCounts/physicalQubits'},\n", - " {'description': 'Total runtime',\n", - " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 190 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/runtime'}],\n", - " 'title': 'Physical resource estimates'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", - " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 11$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 33$ logical qubits.',\n", - " 'label': 'Logical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", - " {'description': 'Number of logical cycles for the algorithm',\n", - " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 40 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 10 CCZ and 40 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", - " 'label': 'Algorithmic depth',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", - " {'description': 'Number of logical cycles performed',\n", - " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 190. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", - " 'label': 'Logical depth',\n", - " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", - " {'description': 'Number of T states consumed by the algorithm',\n", - " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 10 CCZ and 40 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", - " 'label': 'Number of T states',\n", - " 'path': 'physicalCounts/breakdown/numTstates'},\n", - " {'description': \"Number of T factories capable of producing the demanded 200 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{200\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 836us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", - " 'label': 'Number of T factories',\n", - " 'path': 'physicalCounts/breakdown/numTfactories'},\n", - " {'description': 'Number of times all T factories are invoked',\n", - " 'explanation': 'In order to prepare the 200 T states, the 12 copies of the T factory are repeatedly invoked 17 times.',\n", - " 'label': 'Number of T factory invocations',\n", - " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", - " {'description': 'Number of physical qubits for the algorithm after layout',\n", - " 'explanation': 'The 7986 are the product of the 33 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", - " 'label': 'Physical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", - " {'description': 'Number of physical qubits for the T factories',\n", - " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", - " 'label': 'Physical T factory qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", - " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", - " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 33 logical qubits and the total cycle count 190.',\n", - " 'label': 'Required logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", - " {'description': 'The minimum T state error rate required for distilled T states',\n", - " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 200.',\n", - " 'label': 'Required logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", - " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", - " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", - " 'label': 'Number of T states per rotation',\n", - " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", - " 'title': 'Resource estimates breakdown'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Name of QEC scheme',\n", - " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", - " 'label': 'QEC scheme',\n", - " 'path': 'jobParams/qecScheme/name'},\n", - " {'description': 'Required code distance for error correction',\n", - " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000007974481658692185)}{\\\\log(0.01/0.001)} - 1$',\n", - " 'label': 'Code distance',\n", - " 'path': 'logicalQubit/codeDistance'},\n", - " {'description': 'Number of physical qubits per logical qubit',\n", - " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'logicalQubit/physicalQubits'},\n", - " {'description': 'Duration of a logical cycle in nanoseconds',\n", - " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", - " 'label': 'Logical cycle time',\n", - " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", - " {'description': 'Logical qubit error rate',\n", - " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", - " 'label': 'Logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", - " {'description': 'Crossing prefactor used in QEC scheme',\n", - " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", - " 'label': 'Crossing prefactor',\n", - " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", - " {'description': 'Error correction threshold used in QEC scheme',\n", - " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", - " 'label': 'Error correction threshold',\n", - " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", - " {'description': 'QEC scheme formula used to compute logical cycle time',\n", - " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", - " 'label': 'Logical cycle time formula',\n", - " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", - " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", - " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", - " 'label': 'Physical qubits formula',\n", - " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", - " 'title': 'Logical qubit parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", - " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'tfactory/physicalQubits'},\n", - " {'description': 'Runtime of a single T factory',\n", - " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", - " {'description': 'Number of output T states produced in a single run of T factory',\n", - " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", - " 'label': 'Number of output T states per run',\n", - " 'path': 'tfactory/numTstates'},\n", - " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", - " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", - " 'label': 'Number of input T states per run',\n", - " 'path': 'tfactory/numInputTstates'},\n", - " {'description': 'The number of distillation rounds',\n", - " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", - " 'label': 'Distillation rounds',\n", - " 'path': 'tfactory/numRounds'},\n", - " {'description': 'The number of units in each round of distillation',\n", - " 'explanation': 'This is the number of copies for the distillation units per round.',\n", - " 'label': 'Distillation units per round',\n", - " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", - " {'description': 'The types of distillation units',\n", - " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", - " 'label': 'Distillation units',\n", - " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", - " {'description': 'The code distance in each round of distillation',\n", - " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", - " 'label': 'Distillation code distances',\n", - " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", - " {'description': 'The number of physical qubits used in each round of distillation',\n", - " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", - " 'label': 'Number of physical qubits per round',\n", - " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", - " {'description': 'The runtime of each distillation round',\n", - " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", - " 'label': 'Runtime per round',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", - " {'description': 'Logical T state error rate',\n", - " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.50e-6.',\n", - " 'label': 'Logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", - " 'title': 'T factory parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", - " 'explanation': 'We determine 33 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", - " 'label': 'Logical qubits (pre-layout)',\n", - " 'path': 'logicalCounts/numQubits'},\n", - " {'description': 'Number of T gates in the input quantum program',\n", - " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", - " 'label': 'T gates',\n", - " 'path': 'logicalCounts/tCount'},\n", - " {'description': 'Number of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", - " 'label': 'Rotation gates',\n", - " 'path': 'logicalCounts/rotationCount'},\n", - " {'description': 'Depth of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", - " 'label': 'Rotation depth',\n", - " 'path': 'logicalCounts/rotationDepth'},\n", - " {'description': 'Number of CCZ-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCZ gates.',\n", - " 'label': 'CCZ gates',\n", - " 'path': 'logicalCounts/cczCount'},\n", - " {'description': 'Number of CCiX-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", - " 'label': 'CCiX gates',\n", - " 'path': 'logicalCounts/ccixCount'},\n", - " {'description': 'Number of single qubit measurements in the input quantum program',\n", - " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", - " 'label': 'Measurement operations',\n", - " 'path': 'logicalCounts/measurementCount'}],\n", - " 'title': 'Pre-layout logical resources'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Total error budget for the algorithm',\n", - " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", - " 'label': 'Total error budget',\n", - " 'path': 'physicalCountsFormatted/errorBudget'},\n", - " {'description': 'Probability of at least one logical error',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'Logical error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", - " {'description': 'Probability of at least one faulty T distillation',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'T distillation error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", - " {'description': 'Probability of at least one failed rotation synthesis',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", - " 'label': 'Rotation synthesis error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", - " 'title': 'Assumed error budget'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", - " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", - " 'label': 'Qubit name',\n", - " 'path': 'jobParams/qubitParams/name'},\n", - " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", - " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", - " 'label': 'Instruction set',\n", - " 'path': 'jobParams/qubitParams/instructionSet'},\n", - " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", - " 'label': 'Single-qubit measurement time',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", - " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", - " 'label': 'Single-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", - " {'description': 'Operation time for two-qubit gate in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", - " 'label': 'Two-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", - " {'description': 'Operation time for a T gate',\n", - " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", - " 'label': 'T gate time',\n", - " 'path': 'jobParams/qubitParams/tGateTime'},\n", - " {'description': 'Error rate for single-qubit measurement',\n", - " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", - " 'label': 'Single-qubit measurement error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", - " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", - " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", - " 'label': 'Single-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", - " {'description': 'Error rate for two-qubit Clifford gate',\n", - " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", - " 'label': 'Two-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", - " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", - " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", - " 'label': 'T gate error rate',\n", - " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", - " 'title': 'Physical qubit parameters'}]},\n", - " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [9],\n", - " 'logicalErrorRate': 2.165000000000001e-06,\n", - " 'numInputTstates': 30,\n", - " 'numRounds': 1,\n", - " 'numTstates': 1,\n", - " 'numUnitsPerRound': [2],\n", - " 'physicalQubits': 6480,\n", - " 'physicalQubitsPerRound': [6480],\n", - " 'runtime': 46800.0,\n", - " 'runtimePerRound': [46800.0],\n", - " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Logical algorithmic qubits = 33\n", - "Algorithmic depth = 190\n", - "Score = 6270\n" - ] - }, - { - "data": { - "text/plain": [ - "6270" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From afe3e0ba9faac43efeea24e42ad64ab5f4f36364 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:42:40 +0530 Subject: [PATCH 19/27] Delete iQuHack-challenge-2023-task6.ipynb --- iQuHack-challenge-2023-task6.ipynb | 523 ----------------------------- 1 file changed, 523 deletions(-) delete mode 100644 iQuHack-challenge-2023-task6.ipynb diff --git a/iQuHack-challenge-2023-task6.ipynb b/iQuHack-challenge-2023-task6.ipynb deleted file mode 100644 index cb2706f..0000000 --- a/iQuHack-challenge-2023-task6.ipynb +++ /dev/null @@ -1,523 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 6\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task6`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "!az login" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 1. Write the code" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Preparing Q# environment...\n" - } - ], - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "teamname=\"Qubitrons\" # Update this field with your team name\n", - "task=[\"task6\"]\n", - "slack_id=\"U04L0TSC0LD\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task6_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task6_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "**The complete code for Task 6 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 6. \n", - "// (input will contain 8 qubits)\n", - "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [144, 145, 148, 149, 152, 153, 156, 157, 208, 209, 212, 213, 216, 217, 220, 221] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task6_DumpMachineWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task6(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task6_ResourceEstimationWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task6(input, target);\n", - "}" - ], - "outputs": [], - "execution_count": 4, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task6_DumpMachineWrapper.simulate()" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "|000000000⟩\t0.06250000000000006 + 0𝑖\n|000000010000000000⟩\t0.06250000000000006 + 0𝑖\n|000000100⟩\t0.06250000000000006 + 0𝑖\n|000000110000000000⟩\t0.06250000000000006 + 0𝑖\n|000001000⟩\t0.06250000000000006 + 0𝑖\n|000001010000000000⟩\t0.06250000000000006 + 0𝑖\n|000001100⟩\t0.06250000000000006 + 0𝑖\n|000001110000000000⟩\t0.06250000000000006 + 0𝑖\n|000010000⟩\t0.06250000000000006 + 0𝑖\n|000010010100000000⟩\t0.06250000000000006 + 0𝑖\n|000010100⟩\t0.06250000000000006 + 0𝑖\n|000010110100000000⟩\t0.06250000000000006 + 0𝑖\n|000011000⟩\t0.06250000000000006 + 0𝑖\n|000011010000000000⟩\t0.06250000000000006 + 0𝑖\n|000011100⟩\t0.06250000000000006 + 0𝑖\n|000011110000000000⟩\t0.06250000000000006 + 0𝑖\n|000100000⟩\t0.06250000000000006 + 0𝑖\n|000100010000000000⟩\t0.06250000000000006 + 0𝑖\n|000100100⟩\t0.06250000000000006 + 0𝑖\n|000100110000000000⟩\t0.06250000000000006 + 0𝑖\n|000101000⟩\t0.06250000000000006 + 0𝑖\n|000101010000000000⟩\t0.06250000000000006 + 0𝑖\n|000101100⟩\t0.06250000000000006 + 0𝑖\n|000101110000000000⟩\t0.06250000000000006 + 0𝑖\n|000110000⟩\t0.06250000000000006 + 0𝑖\n|000110010100000000⟩\t0.06250000000000006 + 0𝑖\n|000110100⟩\t0.06250000000000006 + 0𝑖\n|000110110100000000⟩\t0.06250000000000006 + 0𝑖\n|000111000⟩\t0.06250000000000006 + 0𝑖\n|000111010000000000⟩\t0.06250000000000006 + 0𝑖\n|000111100⟩\t0.06250000000000006 + 0𝑖\n|000111110000000000⟩\t0.06250000000000006 + 0𝑖\n|001000000⟩\t0.06250000000000006 + 0𝑖\n|001000010000000000⟩\t0.06250000000000006 + 0𝑖\n|001000100⟩\t0.06250000000000006 + 0𝑖\n|001000110000000000⟩\t0.06250000000000006 + 0𝑖\n|001001000⟩\t0.06250000000000006 + 0𝑖\n|001001010000000000⟩\t0.06250000000000006 + 0𝑖\n|001001100⟩\t0.06250000000000006 + 0𝑖\n|001001110000000000⟩\t0.06250000000000006 + 0𝑖\n|001010000⟩\t0.06250000000000006 + 0𝑖\n|001010010100000000⟩\t0.06250000000000006 + 0𝑖\n|001010100⟩\t0.06250000000000006 + 0𝑖\n|001010110100000000⟩\t0.06250000000000006 + 0𝑖\n|001011000⟩\t0.06250000000000006 + 0𝑖\n|001011010000000000⟩\t0.06250000000000006 + 0𝑖\n|001011100⟩\t0.06250000000000006 + 0𝑖\n|001011110000000000⟩\t0.06250000000000006 + 0𝑖\n|001100000⟩\t0.06250000000000006 + 0𝑖\n|001100010000000000⟩\t0.06250000000000006 + 0𝑖\n|001100100⟩\t0.06250000000000006 + 0𝑖\n|001100110000000000⟩\t0.06250000000000006 + 0𝑖\n|001101000⟩\t0.06250000000000006 + 0𝑖\n|001101010000000000⟩\t0.06250000000000006 + 0𝑖\n|001101100⟩\t0.06250000000000006 + 0𝑖\n|001101110000000000⟩\t0.06250000000000006 + 0𝑖\n|001110000⟩\t0.06250000000000006 + 0𝑖\n|001110010100000000⟩\t0.06250000000000006 + 0𝑖\n|001110100⟩\t0.06250000000000006 + 0𝑖\n|001110110100000000⟩\t0.06250000000000006 + 0𝑖\n|001111000⟩\t0.06250000000000006 + 0𝑖\n|001111010000000000⟩\t0.06250000000000006 + 0𝑖\n|001111100⟩\t0.06250000000000006 + 0𝑖\n|001111110000000000⟩\t0.06250000000000006 + 0𝑖\n|010000000⟩\t0.06250000000000006 + 0𝑖\n|010000010000000000⟩\t0.06250000000000006 + 0𝑖\n|010000100⟩\t0.06250000000000006 + 0𝑖\n|010000110000000000⟩\t0.06250000000000006 + 0𝑖\n|010001000⟩\t0.06250000000000006 + 0𝑖\n|010001010000000000⟩\t0.06250000000000006 + 0𝑖\n|010001100⟩\t0.06250000000000006 + 0𝑖\n|010001110000000000⟩\t0.06250000000000006 + 0𝑖\n|010010000⟩\t0.06250000000000006 + 0𝑖\n|010010010000000000⟩\t0.06250000000000006 + 0𝑖\n|010010100⟩\t0.06250000000000006 + 0𝑖\n|010010110000000000⟩\t0.06250000000000006 + 0𝑖\n|010011000⟩\t0.06250000000000006 + 0𝑖\n|010011010000000000⟩\t0.06250000000000006 + 0𝑖\n|010011100⟩\t0.06250000000000006 + 0𝑖\n|010011110000000000⟩\t0.06250000000000006 + 0𝑖\n|010100000⟩\t0.06250000000000006 + 0𝑖\n|010100010000000000⟩\t0.06250000000000006 + 0𝑖\n|010100100⟩\t0.06250000000000006 + 0𝑖\n|010100110000000000⟩\t0.06250000000000006 + 0𝑖\n|010101000⟩\t0.06250000000000006 + 0𝑖\n|010101010000000000⟩\t0.06250000000000006 + 0𝑖\n|010101100⟩\t0.06250000000000006 + 0𝑖\n|010101110000000000⟩\t0.06250000000000006 + 0𝑖\n|010110000⟩\t0.06250000000000006 + 0𝑖\n|010110010000000000⟩\t0.06250000000000006 + 0𝑖\n|010110100⟩\t0.06250000000000006 + 0𝑖\n|010110110000000000⟩\t0.06250000000000006 + 0𝑖\n|010111000⟩\t0.06250000000000006 + 0𝑖\n|010111010000000000⟩\t0.06250000000000006 + 0𝑖\n|010111100⟩\t0.06250000000000006 + 0𝑖\n|010111110000000000⟩\t0.06250000000000006 + 0𝑖\n|011000000⟩\t0.06250000000000006 + 0𝑖\n|011000010000000000⟩\t0.06250000000000006 + 0𝑖\n|011000100⟩\t0.06250000000000006 + 0𝑖\n|011000110000000000⟩\t0.06250000000000006 + 0𝑖\n|011001000⟩\t0.06250000000000006 + 0𝑖\n|011001010000000000⟩\t0.06250000000000006 + 0𝑖\n|011001100⟩\t0.06250000000000006 + 0𝑖\n|011001110000000000⟩\t0.06250000000000006 + 0𝑖\n|011010000⟩\t0.06250000000000006 + 0𝑖\n|011010010000000000⟩\t0.06250000000000006 + 0𝑖\n|011010100⟩\t0.06250000000000006 + 0𝑖\n|011010110000000000⟩\t0.06250000000000006 + 0𝑖\n|011011000⟩\t0.06250000000000006 + 0𝑖\n|011011010000000000⟩\t0.06250000000000006 + 0𝑖\n|011011100⟩\t0.06250000000000006 + 0𝑖\n|011011110000000000⟩\t0.06250000000000006 + 0𝑖\n|011100000⟩\t0.06250000000000006 + 0𝑖\n|011100010000000000⟩\t0.06250000000000006 + 0𝑖\n|011100100⟩\t0.06250000000000006 + 0𝑖\n|011100110000000000⟩\t0.06250000000000006 + 0𝑖\n|011101000⟩\t0.06250000000000006 + 0𝑖\n|011101010000000000⟩\t0.06250000000000006 + 0𝑖\n|011101100⟩\t0.06250000000000006 + 0𝑖\n|011101110000000000⟩\t0.06250000000000006 + 0𝑖\n|011110000⟩\t0.06250000000000006 + 0𝑖\n|011110010000000000⟩\t0.06250000000000006 + 0𝑖\n|011110100⟩\t0.06250000000000006 + 0𝑖\n|011110110000000000⟩\t0.06250000000000006 + 0𝑖\n|011111000⟩\t0.06250000000000006 + 0𝑖\n|011111010000000000⟩\t0.06250000000000006 + 0𝑖\n|011111100⟩\t0.06250000000000006 + 0𝑖\n|011111110000000000⟩\t0.06250000000000006 + 0𝑖\n|100000000⟩\t0.06250000000000006 + 0𝑖\n|100000010000000000⟩\t0.06250000000000006 + 0𝑖\n|100000100⟩\t0.06250000000000006 + 0𝑖\n|100000110000000000⟩\t0.06250000000000006 + 0𝑖\n|100001000⟩\t0.06250000000000006 + 0𝑖\n|100001010000000000⟩\t0.06250000000000006 + 0𝑖\n|100001100⟩\t0.06250000000000006 + 0𝑖\n|100001110000000000⟩\t0.06250000000000006 + 0𝑖\n|100010000⟩\t0.06250000000000006 + 0𝑖\n|100010010100000000⟩\t0.06250000000000006 + 0𝑖\n|100010100⟩\t0.06250000000000006 + 0𝑖\n|100010110100000000⟩\t0.06250000000000006 + 0𝑖\n|100011000⟩\t0.06250000000000006 + 0𝑖\n|100011010000000000⟩\t0.06250000000000006 + 0𝑖\n|100011100⟩\t0.06250000000000006 + 0𝑖\n|100011110000000000⟩\t0.06250000000000006 + 0𝑖\n|100100000⟩\t0.06250000000000006 + 0𝑖\n|100100010000000000⟩\t0.06250000000000006 + 0𝑖\n|100100100⟩\t0.06250000000000006 + 0𝑖\n|100100110000000000⟩\t0.06250000000000006 + 0𝑖\n|100101000⟩\t0.06250000000000006 + 0𝑖\n|100101010000000000⟩\t0.06250000000000006 + 0𝑖\n|100101100⟩\t0.06250000000000006 + 0𝑖\n|100101110000000000⟩\t0.06250000000000006 + 0𝑖\n|100110000⟩\t0.06250000000000006 + 0𝑖\n|100110010100000000⟩\t0.06250000000000006 + 0𝑖\n|100110100⟩\t0.06250000000000006 + 0𝑖\n|100110110100000000⟩\t0.06250000000000006 + 0𝑖\n|100111000⟩\t0.06250000000000006 + 0𝑖\n|100111010000000000⟩\t0.06250000000000006 + 0𝑖\n|100111100⟩\t0.06250000000000006 + 0𝑖\n|100111110000000000⟩\t0.06250000000000006 + 0𝑖\n|101000000⟩\t0.06250000000000006 + 0𝑖\n|101000010000000000⟩\t0.06250000000000006 + 0𝑖\n|101000100⟩\t0.06250000000000006 + 0𝑖\n|101000110000000000⟩\t0.06250000000000006 + 0𝑖\n|101001000⟩\t0.06250000000000006 + 0𝑖\n|101001010000000000⟩\t0.06250000000000006 + 0𝑖\n|101001100⟩\t0.06250000000000006 + 0𝑖\n|101001110000000000⟩\t0.06250000000000006 + 0𝑖\n|101010000⟩\t0.06250000000000006 + 0𝑖\n|101010010100000000⟩\t0.06250000000000006 + 0𝑖\n|101010100⟩\t0.06250000000000006 + 0𝑖\n|101010110100000000⟩\t0.06250000000000006 + 0𝑖\n|101011000⟩\t0.06250000000000006 + 0𝑖\n|101011010000000000⟩\t0.06250000000000006 + 0𝑖\n|101011100⟩\t0.06250000000000006 + 0𝑖\n|101011110000000000⟩\t0.06250000000000006 + 0𝑖\n|101100000⟩\t0.06250000000000006 + 0𝑖\n|101100010000000000⟩\t0.06250000000000006 + 0𝑖\n|101100100⟩\t0.06250000000000006 + 0𝑖\n|101100110000000000⟩\t0.06250000000000006 + 0𝑖\n|101101000⟩\t0.06250000000000006 + 0𝑖\n|101101010000000000⟩\t0.06250000000000006 + 0𝑖\n|101101100⟩\t0.06250000000000006 + 0𝑖\n|101101110000000000⟩\t0.06250000000000006 + 0𝑖\n|101110000⟩\t0.06250000000000006 + 0𝑖\n|101110010100000000⟩\t0.06250000000000006 + 0𝑖\n|101110100⟩\t0.06250000000000006 + 0𝑖\n|101110110100000000⟩\t0.06250000000000006 + 0𝑖\n|101111000⟩\t0.06250000000000006 + 0𝑖\n|101111010000000000⟩\t0.06250000000000006 + 0𝑖\n|101111100⟩\t0.06250000000000006 + 0𝑖\n|101111110000000000⟩\t0.06250000000000006 + 0𝑖\n|110000000⟩\t0.06250000000000006 + 0𝑖\n|110000010000000000⟩\t0.06250000000000006 + 0𝑖\n|110000100⟩\t0.06250000000000006 + 0𝑖\n|110000110000000000⟩\t0.06250000000000006 + 0𝑖\n|110001000⟩\t0.06250000000000006 + 0𝑖\n|110001010000000000⟩\t0.06250000000000006 + 0𝑖\n|110001100⟩\t0.06250000000000006 + 0𝑖\n|110001110000000000⟩\t0.06250000000000006 + 0𝑖\n|110010000⟩\t0.06250000000000006 + 0𝑖\n|110010010000000000⟩\t0.06250000000000006 + 0𝑖\n|110010100⟩\t0.06250000000000006 + 0𝑖\n|110010110000000000⟩\t0.06250000000000006 + 0𝑖\n|110011000⟩\t0.06250000000000006 + 0𝑖\n|110011010000000000⟩\t0.06250000000000006 + 0𝑖\n|110011100⟩\t0.06250000000000006 + 0𝑖\n|110011110000000000⟩\t0.06250000000000006 + 0𝑖\n|110100000⟩\t0.06250000000000006 + 0𝑖\n|110100010000000000⟩\t0.06250000000000006 + 0𝑖\n|110100100⟩\t0.06250000000000006 + 0𝑖\n|110100110000000000⟩\t0.06250000000000006 + 0𝑖\n|110101000⟩\t0.06250000000000006 + 0𝑖\n|110101010000000000⟩\t0.06250000000000006 + 0𝑖\n|110101100⟩\t0.06250000000000006 + 0𝑖\n|110101110000000000⟩\t0.06250000000000006 + 0𝑖\n|110110000⟩\t0.06250000000000006 + 0𝑖\n|110110010000000000⟩\t0.06250000000000006 + 0𝑖\n|110110100⟩\t0.06250000000000006 + 0𝑖\n|110110110000000000⟩\t0.06250000000000006 + 0𝑖\n|110111000⟩\t0.06250000000000006 + 0𝑖\n|110111010000000000⟩\t0.06250000000000006 + 0𝑖\n|110111100⟩\t0.06250000000000006 + 0𝑖\n|110111110000000000⟩\t0.06250000000000006 + 0𝑖\n|111000000⟩\t0.06250000000000006 + 0𝑖\n|111000010000000000⟩\t0.06250000000000006 + 0𝑖\n|111000100⟩\t0.06250000000000006 + 0𝑖\n|111000110000000000⟩\t0.06250000000000006 + 0𝑖\n|111001000⟩\t0.06250000000000006 + 0𝑖\n|111001010000000000⟩\t0.06250000000000006 + 0𝑖\n|111001100⟩\t0.06250000000000006 + 0𝑖\n|111001110000000000⟩\t0.06250000000000006 + 0𝑖\n|111010000⟩\t0.06250000000000006 + 0𝑖\n|111010010000000000⟩\t0.06250000000000006 + 0𝑖\n|111010100⟩\t0.06250000000000006 + 0𝑖\n|111010110000000000⟩\t0.06250000000000006 + 0𝑖\n|111011000⟩\t0.06250000000000006 + 0𝑖\n|111011010000000000⟩\t0.06250000000000006 + 0𝑖\n|111011100⟩\t0.06250000000000006 + 0𝑖\n|111011110000000000⟩\t0.06250000000000006 + 0𝑖\n|111100000⟩\t0.06250000000000006 + 0𝑖\n|111100010000000000⟩\t0.06250000000000006 + 0𝑖\n|111100100⟩\t0.06250000000000006 + 0𝑖\n|111100110000000000⟩\t0.06250000000000006 + 0𝑖\n|111101000⟩\t0.06250000000000006 + 0𝑖\n|111101010000000000⟩\t0.06250000000000006 + 0𝑖\n|111101100⟩\t0.06250000000000006 + 0𝑖\n|111101110000000000⟩\t0.06250000000000006 + 0𝑖\n|111110000⟩\t0.06250000000000006 + 0𝑖\n|111110010000000000⟩\t0.06250000000000006 + 0𝑖\n|111110100⟩\t0.06250000000000006 + 0𝑖\n|111110110000000000⟩\t0.06250000000000006 + 0𝑖\n|111111000⟩\t0.06250000000000006 + 0𝑖\n|111111010000000000⟩\t0.06250000000000006 + 0𝑖\n|111111100⟩\t0.06250000000000006 + 0𝑖\n|111111110000000000⟩\t0.06250000000000006 + 0𝑖", - "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7, 8
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|000111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|001111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|010111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|011111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|100111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101010110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110010100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101110110100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|101111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|110111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|111111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7,8],\"n_qubits\":9,\"amplitudes\":{\"0\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"1\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"2\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"3\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"4\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"5\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"6\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"7\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"8\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"9\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"10\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"11\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"12\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"13\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"14\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"15\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"16\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"17\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"18\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"19\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"20\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"21\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"22\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"23\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"24\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"25\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"26\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"27\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"28\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"29\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"30\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"31\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"32\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"33\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"34\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"35\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"36\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"37\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"38\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"39\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"40\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"41\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"42\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"43\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"44\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"45\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"46\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"47\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"48\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"49\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"50\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"51\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"52\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"53\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"54\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"55\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"56\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"57\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"58\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"59\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"60\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"61\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"62\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"63\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"64\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"65\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"66\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"67\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"68\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"69\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"70\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"71\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"72\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"73\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"74\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"75\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"76\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"77\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"78\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"79\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"80\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"81\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"82\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"83\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"84\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"85\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"86\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"87\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"88\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"89\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"90\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"91\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"92\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"93\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"94\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"95\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"96\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"97\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"98\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"99\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"100\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"101\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"102\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"103\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"104\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"105\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"106\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"107\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"108\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"109\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"110\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"111\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"112\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"113\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"114\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"115\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"116\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"117\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"118\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"119\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"120\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"121\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"122\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"123\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"124\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"125\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"126\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"127\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"128\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"129\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"130\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"131\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"132\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"133\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"134\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"135\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"136\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"137\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"138\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"139\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"140\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"141\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"142\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"143\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"147\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"151\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"155\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"159\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"160\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"161\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"162\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"163\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"164\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"165\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"166\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"167\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"168\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"169\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"170\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"171\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"172\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"173\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"174\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"175\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"176\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"177\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"178\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"179\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"180\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"181\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"182\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"183\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"184\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"185\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"186\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"187\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"188\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"189\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"190\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"191\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"192\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"193\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"194\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"195\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"196\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"197\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"198\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"199\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"200\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"201\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"202\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"203\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"204\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"205\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"206\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"207\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"211\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"215\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"219\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"223\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"224\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"225\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"226\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"227\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"228\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"229\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"230\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"231\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"232\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"233\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"234\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"235\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"236\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"237\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"238\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"239\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"240\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"241\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"242\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"243\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"244\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"245\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"246\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"247\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"248\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"249\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"250\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"251\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"252\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"253\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"254\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"255\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"256\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"257\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"258\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"259\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"260\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"261\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"262\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"263\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"264\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"265\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"266\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"267\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"268\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"269\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"270\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"271\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"272\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"273\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"274\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"275\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"276\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"277\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"278\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"279\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"280\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"281\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"282\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"283\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"284\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"285\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"286\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"287\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"288\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"289\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"290\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"291\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"292\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"293\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"294\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"295\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"296\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"297\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"298\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"299\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"300\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"301\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"302\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"303\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"304\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"305\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"306\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"307\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"308\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"309\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"310\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"311\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"312\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"313\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"314\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"315\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"316\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"317\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"318\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"319\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"320\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"321\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"322\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"323\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"324\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"325\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"326\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"327\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"328\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"329\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"330\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"331\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"332\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"333\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"334\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"335\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"336\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"337\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"338\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"339\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"340\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"341\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"342\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"343\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"344\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"345\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"346\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"347\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"348\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"349\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"350\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"351\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"352\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"353\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"354\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"355\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"356\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"357\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"358\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"359\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"360\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"361\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"362\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"363\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"364\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"365\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"366\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"367\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"368\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"369\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"370\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"371\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"372\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"373\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"374\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"375\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"376\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"377\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"378\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"379\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"380\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"381\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"382\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"383\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"384\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"385\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"386\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"387\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"388\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"389\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"390\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"391\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"392\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"393\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"394\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"395\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"396\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"397\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"398\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"399\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"400\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"401\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"402\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"403\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"404\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"405\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"406\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"407\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"408\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"409\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"410\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"411\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"412\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"413\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"414\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"415\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"416\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"417\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"418\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"419\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"420\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"421\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"422\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"423\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"424\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"425\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"426\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"427\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"428\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"429\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"430\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"431\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"432\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"433\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"434\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"435\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"436\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"437\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"438\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"439\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"440\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"441\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"442\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"443\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"444\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"445\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"446\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"447\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"448\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"449\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"450\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"451\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"452\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"453\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"454\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"455\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"456\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"457\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"458\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"459\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"460\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"461\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"462\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"463\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"464\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"465\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"466\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"467\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"468\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"469\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"470\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"471\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"472\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"473\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"474\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"475\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"476\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"477\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"478\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"479\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"480\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"481\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"482\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"483\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"484\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"485\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"486\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"487\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"488\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"489\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"490\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"491\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"492\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"493\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"494\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"495\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"496\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"497\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"498\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"499\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"500\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"501\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"502\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"503\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"504\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"505\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"506\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"507\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"508\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"509\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"510\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"511\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" - }, - "metadata": {} - }, - { - "output_type": "execute_result", - "execution_count": 5, - "data": { - "text/plain": "()" - }, - "metadata": {} - } - ], - "execution_count": 5, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"East US\")\n", - "print(\"this notebook is run on azure quantum workspace\")" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "Connecting to Azure Quantum...", - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" - }, - "metadata": {} - }, - { - "output_type": "stream", - "name": "stdout", - "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" - } - ], - "execution_count": 6, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" - }, - { - "output_type": "execute_result", - "execution_count": 7, - "data": { - "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - }, - "metadata": {} - } - ], - "execution_count": 7, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task6_ResourceEstimationWrapper, jobName=\"RE for the task 6\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 6\n Job ID: 328660f0-134c-4a7e-8bb7-b3e615dcb31a\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:20:28] Current job status: Executing\n[14:20:33] Current job status: Succeeded\n" - } - ], - "execution_count": 8, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ], - "outputs": [ - { - "output_type": "execute_result", - "execution_count": 9, - "data": { - "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 96,\n 'cczCount': 16,\n 'measurementCount': 96,\n 'numQubits': 15,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 432,\n 'algorithmicLogicalQubits': 42,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 432,\n 'numTfactories': 12,\n 'numTfactoryRuns': 38,\n 'numTsPerRotation': None,\n 'numTstates': 448,\n 'physicalQubitsForAlgorithm': 14196,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 2.755731922398589e-08,\n 'requiredLogicalTstateErrorRate': 1.1160714285714287e-06},\n 'physicalQubits': 130356,\n 'runtime': 2246400},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '89.11 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '2.76e-8',\n 'requiredLogicalTstateErrorRate': '1.12e-6',\n 'runtime': '2ms 246us 400ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{448\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 246us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000002755731922398589)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", - "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits130356\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime2ms 246us 400ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits42\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 15\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 42$ logical qubits.

\n\r\n
Algorithmic depth432\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth432\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states448\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{448\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 2ms 246us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations38\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.

\n\r\n
Physical algorithmic qubits14196\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate2.76e-8\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.

\n\r\n
Required logical T state error rate1.12e-6\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000002755731922398589)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)15\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates16\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates96\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations96\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":96,\"cczCount\":16,\"measurementCount\":96,\"numQubits\":15,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":432,\"algorithmicLogicalQubits\":42,\"cliffordErrorRate\":0.001,\"logicalDepth\":432,\"numTfactories\":12,\"numTfactoryRuns\":38,\"numTsPerRotation\":null,\"numTstates\":448,\"physicalQubitsForAlgorithm\":14196,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":2.755731922398589E-08,\"requiredLogicalTstateErrorRate\":1.1160714285714287E-06},\"physicalQubits\":130356,\"runtime\":2246400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"89.11 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"2.76e-8\",\"requiredLogicalTstateErrorRate\":\"1.12e-6\",\"runtime\":\"2ms 246us 400ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 14196 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 432 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 96 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 16 CCZ and 96 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 432. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 16 CCZ and 96 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 448 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{448\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 246us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 448 T states, the 12 copies of the T factory are repeatedly invoked 38 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 14196 are the product of the 42 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 432.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 448.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000002755731922398589)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 1.12e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" - }, - "metadata": {} - } - ], - "execution_count": 9, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ], - "outputs": [], - "execution_count": 10, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "evaluate_results(result)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Logical algorithmic qubits = 42\nAlgorithmic depth = 432\nScore = 18144\n" - }, - { - "output_type": "execute_result", - "execution_count": 11, - "data": { - "text/plain": "18144" - }, - "metadata": {} - } - ], - "execution_count": 11, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "name": "python3", - "language": "python", - "display_name": "Python 3 (ipykernel)" - }, - "language_info": { - "name": "python", - "version": "3.9.15", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file From a14913fc467c06c104dbc607ad57fe506d3edd21 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:42:55 +0530 Subject: [PATCH 20/27] Delete iQuHack-challenge-2023-task7.ipynb --- iQuHack-challenge-2023-task7.ipynb | 523 ----------------------------- 1 file changed, 523 deletions(-) delete mode 100644 iQuHack-challenge-2023-task7.ipynb diff --git a/iQuHack-challenge-2023-task7.ipynb b/iQuHack-challenge-2023-task7.ipynb deleted file mode 100644 index 8e6492a..0000000 --- a/iQuHack-challenge-2023-task7.ipynb +++ /dev/null @@ -1,523 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 7\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task7`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "!az login" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 1. Write the code" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Preparing Q# environment...\n" - } - ], - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "teamname=\"Qubitrons\" # Update this field with your team name\n", - "task=[\"task7\"]\n", - "slack_id=\"U04L3RWQS6N\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task7_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task7_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "**The complete code for Task 7 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 7. \n", - "// (input will contain 7 qubits)\n", - "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [9,18,19,25,36,37,38,39,41,50,51,57,72,73,74,75,76,77,78,79,82,83,89,100,101,102,103,105,114,115,121] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task7_DumpMachineWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task7(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task7_ResourceEstimationWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task7(input, target);\n", - "}" - ], - "outputs": [], - "execution_count": 4, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task7_DumpMachineWrapper.simulate()" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "|00000000⟩\t0.0883883476483185 + 0𝑖\n|00000010⟩\t0.0883883476483185 + 0𝑖\n|00000100⟩\t0.0883883476483185 + 0𝑖\n|00000110⟩\t0.0883883476483185 + 0𝑖\n|00001000⟩\t0.0883883476483185 + 0𝑖\n|00001010⟩\t0.0883883476483185 + 0𝑖\n|00001100⟩\t0.0883883476483185 + 0𝑖\n|00001110⟩\t0.0883883476483185 + 0𝑖\n|00010000⟩\t0.0883883476483185 + 0𝑖\n|0001001100000000⟩\t0.0883883476483185 + 0𝑖\n|00010100⟩\t0.0883883476483185 + 0𝑖\n|00010110⟩\t0.0883883476483185 + 0𝑖\n|00011000⟩\t0.0883883476483185 + 0𝑖\n|00011010⟩\t0.0883883476483185 + 0𝑖\n|00011100⟩\t0.0883883476483185 + 0𝑖\n|00011110⟩\t0.0883883476483185 + 0𝑖\n|00100000⟩\t0.0883883476483185 + 0𝑖\n|00100010⟩\t0.0883883476483185 + 0𝑖\n|0010010100000000⟩\t0.0883883476483185 + 0𝑖\n|0010011100000000⟩\t0.0883883476483185 + 0𝑖\n|00101000⟩\t0.0883883476483185 + 0𝑖\n|00101010⟩\t0.0883883476483185 + 0𝑖\n|00101100⟩\t0.0883883476483185 + 0𝑖\n|00101110⟩\t0.0883883476483185 + 0𝑖\n|00110000⟩\t0.0883883476483185 + 0𝑖\n|0011001100000000⟩\t0.0883883476483185 + 0𝑖\n|00110100⟩\t0.0883883476483185 + 0𝑖\n|00110110⟩\t0.0883883476483185 + 0𝑖\n|00111000⟩\t0.0883883476483185 + 0𝑖\n|00111010⟩\t0.0883883476483185 + 0𝑖\n|00111100⟩\t0.0883883476483185 + 0𝑖\n|00111110⟩\t0.0883883476483185 + 0𝑖\n|01000000⟩\t0.0883883476483185 + 0𝑖\n|01000010⟩\t0.0883883476483185 + 0𝑖\n|01000100⟩\t0.0883883476483185 + 0𝑖\n|01000110⟩\t0.0883883476483185 + 0𝑖\n|0100100100000000⟩\t0.0883883476483185 + 0𝑖\n|0100101100000000⟩\t0.0883883476483185 + 0𝑖\n|0100110100000000⟩\t0.0883883476483185 + 0𝑖\n|0100111100000000⟩\t0.0883883476483185 + 0𝑖\n|01010000⟩\t0.0883883476483185 + 0𝑖\n|0101001100000000⟩\t0.0883883476483185 + 0𝑖\n|01010100⟩\t0.0883883476483185 + 0𝑖\n|01010110⟩\t0.0883883476483185 + 0𝑖\n|01011000⟩\t0.0883883476483185 + 0𝑖\n|01011010⟩\t0.0883883476483185 + 0𝑖\n|01011100⟩\t0.0883883476483185 + 0𝑖\n|01011110⟩\t0.0883883476483185 + 0𝑖\n|01100000⟩\t0.0883883476483185 + 0𝑖\n|01100010⟩\t0.0883883476483185 + 0𝑖\n|0110010100000000⟩\t0.0883883476483185 + 0𝑖\n|0110011100000000⟩\t0.0883883476483185 + 0𝑖\n|01101000⟩\t0.0883883476483185 + 0𝑖\n|01101010⟩\t0.0883883476483185 + 0𝑖\n|01101100⟩\t0.0883883476483185 + 0𝑖\n|01101110⟩\t0.0883883476483185 + 0𝑖\n|01110000⟩\t0.0883883476483185 + 0𝑖\n|0111001100000000⟩\t0.0883883476483185 + 0𝑖\n|01110100⟩\t0.0883883476483185 + 0𝑖\n|01110110⟩\t0.0883883476483185 + 0𝑖\n|01111000⟩\t0.0883883476483185 + 0𝑖\n|01111010⟩\t0.0883883476483185 + 0𝑖\n|01111100⟩\t0.0883883476483185 + 0𝑖\n|01111110⟩\t0.0883883476483185 + 0𝑖\n|10000000⟩\t0.0883883476483185 + 0𝑖\n|10000010⟩\t0.0883883476483185 + 0𝑖\n|10000100⟩\t0.0883883476483185 + 0𝑖\n|10000110⟩\t0.0883883476483185 + 0𝑖\n|10001000⟩\t0.0883883476483185 + 0𝑖\n|10001010⟩\t0.0883883476483185 + 0𝑖\n|10001100⟩\t0.0883883476483185 + 0𝑖\n|10001110⟩\t0.0883883476483185 + 0𝑖\n|1001000100000000⟩\t0.0883883476483185 + 0𝑖\n|1001001100000000⟩\t0.0883883476483185 + 0𝑖\n|1001010100000000⟩\t0.0883883476483185 + 0𝑖\n|1001011100000000⟩\t0.0883883476483185 + 0𝑖\n|1001100100000000⟩\t0.0883883476483185 + 0𝑖\n|1001101100000000⟩\t0.0883883476483185 + 0𝑖\n|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n|1001111100000000⟩\t0.0883883476483185 + 0𝑖\n|10100000⟩\t0.0883883476483185 + 0𝑖\n|10100010⟩\t0.0883883476483185 + 0𝑖\n|1010010100000000⟩\t0.0883883476483185 + 0𝑖\n|1010011100000000⟩\t0.0883883476483185 + 0𝑖\n|10101000⟩\t0.0883883476483185 + 0𝑖\n|10101010⟩\t0.0883883476483185 + 0𝑖\n|10101100⟩\t0.0883883476483185 + 0𝑖\n|10101110⟩\t0.0883883476483185 + 0𝑖\n|10110000⟩\t0.0883883476483185 + 0𝑖\n|1011001100000000⟩\t0.0883883476483185 + 0𝑖\n|10110100⟩\t0.0883883476483185 + 0𝑖\n|10110110⟩\t0.0883883476483185 + 0𝑖\n|10111000⟩\t0.0883883476483185 + 0𝑖\n|10111010⟩\t0.0883883476483185 + 0𝑖\n|10111100⟩\t0.0883883476483185 + 0𝑖\n|10111110⟩\t0.0883883476483185 + 0𝑖\n|11000000⟩\t0.0883883476483185 + 0𝑖\n|11000010⟩\t0.0883883476483185 + 0𝑖\n|11000100⟩\t0.0883883476483185 + 0𝑖\n|11000110⟩\t0.0883883476483185 + 0𝑖\n|1100100100000000⟩\t0.0883883476483185 + 0𝑖\n|1100101100000000⟩\t0.0883883476483185 + 0𝑖\n|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n|1100111100000000⟩\t0.0883883476483185 + 0𝑖\n|11010000⟩\t0.0883883476483185 + 0𝑖\n|1101001100000000⟩\t0.0883883476483185 + 0𝑖\n|11010100⟩\t0.0883883476483185 + 0𝑖\n|11010110⟩\t0.0883883476483185 + 0𝑖\n|11011000⟩\t0.0883883476483185 + 0𝑖\n|11011010⟩\t0.0883883476483185 + 0𝑖\n|11011100⟩\t0.0883883476483185 + 0𝑖\n|11011110⟩\t0.0883883476483185 + 0𝑖\n|11100000⟩\t0.0883883476483185 + 0𝑖\n|11100010⟩\t0.0883883476483185 + 0𝑖\n|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n|1110011100000000⟩\t0.0883883476483185 + 0𝑖\n|11101000⟩\t0.0883883476483185 + 0𝑖\n|11101010⟩\t0.0883883476483185 + 0𝑖\n|11101100⟩\t0.0883883476483185 + 0𝑖\n|11101110⟩\t0.0883883476483185 + 0𝑖\n|11110000⟩\t0.0883883476483185 + 0𝑖\n|1111001100000000⟩\t0.0883883476483185 + 0𝑖\n|11110100⟩\t0.0883883476483185 + 0𝑖\n|11110110⟩\t0.0883883476483185 + 0𝑖\n|11111000⟩\t0.0883883476483185 + 0𝑖\n|11111010⟩\t0.0883883476483185 + 0𝑖\n|11111100⟩\t0.0883883476483185 + 0𝑖\n|11111110⟩\t0.0883883476483185 + 0𝑖", - "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|00000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11011110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11101110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11110110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11111110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"19\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"24\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"25\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"30\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"31\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"37\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"38\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"43\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"46\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"47\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"48\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"54\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"55\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"59\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"60\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"61\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"62\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"63\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"72\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"73\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"74\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"86\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"87\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"91\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"92\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"93\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"94\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"95\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"107\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"108\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"109\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"110\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"111\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"117\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"118\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"119\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"120\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"123\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"124\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"125\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"126\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"127\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"128\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"147\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"158\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"159\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"165\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"166\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"170\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"171\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"174\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"175\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"176\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"182\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"183\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"187\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"188\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"189\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"190\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"191\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"200\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"201\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"202\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"203\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"204\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"205\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"207\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"211\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"214\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"215\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"218\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"219\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"220\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"221\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"222\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"223\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"228\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"229\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"231\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"234\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"235\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"236\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"237\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"238\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"239\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"242\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"243\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"244\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"245\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"246\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"247\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"248\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"249\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"250\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"251\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"252\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"253\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"254\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"255\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}" - }, - "metadata": {} - }, - { - "output_type": "execute_result", - "execution_count": 5, - "data": { - "text/plain": "()" - }, - "metadata": {} - } - ], - "execution_count": 5, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"East US\")\n", - "print(\"this notebook is run on azure quantum workspace\")" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "Connecting to Azure Quantum...", - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" - }, - "metadata": {} - }, - { - "output_type": "stream", - "name": "stdout", - "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" - } - ], - "execution_count": 6, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" - }, - { - "output_type": "execute_result", - "execution_count": 7, - "data": { - "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - }, - "metadata": {} - } - ], - "execution_count": 7, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task7_ResourceEstimationWrapper, jobName=\"RE for the task 7\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 7\n Job ID: 120eae92-3cb6-4b9b-b602-31c3f675ec3d\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:26:01] Current job status: Executing\n[14:26:06] Current job status: Succeeded\n" - } - ], - "execution_count": 8, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ], - "outputs": [ - { - "output_type": "execute_result", - "execution_count": 9, - "data": { - "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 155,\n 'cczCount': 31,\n 'measurementCount': 155,\n 'numQubits': 13,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 713,\n 'algorithmicLogicalQubits': 38,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 713,\n 'numTfactories': 12,\n 'numTfactoryRuns': 62,\n 'numTsPerRotation': None,\n 'numTstates': 744,\n 'physicalQubitsForAlgorithm': 12844,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 1.845427031815162e-08,\n 'requiredLogicalTstateErrorRate': 6.720430107526882e-07},\n 'physicalQubits': 129004,\n 'runtime': 3707600},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '1.85e-8',\n 'requiredLogicalTstateErrorRate': '6.72e-7',\n 'runtime': '3ms 707us 600ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{744\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 3ms 707us 600ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000001845427031815162)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", - "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits129004\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime3ms 707us 600ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits38\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n\r\n
Algorithmic depth713\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth713\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states744\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{744\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 3ms 707us 600ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations62\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.

\n\r\n
Physical algorithmic qubits12844\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate1.85e-8\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.

\n\r\n
Required logical T state error rate6.72e-7\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000001845427031815162)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)13\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates31\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates155\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations155\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":155,\"cczCount\":31,\"measurementCount\":155,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":713,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":713,\"numTfactories\":12,\"numTfactoryRuns\":62,\"numTsPerRotation\":null,\"numTstates\":744,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":1.845427031815162E-08,\"requiredLogicalTstateErrorRate\":6.720430107526882E-07},\"physicalQubits\":129004,\"runtime\":3707600},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"1.85e-8\",\"requiredLogicalTstateErrorRate\":\"6.72e-7\",\"runtime\":\"3ms 707us 600ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 713 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 155 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 31 CCZ and 155 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 713. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 31 CCZ and 155 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 744 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{744\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 3ms 707us 600ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 713.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 744.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000001845427031815162)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 6.72e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" - }, - "metadata": {} - } - ], - "execution_count": 9, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ], - "outputs": [], - "execution_count": 10, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "evaluate_results(result)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Logical algorithmic qubits = 38\nAlgorithmic depth = 713\nScore = 27094\n" - }, - { - "output_type": "execute_result", - "execution_count": 11, - "data": { - "text/plain": "27094" - }, - "metadata": {} - } - ], - "execution_count": 11, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "name": "python3", - "language": "python", - "display_name": "Python 3 (ipykernel)" - }, - "language_info": { - "name": "python", - "version": "3.9.15", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file From 4e1960fcd783116359ada807f505d611ffb7627b Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:43:05 +0530 Subject: [PATCH 21/27] Delete iQuHack-challenge-2023-task8.ipynb --- iQuHack-challenge-2023-task8.ipynb | 526 ----------------------------- 1 file changed, 526 deletions(-) delete mode 100644 iQuHack-challenge-2023-task8.ipynb diff --git a/iQuHack-challenge-2023-task8.ipynb b/iQuHack-challenge-2023-task8.ipynb deleted file mode 100644 index de16d98..0000000 --- a/iQuHack-challenge-2023-task8.ipynb +++ /dev/null @@ -1,526 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 8\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task8`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "!az login" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 1. Write the code" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Preparing Q# environment...\n" - } - ], - "execution_count": 1, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "teamname=\"Qubitrons\" # Update this field with your team name\n", - "task=[\"task8\"]\n", - "slack_id=\"U04L0TSC0LD\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ], - "outputs": [], - "execution_count": 2, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task8_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task8_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ], - "outputs": [], - "execution_count": null, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "**The complete code for Task 8 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "\n", - "// Task 8. \n", - "// (input will contain 7 qubits)\n", - "operation Task8(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " for i in [15,23,27,29,30,31,39,43, 45,46,47,51,53,54,55,57, \n", - " 58,59,60,61,62,63,71,75, 77,78,79,83,85,86,87,89,\n", - " 90,91,92,93,94,95,99,101, 102,103,105,106,107,108,109,110,\n", - " 111,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127] {\n", - " ControlledOnInt(i, X)(input, target);\n", - " }\n", - "}" - ], - "outputs": [], - "execution_count": 3, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task8_DumpMachineWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task8(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task8_ResourceEstimationWrapper() : Unit {\n", - " let N = 7;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task8(input, target);\n", - "}" - ], - "outputs": [], - "execution_count": 4, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task8_DumpMachineWrapper.simulate()" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "|00000000⟩\t0.0883883476483185 + 0𝑖\n|00000010⟩\t0.0883883476483185 + 0𝑖\n|00000100⟩\t0.0883883476483185 + 0𝑖\n|00000110⟩\t0.0883883476483185 + 0𝑖\n|00001000⟩\t0.0883883476483185 + 0𝑖\n|00001010⟩\t0.0883883476483185 + 0𝑖\n|00001100⟩\t0.0883883476483185 + 0𝑖\n|00001110⟩\t0.0883883476483185 + 0𝑖\n|00010000⟩\t0.0883883476483185 + 0𝑖\n|00010010⟩\t0.0883883476483185 + 0𝑖\n|00010100⟩\t0.0883883476483185 + 0𝑖\n|00010110⟩\t0.0883883476483185 + 0𝑖\n|00011000⟩\t0.0883883476483185 + 0𝑖\n|00011010⟩\t0.0883883476483185 + 0𝑖\n|00011100⟩\t0.0883883476483185 + 0𝑖\n|0001111100000000⟩\t0.0883883476483185 + 0𝑖\n|00100000⟩\t0.0883883476483185 + 0𝑖\n|00100010⟩\t0.0883883476483185 + 0𝑖\n|00100100⟩\t0.0883883476483185 + 0𝑖\n|00100110⟩\t0.0883883476483185 + 0𝑖\n|00101000⟩\t0.0883883476483185 + 0𝑖\n|00101010⟩\t0.0883883476483185 + 0𝑖\n|00101100⟩\t0.0883883476483185 + 0𝑖\n|0010111100000000⟩\t0.0883883476483185 + 0𝑖\n|00110000⟩\t0.0883883476483185 + 0𝑖\n|00110010⟩\t0.0883883476483185 + 0𝑖\n|00110100⟩\t0.0883883476483185 + 0𝑖\n|0011011100000000⟩\t0.0883883476483185 + 0𝑖\n|00111000⟩\t0.0883883476483185 + 0𝑖\n|0011101100000000⟩\t0.0883883476483185 + 0𝑖\n|0011110100000000⟩\t0.0883883476483185 + 0𝑖\n|0011111100000000⟩\t0.0883883476483185 + 0𝑖\n|01000000⟩\t0.0883883476483185 + 0𝑖\n|01000010⟩\t0.0883883476483185 + 0𝑖\n|01000100⟩\t0.0883883476483185 + 0𝑖\n|01000110⟩\t0.0883883476483185 + 0𝑖\n|01001000⟩\t0.0883883476483185 + 0𝑖\n|01001010⟩\t0.0883883476483185 + 0𝑖\n|01001100⟩\t0.0883883476483185 + 0𝑖\n|0100111100000000⟩\t0.0883883476483185 + 0𝑖\n|01010000⟩\t0.0883883476483185 + 0𝑖\n|01010010⟩\t0.0883883476483185 + 0𝑖\n|01010100⟩\t0.0883883476483185 + 0𝑖\n|0101011100000000⟩\t0.0883883476483185 + 0𝑖\n|01011000⟩\t0.0883883476483185 + 0𝑖\n|0101101100000000⟩\t0.0883883476483185 + 0𝑖\n|0101110100000000⟩\t0.0883883476483185 + 0𝑖\n|0101111100000000⟩\t0.0883883476483185 + 0𝑖\n|01100000⟩\t0.0883883476483185 + 0𝑖\n|01100010⟩\t0.0883883476483185 + 0𝑖\n|01100100⟩\t0.0883883476483185 + 0𝑖\n|0110011100000000⟩\t0.0883883476483185 + 0𝑖\n|01101000⟩\t0.0883883476483185 + 0𝑖\n|0110101100000000⟩\t0.0883883476483185 + 0𝑖\n|0110110100000000⟩\t0.0883883476483185 + 0𝑖\n|0110111100000000⟩\t0.0883883476483185 + 0𝑖\n|01110000⟩\t0.0883883476483185 + 0𝑖\n|0111001100000000⟩\t0.0883883476483185 + 0𝑖\n|0111010100000000⟩\t0.0883883476483185 + 0𝑖\n|0111011100000000⟩\t0.0883883476483185 + 0𝑖\n|0111100100000000⟩\t0.0883883476483185 + 0𝑖\n|0111101100000000⟩\t0.0883883476483185 + 0𝑖\n|0111110100000000⟩\t0.0883883476483185 + 0𝑖\n|0111111100000000⟩\t0.0883883476483185 + 0𝑖\n|10000000⟩\t0.0883883476483185 + 0𝑖\n|10000010⟩\t0.0883883476483185 + 0𝑖\n|10000100⟩\t0.0883883476483185 + 0𝑖\n|10000110⟩\t0.0883883476483185 + 0𝑖\n|10001000⟩\t0.0883883476483185 + 0𝑖\n|10001010⟩\t0.0883883476483185 + 0𝑖\n|10001100⟩\t0.0883883476483185 + 0𝑖\n|1000111100000000⟩\t0.0883883476483185 + 0𝑖\n|10010000⟩\t0.0883883476483185 + 0𝑖\n|10010010⟩\t0.0883883476483185 + 0𝑖\n|10010100⟩\t0.0883883476483185 + 0𝑖\n|1001011100000000⟩\t0.0883883476483185 + 0𝑖\n|10011000⟩\t0.0883883476483185 + 0𝑖\n|1001101100000000⟩\t0.0883883476483185 + 0𝑖\n|1001110100000000⟩\t0.0883883476483185 + 0𝑖\n|1001111100000000⟩\t0.0883883476483185 + 0𝑖\n|10100000⟩\t0.0883883476483185 + 0𝑖\n|10100010⟩\t0.0883883476483185 + 0𝑖\n|10100100⟩\t0.0883883476483185 + 0𝑖\n|1010011100000000⟩\t0.0883883476483185 + 0𝑖\n|10101000⟩\t0.0883883476483185 + 0𝑖\n|1010101100000000⟩\t0.0883883476483185 + 0𝑖\n|1010110100000000⟩\t0.0883883476483185 + 0𝑖\n|1010111100000000⟩\t0.0883883476483185 + 0𝑖\n|10110000⟩\t0.0883883476483185 + 0𝑖\n|1011001100000000⟩\t0.0883883476483185 + 0𝑖\n|1011010100000000⟩\t0.0883883476483185 + 0𝑖\n|1011011100000000⟩\t0.0883883476483185 + 0𝑖\n|1011100100000000⟩\t0.0883883476483185 + 0𝑖\n|1011101100000000⟩\t0.0883883476483185 + 0𝑖\n|1011110100000000⟩\t0.0883883476483185 + 0𝑖\n|1011111100000000⟩\t0.0883883476483185 + 0𝑖\n|11000000⟩\t0.0883883476483185 + 0𝑖\n|11000010⟩\t0.0883883476483185 + 0𝑖\n|11000100⟩\t0.0883883476483185 + 0𝑖\n|1100011100000000⟩\t0.0883883476483185 + 0𝑖\n|11001000⟩\t0.0883883476483185 + 0𝑖\n|1100101100000000⟩\t0.0883883476483185 + 0𝑖\n|1100110100000000⟩\t0.0883883476483185 + 0𝑖\n|1100111100000000⟩\t0.0883883476483185 + 0𝑖\n|11010000⟩\t0.0883883476483185 + 0𝑖\n|1101001100000000⟩\t0.0883883476483185 + 0𝑖\n|1101010100000000⟩\t0.0883883476483185 + 0𝑖\n|1101011100000000⟩\t0.0883883476483185 + 0𝑖\n|1101100100000000⟩\t0.0883883476483185 + 0𝑖\n|1101101100000000⟩\t0.0883883476483185 + 0𝑖\n|1101110100000000⟩\t0.0883883476483185 + 0𝑖\n|1101111100000000⟩\t0.0883883476483185 + 0𝑖\n|11100000⟩\t0.0883883476483185 + 0𝑖\n|1110001100000000⟩\t0.0883883476483185 + 0𝑖\n|1110010100000000⟩\t0.0883883476483185 + 0𝑖\n|1110011100000000⟩\t0.0883883476483185 + 0𝑖\n|1110100100000000⟩\t0.0883883476483185 + 0𝑖\n|1110101100000000⟩\t0.0883883476483185 + 0𝑖\n|1110110100000000⟩\t0.0883883476483185 + 0𝑖\n|1110111100000000⟩\t0.0883883476483185 + 0𝑖\n|1111000100000000⟩\t0.0883883476483185 + 0𝑖\n|1111001100000000⟩\t0.0883883476483185 + 0𝑖\n|1111010100000000⟩\t0.0883883476483185 + 0𝑖\n|1111011100000000⟩\t0.0883883476483185 + 0𝑖\n|1111100100000000⟩\t0.0883883476483185 + 0𝑖\n|1111101100000000⟩\t0.0883883476483185 + 0𝑖\n|1111110100000000⟩\t0.0883883476483185 + 0𝑖\n|1111111100000000⟩\t0.0883883476483185 + 0𝑖", - "text/html": "\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|00000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00001110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00010110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00011100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00100110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00101100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0010111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00110100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|00111000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0011111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0101111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0110111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|01110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|0111111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10000110\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10001100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1000111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10010100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10011000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1001111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10100100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10101000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1010111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|10110000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1011111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000010\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11000100\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11001000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1100111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11010000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1101111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|11100000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1110111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111000100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111001100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111010100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111011100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111100100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111101100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111110100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
$\\left|1111111100000000\\right\\rangle$$0.0884 + 0.0000 i$\r\n \r\n \r\n

\r\n

\r\n
", - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7],\"n_qubits\":8,\"amplitudes\":{\"0\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"1\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"2\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"3\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"4\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"5\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"6\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"7\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"8\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"9\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"10\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"11\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"12\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"13\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"14\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"15\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"16\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"17\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"18\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"19\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"20\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"21\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"22\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"23\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"24\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"25\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"26\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"27\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"28\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"29\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"31\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"32\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"33\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"34\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"35\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"36\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"37\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"38\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"39\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"40\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"41\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"42\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"43\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"44\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"45\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"47\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"48\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"49\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"50\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"51\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"52\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"53\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"54\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"55\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"56\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"57\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"58\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"59\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"60\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"64\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"65\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"66\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"67\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"68\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"69\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"70\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"71\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"72\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"73\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"74\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"75\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"76\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"77\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"79\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"80\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"81\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"82\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"83\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"84\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"85\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"86\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"87\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"88\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"89\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"91\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"92\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"93\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"94\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"95\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"96\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"97\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"98\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"99\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"100\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"101\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"103\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"104\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"105\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"106\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"107\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"108\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"109\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"110\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"111\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"112\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"113\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"114\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"115\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"116\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"117\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"118\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"119\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"120\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"121\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"122\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"123\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"124\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"125\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"126\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"127\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"128\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"129\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"130\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"131\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"132\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"133\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"134\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"135\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"136\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"137\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"138\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"139\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"140\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"141\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"142\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"143\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"144\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"145\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"146\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"147\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"148\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"149\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"150\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"151\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"152\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"153\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"154\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"155\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"156\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"157\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"158\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"159\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"160\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"161\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"162\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"163\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"164\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"165\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"166\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"167\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"168\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"169\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"170\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"171\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"172\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"173\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"174\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"175\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"176\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"177\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"178\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"179\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"180\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"181\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"182\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"183\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"184\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"185\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"186\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"187\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"188\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"189\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"190\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"191\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"192\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"193\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"194\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"195\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"196\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"197\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"198\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"199\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"200\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"201\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"202\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"203\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"204\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"205\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"207\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"208\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"209\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"210\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"211\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"212\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"213\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"214\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"215\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"216\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"217\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"218\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"219\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"220\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"221\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"222\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"223\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"224\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"225\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"226\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"227\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"228\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"229\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"231\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"232\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"233\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"234\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"235\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"236\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"237\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"238\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"239\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"240\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"241\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"242\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"243\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"244\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"245\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"246\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"247\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"248\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"249\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"250\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"251\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"252\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"253\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"254\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"255\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0}}}" - }, - "metadata": {} - }, - { - "output_type": "execute_result", - "execution_count": 5, - "data": { - "text/plain": "()" - }, - "metadata": {} - } - ], - "execution_count": 5, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "markdown", - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ], - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"East US\")\n", - "print(\"this notebook is run on azure quantum workspace\")" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "Connecting to Azure Quantum...", - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"" - }, - "metadata": {} - }, - { - "output_type": "stream", - "name": "stdout", - "text": "Authenticated using Microsoft.Azure.Quantum.Authentication.TokenFileCredential\n\n\nConnected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\nthis notebook is run on azure quantum workspace\n" - } - ], - "execution_count": 6, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Loading package Microsoft.Quantum.Providers.Core and dependencies...\nActive target is now microsoft.estimator\n" - }, - { - "output_type": "execute_result", - "execution_count": 7, - "data": { - "text/plain": "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - }, - "metadata": {} - } - ], - "execution_count": 7, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task8_ResourceEstimationWrapper, jobName=\"RE for the task 8\")" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Submitting Task8_ResourceEstimationWrapper to target microsoft.estimator...\nJob successfully submitted.\n Job name: RE for the task 8\n Job ID: 642eb981-5774-4ad0-9c36-e396df5ab76f\nWaiting up to 30 seconds for Azure Quantum job to complete...\n[14:29:47] Current job status: Executing\n[14:29:52] Current job status: Succeeded\n" - } - ], - "execution_count": 8, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ], - "outputs": [ - { - "output_type": "execute_result", - "execution_count": 9, - "data": { - "text/plain": "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n 'jobParams': {'errorBudget': 0.001,\n 'qecScheme': {'crossingPrefactor': 0.03,\n 'errorCorrectionThreshold': 0.01,\n 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n 'name': 'surface_code',\n 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n 'qubitParams': {'instructionSet': 'GateBased',\n 'name': 'qubit_gate_ns_e3',\n 'oneQubitGateErrorRate': 0.001,\n 'oneQubitGateTime': '50 ns',\n 'oneQubitMeasurementErrorRate': 0.001,\n 'oneQubitMeasurementTime': '100 ns',\n 'tGateErrorRate': 0.001,\n 'tGateTime': '50 ns',\n 'twoQubitGateErrorRate': 0.001,\n 'twoQubitGateTime': '50 ns'}},\n 'logicalCounts': {'ccixCount': 320,\n 'cczCount': 64,\n 'measurementCount': 320,\n 'numQubits': 13,\n 'rotationCount': 0,\n 'rotationDepth': 0,\n 'tCount': 0},\n 'logicalQubit': {'codeDistance': 13,\n 'logicalCycleTime': 5200.0,\n 'logicalErrorRate': 3.000000000000002e-09,\n 'physicalQubits': 338},\n 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 1472,\n 'algorithmicLogicalQubits': 38,\n 'cliffordErrorRate': 0.001,\n 'logicalDepth': 1472,\n 'numTfactories': 12,\n 'numTfactoryRuns': 128,\n 'numTsPerRotation': None,\n 'numTstates': 1536,\n 'physicalQubitsForAlgorithm': 12844,\n 'physicalQubitsForTfactories': 116160,\n 'requiredLogicalQubitErrorRate': 8.938787185354691e-09,\n 'requiredLogicalTstateErrorRate': 3.255208333333333e-07},\n 'physicalQubits': 129004,\n 'runtime': 7654400},\n 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n 'errorBudget': '1.00e-3',\n 'errorBudgetLogical': '5.00e-4',\n 'errorBudgetRotations': '0.00e0',\n 'errorBudgetTstates': '5.00e-4',\n 'logicalCycleTime': '5us 200ns',\n 'logicalErrorRate': '3.00e-9',\n 'numTsPerRotation': 'No rotations in algorithm',\n 'numUnitsPerRound': '2',\n 'physicalQubitsForTfactoriesPercentage': '90.04 %',\n 'physicalQubitsPerRound': '9680',\n 'requiredLogicalQubitErrorRate': '8.94e-9',\n 'requiredLogicalTstateErrorRate': '3.26e-7',\n 'runtime': '7ms 654us 400ns',\n 'tfactoryRuntime': '57us 200ns',\n 'tfactoryRuntimePerRound': '57us 200ns',\n 'tstateLogicalErrorRate': '2.48e-7',\n 'unitNamePerRound': '15-to-1 space efficient logical'},\n 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n 'groups': [{'alwaysVisible': True,\n 'entries': [{'description': 'Number of physical qubits',\n 'explanation': 'This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n 'label': 'Physical qubits',\n 'path': 'physicalCounts/physicalQubits'},\n {'description': 'Total runtime',\n 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/runtime'}],\n 'title': 'Physical resource estimates'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.',\n 'label': 'Logical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n {'description': 'Number of logical cycles for the algorithm',\n 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n 'label': 'Algorithmic depth',\n 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n {'description': 'Number of logical cycles performed',\n 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n 'label': 'Logical depth',\n 'path': 'physicalCounts/breakdown/logicalDepth'},\n {'description': 'Number of T states consumed by the algorithm',\n 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n 'label': 'Number of T states',\n 'path': 'physicalCounts/breakdown/numTstates'},\n {'description': \"Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime\",\n 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{1536\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 7ms 654us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n 'label': 'Number of T factories',\n 'path': 'physicalCounts/breakdown/numTfactories'},\n {'description': 'Number of times all T factories are invoked',\n 'explanation': 'In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.',\n 'label': 'Number of T factory invocations',\n 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n {'description': 'Number of physical qubits for the algorithm after layout',\n 'explanation': 'The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.',\n 'label': 'Physical algorithmic qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n {'description': 'Number of physical qubits for the T factories',\n 'explanation': 'Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n 'label': 'Physical T factory qubits',\n 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.',\n 'label': 'Required logical qubit error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n {'description': 'The minimum T state error rate required for distilled T states',\n 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.',\n 'label': 'Required logical T state error rate',\n 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n 'label': 'Number of T states per rotation',\n 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n 'title': 'Resource estimates breakdown'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Name of QEC scheme',\n 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n 'label': 'QEC scheme',\n 'path': 'jobParams/qecScheme/name'},\n {'description': 'Required code distance for error correction',\n 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000008938787185354691)}{\\\\log(0.01/0.001)} - 1$',\n 'label': 'Code distance',\n 'path': 'logicalQubit/codeDistance'},\n {'description': 'Number of physical qubits per logical qubit',\n 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n 'label': 'Physical qubits',\n 'path': 'logicalQubit/physicalQubits'},\n {'description': 'Duration of a logical cycle in nanoseconds',\n 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n 'label': 'Logical cycle time',\n 'path': 'physicalCountsFormatted/logicalCycleTime'},\n {'description': 'Logical qubit error rate',\n 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$',\n 'label': 'Logical qubit error rate',\n 'path': 'physicalCountsFormatted/logicalErrorRate'},\n {'description': 'Crossing prefactor used in QEC scheme',\n 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n 'label': 'Crossing prefactor',\n 'path': 'jobParams/qecScheme/crossingPrefactor'},\n {'description': 'Error correction threshold used in QEC scheme',\n 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n 'label': 'Error correction threshold',\n 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n {'description': 'QEC scheme formula used to compute logical cycle time',\n 'explanation': 'This is the formula that is used to compute the logical cycle time 5us 200ns.',\n 'label': 'Logical cycle time formula',\n 'path': 'jobParams/qecScheme/logicalCycleTime'},\n {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 338.',\n 'label': 'Physical qubits formula',\n 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n 'title': 'Logical qubit parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of physical qubits for a single T factory',\n 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n 'label': 'Physical qubits',\n 'path': 'tfactory/physicalQubits'},\n {'description': 'Runtime of a single T factory',\n 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n 'label': 'Runtime',\n 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n {'description': 'Number of output T states produced in a single run of T factory',\n 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.',\n 'label': 'Number of output T states per run',\n 'path': 'tfactory/numTstates'},\n {'description': 'Number of physical input T states consumed in a single run of a T factory',\n 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n 'label': 'Number of input T states per run',\n 'path': 'tfactory/numInputTstates'},\n {'description': 'The number of distillation rounds',\n 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n 'label': 'Distillation rounds',\n 'path': 'tfactory/numRounds'},\n {'description': 'The number of units in each round of distillation',\n 'explanation': 'This is the number of copies for the distillation units per round.',\n 'label': 'Distillation units per round',\n 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n {'description': 'The types of distillation units',\n 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n 'label': 'Distillation units',\n 'path': 'physicalCountsFormatted/unitNamePerRound'},\n {'description': 'The code distance in each round of distillation',\n 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n 'label': 'Distillation code distances',\n 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n {'description': 'The number of physical qubits used in each round of distillation',\n 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n 'label': 'Number of physical qubits per round',\n 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n {'description': 'The runtime of each distillation round',\n 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n 'label': 'Runtime per round',\n 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n {'description': 'Logical T state error rate',\n 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.',\n 'label': 'Logical T state error rate',\n 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n 'title': 'T factory parameters'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n 'explanation': 'We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n 'label': 'Logical qubits (pre-layout)',\n 'path': 'logicalCounts/numQubits'},\n {'description': 'Number of T gates in the input quantum program',\n 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n 'label': 'T gates',\n 'path': 'logicalCounts/tCount'},\n {'description': 'Number of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n 'label': 'Rotation gates',\n 'path': 'logicalCounts/rotationCount'},\n {'description': 'Depth of rotation gates in the input quantum program',\n 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n 'label': 'Rotation depth',\n 'path': 'logicalCounts/rotationDepth'},\n {'description': 'Number of CCZ-gates in the input quantum program',\n 'explanation': 'This is the number of CCZ gates.',\n 'label': 'CCZ gates',\n 'path': 'logicalCounts/cczCount'},\n {'description': 'Number of CCiX-gates in the input quantum program',\n 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n 'label': 'CCiX gates',\n 'path': 'logicalCounts/ccixCount'},\n {'description': 'Number of single qubit measurements in the input quantum program',\n 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n 'label': 'Measurement operations',\n 'path': 'logicalCounts/measurementCount'}],\n 'title': 'Pre-layout logical resources'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Total error budget for the algorithm',\n 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n 'label': 'Total error budget',\n 'path': 'physicalCountsFormatted/errorBudget'},\n {'description': 'Probability of at least one logical error',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'Logical error probability',\n 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n {'description': 'Probability of at least one faulty T distillation',\n 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n 'label': 'T distillation error probability',\n 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n {'description': 'Probability of at least one failed rotation synthesis',\n 'explanation': 'This is one third of the total error budget 1.00e-3.',\n 'label': 'Rotation synthesis error probability',\n 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n 'title': 'Assumed error budget'},\n {'alwaysVisible': False,\n 'entries': [{'description': 'Some descriptive name for the qubit model',\n 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n 'label': 'Qubit name',\n 'path': 'jobParams/qubitParams/name'},\n {'description': 'Underlying qubit technology (gate-based or Majorana)',\n 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n 'label': 'Instruction set',\n 'path': 'jobParams/qubitParams/instructionSet'},\n {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n 'label': 'Single-qubit measurement time',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n 'label': 'Single-qubit gate time',\n 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n {'description': 'Operation time for two-qubit gate in ns',\n 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n 'label': 'Two-qubit gate time',\n 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n {'description': 'Operation time for a T gate',\n 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n 'label': 'T gate time',\n 'path': 'jobParams/qubitParams/tGateTime'},\n {'description': 'Error rate for single-qubit measurement',\n 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n 'label': 'Single-qubit measurement error rate',\n 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n {'description': 'Error rate for single-qubit Clifford gate (p)',\n 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n 'label': 'Single-qubit error rate',\n 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n {'description': 'Error rate for two-qubit Clifford gate',\n 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n 'label': 'Two-qubit error rate',\n 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n 'explanation': 'This is the probability in which executing a single T gate may fail.',\n 'label': 'T gate error rate',\n 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n 'title': 'Physical qubit parameters'}]},\n 'status': 'success',\n 'tfactory': {'codeDistancePerRound': [11],\n 'logicalErrorRate': 2.480000000000001e-07,\n 'numInputTstates': 30,\n 'numRounds': 1,\n 'numTstates': 1,\n 'numUnitsPerRound': [2],\n 'physicalQubits': 9680,\n 'physicalQubitsPerRound': [9680],\n 'runtime': 57200.0,\n 'runtimePerRound': [57200.0],\n 'unitNamePerRound': ['15-to-1 space efficient logical']}}", - "text/html": "\r\n
\r\n \r\n Physical resource estimates\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits129004\r\n

Number of physical qubits

\n
\r\n
\r\n

This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n\r\n
Runtime7ms 654us 400ns\r\n

Total runtime

\n
\r\n
\r\n

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n\r\n
\n\r\n
\r\n \r\n Resource estimates breakdown\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical algorithmic qubits38\r\n

Number of logical qubits for the algorithm after layout

\n
\r\n
\r\n

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 13\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 38$ logical qubits.

\n\r\n
Algorithmic depth1472\r\n

Number of logical cycles for the algorithm

\n
\r\n
\r\n

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n\r\n
Logical depth1472\r\n

Number of logical cycles performed

\n
\r\n
\r\n

This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n\r\n
Number of T states1536\r\n

Number of T states consumed by the algorithm

\n
\r\n
\r\n

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n\r\n
Number of T factories12\r\n

Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime

\n
\r\n
\r\n

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{1536\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 7ms 654us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n\r\n
Number of T factory invocations128\r\n

Number of times all T factories are invoked

\n
\r\n
\r\n

In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.

\n\r\n
Physical algorithmic qubits12844\r\n

Number of physical qubits for the algorithm after layout

\n
\r\n
\r\n

The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.

\n\r\n
Physical T factory qubits116160\r\n

Number of physical qubits for the T factories

\n
\r\n
\r\n

Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\cdot 12$ qubits.

\n\r\n
Required logical qubit error rate8.94e-9\r\n

The minimum logical qubit error rate required to run the algorithm within the error budget

\n
\r\n
\r\n

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.

\n\r\n
Required logical T state error rate3.26e-7\r\n

The minimum T state error rate required for distilled T states

\n
\r\n
\r\n

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.

\n\r\n
Number of T states per rotationNo rotations in algorithm\r\n

Number of T states to implement a rotation with an arbitrary angle

\n
\r\n
\r\n

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n\r\n
\n\r\n
\r\n \r\n Logical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
QEC schemesurface_code\r\n

Name of QEC scheme

\n
\r\n
\r\n

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n\r\n
Code distance13\r\n

Required code distance for error correction

\n
\r\n
\r\n

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.000000008938787185354691)}{\\log(0.01/0.001)} - 1\\)

\n\r\n
Physical qubits338\r\n

Number of physical qubits per logical qubit

\n
\r\n
\r\n

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n\r\n
Logical cycle time5us 200ns\r\n

Duration of a logical cycle in nanoseconds

\n
\r\n
\r\n

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n\r\n
Logical qubit error rate3.00e-9\r\n

Logical qubit error rate

\n
\r\n
\r\n

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{13 + 1}{2}$

\n\r\n
Crossing prefactor0.03\r\n

Crossing prefactor used in QEC scheme

\n
\r\n
\r\n

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n\r\n
Error correction threshold0.01\r\n

Error correction threshold used in QEC scheme

\n
\r\n
\r\n

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n\r\n
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n

QEC scheme formula used to compute logical cycle time

\n
\r\n
\r\n

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n\r\n
Physical qubits formula2 * codeDistance * codeDistance\r\n

QEC scheme formula used to compute number of physical qubits per logical qubit

\n
\r\n
\r\n

This is the formula that is used to compute the number of physical qubits per logical qubits 338.

\n\r\n
\n\r\n
\r\n \r\n T factory parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Physical qubits9680\r\n

Number of physical qubits for a single T factory

\n
\r\n
\r\n

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n\r\n
Runtime57us 200ns\r\n

Runtime of a single T factory

\n
\r\n
\r\n

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n\r\n
Number of output T states per run1\r\n

Number of output T states produced in a single run of T factory

\n
\r\n
\r\n

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.

\n\r\n
Number of input T states per run30\r\n

Number of physical input T states consumed in a single run of a T factory

\n
\r\n
\r\n

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n\r\n
Distillation rounds1\r\n

The number of distillation rounds

\n
\r\n
\r\n

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n\r\n
Distillation units per round2\r\n

The number of units in each round of distillation

\n
\r\n
\r\n

This is the number of copies for the distillation units per round.

\n\r\n
Distillation units15-to-1 space efficient logical\r\n

The types of distillation units

\n
\r\n
\r\n

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n\r\n
Distillation code distances11\r\n

The code distance in each round of distillation

\n
\r\n
\r\n

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n\r\n
Number of physical qubits per round9680\r\n

The number of physical qubits used in each round of distillation

\n
\r\n
\r\n

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n\r\n
Runtime per round57us 200ns\r\n

The runtime of each distillation round

\n
\r\n
\r\n

The runtime of the T factory is the sum of the runtimes in all rounds.

\n\r\n
Logical T state error rate2.48e-7\r\n

Logical T state error rate

\n
\r\n
\r\n

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.

\n\r\n
\n\r\n
\r\n \r\n Pre-layout logical resources\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Logical qubits (pre-layout)13\r\n

Number of logical qubits in the input quantum program

\n
\r\n
\r\n

We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n\r\n
T gates0\r\n

Number of T gates in the input quantum program

\n
\r\n
\r\n

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n\r\n
Rotation gates0\r\n

Number of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n\r\n
Rotation depth0\r\n

Depth of rotation gates in the input quantum program

\n
\r\n
\r\n

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n\r\n
CCZ gates64\r\n

Number of CCZ-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCZ gates.

\n\r\n
CCiX gates320\r\n

Number of CCiX-gates in the input quantum program

\n
\r\n
\r\n

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n\r\n
Measurement operations320\r\n

Number of single qubit measurements in the input quantum program

\n
\r\n
\r\n

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n\r\n
\n\r\n
\r\n \r\n Assumed error budget\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Total error budget1.00e-3\r\n

Total error budget for the algorithm

\n
\r\n
\r\n

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n\r\n
Logical error probability5.00e-4\r\n

Probability of at least one logical error

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
T distillation error probability5.00e-4\r\n

Probability of at least one faulty T distillation

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n\r\n
Rotation synthesis error probability0.00e0\r\n

Probability of at least one failed rotation synthesis

\n
\r\n
\r\n

This is one third of the total error budget 1.00e-3.

\n\r\n
\n\r\n
\r\n \r\n Physical qubit parameters\r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n\r\n \r\n \r\n \r\n \r\n \n
Qubit namequbit_gate_ns_e3\r\n

Some descriptive name for the qubit model

\n
\r\n
\r\n

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n\r\n
Instruction setGateBased\r\n

Underlying qubit technology (gate-based or Majorana)

\n
\r\n
\r\n

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n\r\n
Single-qubit measurement time100 ns\r\n

Operation time for single-qubit measurement (t_meas) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n\r\n
Single-qubit gate time50 ns\r\n

Operation time for single-qubit gate (t_gate) in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n\r\n
Two-qubit gate time50 ns\r\n

Operation time for two-qubit gate in ns

\n
\r\n
\r\n

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n\r\n
T gate time50 ns\r\n

Operation time for a T gate

\n
\r\n
\r\n

This is the operation time in nanoseconds to execute a T gate.

\n\r\n
Single-qubit measurement error rate0.001\r\n

Error rate for single-qubit measurement

\n
\r\n
\r\n

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n\r\n
Single-qubit error rate0.001\r\n

Error rate for single-qubit Clifford gate (p)

\n
\r\n
\r\n

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n\r\n
Two-qubit error rate0.001\r\n

Error rate for two-qubit Clifford gate

\n
\r\n
\r\n

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n\r\n
T gate error rate0.001\r\n

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n
\r\n
\r\n

This is the probability in which executing a single T gate may fail.

\n\r\n
\n
\r\n Assumptions\r\n
    \n
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n
  • \n
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n
  • \n
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n
  • \n
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n
  • \n
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n
  • \n
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n
  • \n
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n
  • \n
\n", - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":320,\"cczCount\":64,\"measurementCount\":320,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":1472,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":1472,\"numTfactories\":12,\"numTfactoryRuns\":128,\"numTsPerRotation\":null,\"numTstates\":1536,\"physicalQubitsForAlgorithm\":12844,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":8.938787185354691E-09,\"requiredLogicalTstateErrorRate\":3.255208333333333E-07},\"physicalQubits\":129004,\"runtime\":7654400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"5us 200ns\",\"logicalErrorRate\":\"3.00e-9\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"90.04 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"8.94e-9\",\"requiredLogicalTstateErrorRate\":\"3.26e-7\",\"runtime\":\"7ms 654us 400ns\",\"tfactoryRuntime\":\"57us 200ns\",\"tfactoryRuntimePerRound\":\"57us 200ns\",\"tstateLogicalErrorRate\":\"2.48e-7\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 12844 physical qubits to implement the algorithm logic, and 116160 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (5us 200ns) multiplied by the 1472 logical cycles to run the algorithm. If however the duration of a single T factory (here: 57us 200ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 13$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 38$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 320 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 64 CCZ and 320 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 1472. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 64 CCZ and 320 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 1536 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{1536\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 7ms 654us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 1536 T states, the 12 copies of the T factory are repeatedly invoked 128 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 12844 are the product of the 38 logical qubits after layout and the 338 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 38 logical qubits and the total cycle count 1472.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 1536.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.000000008938787185354691)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{13 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 5us 200ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 338.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.48e-7.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 3.26e-7.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 38 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[11],\"logicalErrorRate\":2.480000000000001E-07,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":9680,\"physicalQubitsPerRound\":[9680],\"runtime\":57200.0,\"runtimePerRound\":[57200.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}" - }, - "metadata": {} - } - ], - "execution_count": 9, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ], - "outputs": [], - "execution_count": 10, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - }, - { - "cell_type": "code", - "source": [ - "evaluate_results(result)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": "Logical algorithmic qubits = 38\nAlgorithmic depth = 1472\nScore = 55936\n" - }, - { - "output_type": "execute_result", - "execution_count": 11, - "data": { - "text/plain": "55936" - }, - "metadata": {} - } - ], - "execution_count": 11, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - } - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "name": "python3", - "language": "python", - "display_name": "Python 3 (ipykernel)" - }, - "language_info": { - "name": "python", - "version": "3.9.15", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file From a81d6cf10d6a022f5a2a32b20581959f878f2ffe Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:43:14 +0530 Subject: [PATCH 22/27] Delete iQuHack-challenge-2023-task9.ipynb --- iQuHack-challenge-2023-task9.ipynb | 8324 ---------------------------- 1 file changed, 8324 deletions(-) delete mode 100644 iQuHack-challenge-2023-task9.ipynb diff --git a/iQuHack-challenge-2023-task9.ipynb b/iQuHack-challenge-2023-task9.ipynb deleted file mode 100644 index 196fe6a..0000000 --- a/iQuHack-challenge-2023-task9.ipynb +++ /dev/null @@ -1,8324 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "# MIT iQuHack Microsoft Challenge: Optimizing Quantum Oracles, Task 9\n", - "\n", - "To work on this task,\n", - "1. Use the notebook for this task. Each of the notebooks in the repository has the code of the corresponding task.\n", - "2. Update your team name and Slack ID variables in the next code cell (you can use different Slack IDs for different tasks if different team members work on them, but make sure to use the same team name throughout the Hackathon). Do not change the task variable!\n", - "3. Work on your task in the cell that contains operation `Task9`! Your goal is to rewrite the code so that it maintains its correctness, but requires as few resources as possible. See `evaluate_results` function for details on how your absolute score for the task is calculated.\n", - "4. Submit your task using qBraid. Use the Share Notebook feature on qBraid (See File > Share Notebook) and enter the email rickyyoung@qbraid.com. Once you click submit, if the share notebook feature works correctly, it should show that you receive no errors and the email you entered will disappear. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "Log in to Azure (once per session, don't need to do it if running from Azure workspace)" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[\n", - " {\n", - " \"cloudName\": \"AzureCloud\",\n", - " \"homeTenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", - " \"id\": \"9452b676-e774-4e7d-826c-10bc7a41e86e\",\n", - " \"isDefault\": true,\n", - " \"managedByTenants\": [\n", - " {\n", - " \"tenantId\": \"d0ecd01b-d782-448e-bae0-c3cad0e0543a\"\n", - " },\n", - " {\n", - " \"tenantId\": \"94c4857e-1130-4ab8-8eac-069b40c9db20\"\n", - " },\n", - " {\n", - " \"tenantId\": \"f702a9dc-ae48-4dc7-8f0a-8155a6dfa4e5\"\n", - " }\n", - " ],\n", - " \"name\": \"Azure for Students\",\n", - " \"state\": \"Enabled\",\n", - " \"tenantId\": \"808cc83e-a546-47e7-a03f-73a1ebba24f3\",\n", - " \"user\": {\n", - " \"name\": \"jyothsnakavala2003@gmail.com\",\n", - " \"type\": \"user\"\n", - " }\n", - " }\n", - "]\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING: A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.\n" - ] - } - ], - "source": [ - "!az login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 1. Write the code" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# Run this code cell to import the modules required to work with Q# and Azure\n", - "import qsharp\n", - "from qsharp import azure" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "teamname=\"Quibitrons\" # Update this field with your team name\n", - "task=[\"task9\"]\n", - "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" - ] - }, - { - "cell_type": "code", - "execution_count": 87, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# You don't need to run this cell, it defines Q# operations as Python types to keep IntelliSense happy\n", - "Task9_DumpMachineWrapper : qsharp.QSharpCallable = None\n", - "Task9_ResourceEstimationWrapper : qsharp.QSharpCallable = None" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "**The complete code for Task 9 should be in this cell.** \n", - "This cell can include additional open statements and helper operations and functions if your solution needs them. \n", - "If you define helper operations in other cells, they will not be picked up by the grader!" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "open Microsoft.Quantum.Canon;\n", - "open Microsoft.Quantum.Diagnostics;\n", - "// Task 9 \n", - "// (input will contain 7 qubits)\n", - "operation Task9(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " let N = Length(input);\n", - " for i in 0 .. N-1 {\n", - " ControlledOnInt(i, X)(input[0..N-1], target);\n", - " }\n", - "}\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "microsoft": { - "language": "qsharp" - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "%%qsharp\n", - "// Wrapper operation that allows you to observe the effects of the marking oracle by running it on a simulator.\n", - "operation Task9_DumpMachineWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " // Prepare an equal superposition of all input states in the input register.\n", - " ApplyToEach(H, input);\n", - " // Apply the oracle.\n", - " Task9(input, target);\n", - " // Print the state of the system after the oracle application.\n", - " DumpMachine();\n", - " ResetAll(input + [target]);\n", - "}\n", - "\n", - "// Wrapper operation that allows to run resource estimation for the task.\n", - "// This operation only allocates the qubits and applies the oracle once, not using any additional gates or measurements.\n", - "operation Task9_ResourceEstimationWrapper() : Unit {\n", - " let N = 8;\n", - " use (input, target) = (Qubit[N], Qubit());\n", - " Task9(input, target);\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 2. Run the code on a simulator to see what it does\n", - "You can also write your own code to explore the effects of the oracle (for example, applying it to different basis states and measuring the results)." - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"diagnostic_kind\":\"state-vector\",\"qubit_ids\":[0,1,2,3,4,5,6,7,8],\"n_qubits\":9,\"amplitudes\":{\"0\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"1\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"2\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"3\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"4\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"5\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"6\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"7\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"8\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"9\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"10\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"11\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"12\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"13\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"14\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"15\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"16\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"17\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"18\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"19\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"20\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"21\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"22\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"23\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"24\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"25\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"26\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"27\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"28\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"29\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"30\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"31\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"32\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"33\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"34\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"35\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"36\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"37\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"38\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"39\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"40\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"41\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"42\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"43\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"44\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"45\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"46\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"47\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"48\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"49\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"50\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"51\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"52\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"53\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"54\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"55\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"56\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"57\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"58\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"59\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"60\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"61\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"62\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"63\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"64\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"65\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"66\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"67\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"68\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"69\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"70\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"71\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"72\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"73\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"74\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"75\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"76\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"77\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"78\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"79\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"80\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"81\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"82\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"83\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"84\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"85\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"86\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"87\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"88\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"89\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"90\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"91\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"92\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"93\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"94\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"95\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"96\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"97\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"98\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"99\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"100\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"101\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"102\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"103\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"104\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"105\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"106\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"107\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"108\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"109\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"110\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"111\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"112\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"113\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"114\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"115\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"116\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"117\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"118\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"119\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"120\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"121\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"122\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"123\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"124\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"125\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"126\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"127\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"128\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"129\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"130\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"131\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"132\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"133\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"134\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"135\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"136\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"137\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"138\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"139\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"140\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"141\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"142\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"143\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"144\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"145\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"146\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"147\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"148\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"149\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"150\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"151\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"152\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"153\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"154\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"155\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"156\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"157\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"158\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"159\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"160\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"161\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"162\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"163\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"164\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"165\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"166\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"167\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"168\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"169\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"170\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"171\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"172\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"173\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"174\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"175\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"176\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"177\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"178\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"179\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"180\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"181\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"182\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"183\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"184\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"185\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"186\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"187\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"188\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"189\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"190\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"191\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"192\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"193\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"194\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"195\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"196\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"197\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"198\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"199\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"200\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"201\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"202\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"203\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"204\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"205\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"206\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"207\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"208\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"209\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"210\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"211\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"212\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"213\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"214\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"215\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"216\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"217\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"218\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"219\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"220\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"221\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"222\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"223\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"224\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"225\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"226\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"227\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"228\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"229\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"230\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"231\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"232\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"233\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"234\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"235\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"236\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"237\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"238\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"239\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"240\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"241\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"242\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"243\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"244\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"245\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"246\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"247\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"248\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"249\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"250\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"251\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"252\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"253\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"254\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"255\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"256\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"257\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"258\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"259\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"260\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"261\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"262\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"263\":{\"Real\":0.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"Phase\":0.0},\"264\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"265\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"266\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"267\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"268\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"269\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"270\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"271\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"272\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"273\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"274\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"275\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"276\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"277\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"278\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"279\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"280\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"281\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"282\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"283\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"284\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"285\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"286\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"287\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"288\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"289\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"290\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"291\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"292\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"293\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"294\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"295\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"296\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"297\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"298\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"299\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"300\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"301\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"302\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"303\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"304\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"305\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"306\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"307\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"308\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"309\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"310\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"311\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"312\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"313\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"314\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"315\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"316\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"317\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"318\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"319\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"320\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"321\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"322\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"323\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"324\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"325\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"326\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"327\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"328\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"329\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"330\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"331\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"332\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"333\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"334\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"335\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"336\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"337\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"338\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"339\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"340\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"341\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"342\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"343\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"344\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"345\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"346\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"347\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"348\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"349\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"350\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"351\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"352\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"353\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"354\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"355\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"356\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"357\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"358\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"359\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"360\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"361\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"362\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"363\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"364\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"365\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"366\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"367\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"368\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"369\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"370\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"371\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"372\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"373\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"374\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"375\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"376\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"377\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"378\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"379\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"380\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"381\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"382\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"383\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"384\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"385\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"386\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"387\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"388\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"389\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"390\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"391\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"392\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"393\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"394\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"395\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"396\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"397\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"398\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"399\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"400\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"401\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"402\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"403\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"404\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"405\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"406\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"407\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"408\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"409\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"410\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"411\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"412\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"413\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"414\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"415\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"416\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"417\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"418\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"419\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"420\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"421\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"422\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"423\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"424\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"425\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"426\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"427\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"428\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"429\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"430\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"431\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"432\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"433\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"434\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"435\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"436\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"437\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"438\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"439\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"440\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"441\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"442\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"443\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"444\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"445\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"446\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"447\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"448\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"449\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"450\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"451\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"452\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"453\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"454\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"455\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"456\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"457\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"458\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"459\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"460\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"461\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"462\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"463\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"464\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"465\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"466\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"467\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"468\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"469\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"470\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"471\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"472\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"473\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"474\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"475\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"476\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"477\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"478\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"479\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"480\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"481\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"482\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"483\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"484\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"485\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"486\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"487\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"488\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"489\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"490\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"491\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"492\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"493\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"494\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"495\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"496\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"497\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"498\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"499\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"500\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"501\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"502\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"503\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"504\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"505\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"506\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"507\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"508\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"509\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"510\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"511\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", - "text/html": [ - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Qubit IDs0, 1, 2, 3, 4, 5, 6, 7, 8
Basis state (bitstring)AmplitudeMeas. Pr.
$\\left|000000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|000111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|001111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|010111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|011111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|100111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|101111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|110111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111000000100000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111000010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111000100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111000110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111001000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111001010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111001100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111001110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111010000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111010010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111010100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111010110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111011000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111011010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111011100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111011110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111100000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111100010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111100100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111100110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111101000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111101010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111101100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111101110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111110000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111110010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111110100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111110110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111111000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111111010000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111111100\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
$\\left|111111110000000000\\right\\rangle$$0.0625 + 0.0000 i$\r\n", - " \r\n", - " \r\n", - "

\r\n", - "

\r\n", - "
" - ], - "text/plain": [ - "|000000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000000100⟩\t0.06250000000000006 + 0𝑖\n", - "|000000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000001000⟩\t0.06250000000000006 + 0𝑖\n", - "|000001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000001100⟩\t0.06250000000000006 + 0𝑖\n", - "|000001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000010000⟩\t0.06250000000000006 + 0𝑖\n", - "|000010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000010100⟩\t0.06250000000000006 + 0𝑖\n", - "|000010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000011000⟩\t0.06250000000000006 + 0𝑖\n", - "|000011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000011100⟩\t0.06250000000000006 + 0𝑖\n", - "|000011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000100000⟩\t0.06250000000000006 + 0𝑖\n", - "|000100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000100100⟩\t0.06250000000000006 + 0𝑖\n", - "|000100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000101000⟩\t0.06250000000000006 + 0𝑖\n", - "|000101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000101100⟩\t0.06250000000000006 + 0𝑖\n", - "|000101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000110000⟩\t0.06250000000000006 + 0𝑖\n", - "|000110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000110100⟩\t0.06250000000000006 + 0𝑖\n", - "|000110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000111000⟩\t0.06250000000000006 + 0𝑖\n", - "|000111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|000111100⟩\t0.06250000000000006 + 0𝑖\n", - "|000111110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001000100⟩\t0.06250000000000006 + 0𝑖\n", - "|001000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001001000⟩\t0.06250000000000006 + 0𝑖\n", - "|001001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001001100⟩\t0.06250000000000006 + 0𝑖\n", - "|001001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001010000⟩\t0.06250000000000006 + 0𝑖\n", - "|001010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001010100⟩\t0.06250000000000006 + 0𝑖\n", - "|001010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001011000⟩\t0.06250000000000006 + 0𝑖\n", - "|001011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001011100⟩\t0.06250000000000006 + 0𝑖\n", - "|001011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001100000⟩\t0.06250000000000006 + 0𝑖\n", - "|001100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001100100⟩\t0.06250000000000006 + 0𝑖\n", - "|001100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001101000⟩\t0.06250000000000006 + 0𝑖\n", - "|001101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001101100⟩\t0.06250000000000006 + 0𝑖\n", - "|001101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001110000⟩\t0.06250000000000006 + 0𝑖\n", - "|001110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001110100⟩\t0.06250000000000006 + 0𝑖\n", - "|001110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001111000⟩\t0.06250000000000006 + 0𝑖\n", - "|001111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|001111100⟩\t0.06250000000000006 + 0𝑖\n", - "|001111110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010000100⟩\t0.06250000000000006 + 0𝑖\n", - "|010000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010001000⟩\t0.06250000000000006 + 0𝑖\n", - "|010001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010001100⟩\t0.06250000000000006 + 0𝑖\n", - "|010001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010010000⟩\t0.06250000000000006 + 0𝑖\n", - "|010010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010010100⟩\t0.06250000000000006 + 0𝑖\n", - "|010010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010011000⟩\t0.06250000000000006 + 0𝑖\n", - "|010011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010011100⟩\t0.06250000000000006 + 0𝑖\n", - "|010011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010100000⟩\t0.06250000000000006 + 0𝑖\n", - "|010100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010100100⟩\t0.06250000000000006 + 0𝑖\n", - "|010100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010101000⟩\t0.06250000000000006 + 0𝑖\n", - "|010101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010101100⟩\t0.06250000000000006 + 0𝑖\n", - "|010101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010110000⟩\t0.06250000000000006 + 0𝑖\n", - "|010110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010110100⟩\t0.06250000000000006 + 0𝑖\n", - "|010110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010111000⟩\t0.06250000000000006 + 0𝑖\n", - "|010111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|010111100⟩\t0.06250000000000006 + 0𝑖\n", - "|010111110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011000100⟩\t0.06250000000000006 + 0𝑖\n", - "|011000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011001000⟩\t0.06250000000000006 + 0𝑖\n", - "|011001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011001100⟩\t0.06250000000000006 + 0𝑖\n", - "|011001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011010000⟩\t0.06250000000000006 + 0𝑖\n", - "|011010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011010100⟩\t0.06250000000000006 + 0𝑖\n", - "|011010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011011000⟩\t0.06250000000000006 + 0𝑖\n", - "|011011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011011100⟩\t0.06250000000000006 + 0𝑖\n", - "|011011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011100000⟩\t0.06250000000000006 + 0𝑖\n", - "|011100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011100100⟩\t0.06250000000000006 + 0𝑖\n", - "|011100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011101000⟩\t0.06250000000000006 + 0𝑖\n", - "|011101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011101100⟩\t0.06250000000000006 + 0𝑖\n", - "|011101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011110000⟩\t0.06250000000000006 + 0𝑖\n", - "|011110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011110100⟩\t0.06250000000000006 + 0𝑖\n", - "|011110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011111000⟩\t0.06250000000000006 + 0𝑖\n", - "|011111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|011111100⟩\t0.06250000000000006 + 0𝑖\n", - "|011111110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100000100⟩\t0.06250000000000006 + 0𝑖\n", - "|100000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100001000⟩\t0.06250000000000006 + 0𝑖\n", - "|100001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100001100⟩\t0.06250000000000006 + 0𝑖\n", - "|100001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100010000⟩\t0.06250000000000006 + 0𝑖\n", - "|100010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100010100⟩\t0.06250000000000006 + 0𝑖\n", - "|100010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100011000⟩\t0.06250000000000006 + 0𝑖\n", - "|100011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100011100⟩\t0.06250000000000006 + 0𝑖\n", - "|100011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100100000⟩\t0.06250000000000006 + 0𝑖\n", - "|100100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100100100⟩\t0.06250000000000006 + 0𝑖\n", - "|100100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100101000⟩\t0.06250000000000006 + 0𝑖\n", - "|100101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100101100⟩\t0.06250000000000006 + 0𝑖\n", - "|100101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100110000⟩\t0.06250000000000006 + 0𝑖\n", - "|100110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100110100⟩\t0.06250000000000006 + 0𝑖\n", - "|100110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100111000⟩\t0.06250000000000006 + 0𝑖\n", - "|100111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|100111100⟩\t0.06250000000000006 + 0𝑖\n", - "|100111110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101000100⟩\t0.06250000000000006 + 0𝑖\n", - "|101000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101001000⟩\t0.06250000000000006 + 0𝑖\n", - "|101001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101001100⟩\t0.06250000000000006 + 0𝑖\n", - "|101001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101010000⟩\t0.06250000000000006 + 0𝑖\n", - "|101010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101010100⟩\t0.06250000000000006 + 0𝑖\n", - "|101010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101011000⟩\t0.06250000000000006 + 0𝑖\n", - "|101011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101011100⟩\t0.06250000000000006 + 0𝑖\n", - "|101011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101100000⟩\t0.06250000000000006 + 0𝑖\n", - "|101100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101100100⟩\t0.06250000000000006 + 0𝑖\n", - "|101100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101101000⟩\t0.06250000000000006 + 0𝑖\n", - "|101101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101101100⟩\t0.06250000000000006 + 0𝑖\n", - "|101101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101110000⟩\t0.06250000000000006 + 0𝑖\n", - "|101110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101110100⟩\t0.06250000000000006 + 0𝑖\n", - "|101110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101111000⟩\t0.06250000000000006 + 0𝑖\n", - "|101111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|101111100⟩\t0.06250000000000006 + 0𝑖\n", - "|101111110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110000100⟩\t0.06250000000000006 + 0𝑖\n", - "|110000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110001000⟩\t0.06250000000000006 + 0𝑖\n", - "|110001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110001100⟩\t0.06250000000000006 + 0𝑖\n", - "|110001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110010000⟩\t0.06250000000000006 + 0𝑖\n", - "|110010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110010100⟩\t0.06250000000000006 + 0𝑖\n", - "|110010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110011000⟩\t0.06250000000000006 + 0𝑖\n", - "|110011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110011100⟩\t0.06250000000000006 + 0𝑖\n", - "|110011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110100000⟩\t0.06250000000000006 + 0𝑖\n", - "|110100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110100100⟩\t0.06250000000000006 + 0𝑖\n", - "|110100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110101000⟩\t0.06250000000000006 + 0𝑖\n", - "|110101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110101100⟩\t0.06250000000000006 + 0𝑖\n", - "|110101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110110000⟩\t0.06250000000000006 + 0𝑖\n", - "|110110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110110100⟩\t0.06250000000000006 + 0𝑖\n", - "|110110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110111000⟩\t0.06250000000000006 + 0𝑖\n", - "|110111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|110111100⟩\t0.06250000000000006 + 0𝑖\n", - "|110111110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111000000100000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111000010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111000100⟩\t0.06250000000000006 + 0𝑖\n", - "|111000110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111001000⟩\t0.06250000000000006 + 0𝑖\n", - "|111001010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111001100⟩\t0.06250000000000006 + 0𝑖\n", - "|111001110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111010000⟩\t0.06250000000000006 + 0𝑖\n", - "|111010010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111010100⟩\t0.06250000000000006 + 0𝑖\n", - "|111010110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111011000⟩\t0.06250000000000006 + 0𝑖\n", - "|111011010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111011100⟩\t0.06250000000000006 + 0𝑖\n", - "|111011110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111100000⟩\t0.06250000000000006 + 0𝑖\n", - "|111100010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111100100⟩\t0.06250000000000006 + 0𝑖\n", - "|111100110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111101000⟩\t0.06250000000000006 + 0𝑖\n", - "|111101010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111101100⟩\t0.06250000000000006 + 0𝑖\n", - "|111101110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111110000⟩\t0.06250000000000006 + 0𝑖\n", - "|111110010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111110100⟩\t0.06250000000000006 + 0𝑖\n", - "|111110110000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111111000⟩\t0.06250000000000006 + 0𝑖\n", - "|111111010000000000⟩\t0.06250000000000006 + 0𝑖\n", - "|111111100⟩\t0.06250000000000006 + 0𝑖\n", - "|111111110000000000⟩\t0.06250000000000006 + 0𝑖" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/plain": [ - "()" - ] - }, - "execution_count": 90, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Note that in the output of this cell the target qubit corresponds to the rightmost bit\n", - "qsharp.config[\"dump.basisStateLabelingConvention\"]=\"Bitstring\"\n", - "qsharp.config[\"dump.phaseDisplayStyle\"]=\"None\"\n", - "# Uncomment the following line if you want to see only the entries with non-zero amplitudes\n", - "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", - "Task9_DumpMachineWrapper.simulate()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "nteract": { - "transient": { - "deleting": false - } - } - }, - "source": [ - "## Step 3. Evaluate the code using resource estimation" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "\"Connecting to Azure Quantum...\"", - "text/plain": [ - "Connecting to Azure Quantum..." - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Authenticated using Azure.Identity.AzureCliCredential\n", - "\n", - "\n", - "Connected to Azure Quantum workspace iQuHACK-Qubitrons in location eastus.\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181141},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 368938},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", - " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.hqs-lt-s2', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s2-apival', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 202},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 167},\n", - " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.qpu.h1-2', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.sim.h1-2sc', 'current_availability': {}, 'average_queue_time': 1},\n", - " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 202},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 167},\n", - " {'id': 'quantinuum.qpu.h1', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'rigetti.sim.qvm', 'current_availability': {}, 'average_queue_time': 5},\n", - " {'id': 'rigetti.qpu.aspen-11', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'rigetti.qpu.aspen-m-2', 'current_availability': {}, 'average_queue_time': 5},\n", - " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# If you're using this notebook in Azure Quantum hosted notebooks, remove the credential=\"CLI\" parameter!\n", - "# If you're using this notebook in qBraid, keep it\n", - "qsharp.azure.connect(\n", - " resourceId=\"/subscriptions/9452b676-e774-4e7d-826c-10bc7a41e86e/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/iQuHACK-Qubitrons\",\n", - " location=\"EAST US\")" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loading package Microsoft.Quantum.Providers.Core and dependencies...\n", - "Active target is now microsoft.estimator\n" - ] - }, - { - "data": { - "text/plain": [ - "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" - ] - }, - "execution_count": 92, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "qsharp.azure.target(\"microsoft.estimator\")" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Submitting Task9_ResourceEstimationWrapper to target microsoft.estimator...\n", - "Job successfully submitted.\n", - " Job name: RE for the task 9\n", - " Job ID: a157f2e4-4f9f-4bc8-b210-72a0ce1a9123\n", - "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[19:18:19] Current job status: Executing\n", - "[19:18:24] Current job status: Succeeded\n" - ] - } - ], - "source": [ - "# Update job name to a more descriptive string to make it easier to find it in Job Management tab later\n", - "result = qsharp.azure.execute(Task9_ResourceEstimationWrapper, jobName=\"RE for the task 9\")" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "data": { - "application/x-qsharp-data": "{\"errorBudget\":{\"logical\":0.0005,\"rotations\":0.0,\"tstates\":0.0005},\"jobParams\":{\"errorBudget\":0.001,\"qecScheme\":{\"crossingPrefactor\":0.03,\"errorCorrectionThreshold\":0.01,\"logicalCycleTime\":\"(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\",\"name\":\"surface_code\",\"physicalQubitsPerLogicalQubit\":\"2 * codeDistance * codeDistance\"},\"qubitParams\":{\"instructionSet\":\"GateBased\",\"name\":\"qubit_gate_ns_e3\",\"oneQubitGateErrorRate\":0.001,\"oneQubitGateTime\":\"50 ns\",\"oneQubitMeasurementErrorRate\":0.001,\"oneQubitMeasurementTime\":\"100 ns\",\"tGateErrorRate\":0.001,\"tGateTime\":\"50 ns\",\"twoQubitGateErrorRate\":0.001,\"twoQubitGateTime\":\"50 ns\"}},\"logicalCounts\":{\"ccixCount\":48,\"cczCount\":8,\"measurementCount\":48,\"numQubits\":15,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":216,\"algorithmicLogicalQubits\":42,\"cliffordErrorRate\":0.001,\"logicalDepth\":216,\"numTfactories\":12,\"numTfactoryRuns\":19,\"numTsPerRotation\":null,\"numTstates\":224,\"physicalQubitsForAlgorithm\":10164,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":5.511463844797178E-08,\"requiredLogicalTstateErrorRate\":2.2321428571428573E-06},\"physicalQubits\":87924,\"runtime\":950400},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"errorBudget\":\"1.00e-3\",\"errorBudgetLogical\":\"5.00e-4\",\"errorBudgetRotations\":\"0.00e0\",\"errorBudgetTstates\":\"5.00e-4\",\"logicalCycleTime\":\"4us 400ns\",\"logicalErrorRate\":\"3.00e-8\",\"numTsPerRotation\":\"No rotations in algorithm\",\"numUnitsPerRound\":\"2\",\"physicalQubitsForTfactoriesPercentage\":\"88.44 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"5.51e-8\",\"requiredLogicalTstateErrorRate\":\"2.23e-6\",\"runtime\":\"950us 400ns\",\"tfactoryRuntime\":\"46us 800ns\",\"tfactoryRuntimePerRound\":\"46us 800ns\",\"tstateLogicalErrorRate\":\"2.17e-6\",\"unitNamePerRound\":\"15-to-1 space efficient logical\"},\"reportData\":{\"assumptions\":[\"_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._\",\"**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.\",\"**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.\",\"**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).\",\"**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.\",\"**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.\",\"**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.\"],\"groups\":[{\"alwaysVisible\":true,\"entries\":[{\"description\":\"Number of physical qubits\",\"explanation\":\"This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.\",\"label\":\"Physical qubits\",\"path\":\"physicalCounts/physicalQubits\"},{\"description\":\"Total runtime\",\"explanation\":\"This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/runtime\"}],\"title\":\"Physical resource estimates\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits for the algorithm after layout\",\"explanation\":\"Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.\",\"label\":\"Logical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalQubits\"},{\"description\":\"Number of logical cycles for the algorithm\",\"explanation\":\"To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.\",\"label\":\"Algorithmic depth\",\"path\":\"physicalCounts/breakdown/algorithmicLogicalDepth\"},{\"description\":\"Number of logical cycles performed\",\"explanation\":\"This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\"label\":\"Logical depth\",\"path\":\"physicalCounts/breakdown/logicalDepth\"},{\"description\":\"Number of T states consumed by the algorithm\",\"explanation\":\"To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.\",\"label\":\"Number of T states\",\"path\":\"physicalCounts/breakdown/numTstates\"},{\"description\":\"Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{224\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 950us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$\",\"label\":\"Number of T factories\",\"path\":\"physicalCounts/breakdown/numTfactories\"},{\"description\":\"Number of times all T factories are invoked\",\"explanation\":\"In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.\",\"label\":\"Physical algorithmic qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForAlgorithm\"},{\"description\":\"Number of physical qubits for the T factories\",\"explanation\":\"Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.\",\"label\":\"Physical T factory qubits\",\"path\":\"physicalCounts/breakdown/physicalQubitsForTfactories\"},{\"description\":\"The minimum logical qubit error rate required to run the algorithm within the error budget\",\"explanation\":\"The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.\",\"label\":\"Required logical qubit error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalQubitErrorRate\"},{\"description\":\"The minimum T state error rate required for distilled T states\",\"explanation\":\"The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.\",\"label\":\"Required logical T state error rate\",\"path\":\"physicalCountsFormatted/requiredLogicalTstateErrorRate\"},{\"description\":\"Number of T states to implement a rotation with an arbitrary angle\",\"explanation\":\"The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.\",\"label\":\"Number of T states per rotation\",\"path\":\"physicalCountsFormatted/numTsPerRotation\"}],\"title\":\"Resource estimates breakdown\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Name of QEC scheme\",\"explanation\":\"You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.\",\"label\":\"QEC scheme\",\"path\":\"jobParams/qecScheme/name\"},{\"description\":\"Required code distance for error correction\",\"explanation\":\"The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000005511463844797178)}{\\\\log(0.01/0.001)} - 1$\",\"label\":\"Code distance\",\"path\":\"logicalQubit/codeDistance\"},{\"description\":\"Number of physical qubits per logical qubit\",\"explanation\":\"The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.\",\"label\":\"Physical qubits\",\"path\":\"logicalQubit/physicalQubits\"},{\"description\":\"Duration of a logical cycle in nanoseconds\",\"explanation\":\"The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.\",\"label\":\"Logical cycle time\",\"path\":\"physicalCountsFormatted/logicalCycleTime\"},{\"description\":\"Logical qubit error rate\",\"explanation\":\"The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$\",\"label\":\"Logical qubit error rate\",\"path\":\"physicalCountsFormatted/logicalErrorRate\"},{\"description\":\"Crossing prefactor used in QEC scheme\",\"explanation\":\"The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.\",\"label\":\"Crossing prefactor\",\"path\":\"jobParams/qecScheme/crossingPrefactor\"},{\"description\":\"Error correction threshold used in QEC scheme\",\"explanation\":\"The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.\",\"label\":\"Error correction threshold\",\"path\":\"jobParams/qecScheme/errorCorrectionThreshold\"},{\"description\":\"QEC scheme formula used to compute logical cycle time\",\"explanation\":\"This is the formula that is used to compute the logical cycle time 4us 400ns.\",\"label\":\"Logical cycle time formula\",\"path\":\"jobParams/qecScheme/logicalCycleTime\"},{\"description\":\"QEC scheme formula used to compute number of physical qubits per logical qubit\",\"explanation\":\"This is the formula that is used to compute the number of physical qubits per logical qubits 242.\",\"label\":\"Physical qubits formula\",\"path\":\"jobParams/qecScheme/physicalQubitsPerLogicalQubit\"}],\"title\":\"Logical qubit parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of physical qubits for a single T factory\",\"explanation\":\"This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.\",\"label\":\"Physical qubits\",\"path\":\"tfactory/physicalQubits\"},{\"description\":\"Runtime of a single T factory\",\"explanation\":\"The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.\",\"label\":\"Runtime\",\"path\":\"physicalCountsFormatted/tfactoryRuntime\"},{\"description\":\"Number of output T states produced in a single run of T factory\",\"explanation\":\"The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.\",\"label\":\"Number of output T states per run\",\"path\":\"tfactory/numTstates\"},{\"description\":\"Number of physical input T states consumed in a single run of a T factory\",\"explanation\":\"This value includes the physical input T states of all copies of the distillation unit in the first round.\",\"label\":\"Number of input T states per run\",\"path\":\"tfactory/numInputTstates\"},{\"description\":\"The number of distillation rounds\",\"explanation\":\"This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.\",\"label\":\"Distillation rounds\",\"path\":\"tfactory/numRounds\"},{\"description\":\"The number of units in each round of distillation\",\"explanation\":\"This is the number of copies for the distillation units per round.\",\"label\":\"Distillation units per round\",\"path\":\"physicalCountsFormatted/numUnitsPerRound\"},{\"description\":\"The types of distillation units\",\"explanation\":\"These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.\",\"label\":\"Distillation units\",\"path\":\"physicalCountsFormatted/unitNamePerRound\"},{\"description\":\"The code distance in each round of distillation\",\"explanation\":\"This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.\",\"label\":\"Distillation code distances\",\"path\":\"physicalCountsFormatted/codeDistancePerRound\"},{\"description\":\"The number of physical qubits used in each round of distillation\",\"explanation\":\"The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.\",\"label\":\"Number of physical qubits per round\",\"path\":\"physicalCountsFormatted/physicalQubitsPerRound\"},{\"description\":\"The runtime of each distillation round\",\"explanation\":\"The runtime of the T factory is the sum of the runtimes in all rounds.\",\"label\":\"Runtime per round\",\"path\":\"physicalCountsFormatted/tfactoryRuntimePerRound\"},{\"description\":\"Logical T state error rate\",\"explanation\":\"This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.\",\"label\":\"Logical T state error rate\",\"path\":\"physicalCountsFormatted/tstateLogicalErrorRate\"}],\"title\":\"T factory parameters\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Number of logical qubits in the input quantum program\",\"explanation\":\"We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.\",\"label\":\"Logical qubits (pre-layout)\",\"path\":\"logicalCounts/numQubits\"},{\"description\":\"Number of T gates in the input quantum program\",\"explanation\":\"This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.\",\"label\":\"T gates\",\"path\":\"logicalCounts/tCount\"},{\"description\":\"Number of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.\",\"label\":\"Rotation gates\",\"path\":\"logicalCounts/rotationCount\"},{\"description\":\"Depth of rotation gates in the input quantum program\",\"explanation\":\"This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.\",\"label\":\"Rotation depth\",\"path\":\"logicalCounts/rotationDepth\"},{\"description\":\"Number of CCZ-gates in the input quantum program\",\"explanation\":\"This is the number of CCZ gates.\",\"label\":\"CCZ gates\",\"path\":\"logicalCounts/cczCount\"},{\"description\":\"Number of CCiX-gates in the input quantum program\",\"explanation\":\"This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].\",\"label\":\"CCiX gates\",\"path\":\"logicalCounts/ccixCount\"},{\"description\":\"Number of single qubit measurements in the input quantum program\",\"explanation\":\"This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.\",\"label\":\"Measurement operations\",\"path\":\"logicalCounts/measurementCount\"}],\"title\":\"Pre-layout logical resources\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Total error budget for the algorithm\",\"explanation\":\"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\"label\":\"Total error budget\",\"path\":\"physicalCountsFormatted/errorBudget\"},{\"description\":\"Probability of at least one logical error\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"Logical error probability\",\"path\":\"physicalCountsFormatted/errorBudgetLogical\"},{\"description\":\"Probability of at least one faulty T distillation\",\"explanation\":\"This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.\",\"label\":\"T distillation error probability\",\"path\":\"physicalCountsFormatted/errorBudgetTstates\"},{\"description\":\"Probability of at least one failed rotation synthesis\",\"explanation\":\"This is one third of the total error budget 1.00e-3.\",\"label\":\"Rotation synthesis error probability\",\"path\":\"physicalCountsFormatted/errorBudgetRotations\"}],\"title\":\"Assumed error budget\"},{\"alwaysVisible\":false,\"entries\":[{\"description\":\"Some descriptive name for the qubit model\",\"explanation\":\"You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or ¬µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).\",\"label\":\"Qubit name\",\"path\":\"jobParams/qubitParams/name\"},{\"description\":\"Underlying qubit technology (gate-based or Majorana)\",\"explanation\":\"When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.\",\"label\":\"Instruction set\",\"path\":\"jobParams/qubitParams/instructionSet\"},{\"description\":\"Operation time for single-qubit measurement (t_meas) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.\",\"label\":\"Single-qubit measurement time\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementTime\"},{\"description\":\"Operation time for single-qubit gate (t_gate) in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.\",\"label\":\"Single-qubit gate time\",\"path\":\"jobParams/qubitParams/oneQubitGateTime\"},{\"description\":\"Operation time for two-qubit gate in ns\",\"explanation\":\"This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.\",\"label\":\"Two-qubit gate time\",\"path\":\"jobParams/qubitParams/twoQubitGateTime\"},{\"description\":\"Operation time for a T gate\",\"explanation\":\"This is the operation time in nanoseconds to execute a T gate.\",\"label\":\"T gate time\",\"path\":\"jobParams/qubitParams/tGateTime\"},{\"description\":\"Error rate for single-qubit measurement\",\"explanation\":\"This is the probability in which a single-qubit measurement in the Pauli basis may fail.\",\"label\":\"Single-qubit measurement error rate\",\"path\":\"jobParams/qubitParams/oneQubitMeasurementErrorRate\"},{\"description\":\"Error rate for single-qubit Clifford gate (p)\",\"explanation\":\"This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.\",\"label\":\"Single-qubit error rate\",\"path\":\"jobParams/qubitParams/oneQubitGateErrorRate\"},{\"description\":\"Error rate for two-qubit Clifford gate\",\"explanation\":\"This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.\",\"label\":\"Two-qubit error rate\",\"path\":\"jobParams/qubitParams/twoQubitGateErrorRate\"},{\"description\":\"Error rate to prepare single-qubit T state or apply a T gate (p_T)\",\"explanation\":\"This is the probability in which executing a single T gate may fail.\",\"label\":\"T gate error rate\",\"path\":\"jobParams/qubitParams/tGateErrorRate\"}],\"title\":\"Physical qubit parameters\"}]},\"status\":\"success\",\"tfactory\":{\"codeDistancePerRound\":[9],\"logicalErrorRate\":2.165000000000001E-06,\"numInputTstates\":30,\"numRounds\":1,\"numTstates\":1,\"numUnitsPerRound\":[2],\"physicalQubits\":6480,\"physicalQubitsPerRound\":[6480],\"runtime\":46800.0,\"runtimePerRound\":[46800.0],\"unitNamePerRound\":[\"15-to-1 space efficient logical\"]}}", - "text/html": [ - "\r\n", - "
\r\n", - " \r\n", - " Physical resource estimates\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Physical qubits87924\r\n", - "

Number of physical qubits

\n", - "
\r\n", - "
\r\n", - "

This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", - "\r\n", - "
Runtime950us 400ns\r\n", - "

Total runtime

\n", - "
\r\n", - "
\r\n", - "

This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Resource estimates breakdown\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Logical algorithmic qubits42\r\n", - "

Number of logical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the \\(Q_{\\rm alg} = 15\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 42$ logical qubits.

\n", - "\r\n", - "
Algorithmic depth216\r\n", - "

Number of logical cycles for the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm using Parallel Synthesis Sequential Pauli Computation (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.

\n", - "\r\n", - "
Logical depth216\r\n", - "

Number of logical cycles performed

\n", - "
\r\n", - "
\r\n", - "

This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.

\n", - "\r\n", - "
Number of T states224\r\n", - "

Number of T states consumed by the algorithm

\n", - "
\r\n", - "
\r\n", - "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", - "\r\n", - "
Number of T factories12\r\n", - "

Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime

\n", - "
\r\n", - "
\r\n", - "

The total number of T factories 12 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{224\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 950us 400ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", - "\r\n", - "
Number of T factory invocations19\r\n", - "

Number of times all T factories are invoked

\n", - "
\r\n", - "
\r\n", - "

In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.

\n", - "\r\n", - "
Physical algorithmic qubits10164\r\n", - "

Number of physical qubits for the algorithm after layout

\n", - "
\r\n", - "
\r\n", - "

The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.

\n", - "\r\n", - "
Physical T factory qubits77760\r\n", - "

Number of physical qubits for the T factories

\n", - "
\r\n", - "
\r\n", - "

Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\cdot 12$ qubits.

\n", - "\r\n", - "
Required logical qubit error rate5.51e-8\r\n", - "

The minimum logical qubit error rate required to run the algorithm within the error budget

\n", - "
\r\n", - "
\r\n", - "

The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.

\n", - "\r\n", - "
Required logical T state error rate2.23e-6\r\n", - "

The minimum T state error rate required for distilled T states

\n", - "
\r\n", - "
\r\n", - "

The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.

\n", - "\r\n", - "
Number of T states per rotationNo rotations in algorithm\r\n", - "

Number of T states to implement a rotation with an arbitrary angle

\n", - "
\r\n", - "
\r\n", - "

The number of T states to implement a rotation with an arbitrary angle is \\(\\lceil 0.53 \\log_2(0 / 0) + 5.3\\rceil\\) [arXiv:2203.10064]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Logical qubit parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
QEC schemesurface_code\r\n", - "

Name of QEC scheme

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined QEC schemes by using the name surface_code or floquet_code. The latter only works with Majorana qubits.

\n", - "\r\n", - "
Code distance11\r\n", - "

Required code distance for error correction

\n", - "
\r\n", - "
\r\n", - "

The code distance is the smallest odd integer greater or equal to \\(\\dfrac{2\\log(0.03 / 0.00000005511463844797178)}{\\log(0.01/0.001)} - 1\\)

\n", - "\r\n", - "
Physical qubits242\r\n", - "

Number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical cycle time4us 400ns\r\n", - "

Duration of a logical cycle in nanoseconds

\n", - "
\r\n", - "
\r\n", - "

The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.

\n", - "\r\n", - "
Logical qubit error rate3.00e-8\r\n", - "

Logical qubit error rate

\n", - "
\r\n", - "
\r\n", - "

The logical qubit error rate is computed as $0.03 \\cdot \\left(\\dfrac{0.001}{0.01}\\right)^\\frac{11 + 1}{2}$

\n", - "\r\n", - "
Crossing prefactor0.03\r\n", - "

Crossing prefactor used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.

\n", - "\r\n", - "
Error correction threshold0.01\r\n", - "

Error correction threshold used in QEC scheme

\n", - "
\r\n", - "
\r\n", - "

The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.

\n", - "\r\n", - "
Logical cycle time formula(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance\r\n", - "

QEC scheme formula used to compute logical cycle time

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the logical cycle time 4us 400ns.

\n", - "\r\n", - "
Physical qubits formula2 * codeDistance * codeDistance\r\n", - "

QEC scheme formula used to compute number of physical qubits per logical qubit

\n", - "
\r\n", - "
\r\n", - "

This is the formula that is used to compute the number of physical qubits per logical qubits 242.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " T factory parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Physical qubits6480\r\n", - "

Number of physical qubits for a single T factory

\n", - "
\r\n", - "
\r\n", - "

This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.

\n", - "\r\n", - "
Runtime46us 800ns\r\n", - "

Runtime of a single T factory

\n", - "
\r\n", - "
\r\n", - "

The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.

\n", - "\r\n", - "
Number of output T states per run1\r\n", - "

Number of output T states produced in a single run of T factory

\n", - "
\r\n", - "
\r\n", - "

The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.

\n", - "\r\n", - "
Number of input T states per run30\r\n", - "

Number of physical input T states consumed in a single run of a T factory

\n", - "
\r\n", - "
\r\n", - "

This value includes the physical input T states of all copies of the distillation unit in the first round.

\n", - "\r\n", - "
Distillation rounds1\r\n", - "

The number of distillation rounds

\n", - "
\r\n", - "
\r\n", - "

This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.

\n", - "\r\n", - "
Distillation units per round2\r\n", - "

The number of units in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the number of copies for the distillation units per round.

\n", - "\r\n", - "
Distillation units15-to-1 space efficient logical\r\n", - "

The types of distillation units

\n", - "
\r\n", - "
\r\n", - "

These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.

\n", - "\r\n", - "
Distillation code distances9\r\n", - "

The code distance in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.

\n", - "\r\n", - "
Number of physical qubits per round6480\r\n", - "

The number of physical qubits used in each round of distillation

\n", - "
\r\n", - "
\r\n", - "

The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.

\n", - "\r\n", - "
Runtime per round46us 800ns\r\n", - "

The runtime of each distillation round

\n", - "
\r\n", - "
\r\n", - "

The runtime of the T factory is the sum of the runtimes in all rounds.

\n", - "\r\n", - "
Logical T state error rate2.17e-6\r\n", - "

Logical T state error rate

\n", - "
\r\n", - "
\r\n", - "

This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Pre-layout logical resources\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Logical qubits (pre-layout)15\r\n", - "

Number of logical qubits in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.

\n", - "\r\n", - "
T gates0\r\n", - "

Number of T gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.

\n", - "\r\n", - "
Rotation gates0\r\n", - "

Number of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.

\n", - "\r\n", - "
Rotation depth0\r\n", - "

Depth of rotation gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.

\n", - "\r\n", - "
CCZ gates8\r\n", - "

Number of CCZ-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCZ gates.

\n", - "\r\n", - "
CCiX gates48\r\n", - "

Number of CCiX-gates in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of CCiX gates, which applies \\(-iX\\) controlled on two control qubits [1212.5069].

\n", - "\r\n", - "
Measurement operations48\r\n", - "

Number of single qubit measurements in the input quantum program

\n", - "
\r\n", - "
\r\n", - "

This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Assumed error budget\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Total error budget1.00e-3\r\n", - "

Total error budget for the algorithm

\n", - "
\r\n", - "
\r\n", - "

The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget \\(\\epsilon = \\epsilon_{\\log} + \\epsilon_{\\rm dis} + \\epsilon_{\\rm syn}\\) is uniformly distributed and applies to errors \\(\\epsilon_{\\log}\\) to implement logical qubits, an error budget \\(\\epsilon_{\\rm dis}\\) to produce T states through distillation, and an error budget \\(\\epsilon_{\\rm syn}\\) to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets \\(\\epsilon_{\\rm dis}\\) and \\(\\epsilon_{\\rm syn}\\) are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.

\n", - "\r\n", - "
Logical error probability5.00e-4\r\n", - "

Probability of at least one logical error

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
T distillation error probability5.00e-4\r\n", - "

Probability of at least one faulty T distillation

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.

\n", - "\r\n", - "
Rotation synthesis error probability0.00e0\r\n", - "

Probability of at least one failed rotation synthesis

\n", - "
\r\n", - "
\r\n", - "

This is one third of the total error budget 1.00e-3.

\n", - "\r\n", - "
\r\n", - "\r\n", - "
\r\n", - " \r\n", - " Physical qubit parameters\r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
Qubit namequbit_gate_ns_e3\r\n", - "

Some descriptive name for the qubit model

\n", - "
\r\n", - "
\r\n", - "

You can load pre-defined qubit parameters by using the names qubit_gate_ns_e3, qubit_gate_ns_e4, qubit_gate_us_e3, qubit_gate_us_e4, qubit_maj_ns_e4, or qubit_maj_ns_e6. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).

\n", - "\r\n", - "
Instruction setGateBased\r\n", - "

Underlying qubit technology (gate-based or Majorana)

\n", - "
\r\n", - "
\r\n", - "

When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either gate-based or Majorana. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.

\n", - "\r\n", - "
Single-qubit measurement time100 ns\r\n", - "

Operation time for single-qubit measurement (t_meas) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.

\n", - "\r\n", - "
Single-qubit gate time50 ns\r\n", - "

Operation time for single-qubit gate (t_gate) in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.

\n", - "\r\n", - "
Two-qubit gate time50 ns\r\n", - "

Operation time for two-qubit gate in ns

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.

\n", - "\r\n", - "
T gate time50 ns\r\n", - "

Operation time for a T gate

\n", - "
\r\n", - "
\r\n", - "

This is the operation time in nanoseconds to execute a T gate.

\n", - "\r\n", - "
Single-qubit measurement error rate0.001\r\n", - "

Error rate for single-qubit measurement

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit measurement in the Pauli basis may fail.

\n", - "\r\n", - "
Single-qubit error rate0.001\r\n", - "

Error rate for single-qubit Clifford gate (p)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.

\n", - "\r\n", - "
Two-qubit error rate0.001\r\n", - "

Error rate for two-qubit Clifford gate

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.

\n", - "\r\n", - "
T gate error rate0.001\r\n", - "

Error rate to prepare single-qubit T state or apply a T gate (p_T)

\n", - "
\r\n", - "
\r\n", - "

This is the probability in which executing a single T gate may fail.

\n", - "\r\n", - "
\r\n", - "
\r\n", - " Assumptions\r\n", - "
    \r\n", - "
  • More details on the following lists of assumptions can be found in the paper Accessing requirements for scaling quantum computers and their applications.

    \n", - "
  • \r\n", - "
  • Uniform independent physical noise. We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.

    \n", - "
  • \r\n", - "
  • Efficient classical computation. We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.

    \n", - "
  • \r\n", - "
  • Extraction circuits for planar quantum ISA. We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).

    \n", - "
  • \r\n", - "
  • Uniform independent logical noise. We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.

    \n", - "
  • \r\n", - "
  • Negligible Clifford costs for synthesis. We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.

    \n", - "
  • \r\n", - "
  • Smooth magic state consumption rate. We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.

    \n", - "
  • \r\n", - "
\r\n" - ], - "text/plain": [ - "{'errorBudget': {'logical': 0.0005, 'rotations': 0.0, 'tstates': 0.0005},\n", - " 'jobParams': {'errorBudget': 0.001,\n", - " 'qecScheme': {'crossingPrefactor': 0.03,\n", - " 'errorCorrectionThreshold': 0.01,\n", - " 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance',\n", - " 'name': 'surface_code',\n", - " 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'},\n", - " 'qubitParams': {'instructionSet': 'GateBased',\n", - " 'name': 'qubit_gate_ns_e3',\n", - " 'oneQubitGateErrorRate': 0.001,\n", - " 'oneQubitGateTime': '50 ns',\n", - " 'oneQubitMeasurementErrorRate': 0.001,\n", - " 'oneQubitMeasurementTime': '100 ns',\n", - " 'tGateErrorRate': 0.001,\n", - " 'tGateTime': '50 ns',\n", - " 'twoQubitGateErrorRate': 0.001,\n", - " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 48,\n", - " 'cczCount': 8,\n", - " 'measurementCount': 48,\n", - " 'numQubits': 15,\n", - " 'rotationCount': 0,\n", - " 'rotationDepth': 0,\n", - " 'tCount': 0},\n", - " 'logicalQubit': {'codeDistance': 11,\n", - " 'logicalCycleTime': 4400.0,\n", - " 'logicalErrorRate': 3.000000000000002e-08,\n", - " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 216,\n", - " 'algorithmicLogicalQubits': 42,\n", - " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 216,\n", - " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 19,\n", - " 'numTsPerRotation': None,\n", - " 'numTstates': 224,\n", - " 'physicalQubitsForAlgorithm': 10164,\n", - " 'physicalQubitsForTfactories': 77760,\n", - " 'requiredLogicalQubitErrorRate': 5.511463844797178e-08,\n", - " 'requiredLogicalTstateErrorRate': 2.2321428571428573e-06},\n", - " 'physicalQubits': 87924,\n", - " 'runtime': 950400},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", - " 'errorBudget': '1.00e-3',\n", - " 'errorBudgetLogical': '5.00e-4',\n", - " 'errorBudgetRotations': '0.00e0',\n", - " 'errorBudgetTstates': '5.00e-4',\n", - " 'logicalCycleTime': '4us 400ns',\n", - " 'logicalErrorRate': '3.00e-8',\n", - " 'numTsPerRotation': 'No rotations in algorithm',\n", - " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '88.44 %',\n", - " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '5.51e-8',\n", - " 'requiredLogicalTstateErrorRate': '2.23e-6',\n", - " 'runtime': '950us 400ns',\n", - " 'tfactoryRuntime': '46us 800ns',\n", - " 'tfactoryRuntimePerRound': '46us 800ns',\n", - " 'tstateLogicalErrorRate': '2.17e-6',\n", - " 'unitNamePerRound': '15-to-1 space efficient logical'},\n", - " 'reportData': {'assumptions': ['_More details on the following lists of assumptions can be found in the paper [Accessing requirements for scaling quantum computers and their applications](https://aka.ms/AQ/RE/Paper)._',\n", - " '**Uniform independent physical noise.** We assume that the noise on physical qubits and physical qubit operations is the standard circuit noise model. In particular we assume error events at different space-time locations are independent and that error rates are uniform across the system in time and space.',\n", - " '**Efficient classical computation.** We assume that classical overhead (compilation, control, feedback, readout, decoding, etc.) does not dominate the overall cost of implementing the full quantum algorithm.',\n", - " '**Extraction circuits for planar quantum ISA.** We assume that stabilizer extraction circuits with similar depth and error correction performance to those for standard surface and Hastings-Haah code patches can be constructed to implement all operations of the planar quantum ISA (instruction set architecture).',\n", - " '**Uniform independent logical noise.** We assume that the error rate of a logical operation is approximately equal to its space-time volume (the number of tiles multiplied by the number of logical time steps) multiplied by the error rate of a logical qubit in a standard one-tile patch in one logical time step.',\n", - " '**Negligible Clifford costs for synthesis.** We assume that the space overhead for synthesis and space and time overhead for transport of magic states within magic state factories and to synthesis qubits are all negligible.',\n", - " '**Smooth magic state consumption rate.** We assume that the rate of T state consumption throughout the compiled algorithm is almost constant, or can be made almost constant without significantly increasing the number of logical time steps for the algorithm.'],\n", - " 'groups': [{'alwaysVisible': True,\n", - " 'entries': [{'description': 'Number of physical qubits',\n", - " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 10164 physical qubits to implement the algorithm logic, and 77760 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'physicalCounts/physicalQubits'},\n", - " {'description': 'Total runtime',\n", - " 'explanation': 'This is a runtime estimate (in nanosecond precision) for the execution time of the algorithm. In general, the execution time corresponds to the duration of one logical cycle (4us 400ns) multiplied by the 216 logical cycles to run the algorithm. If however the duration of a single T factory (here: 46us 800ns) is larger than the algorithm runtime, we extend the number of logical cycles artificially in order to exceed the runtime of a single T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/runtime'}],\n", - " 'title': 'Physical resource estimates'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits for the algorithm after layout',\n", - " 'explanation': 'Laying out the logical qubits in the presence of nearest-neighbor constraints requires additional logical qubits. In particular, to layout the $Q_{\\\\rm alg} = 15$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 42$ logical qubits.',\n", - " 'label': 'Logical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalQubits'},\n", - " {'description': 'Number of logical cycles for the algorithm',\n", - " 'explanation': 'To execute the algorithm using _Parallel Synthesis Sequential Pauli Computation_ (PSSPC), operations are scheduled in terms of multi-qubit Pauli measurements, for which assume an execution time of one logical cycle. Based on the input algorithm, we require one multi-qubit measurement for the 48 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 8 CCZ and 48 CCiX gates in the input program, as well as No rotations in algorithm multi-qubit measurements for each of the 0 non-Clifford layers in which there is at least one single-qubit rotation with an arbitrary angle rotation.',\n", - " 'label': 'Algorithmic depth',\n", - " 'path': 'physicalCounts/breakdown/algorithmicLogicalDepth'},\n", - " {'description': 'Number of logical cycles performed',\n", - " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 216. However, in the case in which a single T factory is slower than the execution time of the algorithm, we adjust the logical cycle depth to exceed the T factory's execution time.\",\n", - " 'label': 'Logical depth',\n", - " 'path': 'physicalCounts/breakdown/logicalDepth'},\n", - " {'description': 'Number of T states consumed by the algorithm',\n", - " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 8 CCZ and 48 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\n", - " 'label': 'Number of T states',\n", - " 'path': 'physicalCounts/breakdown/numTstates'},\n", - " {'description': \"Number of T factories capable of producing the demanded 224 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 12 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{224\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 950us 400ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", - " 'label': 'Number of T factories',\n", - " 'path': 'physicalCounts/breakdown/numTfactories'},\n", - " {'description': 'Number of times all T factories are invoked',\n", - " 'explanation': 'In order to prepare the 224 T states, the 12 copies of the T factory are repeatedly invoked 19 times.',\n", - " 'label': 'Number of T factory invocations',\n", - " 'path': 'physicalCounts/breakdown/numTfactoryRuns'},\n", - " {'description': 'Number of physical qubits for the algorithm after layout',\n", - " 'explanation': 'The 10164 are the product of the 42 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\n", - " 'label': 'Physical algorithmic qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForAlgorithm'},\n", - " {'description': 'Number of physical qubits for the T factories',\n", - " 'explanation': 'Each T factory requires 6480 physical qubits and we run 12 in parallel, therefore we need $77760 = 6480 \\\\cdot 12$ qubits.',\n", - " 'label': 'Physical T factory qubits',\n", - " 'path': 'physicalCounts/breakdown/physicalQubitsForTfactories'},\n", - " {'description': 'The minimum logical qubit error rate required to run the algorithm within the error budget',\n", - " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 42 logical qubits and the total cycle count 216.',\n", - " 'label': 'Required logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalQubitErrorRate'},\n", - " {'description': 'The minimum T state error rate required for distilled T states',\n", - " 'explanation': 'The minimum T state error rate is obtained by dividing the T distillation error probability 5.00e-4 by the total number of T states 224.',\n", - " 'label': 'Required logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/requiredLogicalTstateErrorRate'},\n", - " {'description': 'Number of T states to implement a rotation with an arbitrary angle',\n", - " 'explanation': 'The number of T states to implement a rotation with an arbitrary angle is $\\\\lceil 0.53 \\\\log_2(0 / 0) + 5.3\\\\rceil$ [[arXiv:2203.10064](https://arxiv.org/abs/2203.10064)]. For simplicity, we use this formula for all single-qubit arbitrary angle rotations, and do not distinguish between best, worst, and average cases.',\n", - " 'label': 'Number of T states per rotation',\n", - " 'path': 'physicalCountsFormatted/numTsPerRotation'}],\n", - " 'title': 'Resource estimates breakdown'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Name of QEC scheme',\n", - " 'explanation': 'You can load pre-defined QEC schemes by using the name `surface_code` or `floquet_code`. The latter only works with Majorana qubits.',\n", - " 'label': 'QEC scheme',\n", - " 'path': 'jobParams/qecScheme/name'},\n", - " {'description': 'Required code distance for error correction',\n", - " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000005511463844797178)}{\\\\log(0.01/0.001)} - 1$',\n", - " 'label': 'Code distance',\n", - " 'path': 'logicalQubit/codeDistance'},\n", - " {'description': 'Number of physical qubits per logical qubit',\n", - " 'explanation': 'The number of physical qubits per logical qubit are evaluated using the formula 2 * codeDistance * codeDistance that can be user-specified.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'logicalQubit/physicalQubits'},\n", - " {'description': 'Duration of a logical cycle in nanoseconds',\n", - " 'explanation': 'The runtime of one logical cycle in nanoseconds is evaluated using the formula (4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance that can be user-specified.',\n", - " 'label': 'Logical cycle time',\n", - " 'path': 'physicalCountsFormatted/logicalCycleTime'},\n", - " {'description': 'Logical qubit error rate',\n", - " 'explanation': 'The logical qubit error rate is computed as $0.03 \\\\cdot \\\\left(\\\\dfrac{0.001}{0.01}\\\\right)^\\\\frac{11 + 1}{2}$',\n", - " 'label': 'Logical qubit error rate',\n", - " 'path': 'physicalCountsFormatted/logicalErrorRate'},\n", - " {'description': 'Crossing prefactor used in QEC scheme',\n", - " 'explanation': 'The crossing prefactor is usually extracted numerically from simulations when fitting an exponential curve to model the relationship between logical and physical error rate.',\n", - " 'label': 'Crossing prefactor',\n", - " 'path': 'jobParams/qecScheme/crossingPrefactor'},\n", - " {'description': 'Error correction threshold used in QEC scheme',\n", - " 'explanation': 'The error correction threshold is the physical error rate below which the error rate of the logical qubit is less than the error rate of the physical qubit that constitute it. This value is usually extracted numerically from simulations of the logical error rate.',\n", - " 'label': 'Error correction threshold',\n", - " 'path': 'jobParams/qecScheme/errorCorrectionThreshold'},\n", - " {'description': 'QEC scheme formula used to compute logical cycle time',\n", - " 'explanation': 'This is the formula that is used to compute the logical cycle time 4us 400ns.',\n", - " 'label': 'Logical cycle time formula',\n", - " 'path': 'jobParams/qecScheme/logicalCycleTime'},\n", - " {'description': 'QEC scheme formula used to compute number of physical qubits per logical qubit',\n", - " 'explanation': 'This is the formula that is used to compute the number of physical qubits per logical qubits 242.',\n", - " 'label': 'Physical qubits formula',\n", - " 'path': 'jobParams/qecScheme/physicalQubitsPerLogicalQubit'}],\n", - " 'title': 'Logical qubit parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of physical qubits for a single T factory',\n", - " 'explanation': 'This corresponds to the maximum number of physical qubits over all rounds of T distillation units in a T factory. A round of distillation contains of multiple copies of distillation units to achieve the required success probability of producing a T state with the expected logical T state error rate.',\n", - " 'label': 'Physical qubits',\n", - " 'path': 'tfactory/physicalQubits'},\n", - " {'description': 'Runtime of a single T factory',\n", - " 'explanation': 'The runtime of a single T factory is the accumulated runtime of executing each round in a T factory.',\n", - " 'label': 'Runtime',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntime'},\n", - " {'description': 'Number of output T states produced in a single run of T factory',\n", - " 'explanation': 'The T factory takes as input 30 noisy physical T states with an error rate of 0.001 and produces 1 T states with an error rate of 2.17e-6.',\n", - " 'label': 'Number of output T states per run',\n", - " 'path': 'tfactory/numTstates'},\n", - " {'description': 'Number of physical input T states consumed in a single run of a T factory',\n", - " 'explanation': 'This value includes the physical input T states of all copies of the distillation unit in the first round.',\n", - " 'label': 'Number of input T states per run',\n", - " 'path': 'tfactory/numInputTstates'},\n", - " {'description': 'The number of distillation rounds',\n", - " 'explanation': 'This is the number of distillation rounds. In each round one or multiple copies of some distillation unit is executed.',\n", - " 'label': 'Distillation rounds',\n", - " 'path': 'tfactory/numRounds'},\n", - " {'description': 'The number of units in each round of distillation',\n", - " 'explanation': 'This is the number of copies for the distillation units per round.',\n", - " 'label': 'Distillation units per round',\n", - " 'path': 'physicalCountsFormatted/numUnitsPerRound'},\n", - " {'description': 'The types of distillation units',\n", - " 'explanation': 'These are the types of distillation units that are executed in each round. The units can be either physical or logical, depending on what type of qubit they are operating. Space-efficient units require fewer qubits for the cost of longer runtime compared to Reed-Muller preparation units.',\n", - " 'label': 'Distillation units',\n", - " 'path': 'physicalCountsFormatted/unitNamePerRound'},\n", - " {'description': 'The code distance in each round of distillation',\n", - " 'explanation': 'This is the code distance used for the units in each round. If the code distance is 1, then the distillation unit operates on physical qubits instead of error-corrected logical qubits.',\n", - " 'label': 'Distillation code distances',\n", - " 'path': 'physicalCountsFormatted/codeDistancePerRound'},\n", - " {'description': 'The number of physical qubits used in each round of distillation',\n", - " 'explanation': 'The maximum number of physical qubits over all rounds is the number of physical qubits for the T factory, since qubits are reused by different rounds.',\n", - " 'label': 'Number of physical qubits per round',\n", - " 'path': 'physicalCountsFormatted/physicalQubitsPerRound'},\n", - " {'description': 'The runtime of each distillation round',\n", - " 'explanation': 'The runtime of the T factory is the sum of the runtimes in all rounds.',\n", - " 'label': 'Runtime per round',\n", - " 'path': 'physicalCountsFormatted/tfactoryRuntimePerRound'},\n", - " {'description': 'Logical T state error rate',\n", - " 'explanation': 'This is the logical T state error rate achieved by the T factory which is equal or smaller than the required error rate 2.23e-6.',\n", - " 'label': 'Logical T state error rate',\n", - " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", - " 'title': 'T factory parameters'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Number of logical qubits in the input quantum program',\n", - " 'explanation': 'We determine 42 from this number by assuming to align them in a 2D grid. Auxiliary qubits are added to allow for sufficient space to execute multi-qubit Pauli measurements on all or a subset of the logical qubits.',\n", - " 'label': 'Logical qubits (pre-layout)',\n", - " 'path': 'logicalCounts/numQubits'},\n", - " {'description': 'Number of T gates in the input quantum program',\n", - " 'explanation': 'This includes all T gates and adjoint T gates, but not T gates used to implement rotation gates with arbitrary angle, CCZ gates, or CCiX gates.',\n", - " 'label': 'T gates',\n", - " 'path': 'logicalCounts/tCount'},\n", - " {'description': 'Number of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all rotation gates. If an angle corresponds to a Pauli, Clifford, or T gate, it is not accounted for in this number.',\n", - " 'label': 'Rotation gates',\n", - " 'path': 'logicalCounts/rotationCount'},\n", - " {'description': 'Depth of rotation gates in the input quantum program',\n", - " 'explanation': 'This is the number of all non-Clifford layers that include at least one single-qubit rotation gate with an arbitrary angle.',\n", - " 'label': 'Rotation depth',\n", - " 'path': 'logicalCounts/rotationDepth'},\n", - " {'description': 'Number of CCZ-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCZ gates.',\n", - " 'label': 'CCZ gates',\n", - " 'path': 'logicalCounts/cczCount'},\n", - " {'description': 'Number of CCiX-gates in the input quantum program',\n", - " 'explanation': 'This is the number of CCiX gates, which applies $-iX$ controlled on two control qubits [[1212.5069](https://arxiv.org/abs/1212.5069)].',\n", - " 'label': 'CCiX gates',\n", - " 'path': 'logicalCounts/ccixCount'},\n", - " {'description': 'Number of single qubit measurements in the input quantum program',\n", - " 'explanation': 'This is the number of single qubit measurements in Pauli basis that are used in the input program. Note that all measurements are counted, however, the measurement result is is determined randomly (with a fixed seed) to be 0 or 1 with a probability of 50%.',\n", - " 'label': 'Measurement operations',\n", - " 'path': 'logicalCounts/measurementCount'}],\n", - " 'title': 'Pre-layout logical resources'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Total error budget for the algorithm',\n", - " 'explanation': \"The total error budget sets the overall allowed error for the algorithm, i.e., the number of times it is allowed to fail. Its value must be between 0 and 1 and the default value is 0.001, which corresponds to 0.1%, and means that the algorithm is allowed to fail once in 1000 executions. This parameter is highly application specific. For example, if one is running Shor's algorithm for factoring integers, a large value for the error budget may be tolerated as one can check that the output are indeed the prime factors of the input. On the other hand, a much smaller error budget may be needed for an algorithm solving a problem with a solution which cannot be efficiently verified. This budget $\\\\epsilon = \\\\epsilon_{\\\\log} + \\\\epsilon_{\\\\rm dis} + \\\\epsilon_{\\\\rm syn}$ is uniformly distributed and applies to errors $\\\\epsilon_{\\\\log}$ to implement logical qubits, an error budget $\\\\epsilon_{\\\\rm dis}$ to produce T states through distillation, and an error budget $\\\\epsilon_{\\\\rm syn}$ to synthesize rotation gates with arbitrary angles. Note that for distillation and rotation synthesis, the respective error budgets $\\\\epsilon_{\\\\rm dis}$ and $\\\\epsilon_{\\\\rm syn}$ are uniformly distributed among all T states and all rotation gates, respectively. If there are no rotation gates in the input algorithm, the error budget is uniformly distributed to logical errors and T state errors.\",\n", - " 'label': 'Total error budget',\n", - " 'path': 'physicalCountsFormatted/errorBudget'},\n", - " {'description': 'Probability of at least one logical error',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'Logical error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetLogical'},\n", - " {'description': 'Probability of at least one faulty T distillation',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3 if the input algorithm contains rotation with gates with arbitrary angles, or one half of it, otherwise.',\n", - " 'label': 'T distillation error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetTstates'},\n", - " {'description': 'Probability of at least one failed rotation synthesis',\n", - " 'explanation': 'This is one third of the total error budget 1.00e-3.',\n", - " 'label': 'Rotation synthesis error probability',\n", - " 'path': 'physicalCountsFormatted/errorBudgetRotations'}],\n", - " 'title': 'Assumed error budget'},\n", - " {'alwaysVisible': False,\n", - " 'entries': [{'description': 'Some descriptive name for the qubit model',\n", - " 'explanation': 'You can load pre-defined qubit parameters by using the names `qubit_gate_ns_e3`, `qubit_gate_ns_e4`, `qubit_gate_us_e3`, `qubit_gate_us_e4`, `qubit_maj_ns_e4`, or `qubit_maj_ns_e6`. The names of these pre-defined qubit parameters indicate the instruction set (gate-based or Majorana), the operation speed (ns or µs regime), as well as the fidelity (e.g., e3 for $10^{-3}$ gate error rates).',\n", - " 'label': 'Qubit name',\n", - " 'path': 'jobParams/qubitParams/name'},\n", - " {'description': 'Underlying qubit technology (gate-based or Majorana)',\n", - " 'explanation': 'When modeling the physical qubit abstractions, we distinguish between two different physical instruction sets that are used to operate the qubits. The physical instruction set can be either *gate-based* or *Majorana*. A gate-based instruction set provides single-qubit measurement, single-qubit gates (incl. T gates), and two-qubit gates. A Majorana instruction set provides a physical T gate, single-qubit measurement and two-qubit joint measurement operations.',\n", - " 'label': 'Instruction set',\n", - " 'path': 'jobParams/qubitParams/instructionSet'},\n", - " {'description': 'Operation time for single-qubit measurement (t_meas) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit measurement in the Pauli basis.',\n", - " 'label': 'Single-qubit measurement time',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementTime'},\n", - " {'description': 'Operation time for single-qubit gate (t_gate) in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a single-qubit Clifford operation, e.g., Hadamard or Phase gates.',\n", - " 'label': 'Single-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateTime'},\n", - " {'description': 'Operation time for two-qubit gate in ns',\n", - " 'explanation': 'This is the operation time in nanoseconds to perform a two-qubit Clifford operation, e.g., a CNOT or CZ gate.',\n", - " 'label': 'Two-qubit gate time',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateTime'},\n", - " {'description': 'Operation time for a T gate',\n", - " 'explanation': 'This is the operation time in nanoseconds to execute a T gate.',\n", - " 'label': 'T gate time',\n", - " 'path': 'jobParams/qubitParams/tGateTime'},\n", - " {'description': 'Error rate for single-qubit measurement',\n", - " 'explanation': 'This is the probability in which a single-qubit measurement in the Pauli basis may fail.',\n", - " 'label': 'Single-qubit measurement error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitMeasurementErrorRate'},\n", - " {'description': 'Error rate for single-qubit Clifford gate (p)',\n", - " 'explanation': 'This is the probability in which a single-qubit Clifford operation, e.g., Hadamard or Phase gates, may fail.',\n", - " 'label': 'Single-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/oneQubitGateErrorRate'},\n", - " {'description': 'Error rate for two-qubit Clifford gate',\n", - " 'explanation': 'This is the probability in which a two-qubit Clifford operation, e.g., CNOT or CZ gates, may fail.',\n", - " 'label': 'Two-qubit error rate',\n", - " 'path': 'jobParams/qubitParams/twoQubitGateErrorRate'},\n", - " {'description': 'Error rate to prepare single-qubit T state or apply a T gate (p_T)',\n", - " 'explanation': 'This is the probability in which executing a single T gate may fail.',\n", - " 'label': 'T gate error rate',\n", - " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", - " 'title': 'Physical qubit parameters'}]},\n", - " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [9],\n", - " 'logicalErrorRate': 2.165000000000001e-06,\n", - " 'numInputTstates': 30,\n", - " 'numRounds': 1,\n", - " 'numTstates': 1,\n", - " 'numUnitsPerRound': [2],\n", - " 'physicalQubits': 6480,\n", - " 'physicalQubitsPerRound': [6480],\n", - " 'runtime': 46800.0,\n", - " 'runtimePerRound': [46800.0],\n", - " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" - ] - }, - "execution_count": 94, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# If you need to pull up the results of an old job, use its job ID with qsharp.azure.output command\n", - "# result = qsharp.azure.output(\"...\")\n", - "result" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [], - "source": [ - "# The function that extracts the relevant resource information from the resource estimation job results and produces your absolute score.\n", - "def evaluate_results(res) : \n", - " width = res['physicalCounts']['breakdown']['algorithmicLogicalQubits']\n", - " depth = res['physicalCounts']['breakdown']['algorithmicLogicalDepth']\n", - " print(f\"Logical algorithmic qubits = {width}\")\n", - " print(f\"Algorithmic depth = {depth}\")\n", - " print(f\"Score = {width * depth}\")\n", - " return width * depth\n" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false, - "source_hidden": false - }, - "nteract": { - "transient": { - "deleting": false - } - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Logical algorithmic qubits = 42\n", - "Algorithmic depth = 216\n", - "Score = 9072\n" - ] - }, - { - "data": { - "text/plain": [ - "9072" - ] - }, - "execution_count": 96, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "evaluate_results(result)" - ] - } - ], - "metadata": { - "kernel_info": { - "name": "python3" - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - }, - "nteract": { - "version": "nteract-front-end@1.0.0" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} From 1e9463544306b712fd17d9f5cef93c3bcee3a797 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 20:44:22 +0530 Subject: [PATCH 23/27] Create README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c2b7a6e --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# 2023_Microsoft +Microsoft iQuHACK 2023 Remote Challenge + +Team Qubitrons From 08600ea1bf03b879306851ca00f661348491e96f Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 21:04:36 +0530 Subject: [PATCH 24/27] Update iQuHack-challenge-2023-task3.ipynb --- team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb index 5681c60..4570fe2 100644 --- a/team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task3.ipynb @@ -144,7 +144,7 @@ }, "outputs": [], "source": [ - "teamname=\"Quibitrons\" # Update this field with your team name\n", + "teamname=\"Qubitrons\" # Update this field with your team name\n", "task=[\"task3\"]\n", "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] From 7f1a97d5747c2e955a1229418ea5394f8a8bd622 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 21:05:17 +0530 Subject: [PATCH 25/27] Update iQuHack-challenge-2023-task4.ipynb --- team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb index e3b5d78..1a63e2a 100644 --- a/team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task4.ipynb @@ -144,7 +144,7 @@ }, "outputs": [], "source": [ - "teamname=\"Quibitrons\" # Update this field with your team name\n", + "teamname=\"Qubitrons\" # Update this field with your team name\n", "task=[\"task4\"]\n", "slack_id=\"U04KPA19P2T\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] From 9326848564fdcf5f3fdcf8e7a4de75834a013702 Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 21:06:12 +0530 Subject: [PATCH 26/27] Update iQuHack-challenge-2023-task9.ipynb --- team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb b/team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb index 196fe6a..503fef3 100644 --- a/team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb +++ b/team_solutions/Qubitrons/iQuHack-challenge-2023-task9.ipynb @@ -144,7 +144,7 @@ }, "outputs": [], "source": [ - "teamname=\"Quibitrons\" # Update this field with your team name\n", + "teamname=\"Qubitrons\" # Update this field with your team name\n", "task=[\"task9\"]\n", "slack_id=\"U04KPA75DGX\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] From bc78c69db9b4a574ff285e4e2d423ec74eaa200e Mon Sep 17 00:00:00 2001 From: Krishna Priyatham Potluri Date: Sun, 29 Jan 2023 21:06:39 +0530 Subject: [PATCH 27/27] Delete sample.txt --- team_solutions/Qubitrons/sample.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 team_solutions/Qubitrons/sample.txt diff --git a/team_solutions/Qubitrons/sample.txt b/team_solutions/Qubitrons/sample.txt deleted file mode 100644 index 8b13789..0000000 --- a/team_solutions/Qubitrons/sample.txt +++ /dev/null @@ -1 +0,0 @@ -