From ebf270b9dd464cad266cde7d215a7ac1ea96c8f2 Mon Sep 17 00:00:00 2001 From: Hamish Hall Date: Sun, 29 Jan 2023 10:00:58 +0000 Subject: [PATCH 1/7] checkpoint --- .ipynb_checkpoints/README-checkpoint.md | 78 + ...Hack-challenge-2023-task1-checkpoint.ipynb | 447 + ...Hack-challenge-2023-task2-checkpoint.ipynb | 448 + ...Hack-challenge-2023-task3-checkpoint.ipynb | 440 + ...Hack-challenge-2023-task4-checkpoint.ipynb | 5037 +++++++++++ ...Hack-challenge-2023-task5-checkpoint.ipynb | 440 + ...Hack-challenge-2023-task6-checkpoint.ipynb | 440 + ...Hack-challenge-2023-task7-checkpoint.ipynb | 440 + ...Hack-challenge-2023-task8-checkpoint.ipynb | 443 + ...Hack-challenge-2023-task9-checkpoint.ipynb | 440 + iQuHack-challenge-2023-task1.ipynb | 1530 +++- iQuHack-challenge-2023-task2.ipynb | 3001 ++++++- iQuHack-challenge-2023-task3.ipynb | 4607 +++++++++- iQuHack-challenge-2023-task4.ipynb | 4650 +++++++++- iQuHack-challenge-2023-task5.ipynb | 3002 ++++++- iQuHack-challenge-2023-task6.ipynb | 7953 ++++++++++++++++- iQuHack-challenge-2023-task8.ipynb | 4629 +++++++++- obj/__entrypoint__.dll | Bin 0 -> 228352 bytes obj/__entrypoint__snippets__.dll | Bin 0 -> 106496 bytes obj/__snippets__.dll | Bin 0 -> 105984 bytes 20 files changed, 37843 insertions(+), 182 deletions(-) create mode 100644 .ipynb_checkpoints/README-checkpoint.md create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task4-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb create mode 100644 .ipynb_checkpoints/iQuHack-challenge-2023-task9-checkpoint.ipynb create mode 100644 obj/__entrypoint__.dll create mode 100644 obj/__entrypoint__snippets__.dll create mode 100644 obj/__snippets__.dll diff --git a/.ipynb_checkpoints/README-checkpoint.md b/.ipynb_checkpoints/README-checkpoint.md new file mode 100644 index 0000000..58743d7 --- /dev/null +++ b/.ipynb_checkpoints/README-checkpoint.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/.ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb new file mode 100644 index 0000000..6042c2b --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb @@ -0,0 +1,447 @@ +{ + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb new file mode 100644 index 0000000..44cc5cd --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb @@ -0,0 +1,448 @@ +{ + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb new file mode 100644 index 0000000..77ca776 --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb @@ -0,0 +1,440 @@ +{ + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task4-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task4-checkpoint.ipynb new file mode 100644 index 0000000..2779048 --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task4-checkpoint.ipynb @@ -0,0 +1,5037 @@ +{ + "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": 1, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AXM2895LG to authenticate.\u001b[0m\n", + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"id\": \"7fc54e95-14cf-4a6f-b50e-d6155c241309\",\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 subscription 1\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"user\": {\n", + " \"name\": \"hachall@hotmail.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": 2, + "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": 3, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task4\"]\n", + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "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": 9, + "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", + "open Microsoft.Quantum.Arrays;\n", + "\n", + "// Task 4. \n", + "// (input will contain 7 qubits)\n", + "operation original(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", + "}\n", + "\n", + "operation mod3adder (reg : Qubit[]) : Unit is Adj+Ctl {\n", + " let sum = reg[0];\n", + " let carry = reg[1];\n", + " ControlledOnInt(0, X)([carry], sum);\n", + " ControlledOnInt(0, X)([sum], carry);\n", + "}\n", + "\n", + "operation Task4(input : Qubit[], target : Qubit) : Unit is Adj+Ctl {\n", + " use output = Qubit[2] {\n", + " within {\n", + " for i in 0 .. Length(input) - 1 { // starting from LSB\n", + " if (i % 2 == 0) {\n", + " Controlled mod3adder([input[i]], output);\n", + " } else {\n", + " Controlled Adjoint mod3adder([input[i]], output);\n", + " }\n", + " }\n", + " } apply {\n", + " ControlledOnInt(0, X)(output, target);\n", + " }\n", + "\n", + " }\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(7+1, QubitArrayWrapperOperation(Task4, _), QubitArrayWrapperOperation (original, _));\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "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": 43, + "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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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|0000011100000000\\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|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|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|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|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|0010101100000000\\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|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|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|0100001100000000\\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|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|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|0101101100000000\\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|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|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|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|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|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|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|1000101100000000\\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|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|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|1010001100000000\\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|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|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|1011101100000000\\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|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|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|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|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|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|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|1110101100000000\\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|1111011100000000\\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", + "|0000011100000000⟩\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", + "|0001001100000000⟩\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", + "|0001111100000000⟩\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", + "|0010101100000000⟩\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", + "|0011011100000000⟩\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", + "|0100001100000000⟩\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", + "|0100111100000000⟩\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", + "|0101101100000000⟩\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", + "|0110011100000000⟩\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", + "|0111001100000000⟩\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", + "|0111111100000000⟩\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", + "|1000101100000000⟩\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", + "|1001011100000000⟩\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", + "|1010001100000000⟩\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", + "|1010111100000000⟩\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", + "|1011101100000000⟩\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", + "|1100011100000000⟩\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", + "|1101001100000000⟩\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", + "|1101111100000000⟩\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", + "|1110101100000000⟩\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", + "|1111011100000000⟩\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": 43, + "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": 44, + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 295782},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 356057},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 200},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 200},\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": 44, + "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/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", + " credential=\"CLI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "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": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "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: cf53f47e-8a14-4d2c-b8a2-f6297837511e\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[5:07:17 AM] Current job status: Executing\n", + "[5:07:22 AM] 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": 47, + "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\":0,\"cczCount\":29,\"measurementCount\":0,\"numQubits\":10,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":87,\"algorithmicLogicalQubits\":30,\"cliffordErrorRate\":0.001,\"logicalDepth\":87,\"numTfactories\":15,\"numTfactoryRuns\":8,\"numTsPerRotation\":null,\"numTstates\":116,\"physicalQubitsForAlgorithm\":7260,\"physicalQubitsForTfactories\":97200,\"requiredLogicalQubitErrorRate\":1.9157088122605365E-07,\"requiredLogicalTstateErrorRate\":4.310344827586207E-06},\"physicalQubits\":104460,\"runtime\":382800},\"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\":\"93.05 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.92e-7\",\"requiredLogicalTstateErrorRate\":\"4.31e-6\",\"runtime\":\"382us 800ns\",\"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 7260 physical qubits to implement the algorithm logic, and 97200 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 87 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} = 10$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 30$ 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 29 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 87. 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 29 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 116 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{116\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 382us 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 116 T states, the 15 copies of the T factory are repeatedly invoked 8 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7260 are the product of the 30 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 30 logical qubits and the total cycle count 87.\",\"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 116.\",\"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.00000019157088122605365)}{\\\\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 4.31e-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 30 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 qubits104460\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 7260 physical qubits to implement the algorithm logic, and 97200 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime382us 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 (4us 400ns) multiplied by the 87 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 qubits30\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} = 10\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 30$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth87\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 29 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 depth87\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 87. 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 states116\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 29 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 factories15\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

In order to prepare the 116 T states, the 15 copies of the T factory are repeatedly invoked 8 times.

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits97200\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 15 in parallel, therefore we need $97200 = 6480 \\cdot 15$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate1.92e-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 30 logical qubits and the total cycle count 87.

\n", + "\r\n", + "
Required logical T state error rate4.31e-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 116.

\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.00000019157088122605365)}{\\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 4.31e-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)10\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 30 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 gates29\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" + ], + "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': 29,\n", + " 'measurementCount': 0,\n", + " 'numQubits': 10,\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': 87,\n", + " 'algorithmicLogicalQubits': 30,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 87,\n", + " 'numTfactories': 15,\n", + " 'numTfactoryRuns': 8,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 116,\n", + " 'physicalQubitsForAlgorithm': 7260,\n", + " 'physicalQubitsForTfactories': 97200,\n", + " 'requiredLogicalQubitErrorRate': 1.9157088122605365e-07,\n", + " 'requiredLogicalTstateErrorRate': 4.310344827586207e-06},\n", + " 'physicalQubits': 104460,\n", + " 'runtime': 382800},\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': '93.05 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '1.92e-7',\n", + " 'requiredLogicalTstateErrorRate': '4.31e-6',\n", + " 'runtime': '382us 800ns',\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 7260 physical qubits to implement the algorithm logic, and 97200 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 87 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} = 10$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 30$ 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 29 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 87. 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 29 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 116 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{116\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 382us 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 116 T states, the 15 copies of the T factory are repeatedly invoked 8 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 7260 are the product of the 30 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 30 logical qubits and the total cycle count 87.',\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 116.',\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.00000019157088122605365)}{\\\\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 4.31e-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 30 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": 47, + "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": 48, + "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": 49, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 30\n", + "Algorithmic depth = 87\n", + "Score = 2610\n" + ] + }, + { + "data": { + "text/plain": [ + "2610" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 [Q#]", + "language": "python", + "name": "python3_qsharp_b54crn" + }, + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb new file mode 100644 index 0000000..85e5038 --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb @@ -0,0 +1,440 @@ +{ + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb new file mode 100644 index 0000000..4d2f2c8 --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb @@ -0,0 +1,440 @@ +{ + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb new file mode 100644 index 0000000..2670c29 --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb @@ -0,0 +1,440 @@ +{ + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb new file mode 100644 index 0000000..a84b05a --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb @@ -0,0 +1,443 @@ +{ + "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 +} diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task9-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task9-checkpoint.ipynb new file mode 100644 index 0000000..eea076e --- /dev/null +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task9-checkpoint.ipynb @@ -0,0 +1,440 @@ +{ + "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 +} diff --git a/iQuHack-challenge-2023-task1.ipynb b/iQuHack-challenge-2023-task1.ipynb index 6042c2b..6899603 100644 --- a/iQuHack-challenge-2023-task1.ipynb +++ b/iQuHack-challenge-2023-task1.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -47,7 +47,41 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code RGGYKHPB3 to authenticate.\u001b[0m\n", + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"id\": \"7fc54e95-14cf-4a6f-b50e-d6155c241309\",\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 subscription 1\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"user\": {\n", + " \"name\": \"hachall@hotmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + } + ], "source": [ "!az login" ] @@ -67,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -90,6 +124,13 @@ { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +145,14 @@ }, "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" + "teamname=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task6\"]\n", + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { @@ -169,10 +210,11 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\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", + "operation original(input : Qubit[], target : Qubit) : Unit is Adj {\n", " let N = Length(input);\n", " use aux = Qubit[N - 1];\n", " within {\n", @@ -183,12 +225,37 @@ " } apply {\n", " Controlled X(aux, target);\n", " }\n", + "}\n", + "\n", + "operation Task1(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " CNOT(input[1], input[0]);\n", + " CNOT(input[1], input[2]);\n", + " CCNOT(input[0], input[2], target);\n", + " CNOT(input[1], input[0]);\n", + " CNOT(input[1], input[2]);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(3+1, QubitArrayWrapperOperation(Task1, _), QubitArrayWrapperOperation (original, _));\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { @@ -245,7 +312,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { @@ -258,13 +325,260 @@ } } }, - "outputs": [], + "outputs": [ + { + "data": { + "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}}}", + "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", + " \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|0010\\right\\rangle$$0.3536 + 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|1000\\right\\rangle$$0.3536 + 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|1110\\right\\rangle$$0.3536 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000⟩\t0.35355339059327384 + 0𝑖\n", + "|0010⟩\t0.35355339059327384 + 0𝑖\n", + "|0101⟩\t0.35355339059327384 + 0𝑖\n", + "|0110⟩\t0.35355339059327384 + 0𝑖\n", + "|1000⟩\t0.35355339059327384 + 0𝑖\n", + "|1011⟩\t0.35355339059327384 + 0𝑖\n", + "|1100⟩\t0.35355339059327384 + 0𝑖\n", + "|1110⟩\t0.35355339059327384 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 22, + "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", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", "Task1_DumpMachineWrapper.simulate()" ] }, @@ -283,7 +597,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { @@ -296,19 +610,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 165633},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 398028},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 180},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 180},\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": 23, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { @@ -321,14 +684,33 @@ } } }, - "outputs": [], + "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": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "metadata": { "collapsed": false, "jupyter": { @@ -341,7 +723,21 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task1_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 1\n", + " Job ID: 8dfa4a14-f799-49f9-98b5-d62cd808a86f\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[9:45:41 AM] Current job status: Executing\n", + "[9:45:46 AM] 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(Task1_ResourceEstimationWrapper, jobName=\"RE for the task 1\")" @@ -349,7 +745,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { @@ -362,7 +758,1051 @@ } } }, - "outputs": [], + "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\":0,\"cczCount\":1,\"measurementCount\":0,\"numQubits\":4,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":3,\"algorithmicLogicalQubits\":15,\"cliffordErrorRate\":0.001,\"logicalDepth\":13,\"numTfactories\":4,\"numTfactoryRuns\":1,\"numTsPerRotation\":null,\"numTstates\":4,\"physicalQubitsForAlgorithm\":2430,\"physicalQubitsForTfactories\":15680,\"requiredLogicalQubitErrorRate\":2.564102564102564E-06,\"requiredLogicalTstateErrorRate\":0.000125},\"physicalQubits\":18110,\"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\":\"86.58 %\",\"physicalQubitsPerRound\":\"3920\",\"requiredLogicalQubitErrorRate\":\"2.56e-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 2430 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} = 4$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 15$ 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 2430 are the product of the 15 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 15 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.000002564102564102564)}{\\\\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 15 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\"]}}", + "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 qubits18110\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 2430 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 qubits15\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} = 4\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 15$ 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 qubits2430\r\n", + "

Number of physical qubits for the algorithm after layout

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

The 2430 are the product of the 15 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 rate2.56e-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 15 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.000002564102564102564)}{\\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)4\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 15 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" + ], + "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': 4,\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': 15,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 13,\n", + " 'numTfactories': 4,\n", + " 'numTfactoryRuns': 1,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 4,\n", + " 'physicalQubitsForAlgorithm': 2430,\n", + " 'physicalQubitsForTfactories': 15680,\n", + " 'requiredLogicalQubitErrorRate': 2.564102564102564e-06,\n", + " 'requiredLogicalTstateErrorRate': 0.000125},\n", + " 'physicalQubits': 18110,\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': '86.58 %',\n", + " 'physicalQubitsPerRound': '3920',\n", + " 'requiredLogicalQubitErrorRate': '2.56e-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 2430 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} = 4$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 15$ 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 2430 are the product of the 15 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 15 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.000002564102564102564)}{\\\\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 15 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']}}" + ] + }, + "execution_count": 26, + "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", @@ -371,7 +1811,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { @@ -398,7 +1838,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "metadata": { "collapsed": false, "jupyter": { @@ -411,10 +1851,44 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 15\n", + "Algorithmic depth = 3\n", + "Score = 45\n" + ] + }, + { + "data": { + "text/plain": [ + "45" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -422,9 +1896,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/iQuHack-challenge-2023-task2.ipynb b/iQuHack-challenge-2023-task2.ipynb index 44cc5cd..01cf0da 100644 --- a/iQuHack-challenge-2023-task2.ipynb +++ b/iQuHack-challenge-2023-task2.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -47,7 +47,41 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code F88GK2SR2 to authenticate.\u001b[0m\n", + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"id\": \"7fc54e95-14cf-4a6f-b50e-d6155c241309\",\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 subscription 1\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"user\": {\n", + " \"name\": \"hachall@hotmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + } + ], "source": [ "!az login" ] @@ -67,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -80,7 +114,16 @@ } } }, - "outputs": [], + "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", @@ -89,7 +132,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +147,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +191,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -164,15 +207,25 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "/snippet_.qs(18,9): warning QS3306: Deprecated syntax. Parentheses here are no longer required and will not be supported in the future.\n" + ] + } + ], "source": [ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", + "open Microsoft.Quantum.Bitwise;\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", + "\n", + "operation old(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", @@ -184,12 +237,44 @@ " ControlledOnInt( 1, X)(input, target); // A\n", " ControlledOnInt( 3, X)(input, target); // C\n", " ControlledOnInt(11, X)(input, target); // K\n", - "}" + "}\n", + "\n", + "operation Task2(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " ControlledOnInt(13, X)(input, target); // M\n", + "\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", + "\n", + " for (index in 0 .. Length(input) - 1) {\n", + " X(input[index]);\n", + " }\n", + " ControlledOnInt(11, X)(input, target); // T (flipped)\n", + "}\n", + "\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "UsageError: Cell magic `%%qsharp` not found.\n" + ] + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -246,7 +331,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -259,7 +344,1710 @@ } } }, - "outputs": [], + "outputs": [ + { + "data": { + "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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"2\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"3\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"9\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"10\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"22\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"23\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"29\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"34\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"35\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"50\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"63\":{\"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", + " \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.1768 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|000101\\right\\rangle$$0.0000 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|001111\\right\\rangle$$0.1768 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|010101\\right\\rangle$$0.1768 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

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

\r\n", + "

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

\r\n", + "

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

\r\n", + "

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

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|100011\\right\\rangle$$0.0000 + 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.1768 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|101101\\right\\rangle$$0.0000 + 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.1768 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|110001\\right\\rangle$$0.0000 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|111011\\right\\rangle$$0.1768 + 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", + "
" + ], + "text/plain": [ + "|000000⟩\t0.17677669529663698 + 0𝑖\n", + "|000001⟩\t0 + 0𝑖\n", + "|000010⟩\t0.17677669529663698 + 0𝑖\n", + "|000011⟩\t0 + 0𝑖\n", + "|000100⟩\t0.17677669529663698 + 0𝑖\n", + "|000101⟩\t0 + 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 + 0𝑖\n", + "|001111⟩\t0.17677669529663698 + 0𝑖\n", + "|010000⟩\t0.17677669529663698 + 0𝑖\n", + "|010001⟩\t0 + 0𝑖\n", + "|010010⟩\t0 + 0𝑖\n", + "|010011⟩\t0.17677669529663698 + 0𝑖\n", + "|010100⟩\t0 + 0𝑖\n", + "|010101⟩\t0.17677669529663698 + 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 + 0𝑖\n", + "|011101⟩\t0.17677669529663698 + 0𝑖\n", + "|011110⟩\t0 + 0𝑖\n", + "|011111⟩\t0.17677669529663698 + 0𝑖\n", + "|100000⟩\t0.17677669529663698 + 0𝑖\n", + "|100001⟩\t0 + 0𝑖\n", + "|100010⟩\t0.17677669529663698 + 0𝑖\n", + "|100011⟩\t0 + 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.17677669529663698 + 0𝑖\n", + "|101011⟩\t0 + 0𝑖\n", + "|101100⟩\t0.17677669529663698 + 0𝑖\n", + "|101101⟩\t0 + 0𝑖\n", + "|101110⟩\t0.17677669529663698 + 0𝑖\n", + "|101111⟩\t0 + 0𝑖\n", + "|110000⟩\t0.17677669529663698 + 0𝑖\n", + "|110001⟩\t0 + 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 + 0𝑖\n", + "|111011⟩\t0.17677669529663698 + 0𝑖\n", + "|111100⟩\t0.17677669529663698 + 0𝑖\n", + "|111101⟩\t0 + 0𝑖\n", + "|111110⟩\t0.17677669529663698 + 0𝑖\n", + "|111111⟩\t0 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 12, + "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", @@ -284,7 +2072,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -297,19 +2085,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 278400},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 408469},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 257411},\n", + " {'id': 'quantinuum.hqs-lt-s1-apival', 'current_availability': {}, 'average_queue_time': 0},\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': 4298},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 139},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 257411},\n", + " {'id': 'quantinuum.sim.h1-1sc', 'current_availability': {}, 'average_queue_time': 0},\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': 4298},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 139},\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": 13, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -322,14 +2159,33 @@ } } }, - "outputs": [], + "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": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -342,7 +2198,21 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task2_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 2\n", + " Job ID: 5d90fa2d-f0ad-4caf-a994-eccabd42cb19\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[10:17:52 PM] Current job status: Waiting\n", + "[10:17:57 PM] 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(Task2_ResourceEstimationWrapper, jobName=\"RE for the task 2\")" @@ -350,7 +2220,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { @@ -363,7 +2233,1051 @@ } } }, - "outputs": [], + "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\":24,\"cczCount\":8,\"measurementCount\":24,\"numQubits\":9,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":120,\"algorithmicLogicalQubits\":28,\"cliffordErrorRate\":0.001,\"logicalDepth\":120,\"numTfactories\":12,\"numTfactoryRuns\":11,\"numTsPerRotation\":null,\"numTstates\":128,\"physicalQubitsForAlgorithm\":6776,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.4880952380952382E-07,\"requiredLogicalTstateErrorRate\":3.90625E-06},\"physicalQubits\":84536,\"runtime\":528000},\"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.49e-7\",\"requiredLogicalTstateErrorRate\":\"3.91e-6\",\"runtime\":\"528us\",\"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 120 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 24 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 24 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 120. 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 24 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 128 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{128\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 528us\\\\;\\\\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 128 T states, the 12 copies of the T factory are repeatedly invoked 11 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 120.\",\"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 128.\",\"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.00000014880952380952382)}{\\\\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.91e-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\"]}}", + "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", + "
Runtime528us\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 120 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 depth120\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 24 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 24 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 depth120\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 120. 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 states128\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 24 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 128 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{128\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 528us\\;\\text{algorithm runtime}}\\right\\rceil\\)

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

Number of times all T factories are invoked

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

In order to prepare the 128 T states, the 12 copies of the T factory are repeatedly invoked 11 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.49e-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 120.

\n", + "\r\n", + "
Required logical T state error rate3.91e-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 128.

\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.00000014880952380952382)}{\\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.91e-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 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 gates24\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 operations24\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': 24,\n", + " 'cczCount': 8,\n", + " 'measurementCount': 24,\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': 120,\n", + " 'algorithmicLogicalQubits': 28,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 120,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 11,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 128,\n", + " 'physicalQubitsForAlgorithm': 6776,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 1.4880952380952382e-07,\n", + " 'requiredLogicalTstateErrorRate': 3.90625e-06},\n", + " 'physicalQubits': 84536,\n", + " 'runtime': 528000},\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.49e-7',\n", + " 'requiredLogicalTstateErrorRate': '3.91e-6',\n", + " 'runtime': '528us',\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 120 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 24 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 24 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 120. 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 24 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 128 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{128\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 528us\\\\;\\\\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 128 T states, the 12 copies of the T factory are repeatedly invoked 11 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 120.',\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 128.',\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.00000014880952380952382)}{\\\\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.91e-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']}}" + ] + }, + "execution_count": 16, + "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", @@ -372,7 +3286,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { @@ -399,7 +3313,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { @@ -412,10 +3326,37 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 28\n", + "Algorithmic depth = 120\n", + "Score = 3360\n" + ] + }, + { + "data": { + "text/plain": [ + "3360" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -423,9 +3364,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/iQuHack-challenge-2023-task3.ipynb b/iQuHack-challenge-2023-task3.ipynb index 77ca776..77007c4 100644 --- a/iQuHack-challenge-2023-task3.ipynb +++ b/iQuHack-challenge-2023-task3.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -80,7 +80,15 @@ } } }, - "outputs": [], + "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", @@ -89,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -172,16 +180,38 @@ "\n", "// Task 3. \n", "// (input will contain 6 qubits)\n", - "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", - "}" + "}\n", + "\n", + "operation CarryN(carryIn: Qubit, summand1: Qubit, summand2: Qubit, carryOut: Qubit) : Unit is Adj + Ctl {\n", + " CCNOT (summand1, summand2, carryOut);\n", + " CNOT (summand1, summand2);\n", + " CCNOT (carryIn, summand2, carryOut);\n", + " CNOT(carryIn, summand2);\n", + "}\n", + "\n", + "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " use output = Qubit[Length(input)+1] {\n", + " within {\n", + " output[0] = input[0]\n", + " for i in 1 .. Length(input) - 1 { \n", + " \n", + " }\n", + " } apply {\n", + " ControlledOnInt(3, X)(output, target);\n", + " }\n", + "\n", + " }\n", + "}\n", + "\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +281,3374 @@ } } }, - "outputs": [], + "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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"36\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.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.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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.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.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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010111\\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|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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011101\\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|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.0000 + 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.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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000111\\right\\rangle$$0.1250 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001101\\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|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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|1010100\\right\\rangle$$0.0000 + 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|1010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|1011001\\right\\rangle$$0.1250 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|1100101\\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|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 + 0𝑖\n", + "|0010111⟩\t0.12500000000000008 + 0𝑖\n", + "|0011000⟩\t0.12500000000000008 + 0𝑖\n", + "|0011001⟩\t0 + 0𝑖\n", + "|0011010⟩\t0 + 0𝑖\n", + "|0011011⟩\t0.12500000000000008 + 0𝑖\n", + "|0011100⟩\t0 + 0𝑖\n", + "|0011101⟩\t0.12500000000000008 + 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 + 0𝑖\n", + "|0101011⟩\t0.12500000000000008 + 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 + 0𝑖\n", + "|1000111⟩\t0.12500000000000008 + 0𝑖\n", + "|1001000⟩\t0.12500000000000008 + 0𝑖\n", + "|1001001⟩\t0 + 0𝑖\n", + "|1001010⟩\t0 + 0𝑖\n", + "|1001011⟩\t0.12500000000000008 + 0𝑖\n", + "|1001100⟩\t0 + 0𝑖\n", + "|1001101⟩\t0.12500000000000008 + 0𝑖\n", + "|1001110⟩\t0.12500000000000008 + 0𝑖\n", + "|1001111⟩\t0 + 0𝑖\n", + "|1010000⟩\t0.12500000000000008 + 0𝑖\n", + "|1010001⟩\t0 + 0𝑖\n", + "|1010010⟩\t0 + 0𝑖\n", + "|1010011⟩\t0.12500000000000008 + 0𝑖\n", + "|1010100⟩\t0 + 0𝑖\n", + "|1010101⟩\t0.12500000000000008 + 0𝑖\n", + "|1010110⟩\t0.12500000000000008 + 0𝑖\n", + "|1010111⟩\t0 + 0𝑖\n", + "|1011000⟩\t0 + 0𝑖\n", + "|1011001⟩\t0.12500000000000008 + 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 + 0𝑖\n", + "|1100011⟩\t0.12500000000000008 + 0𝑖\n", + "|1100100⟩\t0 + 0𝑖\n", + "|1100101⟩\t0.12500000000000008 + 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": 6, + "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", @@ -276,7 +3673,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +3686,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 305641},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 361199},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 184},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 184},\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": 8, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +3760,33 @@ } } }, - "outputs": [], + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +3799,21 @@ } } }, - "outputs": [], + "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: 4ac53537-57cd-424e-9937-c6019dacbc0a\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[6:25:13 AM] Current job status: Executing\n", + "[6:25:18 AM] 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\")" @@ -342,7 +3821,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +3834,1051 @@ } } }, - "outputs": [], + "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\":80,\"cczCount\":20,\"measurementCount\":80,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":380,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":380,\"numTfactories\":14,\"numTfactoryRuns\":29,\"numTsPerRotation\":null,\"numTstates\":400,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":135520,\"requiredLogicalQubitErrorRate\":3.987240829346092E-08,\"requiredLogicalTstateErrorRate\":1.25E-06},\"physicalQubits\":143506,\"runtime\":1672000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"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\":\"94.44 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"3.99e-8\",\"requiredLogicalTstateErrorRate\":\"1.25e-6\",\"runtime\":\"1ms 672us\",\"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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.\",\"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 400.\",\"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.00000003987240829346092)}{\\\\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.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.25e-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\":[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", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Physical qubits143506\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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime1ms 672us\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 380 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 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 depth380\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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 depth380\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 380. 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 states400\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 20 CCZ and 80 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 factories14\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

In order to prepare the 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 qubits135520\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 14 in parallel, therefore we need $135520 = 9680 \\cdot 14$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate3.99e-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 380.

\n", + "\r\n", + "
Required logical T state error rate1.25e-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 400.

\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.00000003987240829346092)}{\\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 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.25e-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 gates20\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 gates80\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 operations80\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': 80,\n", + " 'cczCount': 20,\n", + " 'measurementCount': 80,\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': 380,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 380,\n", + " 'numTfactories': 14,\n", + " 'numTfactoryRuns': 29,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 400,\n", + " 'physicalQubitsForAlgorithm': 7986,\n", + " 'physicalQubitsForTfactories': 135520,\n", + " 'requiredLogicalQubitErrorRate': 3.987240829346092e-08,\n", + " 'requiredLogicalTstateErrorRate': 1.25e-06},\n", + " 'physicalQubits': 143506,\n", + " 'runtime': 1672000},\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': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.44 %',\n", + " 'physicalQubitsPerRound': '9680',\n", + " 'requiredLogicalQubitErrorRate': '3.99e-8',\n", + " 'requiredLogicalTstateErrorRate': '1.25e-6',\n", + " 'runtime': '1ms 672us',\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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.',\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 400.',\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.00000003987240829346092)}{\\\\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.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.25e-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': [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": 11, + "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", @@ -364,7 +4887,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +4914,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +4927,44 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 380\n", + "Score = 12540\n" + ] + }, + { + "data": { + "text/plain": [ + "12540" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +4972,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/iQuHack-challenge-2023-task4.ipynb b/iQuHack-challenge-2023-task4.ipynb index 2dd1a7b..be835ea 100644 --- a/iQuHack-challenge-2023-task4.ipynb +++ b/iQuHack-challenge-2023-task4.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -47,7 +47,41 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AXM2895LG to authenticate.\u001b[0m\n", + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"id\": \"7fc54e95-14cf-4a6f-b50e-d6155c241309\",\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 subscription 1\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"user\": {\n", + " \"name\": \"hachall@hotmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + } + ], "source": [ "!az login" ] @@ -67,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +138,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -169,20 +203,62 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 4. \n", "// (input will contain 7 qubits)\n", - "operation Task4(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", + "}\n", + "\n", + "operation mod3adder (reg : Qubit[]) : Unit is Adj+Ctl {\n", + " let sum = reg[0];\n", + " let carry = reg[1];\n", + " ControlledOnInt(0, X)([carry], sum);\n", + " ControlledOnInt(0, X)([sum], carry);\n", + "}\n", + "\n", + "operation Task4(input : Qubit[], target : Qubit) : Unit is Adj+Ctl {\n", + " use output = Qubit[2] {\n", + " within {\n", + " for i in 0 .. Length(input) - 1 {\n", + " if (i % 2 == 0) {\n", + " Controlled mod3adder([input[i]], output);\n", + " } else {\n", + " Controlled Adjoint mod3adder([input[i]], output);\n", + " }\n", + " }\n", + " } apply {\n", + " ControlledOnInt(0, X)(output, target);\n", + " }\n", + "\n", + " }\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(7+1, QubitArrayWrapperOperation(Task4, _), QubitArrayWrapperOperation (original, _));\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { @@ -239,7 +315,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { @@ -252,7 +328,3374 @@ } } }, - "outputs": [], + "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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"78\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"90\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"Phase\":0.0},\"102\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"206\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"218\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"230\":{\"Real\":0.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.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.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.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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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.0883883476483185,\"Imaginary\":0.0,\"Magnitude\":0.0883883476483185,\"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|0000011100000000\\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|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|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|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|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|0010101100000000\\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|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|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|0100001100000000\\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|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|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|0101101100000000\\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|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|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|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|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|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|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|1000101100000000\\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|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|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|1010001100000000\\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|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|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|1011101100000000\\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|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|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|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|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|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|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|1110101100000000\\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|1111011100000000\\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", + "|0000011100000000⟩\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", + "|0001001100000000⟩\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", + "|0001111100000000⟩\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", + "|0010101100000000⟩\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", + "|0011011100000000⟩\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", + "|0100001100000000⟩\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", + "|0100111100000000⟩\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", + "|0101101100000000⟩\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", + "|0110011100000000⟩\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", + "|0111001100000000⟩\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", + "|0111111100000000⟩\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", + "|1000101100000000⟩\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", + "|1001011100000000⟩\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", + "|1010001100000000⟩\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", + "|1010111100000000⟩\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", + "|1011101100000000⟩\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", + "|1100011100000000⟩\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", + "|1101001100000000⟩\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", + "|1101111100000000⟩\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", + "|1110101100000000⟩\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", + "|1111011100000000⟩\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": 17, + "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", @@ -277,7 +3720,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { @@ -290,19 +3733,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 300492},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 366858},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 184},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 184},\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": 18, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { @@ -315,14 +3807,33 @@ } } }, - "outputs": [], + "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": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { @@ -335,7 +3846,21 @@ } } }, - "outputs": [], + "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: 2a3bcaee-0b5a-4691-94a1-6518f829abac\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[8:02:31 AM] Current job status: Executing\n", + "[8:02:36 AM] 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\")" @@ -343,7 +3868,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { @@ -356,7 +3881,1051 @@ } } }, - "outputs": [], + "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\":0,\"cczCount\":29,\"measurementCount\":0,\"numQubits\":10,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":87,\"algorithmicLogicalQubits\":30,\"cliffordErrorRate\":0.001,\"logicalDepth\":87,\"numTfactories\":15,\"numTfactoryRuns\":8,\"numTsPerRotation\":null,\"numTstates\":116,\"physicalQubitsForAlgorithm\":7260,\"physicalQubitsForTfactories\":97200,\"requiredLogicalQubitErrorRate\":1.9157088122605365E-07,\"requiredLogicalTstateErrorRate\":4.310344827586207E-06},\"physicalQubits\":104460,\"runtime\":382800},\"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\":\"93.05 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.92e-7\",\"requiredLogicalTstateErrorRate\":\"4.31e-6\",\"runtime\":\"382us 800ns\",\"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 7260 physical qubits to implement the algorithm logic, and 97200 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 87 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} = 10$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 30$ 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 29 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 87. 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 29 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 116 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{116\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 382us 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 116 T states, the 15 copies of the T factory are repeatedly invoked 8 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 7260 are the product of the 30 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 30 logical qubits and the total cycle count 87.\",\"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 116.\",\"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.00000019157088122605365)}{\\\\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 4.31e-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 30 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 qubits104460\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 7260 physical qubits to implement the algorithm logic, and 97200 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime382us 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 (4us 400ns) multiplied by the 87 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 qubits30\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} = 10\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 30$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth87\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 29 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 depth87\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 87. 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 states116\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 29 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 factories15\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

In order to prepare the 116 T states, the 15 copies of the T factory are repeatedly invoked 8 times.

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits97200\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 15 in parallel, therefore we need $97200 = 6480 \\cdot 15$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate1.92e-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 30 logical qubits and the total cycle count 87.

\n", + "\r\n", + "
Required logical T state error rate4.31e-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 116.

\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.00000019157088122605365)}{\\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 4.31e-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)10\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 30 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 gates29\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" + ], + "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': 29,\n", + " 'measurementCount': 0,\n", + " 'numQubits': 10,\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': 87,\n", + " 'algorithmicLogicalQubits': 30,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 87,\n", + " 'numTfactories': 15,\n", + " 'numTfactoryRuns': 8,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 116,\n", + " 'physicalQubitsForAlgorithm': 7260,\n", + " 'physicalQubitsForTfactories': 97200,\n", + " 'requiredLogicalQubitErrorRate': 1.9157088122605365e-07,\n", + " 'requiredLogicalTstateErrorRate': 4.310344827586207e-06},\n", + " 'physicalQubits': 104460,\n", + " 'runtime': 382800},\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': '93.05 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '1.92e-7',\n", + " 'requiredLogicalTstateErrorRate': '4.31e-6',\n", + " 'runtime': '382us 800ns',\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 7260 physical qubits to implement the algorithm logic, and 97200 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 87 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} = 10$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 30$ 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 29 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 87. 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 29 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 116 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{116\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 382us 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 116 T states, the 15 copies of the T factory are repeatedly invoked 8 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 7260 are the product of the 30 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 30 logical qubits and the total cycle count 87.',\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 116.',\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.00000019157088122605365)}{\\\\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 4.31e-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 30 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": 21, + "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", @@ -365,7 +4934,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { @@ -392,7 +4961,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { @@ -405,10 +4974,37 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 30\n", + "Algorithmic depth = 87\n", + "Score = 2610\n" + ] + }, + { + "data": { + "text/plain": [ + "2610" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -416,9 +5012,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/iQuHack-challenge-2023-task5.ipynb b/iQuHack-challenge-2023-task5.ipynb index 85e5038..9d4c433 100644 --- a/iQuHack-challenge-2023-task5.ipynb +++ b/iQuHack-challenge-2023-task5.ipynb @@ -104,9 +104,9 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { @@ -169,19 +169,125 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", + "\n", "\n", "// Task 5. \n", "// (input will contain 6 qubits)\n", "operation Task5(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [21,42] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + " use equality = Qubit[3];\n", + " use storageWire = Qubit[1];\n", + " within {\n", + " CNOT(input[0], equality[0]);\n", + " CNOT(input[3], equality[0]);\n", + " CNOT(input[1], equality[1]);\n", + " CNOT(input[4], equality[1]);\n", + " CNOT(input[2], equality[2]);\n", + " CNOT(input[5], equality[2]);\n", + " X(equality[0]); X(equality[1]); X(equality[2]);\n", + " CCNOT(equality[0], equality[1], storageWire[0]);\n", + " } apply {\n", + " CCNOT(equality[2], storageWire[0], target);\n", + " }\n", + "}\n", + "\n", + "operation original(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", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(6+1, QubitArrayWrapperOperation(Task5, _), QubitArrayWrapperOperation (original, _));\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Unhandled exception of type System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \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", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
SourceCallable
(notebook)Task5
(notebook)QubitArrayWrapperOperation
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:0Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced
(notebook)TestCompoundGate
\r\n", + "
\r\n", + " " + ], + "text/plain": [ + "Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.\n", + " ---> SNIPPET.Task5 on /snippet_.qs:line 0\n", + " at SNIPPET.QubitArrayWrapperOperation on /snippet_.qs:line 0\n", + " at Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:line 0\n", + " at SNIPPET.TestCompoundGate on /snippet_.qs:line 0\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Specified argument was out of the range of valid values.\n" + ] + } + ], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +357,1710 @@ } } }, - "outputs": [], + "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": 6, + "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", @@ -276,7 +2085,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +2098,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 284985},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 412930},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 257411},\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': 4298},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 137},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 257411},\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': 4298},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 137},\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": 8, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +2172,33 @@ } } }, - "outputs": [], + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +2211,21 @@ } } }, - "outputs": [], + "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: ce9dd9e8-528c-46ec-94d2-289b8fed02a7\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[11:30:22 PM] Current job status: Executing\n", + "[11:30:27 PM] 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\")" @@ -342,7 +2233,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +2246,1051 @@ } } }, - "outputs": [], + "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\":8,\"cczCount\":5,\"measurementCount\":8,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":47,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":47,\"numTfactories\":15,\"numTfactoryRuns\":4,\"numTsPerRotation\":null,\"numTstates\":52,\"physicalQubitsForAlgorithm\":5346,\"physicalQubitsForTfactories\":97200,\"requiredLogicalQubitErrorRate\":3.2237266279819474E-07,\"requiredLogicalTstateErrorRate\":9.615384615384616E-06},\"physicalQubits\":102546,\"runtime\":169200},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.79 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"3.22e-7\",\"requiredLogicalTstateErrorRate\":\"9.62e-6\",\"runtime\":\"169us 200ns\",\"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 5346 physical qubits to implement the algorithm logic, and 97200 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 47 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 8 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 8 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 47. 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 5 CCZ and 8 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 52 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{52\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 169us 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 52 T states, the 15 copies of the T factory are repeatedly invoked 4 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5346 are the product of the 33 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 6480 physical qubits and we run 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 47.\",\"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 52.\",\"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.00000032237266279819474)}{\\\\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.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 9.62e-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 qubits102546\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 5346 physical qubits to implement the algorithm logic, and 97200 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime169us 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 (3us 600ns) multiplied by the 47 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 depth47\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 8 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 8 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 depth47\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 47. 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 states52\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 5 CCZ and 8 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 factories15\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

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

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits97200\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 15 in parallel, therefore we need $97200 = 6480 \\cdot 15$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate3.22e-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 33 logical qubits and the total cycle count 47.

\n", + "\r\n", + "
Required logical T state error rate9.62e-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 52.

\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.00000032237266279819474)}{\\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 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 9.62e-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 gates5\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 gates8\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 operations8\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': 8,\n", + " 'cczCount': 5,\n", + " 'measurementCount': 8,\n", + " 'numQubits': 11,\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': 47,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 47,\n", + " 'numTfactories': 15,\n", + " 'numTfactoryRuns': 4,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 52,\n", + " 'physicalQubitsForAlgorithm': 5346,\n", + " 'physicalQubitsForTfactories': 97200,\n", + " 'requiredLogicalQubitErrorRate': 3.2237266279819474e-07,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384616e-06},\n", + " 'physicalQubits': 102546,\n", + " 'runtime': 169200},\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': '3us 600ns',\n", + " 'logicalErrorRate': '3.00e-7',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.79 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '3.22e-7',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-6',\n", + " 'runtime': '169us 200ns',\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 5346 physical qubits to implement the algorithm logic, and 97200 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 47 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 8 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 8 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 47. 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 5 CCZ and 8 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 52 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{52\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 169us 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 52 T states, the 15 copies of the T factory are repeatedly invoked 4 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 5346 are the product of the 33 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 6480 physical qubits and we run 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 47.',\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 52.',\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.00000032237266279819474)}{\\\\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.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 9.62e-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": 11, + "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", @@ -364,7 +3299,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +3326,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +3339,37 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 47\n", + "Score = 1551\n" + ] + }, + { + "data": { + "text/plain": [ + "1551" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +3377,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/iQuHack-challenge-2023-task6.ipynb b/iQuHack-challenge-2023-task6.ipynb index 4d2f2c8..5205348 100644 --- a/iQuHack-challenge-2023-task6.ipynb +++ b/iQuHack-challenge-2023-task6.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +104,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -169,19 +169,68 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 6. \n", "// (input will contain 8 qubits)\n", - "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", + "}\n", + "\n", + "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [20,22] {\n", + " ControlledOnInt(i, X)([input[1],input[2],input[4], input[5], input[7]], target);\n", + " }\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(8+1, QubitArrayWrapperOperation(Task6, _), QubitArrayWrapperOperation (original, _));\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"/opt/conda/lib/python3.9/runpy.py\", line 197, in _run_module_as_main\n", + " return _run_code(code, main_globals, None,\n", + " File \"/opt/conda/lib/python3.9/runpy.py\", line 87, in _run_code\n", + " exec(code, run_globals)\n", + " File \"/opt/conda/lib/python3.9/site-packages/ipykernel_launcher.py\", line 17, in \n", + " app.launch_new_instance()\n", + " File \"/opt/conda/lib/python3.9/site-packages/traitlets/config/application.py\", line 1041, in launch_instance\n", + " app.start()\n", + " File \"/opt/conda/lib/python3.9/site-packages/ipykernel/kernelapp.py\", line 724, in start\n", + " self.io_loop.start()\n", + " File \"/opt/conda/lib/python3.9/site-packages/tornado/platform/asyncio.py\", line 199, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"/opt/conda/lib/python3.9/asyncio/base_events.py\", line 596, in run_forever\n", + " self._run_once()\n", + " File \"/opt/conda/lib/python3.9/asyncio/base_events.py\", line 1875, in _run_once\n", + " handle = self._ready.popleft()\n", + "IndexError: pop from an empty deque\n" + ] + } + ], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +300,6702 @@ } } }, - "outputs": [], + "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.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}}}", + "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", + "
" + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 33, + "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", @@ -276,7 +7020,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +7033,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 47232},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 383474},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 180},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 180},\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": 34, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +7107,33 @@ } } }, - "outputs": [], + "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": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +7146,20 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 6\n", + " Job ID: c796f8ea-2157-429d-b6d6-9315680622eb\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[9:02:21 AM] 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(Task6_ResourceEstimationWrapper, jobName=\"RE for the task 6\")" @@ -342,7 +7167,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +7180,1051 @@ } } }, - "outputs": [], + "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\":6,\"cczCount\":2,\"measurementCount\":6,\"numQubits\":12,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":30,\"algorithmicLogicalQubits\":35,\"cliffordErrorRate\":0.001,\"logicalDepth\":30,\"numTfactories\":14,\"numTfactoryRuns\":3,\"numTsPerRotation\":null,\"numTstates\":32,\"physicalQubitsForAlgorithm\":5670,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":4.761904761904762E-07,\"requiredLogicalTstateErrorRate\":1.5625E-05},\"physicalQubits\":96390,\"runtime\":108000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.12 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"4.76e-7\",\"requiredLogicalTstateErrorRate\":\"1.56e-5\",\"runtime\":\"108us\",\"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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.\",\"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 32.\",\"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.0000004761904761904762)}{\\\\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.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 1.56e-5.\",\"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 35 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 qubits96390\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 5670 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime108us\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 30 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 qubits35\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} = 12\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 35$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth30\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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 depth30\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 30. 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 states32\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 2 CCZ and 6 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 factories14\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

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

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits90720\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 14 in parallel, therefore we need $90720 = 6480 \\cdot 14$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate4.76e-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 35 logical qubits and the total cycle count 30.

\n", + "\r\n", + "
Required logical T state error rate1.56e-5\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 32.

\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.0000004761904761904762)}{\\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 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 1.56e-5.

\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)12\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 35 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 gates2\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 gates6\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 operations6\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': 6,\n", + " 'cczCount': 2,\n", + " 'measurementCount': 6,\n", + " 'numQubits': 12,\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': 30,\n", + " 'algorithmicLogicalQubits': 35,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 30,\n", + " 'numTfactories': 14,\n", + " 'numTfactoryRuns': 3,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 32,\n", + " 'physicalQubitsForAlgorithm': 5670,\n", + " 'physicalQubitsForTfactories': 90720,\n", + " 'requiredLogicalQubitErrorRate': 4.761904761904762e-07,\n", + " 'requiredLogicalTstateErrorRate': 1.5625e-05},\n", + " 'physicalQubits': 96390,\n", + " 'runtime': 108000},\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': '3us 600ns',\n", + " 'logicalErrorRate': '3.00e-7',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.12 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '4.76e-7',\n", + " 'requiredLogicalTstateErrorRate': '1.56e-5',\n", + " 'runtime': '108us',\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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 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 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.',\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 32.',\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.0000004761904761904762)}{\\\\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.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 1.56e-5.',\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 35 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": 37, + "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", @@ -364,7 +8233,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +8260,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +8273,44 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 35\n", + "Algorithmic depth = 30\n", + "Score = 1050\n" + ] + }, + { + "data": { + "text/plain": [ + "1050" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +8318,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/iQuHack-challenge-2023-task8.ipynb b/iQuHack-challenge-2023-task8.ipynb index a84b05a..ecf01d4 100644 --- a/iQuHack-challenge-2023-task8.ipynb +++ b/iQuHack-challenge-2023-task8.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -80,7 +80,15 @@ } } }, - "outputs": [], + "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", @@ -89,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +112,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -169,22 +177,70 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arithmetic;\n", + "open Microsoft.Quantum.Math;\n", + "open Microsoft.Quantum.Synthesis;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 8. \n", "// (input will contain 7 qubits)\n", - "operation Task8(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", - "}" + "}\n", + "\n", + "operation Task8(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " use sumWires = Qubit[7];\n", + " use zero = Qubit[1];\n", + " within{\n", + " //Ebene 1\n", + " CarryN(input[0], input[1], input[2], sumWires[0]);\n", + " CarryN(input[3], input[4], input[5], sumWires[1]);\n", + " //Ebene 2\n", + " CarryN(zero[0], input[2], input[5], sumWires[2]);\n", + " CarryN(sumWires[2], sumWires[0], sumWires[1], sumWires[3]);\n", + " //Ebene 3\n", + " CarryN(zero[0], input[6], input[5], sumWires[4]);\n", + " CarryN(sumWires[4], zero[0], sumWires[1], sumWires[5]);\n", + " CarryN(sumWires[5], zero[0], sumWires[3], sumWires[6]);\n", + " } apply{\n", + " //CNOT(sumWires[3], target);\n", + " CNOT(sumWires[3], target);\n", + " }\n", + "}\n", + "operation CarryN(carryIn: Qubit, summand1: Qubit, summand2: Qubit, carryOut: Qubit) : Unit is Adj + Ctl {\n", + " CCNOT (summand1, summand2, carryOut);\n", + " CNOT (summand1, summand2);\n", + " CCNOT (carryIn, summand2, carryOut);\n", + " CNOT(carryIn, summand2);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(7+1, QubitArrayWrapperOperation(Task8, _), QubitArrayWrapperOperation (original, _));\n", + "}\n", + "\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -241,7 +297,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -254,7 +310,3374 @@ } } }, - "outputs": [], + "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.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}}}", + "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", + "
" + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 7, + "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", @@ -279,7 +3702,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -292,19 +3715,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 296609},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 366858},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 183},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 183},\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": 9, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -317,14 +3789,33 @@ } } }, - "outputs": [], + "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": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -337,7 +3828,20 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task8_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 8\n", + " Job ID: e310d987-293a-4420-8db8-d09b15c2f5ac\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[8:04:56 AM] 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(Task8_ResourceEstimationWrapper, jobName=\"RE for the task 8\")" @@ -345,7 +3849,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -358,7 +3862,1051 @@ } } }, - "outputs": [], + "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\":0,\"cczCount\":28,\"measurementCount\":0,\"numQubits\":16,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":84,\"algorithmicLogicalQubits\":45,\"cliffordErrorRate\":0.001,\"logicalDepth\":84,\"numTfactories\":15,\"numTfactoryRuns\":8,\"numTsPerRotation\":null,\"numTstates\":112,\"physicalQubitsForAlgorithm\":10890,\"physicalQubitsForTfactories\":97200,\"requiredLogicalQubitErrorRate\":1.3227513227513228E-07,\"requiredLogicalTstateErrorRate\":4.464285714285715E-06},\"physicalQubits\":108090,\"runtime\":369600},\"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\":\"89.93 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.32e-7\",\"requiredLogicalTstateErrorRate\":\"4.46e-6\",\"runtime\":\"369us 600ns\",\"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 10890 physical qubits to implement the algorithm logic, and 97200 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 84 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} = 16$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 45$ 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 28 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 84. 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 28 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 112 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{112\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 369us 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 112 T states, the 15 copies of the T factory are repeatedly invoked 8 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 10890 are the product of the 45 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 45 logical qubits and the total cycle count 84.\",\"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 112.\",\"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.00000013227513227513228)}{\\\\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 4.46e-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 45 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 qubits108090\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 10890 physical qubits to implement the algorithm logic, and 97200 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime369us 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 (4us 400ns) multiplied by the 84 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 qubits45\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} = 16\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 45$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth84\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 28 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 depth84\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 84. 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 states112\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 28 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 factories15\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

In order to prepare the 112 T states, the 15 copies of the T factory are repeatedly invoked 8 times.

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits97200\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 15 in parallel, therefore we need $97200 = 6480 \\cdot 15$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate1.32e-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 45 logical qubits and the total cycle count 84.

\n", + "\r\n", + "
Required logical T state error rate4.46e-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 112.

\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.00000013227513227513228)}{\\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 4.46e-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)16\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 45 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 gates28\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" + ], + "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': 28,\n", + " 'measurementCount': 0,\n", + " 'numQubits': 16,\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': 84,\n", + " 'algorithmicLogicalQubits': 45,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 84,\n", + " 'numTfactories': 15,\n", + " 'numTfactoryRuns': 8,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 112,\n", + " 'physicalQubitsForAlgorithm': 10890,\n", + " 'physicalQubitsForTfactories': 97200,\n", + " 'requiredLogicalQubitErrorRate': 1.3227513227513228e-07,\n", + " 'requiredLogicalTstateErrorRate': 4.464285714285715e-06},\n", + " 'physicalQubits': 108090,\n", + " 'runtime': 369600},\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': '89.93 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '1.32e-7',\n", + " 'requiredLogicalTstateErrorRate': '4.46e-6',\n", + " 'runtime': '369us 600ns',\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 10890 physical qubits to implement the algorithm logic, and 97200 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 84 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} = 16$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 45$ 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 28 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 84. 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 28 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 112 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{112\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 369us 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 112 T states, the 15 copies of the T factory are repeatedly invoked 8 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 10890 are the product of the 45 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 45 logical qubits and the total cycle count 84.',\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 112.',\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.00000013227513227513228)}{\\\\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 4.46e-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 45 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": 12, + "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", @@ -367,7 +4915,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -394,7 +4942,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -407,10 +4955,37 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 45\n", + "Algorithmic depth = 84\n", + "Score = 3780\n" + ] + }, + { + "data": { + "text/plain": [ + "3780" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -418,9 +4993,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/obj/__entrypoint__.dll b/obj/__entrypoint__.dll new file mode 100644 index 0000000000000000000000000000000000000000..6c6e7d3b3c59f1c9228c8f898c3a6524006a0b9a GIT binary patch literal 228352 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

Q8QmsI*Msr-JZ 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 z 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 Hrv&~#&qgM{ literal 0 HcmV?d00001 diff --git a/obj/__snippets__.dll b/obj/__snippets__.dll new file mode 100644 index 0000000000000000000000000000000000000000..379c6912f7e681c7e08bcf1547809d8ec53b309e GIT binary patch literal 105984 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 S{(_~rVEvFn*>-O`4*Y){ckP-0 literal 0 HcmV?d00001 From aa34d9e78ddff434b973a0681301c05865878450 Mon Sep 17 00:00:00 2001 From: Hamish Hall Date: Sun, 29 Jan 2023 12:07:04 +0000 Subject: [PATCH 2/7] next checkpoint --- iQuHack-challenge-2023-task2.ipynb | 669 ++-- iQuHack-challenge-2023-task3.ipynb | 762 ++--- iQuHack-challenge-2023-task7.ipynb | 4673 +++++++++++++++++++++++++++- obj/__entrypoint__.dll | Bin 228352 -> 321536 bytes obj/__entrypoint__snippets__.dll | Bin 106496 -> 51200 bytes obj/__snippets__.dll | Bin 105984 -> 114688 bytes 6 files changed, 5359 insertions(+), 745 deletions(-) diff --git a/iQuHack-challenge-2023-task2.ipynb b/iQuHack-challenge-2023-task2.ipynb index 01cf0da..267e958 100644 --- a/iQuHack-challenge-2023-task2.ipynb +++ b/iQuHack-challenge-2023-task2.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -52,7 +52,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code F88GK2SR2 to authenticate.\u001b[0m\n", + "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code F2JVHXWME to authenticate.\u001b[0m\n", "[\n", " {\n", " \"cloudName\": \"AzureCloud\",\n", @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -114,16 +114,7 @@ } } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Preparing Q# environment...\n", - "...." - ] - } - ], + "outputs": [], "source": [ "# Run this code cell to import the modules required to work with Q# and Azure\n", "import qsharp\n", @@ -132,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -154,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -191,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -207,20 +198,13 @@ } } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/snippet_.qs(18,9): warning QS3306: Deprecated syntax. Parentheses here are no longer required and will not be supported in the future.\n" - ] - } - ], + "outputs": [], "source": [ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Bitwise;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 2. Celebrate MIT iQuHack!\n", "// (input will contain 5 qubits)\n", @@ -241,40 +225,34 @@ "\n", "operation Task2(input : Qubit[], target : Qubit) : Unit is Adj {\n", " ControlledOnInt(13, X)(input, target); // M\n", - "\n", - " ControlledOnInt(17, X)(input, target); // Q\n", - " ControlledOnInt(21, X)(input, target); // U\n", + " ControlledOnInt(20, X)(input, target); // T\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", + " ControlledOnInt(9, X)([input[0],input[1],input[3],input[4]], target);\n", + " ControlledOnInt(3, X)([input[0],input[1],input[2],input[4]], target);\n", + "}\n", "\n", - " for (index in 0 .. Length(input) - 1) {\n", - " X(input[index]);\n", - " }\n", - " ControlledOnInt(11, X)(input, target); // T (flipped)\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", "}\n", - "\n" + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(5+1, QubitArrayWrapperOperation(Task2, _), QubitArrayWrapperOperation (old, _));\n", + "}\n" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 16, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "UsageError: Cell magic `%%qsharp` not found.\n" - ] - } - ], - "source": [] + "outputs": [], + "source": [ + "TestCompoundGate();" + ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { @@ -331,7 +309,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { @@ -347,7 +325,7 @@ "outputs": [ { "data": { - "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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"2\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"3\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"9\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"10\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"14\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"18\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"22\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"23\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"29\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"30\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"34\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"35\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"41\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"42\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"46\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"50\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"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.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"61\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"62\":{\"Real\":0.17677669529663698,\"Imaginary\":0.0,\"Magnitude\":0.17677669529663698,\"Phase\":0.0},\"63\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0}}}", + "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}}}", "text/html": [ "\r\n", " \r\n", @@ -376,12 +354,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -401,12 +379,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -426,12 +404,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -451,12 +429,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -467,21 +445,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -492,21 +470,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -526,12 +504,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -551,12 +529,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -576,12 +554,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -601,12 +579,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -626,12 +604,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -651,12 +629,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -676,12 +654,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -701,12 +679,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -717,21 +695,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -742,21 +720,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -776,12 +754,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -801,12 +779,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -817,21 +795,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -842,21 +820,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -867,21 +845,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -892,21 +870,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -926,12 +904,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -951,12 +929,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -976,12 +954,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1001,12 +979,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1026,12 +1004,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1051,12 +1029,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1067,21 +1045,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1092,21 +1070,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1117,21 +1095,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1142,21 +1120,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1167,21 +1145,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1192,21 +1170,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1217,21 +1195,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1242,21 +1220,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1276,12 +1254,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1301,12 +1279,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1326,12 +1304,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1351,12 +1329,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1376,12 +1354,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1401,12 +1379,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1417,21 +1395,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1442,21 +1420,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1467,21 +1445,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1492,21 +1470,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1526,12 +1504,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1551,12 +1529,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1567,21 +1545,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1592,21 +1570,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1626,12 +1604,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1651,12 +1629,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1676,12 +1654,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1701,12 +1679,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1726,12 +1704,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1751,12 +1729,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1776,12 +1754,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1801,12 +1779,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1817,21 +1795,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1842,21 +1820,21 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1876,12 +1854,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1901,12 +1879,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1926,12 +1904,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1951,12 +1929,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1972,8 +1950,8 @@ "|000001⟩\t0 + 0𝑖\n", "|000010⟩\t0.17677669529663698 + 0𝑖\n", "|000011⟩\t0 + 0𝑖\n", - "|000100⟩\t0.17677669529663698 + 0𝑖\n", - "|000101⟩\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", @@ -1982,42 +1960,42 @@ "|001011⟩\t0.17677669529663698 + 0𝑖\n", "|001100⟩\t0.17677669529663698 + 0𝑖\n", "|001101⟩\t0 + 0𝑖\n", - "|001110⟩\t0 + 0𝑖\n", - "|001111⟩\t0.17677669529663698 + 0𝑖\n", + "|001110⟩\t0.17677669529663698 + 0𝑖\n", + "|001111⟩\t0 + 0𝑖\n", "|010000⟩\t0.17677669529663698 + 0𝑖\n", "|010001⟩\t0 + 0𝑖\n", - "|010010⟩\t0 + 0𝑖\n", - "|010011⟩\t0.17677669529663698 + 0𝑖\n", - "|010100⟩\t0 + 0𝑖\n", - "|010101⟩\t0.17677669529663698 + 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 + 0𝑖\n", - "|011101⟩\t0.17677669529663698 + 0𝑖\n", - "|011110⟩\t0 + 0𝑖\n", - "|011111⟩\t0.17677669529663698 + 0𝑖\n", - "|100000⟩\t0.17677669529663698 + 0𝑖\n", - "|100001⟩\t0 + 0𝑖\n", - "|100010⟩\t0.17677669529663698 + 0𝑖\n", - "|100011⟩\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.17677669529663698 + 0𝑖\n", - "|101011⟩\t0 + 0𝑖\n", - "|101100⟩\t0.17677669529663698 + 0𝑖\n", - "|101101⟩\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.17677669529663698 + 0𝑖\n", - "|110001⟩\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", @@ -2026,8 +2004,8 @@ "|110111⟩\t0 + 0𝑖\n", "|111000⟩\t0.17677669529663698 + 0𝑖\n", "|111001⟩\t0 + 0𝑖\n", - "|111010⟩\t0 + 0𝑖\n", - "|111011⟩\t0.17677669529663698 + 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", @@ -2043,7 +2021,7 @@ "()" ] }, - "execution_count": 12, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -2072,7 +2050,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { @@ -2106,23 +2084,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 278400},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 408469},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 175517},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 438370},\n", " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 257411},\n", - " {'id': 'quantinuum.hqs-lt-s1-apival', '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': 4298},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 139},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 169},\n", " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 257411},\n", - " {'id': 'quantinuum.sim.h1-1sc', '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': 4298},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 139},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 169},\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", @@ -2130,7 +2108,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 13, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -2146,7 +2124,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { @@ -2174,7 +2152,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 14, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -2185,7 +2163,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { @@ -2206,10 +2184,9 @@ "Submitting Task2_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 2\n", - " Job ID: 5d90fa2d-f0ad-4caf-a994-eccabd42cb19\n", + " Job ID: f8a7b04a-cd5c-4fea-aec9-ec6f246a8c34\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[10:17:52 PM] Current job status: Waiting\n", - "[10:17:57 PM] Current job status: Succeeded\n" + "[11:51:48 AM] Current job status: Succeeded\n" ] } ], @@ -2220,7 +2197,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { @@ -2236,7 +2213,7 @@ "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\":24,\"cczCount\":8,\"measurementCount\":24,\"numQubits\":9,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":120,\"algorithmicLogicalQubits\":28,\"cliffordErrorRate\":0.001,\"logicalDepth\":120,\"numTfactories\":12,\"numTfactoryRuns\":11,\"numTsPerRotation\":null,\"numTstates\":128,\"physicalQubitsForAlgorithm\":6776,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.4880952380952382E-07,\"requiredLogicalTstateErrorRate\":3.90625E-06},\"physicalQubits\":84536,\"runtime\":528000},\"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.49e-7\",\"requiredLogicalTstateErrorRate\":\"3.91e-6\",\"runtime\":\"528us\",\"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 120 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 24 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 24 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 120. 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 24 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 128 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{128\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 528us\\\\;\\\\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 128 T states, the 12 copies of the T factory are repeatedly invoked 11 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 120.\",\"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 128.\",\"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.00000014880952380952382)}{\\\\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.91e-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\"]}}", + "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\":16,\"cczCount\":6,\"measurementCount\":16,\"numQubits\":9,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":82,\"algorithmicLogicalQubits\":28,\"cliffordErrorRate\":0.001,\"logicalDepth\":82,\"numTfactories\":12,\"numTfactoryRuns\":8,\"numTsPerRotation\":null,\"numTstates\":88,\"physicalQubitsForAlgorithm\":6776,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":2.177700348432056E-07,\"requiredLogicalTstateErrorRate\":5.681818181818182E-06},\"physicalQubits\":84536,\"runtime\":360800},\"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\":\"2.18e-7\",\"requiredLogicalTstateErrorRate\":\"5.68e-6\",\"runtime\":\"360us 800ns\",\"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 82 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 16 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6 CCZ and 16 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 82. 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 6 CCZ and 16 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 88 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{88\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 360us 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 88 T states, the 12 copies of the T factory are repeatedly invoked 8 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 82.\",\"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 88.\",\"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.0000002177700348432056)}{\\\\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 5.68e-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\"]}}", "text/html": [ "\r\n", "
\r\n", @@ -2260,12 +2237,12 @@ "\r\n", "
\r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -2292,36 +2269,36 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -2330,22 +2307,22 @@ " \r\n", " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -2376,24 +2353,24 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -2437,7 +2414,7 @@ "

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.00000014880952380952382)}{\\log(0.01/0.001)} - 1\\)

\n", + "

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

\n", "\r\n", " \r\n", " \n", @@ -2661,7 +2638,7 @@ "

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.91e-6.

\n", + "

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

\n", "\r\n", " \r\n", " \n", @@ -2724,7 +2701,7 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", @@ -338,12 +351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -363,12 +376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -388,12 +401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -413,12 +426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -438,12 +451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -463,12 +476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -488,12 +501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -513,12 +526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -538,12 +551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -563,12 +576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -588,12 +601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -613,12 +626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -638,12 +651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -663,12 +676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -688,12 +701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -713,12 +726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -738,12 +751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -763,12 +776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -788,12 +801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -813,12 +826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -838,12 +851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -863,12 +876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -888,12 +901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -913,12 +926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -938,12 +951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -963,12 +976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -988,12 +1001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1013,12 +1026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1038,12 +1051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1063,12 +1076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1088,12 +1101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1113,12 +1126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1138,12 +1151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1163,12 +1176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1188,12 +1201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1213,12 +1226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1238,12 +1251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1263,12 +1276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1288,12 +1301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1313,12 +1326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1338,12 +1351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1363,12 +1376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1388,12 +1401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1413,12 +1426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1438,12 +1451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1463,12 +1476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1488,12 +1501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1513,12 +1526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1538,12 +1551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1563,12 +1576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1588,12 +1601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1613,12 +1626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1638,12 +1651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1663,12 +1676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1688,12 +1701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1713,12 +1726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1738,12 +1751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1763,12 +1776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1788,12 +1801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1813,12 +1826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1838,12 +1851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1863,12 +1876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1888,12 +1901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1913,12 +1926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1938,12 +1951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1963,12 +1976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1988,12 +2001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2013,12 +2026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2038,12 +2051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2063,12 +2076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2088,12 +2101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2113,12 +2126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2138,12 +2151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2163,12 +2176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2188,12 +2201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2213,12 +2226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2238,12 +2251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2263,12 +2276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2288,12 +2301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2313,12 +2326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2338,12 +2351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2363,12 +2376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2388,12 +2401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2413,12 +2426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2438,12 +2451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2463,12 +2476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2488,12 +2501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2513,12 +2526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2538,12 +2551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2563,12 +2576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2588,12 +2601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2613,12 +2626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2638,12 +2651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2663,12 +2676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2688,12 +2701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2713,12 +2726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2738,12 +2751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2763,12 +2776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2788,12 +2801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2813,12 +2826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2838,12 +2851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2863,12 +2876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2888,12 +2901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2913,12 +2926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2938,12 +2951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2963,12 +2976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2988,12 +3001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3013,12 +3026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3038,12 +3051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3063,12 +3076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3088,12 +3101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3113,12 +3126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3138,12 +3151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3163,12 +3176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3188,12 +3201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3213,12 +3226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3238,12 +3251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3263,12 +3276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3288,12 +3301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3313,12 +3326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3338,12 +3351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3363,12 +3376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3388,12 +3401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3413,12 +3426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3438,12 +3451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3463,12 +3476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3488,12 +3501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3644,7 +3657,7 @@ "()" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -3707,8 +3720,8 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 305641},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 361199},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 171513},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 434582},\n", " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 0},\n", @@ -3716,14 +3729,14 @@ " {'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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 184},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 175},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 184},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 175},\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", @@ -3807,10 +3820,9 @@ "Submitting Task3_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 3\n", - " Job ID: 4ac53537-57cd-424e-9937-c6019dacbc0a\n", + " Job ID: 5e58d190-e0a8-4e7c-8a6a-3ffb25f39cd5\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[6:25:13 AM] Current job status: Executing\n", - "[6:25:18 AM] Current job status: Succeeded\n" + "[10:42:27 AM] Current job status: Succeeded\n" ] } ], @@ -3837,7 +3849,7 @@ "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\":80,\"cczCount\":20,\"measurementCount\":80,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":380,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":380,\"numTfactories\":14,\"numTfactoryRuns\":29,\"numTsPerRotation\":null,\"numTstates\":400,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":135520,\"requiredLogicalQubitErrorRate\":3.987240829346092E-08,\"requiredLogicalTstateErrorRate\":1.25E-06},\"physicalQubits\":143506,\"runtime\":1672000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"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\":\"94.44 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"3.99e-8\",\"requiredLogicalTstateErrorRate\":\"1.25e-6\",\"runtime\":\"1ms 672us\",\"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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.\",\"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 400.\",\"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.00000003987240829346092)}{\\\\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.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.25e-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\":[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\"]}}", + "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\":1,\"cczCount\":17,\"measurementCount\":1,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":55,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":55,\"numTfactories\":14,\"numTfactoryRuns\":6,\"numTsPerRotation\":null,\"numTstates\":72,\"physicalQubitsForAlgorithm\":9196,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":2.3923444976076555E-07,\"requiredLogicalTstateErrorRate\":6.944444444444445E-06},\"physicalQubits\":99916,\"runtime\":242000},\"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.80 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"2.39e-7\",\"requiredLogicalTstateErrorRate\":\"6.94e-6\",\"runtime\":\"242us\",\"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 9196 physical qubits to implement the algorithm logic, and 90720 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 55 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} = 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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 55. 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 17 CCZ and 1 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 72 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\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 72 T states, the 14 copies of the T factory are repeatedly invoked 6 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 9196 are the product of the 38 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 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 55.\",\"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 72.\",\"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.00000023923444976076555)}{\\\\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 6.94e-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 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\":[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", @@ -3849,24 +3861,24 @@ "\r\n", "
\r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -3881,48 +3893,48 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -3931,70 +3943,70 @@ " \r\n", " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -4038,7 +4050,7 @@ "

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.00000003987240829346092)}{\\log(0.01/0.001)} - 1\\)

\n", + "

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

\n", "\r\n", " \r\n", " \n", @@ -4137,7 +4149,7 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -4221,7 +4233,7 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \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", @@ -4277,12 +4289,12 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \n", @@ -4325,7 +4337,7 @@ "\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", @@ -357,12 +332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -382,12 +357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -407,12 +382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -432,12 +407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -457,12 +432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -482,12 +457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -507,12 +482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -532,12 +507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -557,12 +532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -582,12 +557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -607,12 +582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -632,12 +607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -657,12 +632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -682,12 +657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -707,12 +682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -732,12 +707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -757,12 +732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -782,12 +757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -807,12 +782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -832,12 +807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -857,12 +832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -882,12 +857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -907,12 +882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -932,12 +907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -957,12 +932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -982,12 +957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1007,12 +982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1032,12 +1007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1057,12 +1032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1082,12 +1057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1107,12 +1082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1132,12 +1107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1157,12 +1132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1182,12 +1157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1207,12 +1182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1232,12 +1207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1257,12 +1232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1282,12 +1257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1307,12 +1282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1332,12 +1307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1357,12 +1332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1382,12 +1357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1407,12 +1382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1432,12 +1407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1457,12 +1432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1482,12 +1457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1507,12 +1482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1532,12 +1507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1557,12 +1532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1582,12 +1557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1607,12 +1582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1632,12 +1607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1657,12 +1632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1682,12 +1657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1707,12 +1682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1732,12 +1707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1757,12 +1732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1782,12 +1757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1807,12 +1782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1832,12 +1807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1857,12 +1832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1882,12 +1857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1907,12 +1882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1932,12 +1907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1957,12 +1932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -1982,12 +1957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2007,12 +1982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2032,12 +2007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2057,12 +2032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2082,12 +2057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2107,12 +2082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2132,12 +2107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2157,12 +2132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2182,12 +2157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2207,12 +2182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2232,12 +2207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2257,12 +2232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2282,12 +2257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2307,12 +2282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2332,12 +2307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2357,12 +2332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2382,12 +2357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2407,12 +2382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2432,12 +2407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2457,12 +2432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2482,12 +2457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2507,12 +2482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2532,12 +2507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2557,12 +2532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2582,12 +2557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2607,12 +2582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2632,12 +2607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2657,12 +2632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2682,12 +2657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2707,12 +2682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2732,12 +2707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2757,12 +2732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2782,12 +2757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2807,12 +2782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2832,12 +2807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2857,12 +2832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2882,12 +2857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2907,12 +2882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2932,12 +2907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2957,12 +2932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -2982,12 +2957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3007,12 +2982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3032,12 +3007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3057,12 +3032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3082,12 +3057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3107,12 +3082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3132,12 +3107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3157,12 +3132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3182,12 +3157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3207,12 +3182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3232,12 +3207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3257,12 +3232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3282,12 +3257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3307,12 +3282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3332,12 +3307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3357,12 +3332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3382,12 +3357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3407,12 +3382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3432,12 +3407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3457,12 +3432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3482,12 +3457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3507,12 +3482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3532,12 +3507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3557,12 +3532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3582,12 +3557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3607,12 +3582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3632,12 +3607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3657,12 +3632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3682,12 +3657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3707,12 +3682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3732,12 +3707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3757,12 +3732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3782,12 +3757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3807,12 +3782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3832,12 +3807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3857,12 +3832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3882,12 +3857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3907,12 +3882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3932,12 +3907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3957,12 +3932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -3982,12 +3957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4007,12 +3982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4032,12 +4007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4057,12 +4032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4082,12 +4057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4107,12 +4082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4132,12 +4107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4157,12 +4132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4182,12 +4157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4207,12 +4182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4232,12 +4207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4257,12 +4232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4282,12 +4257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4307,12 +4282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4332,12 +4307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4357,12 +4332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4382,12 +4357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4407,12 +4382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4432,12 +4407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4457,12 +4432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4482,12 +4457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4507,12 +4482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4532,12 +4507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4557,12 +4532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4582,12 +4557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4607,12 +4582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4632,12 +4607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4657,12 +4632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4682,12 +4657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4707,12 +4682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4732,12 +4707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4757,12 +4732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4782,12 +4757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4807,12 +4782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4832,12 +4807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4857,12 +4832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4882,12 +4857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4907,12 +4882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4932,12 +4907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4957,12 +4932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -4982,12 +4957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5007,12 +4982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5032,12 +5007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5057,12 +5032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5082,12 +5057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5107,12 +5082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5132,12 +5107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5157,12 +5132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5182,12 +5157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5207,12 +5182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5232,12 +5207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5257,12 +5232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5282,12 +5257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5307,12 +5282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5332,12 +5307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5357,12 +5332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5382,12 +5357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5407,12 +5382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5432,12 +5407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5457,12 +5432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5482,12 +5457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5507,12 +5482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5532,12 +5507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5557,12 +5532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5582,12 +5557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5607,12 +5582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5632,12 +5607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5657,12 +5632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5682,12 +5657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5707,12 +5682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5732,12 +5707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5757,12 +5732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5782,12 +5757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5807,12 +5782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5832,12 +5807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5857,12 +5832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5882,12 +5857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5907,12 +5882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5932,12 +5907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5957,12 +5932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -5982,12 +5957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6007,12 +5982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6032,12 +6007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6057,12 +6032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6082,12 +6057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6107,12 +6082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6132,12 +6107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6157,12 +6132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6182,12 +6157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6207,12 +6182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6232,12 +6207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6257,12 +6232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6282,12 +6257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6307,12 +6282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6332,12 +6307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6357,12 +6332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6382,12 +6357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6407,12 +6382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6432,12 +6407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6457,12 +6432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6482,12 +6457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6507,12 +6482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6532,12 +6507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6557,12 +6532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6582,12 +6557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6607,12 +6582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6632,12 +6607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6657,12 +6632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6682,12 +6657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6707,12 +6682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", " \r\n", @@ -6991,7 +6966,7 @@ "()" ] }, - "execution_count": 33, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -7020,7 +6995,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -7054,23 +7029,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 47232},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 383474},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 177740},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 321366},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 180},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 180},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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", @@ -7078,7 +7053,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 34, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -7094,7 +7069,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -7122,7 +7097,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 35, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -7133,7 +7108,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -7154,9 +7129,9 @@ "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 6\n", - " Job ID: c796f8ea-2157-429d-b6d6-9315680622eb\n", + " Job ID: 1678631d-016c-4332-ba1f-61fcb3b081b9\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[9:02:21 AM] Current job status: Succeeded\n" + "[12:40:10 PM] Current job status: Succeeded\n" ] } ], @@ -7167,7 +7142,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -8220,7 +8195,7 @@ " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 37, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -8233,7 +8208,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -8260,7 +8235,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -8289,7 +8264,7 @@ "1050" ] }, - "execution_count": 39, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task7.ipynb b/iQuHack-challenge-2023-task7.ipynb index c2cd08a..84be853 100644 --- a/iQuHack-challenge-2023-task7.ipynb +++ b/iQuHack-challenge-2023-task7.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -80,7 +80,15 @@ } } }, - "outputs": [], + "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", @@ -89,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +112,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-cat\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -180,10 +188,11 @@ "}\n", "\n", "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " ControlledOnInt(9, X)([input[0], input[1], input[2], input[3]], target);\n", - " ControlledOnInt(9, X)([input[1], input[2], input[3], input[4]], target);\n", - " ControlledOnInt(9, X)([input[2], input[3], input[4], input[5]], target);\n", - " ControlledOnInt(9, X)([input[3], input[4], input[5], input[6]], target);\n", + " ControlledOnInt(9, X)([input[6], input[5], input[4], input[3]], target);\n", + " ControlledOnInt(9, X)([input[5], input[4], input[3], input[2]], target);\n", + " ControlledOnInt(9, X)([input[4], input[3], input[2], input[1]], target);\n", + " ControlledOnInt(9, X)([input[3], input[2], input[1], input[0]], target);\n", + " ControlledOnInt(73, X)(input, target);\n", "}\n", "\n", "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", @@ -197,96 +206,16 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 5, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\r\n", - "
\r\n", - " \r\n", - " Unhandled exception of type Microsoft.Quantum.Simulation.Core.ExecutionFailException: Qubit in invalid state. Expecting: Zero\n", - "\tExpected:\t0\n", - "\tActual:\t0.007812499999999998\r\n", - " \r\n", - "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
$\\left|000100\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|001111\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|010011\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|010101\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|011101\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|011111\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", "
$\\left|100000\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|100010\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
$\\left|101010\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|101100\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
$\\left|110000\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

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

\r\n", + "

\r\n", "

\r\n", "
$\\left|111011\\right\\rangle$$0.1768 + 0.0000 i$$0.0000 + 0.0000 i$\r\n", " \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
Runtime528us360us 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 (4us 400ns) multiplied by the 120 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", + "

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 82 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", "
Algorithmic depth12082\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 24 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 24 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", + "

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 16 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6 CCZ and 16 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 depth12082\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 120. 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", + "

This number is usually equal to the logical depth of the algorithm, which is 82. 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 states12888\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 24 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 6 CCZ and 16 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 128 T states during the algorithm's runtime

\n", + "

Number of T factories capable of producing the demanded 88 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{128\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 528us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\n", + "

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

\n", "\r\n", "
Number of T factory invocations118\r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", "
Required logical qubit error rate1.49e-72.18e-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 120.

\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 82.

\n", "\r\n", "
Required logical T state error rate3.91e-65.68e-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 128.

\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 88.

\n", "\r\n", "
CCZ gates86\r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -2736,7 +2713,7 @@ "\r\n", "
CCiX gates2416\r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -2748,7 +2725,7 @@ "\r\n", "
Measurement operations2416\r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -2979,9 +2956,9 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 24,\n", - " 'cczCount': 8,\n", - " 'measurementCount': 24,\n", + " 'logicalCounts': {'ccixCount': 16,\n", + " 'cczCount': 6,\n", + " 'measurementCount': 16,\n", " 'numQubits': 9,\n", " 'rotationCount': 0,\n", " 'rotationDepth': 0,\n", @@ -2990,20 +2967,20 @@ " 'logicalCycleTime': 4400.0,\n", " 'logicalErrorRate': 3.000000000000002e-08,\n", " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 120,\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 82,\n", " 'algorithmicLogicalQubits': 28,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 120,\n", + " 'logicalDepth': 82,\n", " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 11,\n", + " 'numTfactoryRuns': 8,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 128,\n", + " 'numTstates': 88,\n", " 'physicalQubitsForAlgorithm': 6776,\n", " 'physicalQubitsForTfactories': 77760,\n", - " 'requiredLogicalQubitErrorRate': 1.4880952380952382e-07,\n", - " 'requiredLogicalTstateErrorRate': 3.90625e-06},\n", + " 'requiredLogicalQubitErrorRate': 2.177700348432056e-07,\n", + " 'requiredLogicalTstateErrorRate': 5.681818181818182e-06},\n", " 'physicalQubits': 84536,\n", - " 'runtime': 528000},\n", + " 'runtime': 360800},\n", " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", " 'errorBudget': '1.00e-3',\n", " 'errorBudgetLogical': '5.00e-4',\n", @@ -3015,9 +2992,9 @@ " 'numUnitsPerRound': '2',\n", " 'physicalQubitsForTfactoriesPercentage': '91.98 %',\n", " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '1.49e-7',\n", - " 'requiredLogicalTstateErrorRate': '3.91e-6',\n", - " 'runtime': '528us',\n", + " 'requiredLogicalQubitErrorRate': '2.18e-7',\n", + " 'requiredLogicalTstateErrorRate': '5.68e-6',\n", + " 'runtime': '360us 800ns',\n", " 'tfactoryRuntime': '46us 800ns',\n", " 'tfactoryRuntimePerRound': '46us 800ns',\n", " 'tstateLogicalErrorRate': '2.17e-6',\n", @@ -3035,7 +3012,7 @@ " '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 120 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", + " '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 82 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", @@ -3045,23 +3022,23 @@ " '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 24 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 24 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", + " '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 16 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6 CCZ and 16 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 120. 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", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 82. 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 24 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 6 CCZ and 16 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 128 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{128\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 528us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " {'description': \"Number of T factories capable of producing the demanded 88 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{88\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 360us 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 128 T states, the 12 copies of the T factory are repeatedly invoked 11 times.',\n", + " 'explanation': 'In order to prepare the 88 T states, the 12 copies of the T factory are repeatedly invoked 8 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", @@ -3073,11 +3050,11 @@ " '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 120.',\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 82.',\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 128.',\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 88.',\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", @@ -3091,7 +3068,7 @@ " '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.00000014880952380952382)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.0000002177700348432056)}{\\\\log(0.01/0.001)} - 1$',\n", " 'label': 'Code distance',\n", " 'path': 'logicalQubit/codeDistance'},\n", " {'description': 'Number of physical qubits per logical qubit',\n", @@ -3165,7 +3142,7 @@ " '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.91e-6.',\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 5.68e-6.',\n", " 'label': 'Logical T state error rate',\n", " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", " 'title': 'T factory parameters'},\n", @@ -3273,7 +3250,7 @@ " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 16, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -3286,7 +3263,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { @@ -3313,7 +3290,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { @@ -3332,17 +3309,17 @@ "output_type": "stream", "text": [ "Logical algorithmic qubits = 28\n", - "Algorithmic depth = 120\n", - "Score = 3360\n" + "Algorithmic depth = 82\n", + "Score = 2296\n" ] }, { "data": { "text/plain": [ - "3360" + "2296" ] }, - "execution_count": 18, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task3.ipynb b/iQuHack-challenge-2023-task3.ipynb index 77007c4..8133476 100644 --- a/iQuHack-challenge-2023-task3.ipynb +++ b/iQuHack-challenge-2023-task3.ipynb @@ -80,15 +80,7 @@ } } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Preparing Q# environment...\n" - ] - } - ], + "outputs": [], "source": [ "# Run this code cell to import the modules required to work with Q# and Azure\n", "import qsharp\n", @@ -177,6 +169,7 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 3. \n", "// (input will contain 6 qubits)\n", @@ -194,24 +187,44 @@ "}\n", "\n", "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", - " use output = Qubit[Length(input)+1] {\n", - " within {\n", - " output[0] = input[0]\n", - " for i in 1 .. Length(input) - 1 { \n", - " \n", - " }\n", - " } apply {\n", - " ControlledOnInt(3, X)(output, target);\n", - " }\n", - "\n", + " use sumWires = Qubit[4];\n", + " use zero = Qubit[1];\n", + " within{\n", + " //Ebene 1\n", + " CarryN(input[0], input[1], input[2], sumWires[0]);\n", + " CarryN(input[3], input[4], input[5], sumWires[1]);\n", + " //Ebene 2\n", + " CarryN(zero[0], input[2], input[5], sumWires[2]);\n", + " CarryN(sumWires[2], sumWires[0], sumWires[1], sumWires[3]);\n", + " //Outputs: input[5], sumWires[1], sumWires[3]\n", + " // == 3 --> input[5] == 1 && sumWires[1] == 1 && sumWires[3] == 0\n", + " X(sumWires[3]);\n", + " } apply{\n", + " Controlled X([input[5], sumWires[1], sumWires[3]], target);\n", " }\n", "}\n", - "\n" + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(6+1, QubitArrayWrapperOperation(Task3, _), QubitArrayWrapperOperation (original, _));\n", + "}" ] }, { "cell_type": "code", "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -268,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -313,12 +326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\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 qubits14350699916\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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "

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

\n", "\r\n", "
Runtime1ms 672us242us\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 380 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", + "

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 55 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", "
Logical algorithmic qubits3338\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", + "

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 depth38055\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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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", + "

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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 depth38055\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 380. 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", + "

This number is usually equal to the logical depth of the algorithm, which is 55. 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 states40072\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 20 CCZ and 80 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 17 CCZ and 1 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 factories14\r\n", - "

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

\n", + "

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

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", "
Number of T factory invocations296\r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", "
Physical algorithmic qubits79869196\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", + "

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

\n", "\r\n", "
Physical T factory qubits13552090720\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 14 in parallel, therefore we need $135520 = 9680 \\cdot 14$ qubits.

\n", + "

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

\n", "\r\n", "
Required logical qubit error rate3.99e-82.39e-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 33 logical qubits and the total cycle count 380.

\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 55.

\n", "\r\n", "
Required logical T state error rate1.25e-66.94e-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 400.

\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 72.

\n", "\r\n", "
Physical qubits96806480\r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -4149,7 +4161,7 @@ "\r\n", "
Runtime57us 200ns46us 800ns\r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -4166,7 +4178,7 @@ "

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", + "

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", "
Distillation code distances119\r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -4233,7 +4245,7 @@ "\r\n", "
Number of physical qubits per round96806480\r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -4245,7 +4257,7 @@ "\r\n", "
Runtime per round57us 200ns46us 800ns\r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -4257,12 +4269,12 @@ "\r\n", "
Logical T state error rate2.48e-72.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 1.25e-6.

\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.94e-6.

\n", "\r\n", "
Logical qubits (pre-layout)1113\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", + "

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", "
CCZ gates2017\r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -4337,7 +4349,7 @@ "\r\n", "
CCiX gates801\r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -4349,7 +4361,7 @@ "\r\n", "
Measurement operations801\r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -4580,10 +4592,10 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 80,\n", - " 'cczCount': 20,\n", - " 'measurementCount': 80,\n", - " 'numQubits': 11,\n", + " 'logicalCounts': {'ccixCount': 1,\n", + " 'cczCount': 17,\n", + " 'measurementCount': 1,\n", + " 'numQubits': 13,\n", " 'rotationCount': 0,\n", " 'rotationDepth': 0,\n", " 'tCount': 0},\n", @@ -4591,21 +4603,21 @@ " 'logicalCycleTime': 4400.0,\n", " 'logicalErrorRate': 3.000000000000002e-08,\n", " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 380,\n", - " 'algorithmicLogicalQubits': 33,\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 55,\n", + " 'algorithmicLogicalQubits': 38,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 380,\n", + " 'logicalDepth': 55,\n", " 'numTfactories': 14,\n", - " 'numTfactoryRuns': 29,\n", + " 'numTfactoryRuns': 6,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 400,\n", - " 'physicalQubitsForAlgorithm': 7986,\n", - " 'physicalQubitsForTfactories': 135520,\n", - " 'requiredLogicalQubitErrorRate': 3.987240829346092e-08,\n", - " 'requiredLogicalTstateErrorRate': 1.25e-06},\n", - " 'physicalQubits': 143506,\n", - " 'runtime': 1672000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n", + " 'numTstates': 72,\n", + " 'physicalQubitsForAlgorithm': 9196,\n", + " 'physicalQubitsForTfactories': 90720,\n", + " 'requiredLogicalQubitErrorRate': 2.3923444976076555e-07,\n", + " 'requiredLogicalTstateErrorRate': 6.944444444444445e-06},\n", + " 'physicalQubits': 99916,\n", + " 'runtime': 242000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", " 'errorBudget': '1.00e-3',\n", " 'errorBudgetLogical': '5.00e-4',\n", " 'errorBudgetRotations': '0.00e0',\n", @@ -4614,14 +4626,14 @@ " 'logicalErrorRate': '3.00e-8',\n", " 'numTsPerRotation': 'No rotations in algorithm',\n", " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '94.44 %',\n", - " 'physicalQubitsPerRound': '9680',\n", - " 'requiredLogicalQubitErrorRate': '3.99e-8',\n", - " 'requiredLogicalTstateErrorRate': '1.25e-6',\n", - " 'runtime': '1ms 672us',\n", - " 'tfactoryRuntime': '57us 200ns',\n", - " 'tfactoryRuntimePerRound': '57us 200ns',\n", - " 'tstateLogicalErrorRate': '2.48e-7',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.80 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '2.39e-7',\n", + " 'requiredLogicalTstateErrorRate': '6.94e-6',\n", + " 'runtime': '242us',\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", @@ -4632,53 +4644,53 @@ " '**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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 9196 physical qubits to implement the algorithm logic, and 90720 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 380 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", + " '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 55 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", + " '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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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", + " '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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 380. 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", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 55. 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 20 CCZ and 80 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 17 CCZ and 1 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 400 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " {'description': \"Number of T factories capable of producing the demanded 72 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 times.',\n", + " 'explanation': 'In order to prepare the 72 T states, the 14 copies of the T factory are repeatedly invoked 6 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", + " 'explanation': 'The 9196 are the product of the 38 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ qubits.',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 380.',\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 55.',\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 400.',\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 72.',\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", @@ -4692,7 +4704,7 @@ " '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.00000003987240829346092)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000023923444976076555)}{\\\\log(0.01/0.001)} - 1$',\n", " 'label': 'Code distance',\n", " 'path': 'logicalQubit/codeDistance'},\n", " {'description': 'Number of physical qubits per logical qubit',\n", @@ -4734,7 +4746,7 @@ " '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", + " '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", @@ -4766,13 +4778,13 @@ " '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-6.',\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.94e-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", + " '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", @@ -4861,16 +4873,16 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [11],\n", - " 'logicalErrorRate': 2.480000000000001e-07,\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\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", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, @@ -4932,15 +4944,15 @@ "name": "stdout", "output_type": "stream", "text": [ - "Logical algorithmic qubits = 33\n", - "Algorithmic depth = 380\n", - "Score = 12540\n" + "Logical algorithmic qubits = 38\n", + "Algorithmic depth = 55\n", + "Score = 2090\n" ] }, { "data": { "text/plain": [ - "12540" + "2090" ] }, "execution_count": 13, diff --git a/iQuHack-challenge-2023-task7.ipynb b/iQuHack-challenge-2023-task7.ipynb index 2670c29..c2cd08a 100644 --- a/iQuHack-challenge-2023-task7.ipynb +++ b/iQuHack-challenge-2023-task7.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { @@ -169,19 +169,124 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 7. \n", "// (input will contain 7 qubits)\n", - "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", - "}" + "}\n", + "\n", + "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " ControlledOnInt(9, X)([input[0], input[1], input[2], input[3]], target);\n", + " ControlledOnInt(9, X)([input[1], input[2], input[3], input[4]], target);\n", + " ControlledOnInt(9, X)([input[2], input[3], input[4], input[5]], target);\n", + " ControlledOnInt(9, X)([input[3], input[4], input[5], input[6]], target);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(7+1, QubitArrayWrapperOperation(Task7, _), QubitArrayWrapperOperation (original, _));\n", + "}\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Unhandled exception of type Microsoft.Quantum.Simulation.Core.ExecutionFailException: Qubit in invalid state. Expecting: Zero\n", + "\tExpected:\t0\n", + "\tActual:\t0.007812499999999998\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \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", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
SourceCallable
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\Assert.qs:0Microsoft.Quantum.Diagnostics.AssertMeasurement
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertQubit.qs:0Microsoft.Quantum.Diagnostics.AssertQubit
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertAllZero.qs:0Microsoft.Quantum.Diagnostics.AssertAllZero
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:0Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced
(notebook)TestCompoundGate
\r\n", + "
\r\n", + " " + ], + "text/plain": [ + "Unhandled exception. Microsoft.Quantum.Simulation.Core.ExecutionFailException: Qubit in invalid state. Expecting: Zero\n", + "\tExpected:\t0\n", + "\tActual:\t0.007812499999999998\n", + " ---> Microsoft.Quantum.Diagnostics.AssertMeasurement on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\Assert.qs:line 0\n", + " at Microsoft.Quantum.Diagnostics.AssertQubit on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertQubit.qs:line 0\n", + " at Microsoft.Quantum.Diagnostics.AssertAllZero on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertAllZero.qs:line 0\n", + " at Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:line 0\n", + " at SNIPPET.TestCompoundGate on /snippet_.qs:line 0\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Qubit in invalid state. Expecting: Zero\n", + "\tExpected:\t0\n", + "\tActual:\t0.007812499999999998\n" + ] + } + ], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +356,3374 @@ } } }, - "outputs": [], + "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.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}}}", + "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", + "
" + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 9, + "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", @@ -276,7 +3748,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +3761,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 176176},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 317595},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 70},\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': 70},\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": 11, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +3835,33 @@ } } }, - "outputs": [], + "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": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +3874,21 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 7\n", + " Job ID: 86743ad4-5cca-4ea9-b420-d0b0c93f9a49\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[11:59:38 AM] Current job status: Executing\n", + "[11:59:43 AM] 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(Task7_ResourceEstimationWrapper, jobName=\"RE for the task 7\")" @@ -342,7 +3896,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +3909,1051 @@ } } }, - "outputs": [], + "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\":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\"]}}", + "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" + ], + "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']}}" + ] + }, + "execution_count": 14, + "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", @@ -364,7 +4962,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +4989,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +5002,37 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 38\n", + "Algorithmic depth = 713\n", + "Score = 27094\n" + ] + }, + { + "data": { + "text/plain": [ + "27094" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +5040,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/obj/__entrypoint__.dll b/obj/__entrypoint__.dll index 6c6e7d3b3c59f1c9228c8f898c3a6524006a0b9a..a00d44fff70892e84668831d398d9163455199bc 100644 GIT binary patch literal 321536 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 Gf&U*zgcn)> delta 30947 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 MkoGP%v&;hj9~v%E+5i9m literal 106496 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 z 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 Hrv&~#&qgM{ diff --git a/obj/__snippets__.dll b/obj/__snippets__.dll index 379c6912f7e681c7e08bcf1547809d8ec53b309e..c80e18a9da7abb6fd8cb2add5ab22225cc078a91 100644 GIT binary patch literal 114688 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

    W(2GY#`I}L9qT$56*9$<;tschqdP|nj@^d zN;3SdmbNn8=tov5vyOd{oMmhNV8>Uzv$I~MaJii4h%NkWA>0l$inzNCuO&}j_Q+x# z!iq*1fnh^fr*qYyRB=DLvuzUQi^n{v!v>KOT%WQS_6))&ZXnnLg>9n-0?Oe zdZ)t`Z$6QGeBcSPI&nIgv-o7v*fNpN6t+xY1==%nlgWH8o=9W$JUg388gM3?m`XYE zOnS=M98YKR@wpr}Fd#$y>FFf*K8aNPlxBnd)r^zK&1Ib#C!Nm~t+U0P)@*$(6gx_( zquFfYtZD3FX{%Vcv6X_E=w6Mj6pT;^GSUi=Laq|7KvgZrDZ$%HnQf9imvXvcxXDe5 zHi8_(m-j*<{Pb+hQ9~kQyg(|`1XJ3O!4J#KUfz~>2K|s-28jukdbr5 zq+;2cCu7#DcQ~+)e*tuPcij9tf;Oof*!|)H1xg#rymX*Y3al|S3O1`P=N}rjMK{*Q z!lPncxd<%uiboPMb9s-OQjezpiVxRo60z!hdWSq1n6AQA`sGl)Ce3l(bug3DpQj*g zJ0VB5B=U>*l8F^Vd<%K*>qMf_2OM)e{r) zPP$R_t1%UmOUi1sH0?wpnUXpe!{bH%XeHs5-gFIX_Db>!-Ycg(-Nu|W6$8^t#jAOY z!C>!K>goE5rmxRT{BA#ke=WE;o#e_Y#L_u(w^>m@RnL_ihSge|QhCX-kcbj3SZ1Er zmAPhP%NAqn0=8bDg%@-SbJDO*dLl~Q_VQkeg&lO3L8@lO`HKl{DDyHDm}d~!l{p;T zHWuz7(%QusBDO`tEE(+62+_M-N?CG|M%tB`Emxyf_~kv$f?Ihdv`NNoa0|;r#WTWq zq<9!p2BwW|n>IyhG`}fcOijMbyZ7-@DfL0-r<2I4r`s#;mglF=h4Nt82C>05Ai?glLmajFEo~o5z)3Hl=U771a*J0;3 z57A7A7$L}$9h&;hxQbtZt@GvR@(<-Hs$7s>wsvG!gZ2d8OBlnOx0$*0^gVb@fMmQH z&-G!1#&dlbp*U1}c3%ls%%xH(=s_k|lM*;88Tfw6!UY)~{YnvCFKT+ ze=S`rUD)AW+X}yW6WJlsDFy1VS`|1{&jm{^XtUn1xEtww1~Ti4ENLlI%U!rQXuSLn zBQWgJu~OqmH<^6cgsb@SL3-mJLvpW4udK0D*#>^=h)wAA4Ex-~i_6U`i!oxUi|FGi zV8LXBQpd(54kOe%Dc4JHcY>V{?x@9Z30o@j!IBGZbDyc;AYJ51oNwb~vdL3P{Hnl6 z4V9D|Vg6Yuta%r=(+j3QWm=y>dST}AGe%<8q<)KC-j)qFkDoNQ@V~BB&K6<4%7_U} zY8|Aaqup=ZR0Q1vM9{@=$Hmt`Y*9$XV%&r>=${k2+3Io0t3$QcmVWlXIwV?D7wuAT zqV^vg5i^ME);d2BzN>4IE75Pism!Mw`+GY|F&e#BMNTUc>0NCHj`$b3AdY&DYauk z_W_^5s?z%u34U^bKO&e-qF1LxjSAm*6_Q};uAhTeMN^Oe=4^Cr5&1zyZM^TeF+pqW1-)4W>M7(h-yHG^uRCW!t&m!0$8Z0h1my z=^>LIHt8{w9yjTOCY?5^ObN0ql0|CL;AQD3rax=omrU|%MBf_Ue%mFZQA3dnXo3F^ D3!1fC literal 105984 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 S{(_~rVEvFn*>-O`4*Y){ckP-0 From 9b658146067d58ec68e19a7fb2c80d81f889b42e Mon Sep 17 00:00:00 2001 From: Hamish Hall Date: Sun, 29 Jan 2023 12:41:23 +0000 Subject: [PATCH 3/7] 7 done too --- ...Hack-challenge-2023-task6-checkpoint.ipynb | 7928 ++++++++++++++++- ...Hack-challenge-2023-task7-checkpoint.ipynb | 4615 +++++++++- iQuHack-challenge-2023-task6.ipynb | 1091 ++- iQuHack-challenge-2023-task7.ipynb | 870 +- obj/__entrypoint__.dll | Bin 321536 -> 321024 bytes obj/__entrypoint__snippets__.dll | Bin 51200 -> 89600 bytes obj/__snippets__.dll | Bin 114688 -> 89088 bytes 7 files changed, 13427 insertions(+), 1077 deletions(-) diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb index 4d2f2c8..7babc33 100644 --- a/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +104,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -169,19 +169,43 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 6. \n", "// (input will contain 8 qubits)\n", - "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", + "}\n", + "\n", + "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [20,22] {\n", + " ControlledOnInt(i, X)([input[1],input[2],input[4], input[5], input[7]], target);\n", + " }\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(8+1, QubitArrayWrapperOperation(Task6, _), QubitArrayWrapperOperation (original, _));\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +275,6702 @@ } } }, - "outputs": [], + "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.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}}}", + "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", + "
    " + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 7, + "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", @@ -276,7 +6995,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +7008,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 177740},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 321366},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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": 8, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +7082,33 @@ } } }, - "outputs": [], + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +7121,20 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 6\n", + " Job ID: 1678631d-016c-4332-ba1f-61fcb3b081b9\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[12:40:10 PM] 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(Task6_ResourceEstimationWrapper, jobName=\"RE for the task 6\")" @@ -342,7 +7142,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +7155,1051 @@ } } }, - "outputs": [], + "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\":6,\"cczCount\":2,\"measurementCount\":6,\"numQubits\":12,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":30,\"algorithmicLogicalQubits\":35,\"cliffordErrorRate\":0.001,\"logicalDepth\":30,\"numTfactories\":14,\"numTfactoryRuns\":3,\"numTsPerRotation\":null,\"numTstates\":32,\"physicalQubitsForAlgorithm\":5670,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":4.761904761904762E-07,\"requiredLogicalTstateErrorRate\":1.5625E-05},\"physicalQubits\":96390,\"runtime\":108000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.12 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"4.76e-7\",\"requiredLogicalTstateErrorRate\":\"1.56e-5\",\"runtime\":\"108us\",\"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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.\",\"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 32.\",\"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.0000004761904761904762)}{\\\\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.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 1.56e-5.\",\"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 35 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 qubits96390\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 5670 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

    \n", + "\r\n", + "
    Runtime108us\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 30 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 qubits35\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} = 12\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 35$ logical qubits.

    \n", + "\r\n", + "
    Algorithmic depth30\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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 depth30\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 30. 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 states32\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 2 CCZ and 6 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 factories14\r\n", + "

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

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

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

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

    Number of times all T factories are invoked

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

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

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

    Number of physical qubits for the algorithm after layout

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

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

    \n", + "\r\n", + "
    Physical T factory qubits90720\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 14 in parallel, therefore we need $90720 = 6480 \\cdot 14$ qubits.

    \n", + "\r\n", + "
    Required logical qubit error rate4.76e-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 35 logical qubits and the total cycle count 30.

    \n", + "\r\n", + "
    Required logical T state error rate1.56e-5\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 32.

    \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.0000004761904761904762)}{\\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 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 1.56e-5.

    \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)12\r\n", + "

    Number of logical qubits in the input quantum program

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

    We determine 35 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 gates2\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 gates6\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 operations6\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': 6,\n", + " 'cczCount': 2,\n", + " 'measurementCount': 6,\n", + " 'numQubits': 12,\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': 30,\n", + " 'algorithmicLogicalQubits': 35,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 30,\n", + " 'numTfactories': 14,\n", + " 'numTfactoryRuns': 3,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 32,\n", + " 'physicalQubitsForAlgorithm': 5670,\n", + " 'physicalQubitsForTfactories': 90720,\n", + " 'requiredLogicalQubitErrorRate': 4.761904761904762e-07,\n", + " 'requiredLogicalTstateErrorRate': 1.5625e-05},\n", + " 'physicalQubits': 96390,\n", + " 'runtime': 108000},\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': '3us 600ns',\n", + " 'logicalErrorRate': '3.00e-7',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.12 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '4.76e-7',\n", + " 'requiredLogicalTstateErrorRate': '1.56e-5',\n", + " 'runtime': '108us',\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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 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 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.',\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 32.',\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.0000004761904761904762)}{\\\\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.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 1.56e-5.',\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 35 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": 11, + "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", @@ -364,7 +8208,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +8235,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +8248,44 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 35\n", + "Algorithmic depth = 30\n", + "Score = 1050\n" + ] + }, + { + "data": { + "text/plain": [ + "1050" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +8293,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb index 2670c29..84be853 100644 --- a/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -80,7 +80,15 @@ } } }, - "outputs": [], + "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", @@ -89,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +112,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-cat\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -169,19 +177,45 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 7. \n", "// (input will contain 7 qubits)\n", - "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", - "}" + "}\n", + "\n", + "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " ControlledOnInt(9, X)([input[6], input[5], input[4], input[3]], target);\n", + " ControlledOnInt(9, X)([input[5], input[4], input[3], input[2]], target);\n", + " ControlledOnInt(9, X)([input[4], input[3], input[2], input[1]], target);\n", + " ControlledOnInt(9, X)([input[3], input[2], input[1], input[0]], target);\n", + " ControlledOnInt(73, X)(input, target);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(7+1, QubitArrayWrapperOperation(Task7, _), QubitArrayWrapperOperation (original, _));\n", + "}\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +285,3374 @@ } } }, - "outputs": [], + "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.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}}}", + "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", + "
    " + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 7, + "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", @@ -276,7 +3677,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +3690,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 176914},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 423509},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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": 8, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +3764,33 @@ } } }, - "outputs": [], + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +3803,21 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 7\n", + " Job ID: fd0504b4-d2d0-4bfc-a151-f6708f20d5ce\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[12:35:59 PM] Current job status: Waiting\n", + "[12:36:04 PM] 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(Task7_ResourceEstimationWrapper, jobName=\"RE for the task 7\")" @@ -342,7 +3825,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +3838,1051 @@ } } }, - "outputs": [], + "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\":13,\"cczCount\":5,\"measurementCount\":13,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":67,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":67,\"numTfactories\":12,\"numTfactoryRuns\":6,\"numTsPerRotation\":null,\"numTstates\":72,\"physicalQubitsForAlgorithm\":9196,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.9638648860958366E-07,\"requiredLogicalTstateErrorRate\":6.944444444444445E-06},\"physicalQubits\":86956,\"runtime\":294800},\"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\":\"89.42 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.96e-7\",\"requiredLogicalTstateErrorRate\":\"6.94e-6\",\"runtime\":\"294us 800ns\",\"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 9196 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 67 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} = 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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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 67. 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 5 CCZ and 13 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 72 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{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 294us 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 72 T states, the 12 copies of the T factory are repeatedly invoked 6 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 9196 are the product of the 38 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 38 logical qubits and the total cycle count 67.\",\"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 72.\",\"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.00000019638648860958366)}{\\\\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 6.94e-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 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\":[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 qubits86956\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 9196 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", + "
    Runtime294us 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 (4us 400ns) multiplied by the 67 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 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 depth67\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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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 depth67\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 67. 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 states72\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 5 CCZ and 13 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 72 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{72\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 294us 800ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

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

    Number of times all T factories are invoked

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

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

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

    Number of physical qubits for the algorithm after layout

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

    The 9196 are the product of the 38 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.96e-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 38 logical qubits and the total cycle count 67.

    \n", + "\r\n", + "
    Required logical T state error rate6.94e-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 72.

    \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.00000019638648860958366)}{\\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 6.94e-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)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 gates5\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 gates13\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 operations13\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': 13,\n", + " 'cczCount': 5,\n", + " 'measurementCount': 13,\n", + " 'numQubits': 13,\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': 67,\n", + " 'algorithmicLogicalQubits': 38,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 67,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 6,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 72,\n", + " 'physicalQubitsForAlgorithm': 9196,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 1.9638648860958366e-07,\n", + " 'requiredLogicalTstateErrorRate': 6.944444444444445e-06},\n", + " 'physicalQubits': 86956,\n", + " 'runtime': 294800},\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': '89.42 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '1.96e-7',\n", + " 'requiredLogicalTstateErrorRate': '6.94e-6',\n", + " 'runtime': '294us 800ns',\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 9196 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 67 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} = 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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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 67. 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 5 CCZ and 13 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 72 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{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 294us 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 72 T states, the 12 copies of the T factory are repeatedly invoked 6 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 9196 are the product of the 38 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 38 logical qubits and the total cycle count 67.',\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 72.',\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.00000019638648860958366)}{\\\\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 6.94e-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 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': [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": 11, + "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", @@ -364,7 +4891,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +4918,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +4931,44 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 38\n", + "Algorithmic depth = 67\n", + "Score = 2546\n" + ] + }, + { + "data": { + "text/plain": [ + "2546" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +4976,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/iQuHack-challenge-2023-task6.ipynb b/iQuHack-challenge-2023-task6.ipynb index 5205348..7babc33 100644 --- a/iQuHack-challenge-2023-task6.ipynb +++ b/iQuHack-challenge-2023-task6.ipynb @@ -198,39 +198,14 @@ "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Traceback (most recent call last):\n", - " File \"/opt/conda/lib/python3.9/runpy.py\", line 197, in _run_module_as_main\n", - " return _run_code(code, main_globals, None,\n", - " File \"/opt/conda/lib/python3.9/runpy.py\", line 87, in _run_code\n", - " exec(code, run_globals)\n", - " File \"/opt/conda/lib/python3.9/site-packages/ipykernel_launcher.py\", line 17, in \n", - " app.launch_new_instance()\n", - " File \"/opt/conda/lib/python3.9/site-packages/traitlets/config/application.py\", line 1041, in launch_instance\n", - " app.start()\n", - " File \"/opt/conda/lib/python3.9/site-packages/ipykernel/kernelapp.py\", line 724, in start\n", - " self.io_loop.start()\n", - " File \"/opt/conda/lib/python3.9/site-packages/tornado/platform/asyncio.py\", line 199, in start\n", - " self.asyncio_loop.run_forever()\n", - " File \"/opt/conda/lib/python3.9/asyncio/base_events.py\", line 596, in run_forever\n", - " self._run_once()\n", - " File \"/opt/conda/lib/python3.9/asyncio/base_events.py\", line 1875, in _run_once\n", - " handle = self._ready.popleft()\n", - "IndexError: pop from an empty deque\n" - ] - } - ], + "outputs": [], "source": [ "TestCompoundGate();" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -287,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -332,12 +307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - "

\r\n", + "

\r\n", "

\r\n", "
\r\n", - " \r\n", - " \r\n", - " \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", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
SourceCallable
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\Assert.qs:0Microsoft.Quantum.Diagnostics.AssertMeasurement
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertQubit.qs:0Microsoft.Quantum.Diagnostics.AssertQubit
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertAllZero.qs:0Microsoft.Quantum.Diagnostics.AssertAllZero
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:0Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced
(notebook)TestCompoundGate
\r\n", - " \r\n", - " " - ], - "text/plain": [ - "Unhandled exception. Microsoft.Quantum.Simulation.Core.ExecutionFailException: Qubit in invalid state. Expecting: Zero\n", - "\tExpected:\t0\n", - "\tActual:\t0.007812499999999998\n", - " ---> Microsoft.Quantum.Diagnostics.AssertMeasurement on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\Assert.qs:line 0\n", - " at Microsoft.Quantum.Diagnostics.AssertQubit on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertQubit.qs:line 0\n", - " at Microsoft.Quantum.Diagnostics.AssertAllZero on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\QSharpFoundation\\Diagnostics\\AssertAllZero.qs:line 0\n", - " at Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:line 0\n", - " at SNIPPET.TestCompoundGate on /snippet_.qs:line 0\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Qubit in invalid state. Expecting: Zero\n", - "\tExpected:\t0\n", - "\tActual:\t0.007812499999999998\n" - ] - } - ], + "outputs": [], "source": [ "TestCompoundGate();" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -343,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -388,12 +317,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -413,12 +342,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -438,12 +367,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -463,12 +392,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -488,12 +417,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -513,12 +442,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -538,12 +467,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -563,12 +492,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -588,12 +517,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -613,12 +542,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -638,12 +567,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -663,12 +592,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -688,12 +617,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -713,12 +642,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -738,12 +667,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -763,12 +692,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -788,12 +717,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -813,12 +742,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -838,12 +767,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -863,12 +792,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -888,12 +817,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -913,12 +842,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -938,12 +867,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -963,12 +892,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -988,12 +917,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1013,12 +942,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1038,12 +967,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1063,12 +992,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1088,12 +1017,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1113,12 +1042,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1138,12 +1067,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1163,12 +1092,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1188,12 +1117,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1213,12 +1142,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1238,12 +1167,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1263,12 +1192,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1288,12 +1217,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1313,12 +1242,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1338,12 +1267,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1363,12 +1292,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1388,12 +1317,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1413,12 +1342,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1438,12 +1367,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1463,12 +1392,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1488,12 +1417,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1513,12 +1442,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1538,12 +1467,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1563,12 +1492,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1588,12 +1517,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1613,12 +1542,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1638,12 +1567,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1663,12 +1592,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1688,12 +1617,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1713,12 +1642,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1738,12 +1667,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1763,12 +1692,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1788,12 +1717,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1813,12 +1742,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1838,12 +1767,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1863,12 +1792,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1888,12 +1817,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1913,12 +1842,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1938,12 +1867,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1963,12 +1892,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1988,12 +1917,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2013,12 +1942,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2038,12 +1967,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2063,12 +1992,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2088,12 +2017,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2113,12 +2042,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2138,12 +2067,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2163,12 +2092,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2188,12 +2117,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2213,12 +2142,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2238,12 +2167,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2263,12 +2192,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2288,12 +2217,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2313,12 +2242,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2338,12 +2267,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2363,12 +2292,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2388,12 +2317,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2413,12 +2342,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2438,12 +2367,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2463,12 +2392,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2488,12 +2417,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2513,12 +2442,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2538,12 +2467,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2563,12 +2492,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2588,12 +2517,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2613,12 +2542,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2638,12 +2567,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2663,12 +2592,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2688,12 +2617,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2713,12 +2642,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2738,12 +2667,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2763,12 +2692,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2788,12 +2717,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2813,12 +2742,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2838,12 +2767,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2863,12 +2792,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2888,12 +2817,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2913,12 +2842,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2938,12 +2867,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2963,12 +2892,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2988,12 +2917,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3013,12 +2942,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3038,12 +2967,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3063,12 +2992,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3088,12 +3017,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3113,12 +3042,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3138,12 +3067,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3163,12 +3092,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3188,12 +3117,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3213,12 +3142,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3238,12 +3167,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3263,12 +3192,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3288,12 +3217,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3313,12 +3242,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3338,12 +3267,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3363,12 +3292,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3388,12 +3317,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3413,12 +3342,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3438,12 +3367,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3463,12 +3392,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3488,12 +3417,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3513,12 +3442,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3538,12 +3467,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3563,12 +3492,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3719,7 +3648,7 @@ "()" ] }, - "execution_count": 9, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -3748,7 +3677,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -3782,23 +3711,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 176176},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 317595},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 176914},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 423509},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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", @@ -3806,7 +3735,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 11, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -3822,7 +3751,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -3850,7 +3779,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 12, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -3861,7 +3790,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -3882,10 +3811,10 @@ "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 7\n", - " Job ID: 86743ad4-5cca-4ea9-b420-d0b0c93f9a49\n", + " Job ID: fd0504b4-d2d0-4bfc-a151-f6708f20d5ce\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[11:59:38 AM] Current job status: Executing\n", - "[11:59:43 AM] Current job status: Succeeded\n" + "[12:35:59 PM] Current job status: Waiting\n", + "[12:36:04 PM] Current job status: Succeeded\n" ] } ], @@ -3896,7 +3825,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -3912,7 +3841,7 @@ "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\":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\"]}}", + "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\":13,\"cczCount\":5,\"measurementCount\":13,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":67,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":67,\"numTfactories\":12,\"numTfactoryRuns\":6,\"numTsPerRotation\":null,\"numTstates\":72,\"physicalQubitsForAlgorithm\":9196,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.9638648860958366E-07,\"requiredLogicalTstateErrorRate\":6.944444444444445E-06},\"physicalQubits\":86956,\"runtime\":294800},\"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\":\"89.42 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.96e-7\",\"requiredLogicalTstateErrorRate\":\"6.94e-6\",\"runtime\":\"294us 800ns\",\"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 9196 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 67 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} = 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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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 67. 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 5 CCZ and 13 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 72 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{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 294us 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 72 T states, the 12 copies of the T factory are repeatedly invoked 6 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 9196 are the product of the 38 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 38 logical qubits and the total cycle count 67.\",\"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 72.\",\"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.00000019638648860958366)}{\\\\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 6.94e-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 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\":[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", @@ -3924,24 +3853,24 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 129004\r\n", + " 86956\r\n", " \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", + "

This value represents the total number of physical qubits, which is the sum of 9196 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", " \r\n", " \n", "\r\n", " \r\n", " Runtime\r\n", - " 3ms 707us 600ns\r\n", + " 294us 800ns\r\n", " \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", + "

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 67 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", " \n", @@ -3968,36 +3897,36 @@ "\r\n", " \r\n", " Algorithmic depth\r\n", - " 713\r\n", + " 67\r\n", " \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", + "

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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 713\r\n", + " 67\r\n", " \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", + "

This number is usually equal to the logical depth of the algorithm, which is 67. 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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 744\r\n", + " 72\r\n", " \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", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 5 CCZ and 13 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", " \r\n", " \n", @@ -4006,70 +3935,70 @@ " Number of T factories\r\n", " 12\r\n", " \r\n", - "

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

\n", + "

Number of T factories capable of producing the demanded 72 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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 62\r\n", + " 6\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical algorithmic qubits\r\n", - " 12844\r\n", + " 9196\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical T factory qubits\r\n", - " 116160\r\n", + " 77760\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 1.85e-8\r\n", + " 1.96e-7\r\n", " \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", + "

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 67.

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 6.72e-7\r\n", + " 6.94e-6\r\n", " \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", + "

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 72.

\n", "\r\n", " \r\n", " \n", @@ -4108,19 +4037,19 @@ "\r\n", " \r\n", " Code distance\r\n", - " 13\r\n", + " 11\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical qubits\r\n", - " 338\r\n", + " 242\r\n", " \r\n", "

Number of physical qubits per logical qubit

\n", "
\r\n", @@ -4132,7 +4061,7 @@ "\r\n", " \r\n", " Logical cycle time\r\n", - " 5us 200ns\r\n", + " 4us 400ns\r\n", " \r\n", "

Duration of a logical cycle in nanoseconds

\n", "
\r\n", @@ -4144,12 +4073,12 @@ "\r\n", " \r\n", " Logical qubit error rate\r\n", - " 3.00e-9\r\n", + " 3.00e-8\r\n", " \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", + "

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", " \r\n", " \n", @@ -4185,7 +4114,7 @@ "

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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -4197,7 +4126,7 @@ "

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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -4212,7 +4141,7 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -4224,7 +4153,7 @@ "\r\n", " \r\n", " Runtime\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -4241,7 +4170,7 @@ "

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", + "

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", " \r\n", " \n", @@ -4296,7 +4225,7 @@ "\r\n", " \r\n", " Distillation code distances\r\n", - " 11\r\n", + " 9\r\n", " \r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -4308,7 +4237,7 @@ "\r\n", " \r\n", " Number of physical qubits per round\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -4320,7 +4249,7 @@ "\r\n", " \r\n", " Runtime per round\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -4332,12 +4261,12 @@ "\r\n", " \r\n", " Logical T state error rate\r\n", - " 2.48e-7\r\n", + " 2.17e-6\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -4400,7 +4329,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 31\r\n", + " 5\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -4412,7 +4341,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 155\r\n", + " 13\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -4424,7 +4353,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 155\r\n", + " 13\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -4655,48 +4584,48 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 155,\n", - " 'cczCount': 31,\n", - " 'measurementCount': 155,\n", + " 'logicalCounts': {'ccixCount': 13,\n", + " 'cczCount': 5,\n", + " 'measurementCount': 13,\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", + " 'logicalQubit': {'codeDistance': 11,\n", + " 'logicalCycleTime': 4400.0,\n", + " 'logicalErrorRate': 3.000000000000002e-08,\n", + " 'physicalQubits': 242},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 67,\n", " 'algorithmicLogicalQubits': 38,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 713,\n", + " 'logicalDepth': 67,\n", " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 62,\n", + " 'numTfactoryRuns': 6,\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", + " 'numTstates': 72,\n", + " 'physicalQubitsForAlgorithm': 9196,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 1.9638648860958366e-07,\n", + " 'requiredLogicalTstateErrorRate': 6.944444444444445e-06},\n", + " 'physicalQubits': 86956,\n", + " 'runtime': 294800},\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': '5us 200ns',\n", - " 'logicalErrorRate': '3.00e-9',\n", + " 'logicalCycleTime': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\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", + " 'physicalQubitsForTfactoriesPercentage': '89.42 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '1.96e-7',\n", + " 'requiredLogicalTstateErrorRate': '6.94e-6',\n", + " 'runtime': '294us 800ns',\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", @@ -4707,11 +4636,11 @@ " '**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", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 9196 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 (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", + " '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 67 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", @@ -4721,39 +4650,39 @@ " '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", + " '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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 67. 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", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 5 CCZ and 13 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", + " {'description': \"Number of T factories capable of producing the demanded 72 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{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 294us 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 744 T states, the 12 copies of the T factory are repeatedly invoked 62 times.',\n", + " 'explanation': 'In order to prepare the 72 T states, the 12 copies of the T factory are repeatedly invoked 6 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", + " 'explanation': 'The 9196 are the product of the 38 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 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\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 38 logical qubits and the total cycle count 713.',\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 67.',\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", + " '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 72.',\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", @@ -4767,7 +4696,7 @@ " '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", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000019638648860958366)}{\\\\log(0.01/0.001)} - 1$',\n", " 'label': 'Code distance',\n", " 'path': 'logicalQubit/codeDistance'},\n", " {'description': 'Number of physical qubits per logical qubit',\n", @@ -4779,7 +4708,7 @@ " '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", + " '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", @@ -4791,11 +4720,11 @@ " '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", + " '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 338.',\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", @@ -4809,7 +4738,7 @@ " '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", + " '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", @@ -4841,7 +4770,7 @@ " '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", + " '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.94e-6.',\n", " 'label': 'Logical T state error rate',\n", " 'path': 'physicalCountsFormatted/tstateLogicalErrorRate'}],\n", " 'title': 'T factory parameters'},\n", @@ -4936,20 +4865,20 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [11],\n", - " 'logicalErrorRate': 2.480000000000001e-07,\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\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", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 14, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -4962,7 +4891,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -4989,7 +4918,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -5008,17 +4937,17 @@ "output_type": "stream", "text": [ "Logical algorithmic qubits = 38\n", - "Algorithmic depth = 713\n", - "Score = 27094\n" + "Algorithmic depth = 67\n", + "Score = 2546\n" ] }, { "data": { "text/plain": [ - "27094" + "2546" ] }, - "execution_count": 16, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -5027,6 +4956,13 @@ "evaluate_results(result)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/obj/__entrypoint__.dll b/obj/__entrypoint__.dll index a00d44fff70892e84668831d398d9163455199bc..6f1942a7189b1fc25bfc0d930cb21e20dcb28868 100644 GIT binary patch delta 43541 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 DB2%>f delta 43803 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 Hh2H-M{{7Yb diff --git a/obj/__entrypoint__snippets__.dll b/obj/__entrypoint__snippets__.dll index 5fcb586e08317124c324aac46d9ab1a8ddd05328..418cc8903d23bfb8041bdd4d8aedda59299afbcf 100644 GIT binary patch literal 89600 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 delta 8481 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 WFn(LC2tM14QT{t-N+ypT$oU^}VaLw^ diff --git a/obj/__snippets__.dll b/obj/__snippets__.dll index c80e18a9da7abb6fd8cb2add5ab22225cc078a91..7c3a4922542742c9c15e95e4aecb906466000549 100644 GIT binary patch delta 13708 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 CoC^8? From a02ee8f23fbe87100aec4905a1897b97fb9390b3 Mon Sep 17 00:00:00 2001 From: Hamish Hall Date: Sun, 29 Jan 2023 13:30:25 +0000 Subject: [PATCH 4/7] close to final submission --- ...Hack-challenge-2023-task1-checkpoint.ipynb | 1522 +++- ...Hack-challenge-2023-task3-checkpoint.ipynb | 4620 +++++++++- ...Hack-challenge-2023-task6-checkpoint.ipynb | 1289 +-- iQuHack-challenge-2023-task1.ipynb | 86 +- iQuHack-challenge-2023-task2.ipynb | 412 +- iQuHack-challenge-2023-task3.ipynb | 747 +- iQuHack-challenge-2023-task6.ipynb | 1289 +-- iQuHack-challenge-2023-task7.ipynb | 576 +- iQuHack-challenge-2023-task9.ipynb | 7903 ++++++++++++++++- obj/__entrypoint__.dll | Bin 321024 -> 321536 bytes obj/__entrypoint__snippets__.dll | Bin 89600 -> 121344 bytes obj/__snippets__.dll | Bin 89088 -> 120832 bytes 12 files changed, 16164 insertions(+), 2280 deletions(-) diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb index 6042c2b..cb5da8d 100644 --- a/.ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task1-checkpoint.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -47,7 +47,41 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code RGGYKHPB3 to authenticate.\u001b[0m\n", + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"id\": \"7fc54e95-14cf-4a6f-b50e-d6155c241309\",\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 subscription 1\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"user\": {\n", + " \"name\": \"hachall@hotmail.com\",\n", + " \"type\": \"user\"\n", + " }\n", + " }\n", + "]\n" + ] + } + ], "source": [ "!az login" ] @@ -67,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +138,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -169,10 +203,11 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\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", + "operation original(input : Qubit[], target : Qubit) : Unit is Adj {\n", " let N = Length(input);\n", " use aux = Qubit[N - 1];\n", " within {\n", @@ -183,12 +218,37 @@ " } apply {\n", " Controlled X(aux, target);\n", " }\n", + "}\n", + "\n", + "operation Task1(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " CNOT(input[1], input[0]);\n", + " CNOT(input[1], input[2]);\n", + " CCNOT(input[0], input[2], target);\n", + " CNOT(input[1], input[0]);\n", + " CNOT(input[1], input[2]);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(3+1, QubitArrayWrapperOperation(Task1, _), QubitArrayWrapperOperation (original, _));\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -245,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -258,13 +318,260 @@ } } }, - "outputs": [], + "outputs": [ + { + "data": { + "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}}}", + "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", + " \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|0010\\right\\rangle$$0.3536 + 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|1000\\right\\rangle$$0.3536 + 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|1110\\right\\rangle$$0.3536 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
" + ], + "text/plain": [ + "|0000⟩\t0.35355339059327384 + 0𝑖\n", + "|0010⟩\t0.35355339059327384 + 0𝑖\n", + "|0101⟩\t0.35355339059327384 + 0𝑖\n", + "|0110⟩\t0.35355339059327384 + 0𝑖\n", + "|1000⟩\t0.35355339059327384 + 0𝑖\n", + "|1011⟩\t0.35355339059327384 + 0𝑖\n", + "|1100⟩\t0.35355339059327384 + 0𝑖\n", + "|1110⟩\t0.35355339059327384 + 0𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 7, + "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", + "qsharp.config[\"dump.truncateSmallAmplitudes\"]=True\n", "Task1_DumpMachineWrapper.simulate()" ] }, @@ -283,7 +590,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -296,19 +603,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 177969},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 303174},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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": 8, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -321,14 +677,33 @@ } } }, - "outputs": [], + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -341,7 +716,20 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task1_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 1\n", + " Job ID: e139e938-3193-4d04-8a64-e5451930285f\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[12:49:16 PM] 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(Task1_ResourceEstimationWrapper, jobName=\"RE for the task 1\")" @@ -349,7 +737,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -362,7 +750,1051 @@ } } }, - "outputs": [], + "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\":0,\"cczCount\":1,\"measurementCount\":0,\"numQubits\":4,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":3,\"algorithmicLogicalQubits\":15,\"cliffordErrorRate\":0.001,\"logicalDepth\":13,\"numTfactories\":4,\"numTfactoryRuns\":1,\"numTsPerRotation\":null,\"numTstates\":4,\"physicalQubitsForAlgorithm\":2430,\"physicalQubitsForTfactories\":15680,\"requiredLogicalQubitErrorRate\":2.564102564102564E-06,\"requiredLogicalTstateErrorRate\":0.000125},\"physicalQubits\":18110,\"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\":\"86.58 %\",\"physicalQubitsPerRound\":\"3920\",\"requiredLogicalQubitErrorRate\":\"2.56e-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 2430 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} = 4$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 15$ 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 2430 are the product of the 15 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 15 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.000002564102564102564)}{\\\\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 15 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\"]}}", + "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 qubits18110\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 2430 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 qubits15\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} = 4\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 15$ 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 qubits2430\r\n", + "

Number of physical qubits for the algorithm after layout

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

The 2430 are the product of the 15 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 rate2.56e-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 15 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.000002564102564102564)}{\\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)4\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 15 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" + ], + "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': 4,\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': 15,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 13,\n", + " 'numTfactories': 4,\n", + " 'numTfactoryRuns': 1,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 4,\n", + " 'physicalQubitsForAlgorithm': 2430,\n", + " 'physicalQubitsForTfactories': 15680,\n", + " 'requiredLogicalQubitErrorRate': 2.564102564102564e-06,\n", + " 'requiredLogicalTstateErrorRate': 0.000125},\n", + " 'physicalQubits': 18110,\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': '86.58 %',\n", + " 'physicalQubitsPerRound': '3920',\n", + " 'requiredLogicalQubitErrorRate': '2.56e-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 2430 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} = 4$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 15$ 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 2430 are the product of the 15 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 15 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.000002564102564102564)}{\\\\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 15 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']}}" + ] + }, + "execution_count": 11, + "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", @@ -371,7 +1803,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -398,7 +1830,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -411,10 +1843,44 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 15\n", + "Algorithmic depth = 3\n", + "Score = 45\n" + ] + }, + { + "data": { + "text/plain": [ + "45" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -422,9 +1888,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb index 77ca776..4d5561f 100644 --- a/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +104,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -169,19 +169,62 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 3. \n", "// (input will contain 6 qubits)\n", - "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", + "operation original(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", + "}\n", + "\n", + "operation CarryN(carryIn: Qubit, summand1: Qubit, summand2: Qubit, carryOut: Qubit) : Unit is Adj + Ctl {\n", + " CCNOT (summand1, summand2, carryOut);\n", + " CNOT (summand1, summand2);\n", + " CCNOT (carryIn, summand2, carryOut);\n", + " CNOT(carryIn, summand2);\n", + "}\n", + "\n", + "operation Task3(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " use sumWires = Qubit[4];\n", + " use zero = Qubit[1];\n", + " within{\n", + " //Ebene 1\n", + " CarryN(input[0], input[1], input[2], sumWires[0]);\n", + " CarryN(input[3], input[4], input[5], sumWires[1]);\n", + " //Ebene 2\n", + " CarryN(zero[0], input[2], input[5], sumWires[2]);\n", + " CarryN(sumWires[2], sumWires[0], sumWires[1], sumWires[3]);\n", + " //Outputs: input[5], sumWires[1], sumWires[3]\n", + " // == 3 --> input[5] == 1 && sumWires[1] == 1 && sumWires[3] == 0\n", + " X(sumWires[3]);\n", + " } apply{\n", + " Controlled X([input[5], sumWires[1], sumWires[3]], target);\n", + " }\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(6+1, QubitArrayWrapperOperation(Task3, _), QubitArrayWrapperOperation (original, _));\n", "}" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +294,3374 @@ } } }, - "outputs": [], + "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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"36\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.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.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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"Phase\":0.0},\"100\":{\"Real\":0.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"Phase\":0.0},\"101\":{\"Real\":0.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.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.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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.12500000000000008,\"Imaginary\":0.0,\"Magnitude\":0.12500000000000008,\"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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0010111\\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|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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|0011101\\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|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.0000 + 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.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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1000111\\right\\rangle$$0.1250 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

\r\n", + "
$\\left|1001101\\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|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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|1010100\\right\\rangle$$0.0000 + 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|1010111\\right\\rangle$$0.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|1011001\\right\\rangle$$0.1250 + 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.0000 + 0.0000 i$\r\n", + " \r\n", + " \r\n", + "

\r\n", + "

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

\r\n", + "

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

\r\n", + "

\r\n", + "
$\\left|1100101\\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|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 + 0𝑖\n", + "|0010111⟩\t0.12500000000000008 + 0𝑖\n", + "|0011000⟩\t0.12500000000000008 + 0𝑖\n", + "|0011001⟩\t0 + 0𝑖\n", + "|0011010⟩\t0 + 0𝑖\n", + "|0011011⟩\t0.12500000000000008 + 0𝑖\n", + "|0011100⟩\t0 + 0𝑖\n", + "|0011101⟩\t0.12500000000000008 + 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 + 0𝑖\n", + "|0101011⟩\t0.12500000000000008 + 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 + 0𝑖\n", + "|1000111⟩\t0.12500000000000008 + 0𝑖\n", + "|1001000⟩\t0.12500000000000008 + 0𝑖\n", + "|1001001⟩\t0 + 0𝑖\n", + "|1001010⟩\t0 + 0𝑖\n", + "|1001011⟩\t0.12500000000000008 + 0𝑖\n", + "|1001100⟩\t0 + 0𝑖\n", + "|1001101⟩\t0.12500000000000008 + 0𝑖\n", + "|1001110⟩\t0.12500000000000008 + 0𝑖\n", + "|1001111⟩\t0 + 0𝑖\n", + "|1010000⟩\t0.12500000000000008 + 0𝑖\n", + "|1010001⟩\t0 + 0𝑖\n", + "|1010010⟩\t0 + 0𝑖\n", + "|1010011⟩\t0.12500000000000008 + 0𝑖\n", + "|1010100⟩\t0 + 0𝑖\n", + "|1010101⟩\t0.12500000000000008 + 0𝑖\n", + "|1010110⟩\t0.12500000000000008 + 0𝑖\n", + "|1010111⟩\t0 + 0𝑖\n", + "|1011000⟩\t0 + 0𝑖\n", + "|1011001⟩\t0.12500000000000008 + 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 + 0𝑖\n", + "|1100011⟩\t0.12500000000000008 + 0𝑖\n", + "|1100100⟩\t0 + 0𝑖\n", + "|1100101⟩\t0.12500000000000008 + 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": 18, + "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", @@ -276,7 +3686,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +3699,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178144},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409698},\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': 70},\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': 70},\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": 19, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +3773,33 @@ } } }, - "outputs": [], + "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": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +3812,21 @@ } } }, - "outputs": [], + "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: 97de0812-1c25-4a9d-be97-55f936dc8c93\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[1:13:16 PM] Current job status: Executing\n", + "[1:13:21 PM] 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\")" @@ -342,7 +3834,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +3847,1051 @@ } } }, - "outputs": [], + "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\":80,\"cczCount\":20,\"measurementCount\":80,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":380,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":380,\"numTfactories\":14,\"numTfactoryRuns\":29,\"numTsPerRotation\":null,\"numTstates\":400,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":135520,\"requiredLogicalQubitErrorRate\":3.987240829346092E-08,\"requiredLogicalTstateErrorRate\":1.25E-06},\"physicalQubits\":143506,\"runtime\":1672000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"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\":\"94.44 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"3.99e-8\",\"requiredLogicalTstateErrorRate\":\"1.25e-6\",\"runtime\":\"1ms 672us\",\"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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.\",\"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 400.\",\"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.00000003987240829346092)}{\\\\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.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.25e-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\":[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", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "
Physical qubits143506\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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime1ms 672us\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 380 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 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 depth380\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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 depth380\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 380. 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 states400\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 20 CCZ and 80 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 factories14\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

In order to prepare the 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 qubits135520\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 14 in parallel, therefore we need $135520 = 9680 \\cdot 14$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate3.99e-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 380.

\n", + "\r\n", + "
Required logical T state error rate1.25e-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 400.

\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.00000003987240829346092)}{\\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 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.25e-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 gates20\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 gates80\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 operations80\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': 80,\n", + " 'cczCount': 20,\n", + " 'measurementCount': 80,\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': 380,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 380,\n", + " 'numTfactories': 14,\n", + " 'numTfactoryRuns': 29,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 400,\n", + " 'physicalQubitsForAlgorithm': 7986,\n", + " 'physicalQubitsForTfactories': 135520,\n", + " 'requiredLogicalQubitErrorRate': 3.987240829346092e-08,\n", + " 'requiredLogicalTstateErrorRate': 1.25e-06},\n", + " 'physicalQubits': 143506,\n", + " 'runtime': 1672000},\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': '4us 400ns',\n", + " 'logicalErrorRate': '3.00e-8',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.44 %',\n", + " 'physicalQubitsPerRound': '9680',\n", + " 'requiredLogicalQubitErrorRate': '3.99e-8',\n", + " 'requiredLogicalTstateErrorRate': '1.25e-6',\n", + " 'runtime': '1ms 672us',\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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.',\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 400.',\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.00000003987240829346092)}{\\\\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.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.25e-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': [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": 22, + "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", @@ -364,7 +4900,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +4927,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +4940,44 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 380\n", + "Score = 12540\n" + ] + }, + { + "data": { + "text/plain": [ + "12540" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +4985,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb index 7babc33..330ddb9 100644 --- a/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { @@ -196,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -205,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 29, "metadata": { "collapsed": false, "jupyter": { @@ -262,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { @@ -307,12 +307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -332,12 +332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -357,12 +357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -382,12 +382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -407,12 +407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -432,12 +432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -457,12 +457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -482,12 +482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -507,12 +507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -532,12 +532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -557,12 +557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -582,12 +582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -607,12 +607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -632,12 +632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -657,12 +657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -682,12 +682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -707,12 +707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -732,12 +732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -757,12 +757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -782,12 +782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -807,12 +807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -832,12 +832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -857,12 +857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -882,12 +882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -907,12 +907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -932,12 +932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -957,12 +957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -982,12 +982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1007,12 +1007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1032,12 +1032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1057,12 +1057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1082,12 +1082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1107,12 +1107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1132,12 +1132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1157,12 +1157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1182,12 +1182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1207,12 +1207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1232,12 +1232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1257,12 +1257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1282,12 +1282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1307,12 +1307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1332,12 +1332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1357,12 +1357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1382,12 +1382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1407,12 +1407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1432,12 +1432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1457,12 +1457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1482,12 +1482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1507,12 +1507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1532,12 +1532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1557,12 +1557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1582,12 +1582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1607,12 +1607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1632,12 +1632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1657,12 +1657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1682,12 +1682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1707,12 +1707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1732,12 +1732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1757,12 +1757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1782,12 +1782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1807,12 +1807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1832,12 +1832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1857,12 +1857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1882,12 +1882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1907,12 +1907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1932,12 +1932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1957,12 +1957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1982,12 +1982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2007,12 +2007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2032,12 +2032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2057,12 +2057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2082,12 +2082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2107,12 +2107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2132,12 +2132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2157,12 +2157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2182,12 +2182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2207,12 +2207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2232,12 +2232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2257,12 +2257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2282,12 +2282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2307,12 +2307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2332,12 +2332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2357,12 +2357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2382,12 +2382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2407,12 +2407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2432,12 +2432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2457,12 +2457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2482,12 +2482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2507,12 +2507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2532,12 +2532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2557,12 +2557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2582,12 +2582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2607,12 +2607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2632,12 +2632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2657,12 +2657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2682,12 +2682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2707,12 +2707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2732,12 +2732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2757,12 +2757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2782,12 +2782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2807,12 +2807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2832,12 +2832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2857,12 +2857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2882,12 +2882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2907,12 +2907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2932,12 +2932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2957,12 +2957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2982,12 +2982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3007,12 +3007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3032,12 +3032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3057,12 +3057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3082,12 +3082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3107,12 +3107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3132,12 +3132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3157,12 +3157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3182,12 +3182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3207,12 +3207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3232,12 +3232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3257,12 +3257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3282,12 +3282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3307,12 +3307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3332,12 +3332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3357,12 +3357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3382,12 +3382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3407,12 +3407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3432,12 +3432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3457,12 +3457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3482,12 +3482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3507,12 +3507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3532,12 +3532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3557,12 +3557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3582,12 +3582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3607,12 +3607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3632,12 +3632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3657,12 +3657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3682,12 +3682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3707,12 +3707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3732,12 +3732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3757,12 +3757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3782,12 +3782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3807,12 +3807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3832,12 +3832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3857,12 +3857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3882,12 +3882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3907,12 +3907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3932,12 +3932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3957,12 +3957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3982,12 +3982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4007,12 +4007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4032,12 +4032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4057,12 +4057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4082,12 +4082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4107,12 +4107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4132,12 +4132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4157,12 +4157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4182,12 +4182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4207,12 +4207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4232,12 +4232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4257,12 +4257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4282,12 +4282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4307,12 +4307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4332,12 +4332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4357,12 +4357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4382,12 +4382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4407,12 +4407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4432,12 +4432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4457,12 +4457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4482,12 +4482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4507,12 +4507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4532,12 +4532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4557,12 +4557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4582,12 +4582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4607,12 +4607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4632,12 +4632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4657,12 +4657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4682,12 +4682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4707,12 +4707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4732,12 +4732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4757,12 +4757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4782,12 +4782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4807,12 +4807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4832,12 +4832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4857,12 +4857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4882,12 +4882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4907,12 +4907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4932,12 +4932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4957,12 +4957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4982,12 +4982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5007,12 +5007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5032,12 +5032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5057,12 +5057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5082,12 +5082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5107,12 +5107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5132,12 +5132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5157,12 +5157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5182,12 +5182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5207,12 +5207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5232,12 +5232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5257,12 +5257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5282,12 +5282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5307,12 +5307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5332,12 +5332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5357,12 +5357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5382,12 +5382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5407,12 +5407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5432,12 +5432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5457,12 +5457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5482,12 +5482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5507,12 +5507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5532,12 +5532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5557,12 +5557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5582,12 +5582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5607,12 +5607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5632,12 +5632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5657,12 +5657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5682,12 +5682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5707,12 +5707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5732,12 +5732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5757,12 +5757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5782,12 +5782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5807,12 +5807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5832,12 +5832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5857,12 +5857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5882,12 +5882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5907,12 +5907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5932,12 +5932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5957,12 +5957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5982,12 +5982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6007,12 +6007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6032,12 +6032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6057,12 +6057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6082,12 +6082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6107,12 +6107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6132,12 +6132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6157,12 +6157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6182,12 +6182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6207,12 +6207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6232,12 +6232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6257,12 +6257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6282,12 +6282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6307,12 +6307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6332,12 +6332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6357,12 +6357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6382,12 +6382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6407,12 +6407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6432,12 +6432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6457,12 +6457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6482,12 +6482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6507,12 +6507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6532,12 +6532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6557,12 +6557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6582,12 +6582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6607,12 +6607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6632,12 +6632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6657,12 +6657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6682,12 +6682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6966,7 +6966,7 @@ "()" ] }, - "execution_count": 7, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -6995,7 +6995,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { @@ -7029,8 +7029,8 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 177740},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 321366},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178621},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409767},\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", @@ -7038,14 +7038,14 @@ " {'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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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", @@ -7053,7 +7053,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 8, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -7069,7 +7069,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { @@ -7097,7 +7097,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 9, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -7108,7 +7108,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { @@ -7129,9 +7129,10 @@ "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 6\n", - " Job ID: 1678631d-016c-4332-ba1f-61fcb3b081b9\n", + " Job ID: 51c97eab-212e-45b6-9f03-7489fad62c36\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[12:40:10 PM] Current job status: Succeeded\n" + "[1:15:38 PM] Current job status: Executing\n", + "[1:15:43 PM] Current job status: Succeeded\n" ] } ], @@ -7142,7 +7143,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { @@ -7158,7 +7159,7 @@ "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\":6,\"cczCount\":2,\"measurementCount\":6,\"numQubits\":12,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":30,\"algorithmicLogicalQubits\":35,\"cliffordErrorRate\":0.001,\"logicalDepth\":30,\"numTfactories\":14,\"numTfactoryRuns\":3,\"numTsPerRotation\":null,\"numTstates\":32,\"physicalQubitsForAlgorithm\":5670,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":4.761904761904762E-07,\"requiredLogicalTstateErrorRate\":1.5625E-05},\"physicalQubits\":96390,\"runtime\":108000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.12 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"4.76e-7\",\"requiredLogicalTstateErrorRate\":\"1.56e-5\",\"runtime\":\"108us\",\"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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.\",\"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 32.\",\"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.0000004761904761904762)}{\\\\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.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 1.56e-5.\",\"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 35 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\"]}}", + "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\"]}}", "text/html": [ "\r\n", "
\r\n", @@ -7170,24 +7171,24 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 96390\r\n", + " 130356\r\n", " \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 5670 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\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", " \r\n", " \n", "\r\n", " \r\n", " Runtime\r\n", - " 108us\r\n", + " 2ms 246us 400ns\r\n", " \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 30 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", + "

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", " \r\n", " \n", @@ -7202,120 +7203,120 @@ "\r\n", " \r\n", " Logical algorithmic qubits\r\n", - " 35\r\n", + " 42\r\n", " \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} = 12\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 35$ logical qubits.

\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", " \r\n", " \n", "\r\n", " \r\n", " Algorithmic depth\r\n", - " 30\r\n", + " 432\r\n", " \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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 30\r\n", + " 432\r\n", " \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 30. 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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 32\r\n", + " 448\r\n", " \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 2 CCZ and 6 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\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", " \r\n", " \n", "\r\n", " \r\n", " Number of T factories\r\n", - " 14\r\n", + " 12\r\n", " \r\n", - "

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

\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 14 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{32\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 108us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\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", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 3\r\n", + " 38\r\n", " \r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical algorithmic qubits\r\n", - " 5670\r\n", + " 14196\r\n", " \r\n", "

Number of physical qubits for the algorithm after layout

\n", "
\r\n", "
\r\n", - "

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

\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", " \r\n", " \n", "\r\n", " \r\n", " Physical T factory qubits\r\n", - " 90720\r\n", + " 116160\r\n", " \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 14 in parallel, therefore we need $90720 = 6480 \\cdot 14$ qubits.

\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", " \r\n", " \n", "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 4.76e-7\r\n", + " 2.76e-8\r\n", " \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 35 logical qubits and the total cycle count 30.

\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", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 1.56e-5\r\n", + " 1.12e-6\r\n", " \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 32.

\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", " \r\n", " \n", @@ -7354,19 +7355,19 @@ "\r\n", " \r\n", " Code distance\r\n", - " 9\r\n", + " 13\r\n", " \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.0000004761904761904762)}{\\log(0.01/0.001)} - 1\\)

\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", " \r\n", " \n", "\r\n", " \r\n", " Physical qubits\r\n", - " 162\r\n", + " 338\r\n", " \r\n", "

Number of physical qubits per logical qubit

\n", "
\r\n", @@ -7378,7 +7379,7 @@ "\r\n", " \r\n", " Logical cycle time\r\n", - " 3us 600ns\r\n", + " 5us 200ns\r\n", " \r\n", "

Duration of a logical cycle in nanoseconds

\n", "
\r\n", @@ -7390,12 +7391,12 @@ "\r\n", " \r\n", " Logical qubit error rate\r\n", - " 3.00e-7\r\n", + " 3.00e-9\r\n", " \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", + "

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", " \r\n", " \n", @@ -7431,7 +7432,7 @@ "

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", + "

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n", "\r\n", " \r\n", " \n", @@ -7443,7 +7444,7 @@ "

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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -7458,7 +7459,7 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 6480\r\n", + " 9680\r\n", " \r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -7470,7 +7471,7 @@ "\r\n", " \r\n", " Runtime\r\n", - " 46us 800ns\r\n", + " 57us 200ns\r\n", " \r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -7487,7 +7488,7 @@ "

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", + "

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", " \r\n", " \n", @@ -7542,7 +7543,7 @@ "\r\n", " \r\n", " Distillation code distances\r\n", - " 9\r\n", + " 11\r\n", " \r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -7554,7 +7555,7 @@ "\r\n", " \r\n", " Number of physical qubits per round\r\n", - " 6480\r\n", + " 9680\r\n", " \r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -7566,7 +7567,7 @@ "\r\n", " \r\n", " Runtime per round\r\n", - " 46us 800ns\r\n", + " 57us 200ns\r\n", " \r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -7578,12 +7579,12 @@ "\r\n", " \r\n", " Logical T state error rate\r\n", - " 2.17e-6\r\n", + " 2.48e-7\r\n", " \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.56e-5.

\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", " \r\n", " \n", @@ -7598,12 +7599,12 @@ "\r\n", " \r\n", " Logical qubits (pre-layout)\r\n", - " 12\r\n", + " 15\r\n", " \r\n", "

Number of logical qubits in the input quantum program

\n", "
\r\n", "
\r\n", - "

We determine 35 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", + "

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", " \r\n", " \n", @@ -7646,7 +7647,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 2\r\n", + " 16\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -7658,7 +7659,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 6\r\n", + " 96\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -7670,7 +7671,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 6\r\n", + " 96\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -7901,48 +7902,48 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 6,\n", - " 'cczCount': 2,\n", - " 'measurementCount': 6,\n", - " 'numQubits': 12,\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': 9,\n", - " 'logicalCycleTime': 3600.0,\n", - " 'logicalErrorRate': 3.0000000000000015e-07,\n", - " 'physicalQubits': 162},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 30,\n", - " 'algorithmicLogicalQubits': 35,\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': 30,\n", - " 'numTfactories': 14,\n", - " 'numTfactoryRuns': 3,\n", + " 'logicalDepth': 432,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 38,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 32,\n", - " 'physicalQubitsForAlgorithm': 5670,\n", - " 'physicalQubitsForTfactories': 90720,\n", - " 'requiredLogicalQubitErrorRate': 4.761904761904762e-07,\n", - " 'requiredLogicalTstateErrorRate': 1.5625e-05},\n", - " 'physicalQubits': 96390,\n", - " 'runtime': 108000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\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': '3us 600ns',\n", - " 'logicalErrorRate': '3.00e-7',\n", + " 'logicalCycleTime': '5us 200ns',\n", + " 'logicalErrorRate': '3.00e-9',\n", " 'numTsPerRotation': 'No rotations in algorithm',\n", " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '94.12 %',\n", - " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '4.76e-7',\n", - " 'requiredLogicalTstateErrorRate': '1.56e-5',\n", - " 'runtime': '108us',\n", - " 'tfactoryRuntime': '46us 800ns',\n", - " 'tfactoryRuntimePerRound': '46us 800ns',\n", - " 'tstateLogicalErrorRate': '2.17e-6',\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", @@ -7953,53 +7954,53 @@ " '**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 5670 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\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 (3us 600ns) multiplied by the 30 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", + " '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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ logical qubits.',\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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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", + " '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 30. 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", + " '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 2 CCZ and 6 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 32 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.',\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 5670 are the product of the 35 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.',\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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ qubits.',\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 35 logical qubits and the total cycle count 30.',\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 32.',\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", @@ -8013,7 +8014,7 @@ " '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.0000004761904761904762)}{\\\\log(0.01/0.001)} - 1$',\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", @@ -8025,7 +8026,7 @@ " '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", + " '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", @@ -8037,11 +8038,11 @@ " '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", + " '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 162.',\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", @@ -8055,7 +8056,7 @@ " '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", + " '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", @@ -8087,13 +8088,13 @@ " '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.56e-5.',\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 35 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", + " '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", @@ -8182,20 +8183,20 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [9],\n", - " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'tfactory': {'codeDistancePerRound': [11],\n", + " 'logicalErrorRate': 2.480000000000001e-07,\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", + " 'physicalQubits': 9680,\n", + " 'physicalQubitsPerRound': [9680],\n", + " 'runtime': 57200.0,\n", + " 'runtimePerRound': [57200.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 11, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -8208,7 +8209,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { @@ -8235,7 +8236,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 36, "metadata": { "collapsed": false, "jupyter": { @@ -8253,18 +8254,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "Logical algorithmic qubits = 35\n", - "Algorithmic depth = 30\n", - "Score = 1050\n" + "Logical algorithmic qubits = 42\n", + "Algorithmic depth = 432\n", + "Score = 18144\n" ] }, { "data": { "text/plain": [ - "1050" + "18144" ] }, - "execution_count": 13, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task1.ipynb b/iQuHack-challenge-2023-task1.ipynb index 6899603..cb5da8d 100644 --- a/iQuHack-challenge-2023-task1.ipynb +++ b/iQuHack-challenge-2023-task1.ipynb @@ -121,13 +121,6 @@ "from qsharp import azure" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 2, @@ -146,7 +139,7 @@ "outputs": [], "source": [ "teamname=\"schrodingers-duck\" # Update this field with your team name\n", - "task=[\"task6\"]\n", + "task=[\"task1\"]\n", "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, @@ -189,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -246,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -255,7 +248,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -312,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -357,12 +350,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -382,12 +375,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -407,12 +400,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -432,12 +425,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -457,12 +450,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -482,12 +475,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -507,12 +500,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -532,12 +525,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -568,7 +561,7 @@ "()" ] }, - "execution_count": 22, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -597,7 +590,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -631,23 +624,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 165633},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 398028},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 177969},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 303174},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 180},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 180},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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", @@ -655,7 +648,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 23, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -671,7 +664,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -699,7 +692,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 24, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -710,7 +703,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -731,10 +724,9 @@ "Submitting Task1_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 1\n", - " Job ID: 8dfa4a14-f799-49f9-98b5-d62cd808a86f\n", + " Job ID: e139e938-3193-4d04-8a64-e5451930285f\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[9:45:41 AM] Current job status: Executing\n", - "[9:45:46 AM] Current job status: Succeeded\n" + "[12:49:16 PM] Current job status: Succeeded\n" ] } ], @@ -745,7 +737,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -1798,7 +1790,7 @@ " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 26, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -1811,7 +1803,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -1838,7 +1830,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -1867,7 +1859,7 @@ "45" ] }, - "execution_count": 28, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task2.ipynb b/iQuHack-challenge-2023-task2.ipynb index 267e958..c41a4bc 100644 --- a/iQuHack-challenge-2023-task2.ipynb +++ b/iQuHack-challenge-2023-task2.ipynb @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 25, "metadata": { "collapsed": false, "jupyter": { @@ -123,7 +123,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { @@ -145,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { @@ -182,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 38, "metadata": { "collapsed": false, "jupyter": { @@ -243,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -252,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 40, "metadata": { "collapsed": false, "jupyter": { @@ -309,7 +309,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 41, "metadata": { "collapsed": false, "jupyter": { @@ -354,12 +354,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -379,12 +379,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -404,12 +404,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -429,12 +429,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -454,12 +454,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -479,12 +479,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -504,12 +504,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -529,12 +529,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -554,12 +554,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -579,12 +579,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -604,12 +604,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -629,12 +629,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -654,12 +654,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -679,12 +679,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -704,12 +704,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -729,12 +729,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -754,12 +754,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -779,12 +779,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -804,12 +804,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -829,12 +829,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -854,12 +854,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -879,12 +879,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -904,12 +904,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -929,12 +929,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -954,12 +954,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -979,12 +979,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1004,12 +1004,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1029,12 +1029,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1054,12 +1054,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1079,12 +1079,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1104,12 +1104,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1129,12 +1129,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1154,12 +1154,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1179,12 +1179,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1204,12 +1204,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1229,12 +1229,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1254,12 +1254,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1279,12 +1279,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1304,12 +1304,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1329,12 +1329,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1354,12 +1354,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1379,12 +1379,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1404,12 +1404,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1429,12 +1429,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1454,12 +1454,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1479,12 +1479,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1504,12 +1504,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1529,12 +1529,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1554,12 +1554,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1579,12 +1579,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1604,12 +1604,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1629,12 +1629,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1654,12 +1654,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1679,12 +1679,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1704,12 +1704,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1729,12 +1729,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1754,12 +1754,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1779,12 +1779,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1804,12 +1804,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1829,12 +1829,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1854,12 +1854,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1879,12 +1879,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1904,12 +1904,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1929,12 +1929,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2021,7 +2021,7 @@ "()" ] }, - "execution_count": 18, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -2050,7 +2050,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 42, "metadata": { "collapsed": false, "jupyter": { @@ -2084,23 +2084,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 175517},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 438370},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178071},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409594},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 169},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 169},\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", @@ -2108,7 +2108,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 19, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -2124,7 +2124,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 43, "metadata": { "collapsed": false, "jupyter": { @@ -2152,7 +2152,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 20, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -2163,7 +2163,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 44, "metadata": { "collapsed": false, "jupyter": { @@ -2184,9 +2184,10 @@ "Submitting Task2_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 2\n", - " Job ID: f8a7b04a-cd5c-4fea-aec9-ec6f246a8c34\n", + " Job ID: 4e3f0c4e-e8f0-49d5-99bf-d4d7d51bc4f7\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[11:51:48 AM] Current job status: Succeeded\n" + "[1:12:00 PM] Current job status: Executing\n", + "[1:12:06 PM] Current job status: Succeeded\n" ] } ], @@ -2197,7 +2198,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 45, "metadata": { "collapsed": false, "jupyter": { @@ -2213,7 +2214,7 @@ "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\":16,\"cczCount\":6,\"measurementCount\":16,\"numQubits\":9,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":82,\"algorithmicLogicalQubits\":28,\"cliffordErrorRate\":0.001,\"logicalDepth\":82,\"numTfactories\":12,\"numTfactoryRuns\":8,\"numTsPerRotation\":null,\"numTstates\":88,\"physicalQubitsForAlgorithm\":6776,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":2.177700348432056E-07,\"requiredLogicalTstateErrorRate\":5.681818181818182E-06},\"physicalQubits\":84536,\"runtime\":360800},\"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\":\"2.18e-7\",\"requiredLogicalTstateErrorRate\":\"5.68e-6\",\"runtime\":\"360us 800ns\",\"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 82 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 16 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6 CCZ and 16 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 82. 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 6 CCZ and 16 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 88 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{88\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 360us 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 88 T states, the 12 copies of the T factory are repeatedly invoked 8 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 82.\",\"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 88.\",\"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.0000002177700348432056)}{\\\\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 5.68e-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\"]}}", + "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\"]}}", "text/html": [ "\r\n", "
\r\n", @@ -2237,12 +2238,12 @@ "\r\n", " \r\n", " Runtime\r\n", - " 360us 800ns\r\n", + " 660us\r\n", " \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 82 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", + "

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", " \r\n", " \n", @@ -2269,36 +2270,36 @@ "\r\n", " \r\n", " Algorithmic depth\r\n", - " 82\r\n", + " 150\r\n", " \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 16 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6 CCZ and 16 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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 82\r\n", + " 150\r\n", " \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 82. 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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 88\r\n", + " 160\r\n", " \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 6 CCZ and 16 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\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", " \r\n", " \n", @@ -2307,22 +2308,22 @@ " Number of T factories\r\n", " 12\r\n", " \r\n", - "

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

\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{88\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 360us 800ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

\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", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 8\r\n", + " 14\r\n", " \r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", @@ -2353,24 +2354,24 @@ "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 2.18e-7\r\n", + " 1.19e-7\r\n", " \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 82.

\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", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 5.68e-6\r\n", + " 3.13e-6\r\n", " \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 88.

\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", " \r\n", " \n", @@ -2414,7 +2415,7 @@ "

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.0000002177700348432056)}{\\log(0.01/0.001)} - 1\\)

\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", " \r\n", " \n", @@ -2638,7 +2639,7 @@ "

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 5.68e-6.

\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", " \r\n", " \n", @@ -2701,7 +2702,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 6\r\n", + " 10\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -2713,7 +2714,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 16\r\n", + " 30\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -2725,7 +2726,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 16\r\n", + " 30\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -2956,9 +2957,9 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 16,\n", - " 'cczCount': 6,\n", - " 'measurementCount': 16,\n", + " 'logicalCounts': {'ccixCount': 30,\n", + " 'cczCount': 10,\n", + " 'measurementCount': 30,\n", " 'numQubits': 9,\n", " 'rotationCount': 0,\n", " 'rotationDepth': 0,\n", @@ -2967,20 +2968,20 @@ " 'logicalCycleTime': 4400.0,\n", " 'logicalErrorRate': 3.000000000000002e-08,\n", " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 82,\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 150,\n", " 'algorithmicLogicalQubits': 28,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 82,\n", + " 'logicalDepth': 150,\n", " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 8,\n", + " 'numTfactoryRuns': 14,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 88,\n", + " 'numTstates': 160,\n", " 'physicalQubitsForAlgorithm': 6776,\n", " 'physicalQubitsForTfactories': 77760,\n", - " 'requiredLogicalQubitErrorRate': 2.177700348432056e-07,\n", - " 'requiredLogicalTstateErrorRate': 5.681818181818182e-06},\n", + " 'requiredLogicalQubitErrorRate': 1.1904761904761904e-07,\n", + " 'requiredLogicalTstateErrorRate': 3.125e-06},\n", " 'physicalQubits': 84536,\n", - " 'runtime': 360800},\n", + " 'runtime': 660000},\n", " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", " 'errorBudget': '1.00e-3',\n", " 'errorBudgetLogical': '5.00e-4',\n", @@ -2992,9 +2993,9 @@ " 'numUnitsPerRound': '2',\n", " 'physicalQubitsForTfactoriesPercentage': '91.98 %',\n", " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '2.18e-7',\n", - " 'requiredLogicalTstateErrorRate': '5.68e-6',\n", - " 'runtime': '360us 800ns',\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", @@ -3012,7 +3013,7 @@ " '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 82 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", + " '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", @@ -3022,23 +3023,23 @@ " '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 16 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 6 CCZ and 16 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", + " '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 82. 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", + " '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 6 CCZ and 16 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 88 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{88\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 360us 800ns\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\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 88 T states, the 12 copies of the T factory are repeatedly invoked 8 times.',\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", @@ -3050,11 +3051,11 @@ " '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 82.',\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 88.',\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", @@ -3068,7 +3069,7 @@ " '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.0000002177700348432056)}{\\\\log(0.01/0.001)} - 1$',\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", @@ -3142,7 +3143,7 @@ " '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 5.68e-6.',\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", @@ -3250,7 +3251,7 @@ " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 22, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -3263,7 +3264,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 46, "metadata": { "collapsed": false, "jupyter": { @@ -3290,7 +3291,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 47, "metadata": { "collapsed": false, "jupyter": { @@ -3309,17 +3310,17 @@ "output_type": "stream", "text": [ "Logical algorithmic qubits = 28\n", - "Algorithmic depth = 82\n", - "Score = 2296\n" + "Algorithmic depth = 150\n", + "Score = 4200\n" ] }, { "data": { "text/plain": [ - "2296" + "4200" ] }, - "execution_count": 24, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -3328,6 +3329,13 @@ "evaluate_results(result)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/iQuHack-challenge-2023-task3.ipynb b/iQuHack-challenge-2023-task3.ipynb index 8133476..4d5561f 100644 --- a/iQuHack-challenge-2023-task3.ipynb +++ b/iQuHack-challenge-2023-task3.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +104,14 @@ }, "outputs": [], "source": [ - "teamname=\"msft_is_the_best\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # 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" + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -215,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -224,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { @@ -281,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { @@ -326,12 +326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -351,12 +351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -376,12 +376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -401,12 +401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -426,12 +426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -451,12 +451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -476,12 +476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -501,12 +501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -526,12 +526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -551,12 +551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -576,12 +576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -601,12 +601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -626,12 +626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -651,12 +651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -676,12 +676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -701,12 +701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -726,12 +726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -751,12 +751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -776,12 +776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -801,12 +801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -826,12 +826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -851,12 +851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -876,12 +876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -901,12 +901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -926,12 +926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -951,12 +951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -976,12 +976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1001,12 +1001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1026,12 +1026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1051,12 +1051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1076,12 +1076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1101,12 +1101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1126,12 +1126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1151,12 +1151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1176,12 +1176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1201,12 +1201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1226,12 +1226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1251,12 +1251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1276,12 +1276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1301,12 +1301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1326,12 +1326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1351,12 +1351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1376,12 +1376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1401,12 +1401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1426,12 +1426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1451,12 +1451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1476,12 +1476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1501,12 +1501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1526,12 +1526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1551,12 +1551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1576,12 +1576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1601,12 +1601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1626,12 +1626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1651,12 +1651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1676,12 +1676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1701,12 +1701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1726,12 +1726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1751,12 +1751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1776,12 +1776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1801,12 +1801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1826,12 +1826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1851,12 +1851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1876,12 +1876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1901,12 +1901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1926,12 +1926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1951,12 +1951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1976,12 +1976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2001,12 +2001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2026,12 +2026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2051,12 +2051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2076,12 +2076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2101,12 +2101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2126,12 +2126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2151,12 +2151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2176,12 +2176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2201,12 +2201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2226,12 +2226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2251,12 +2251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2276,12 +2276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2301,12 +2301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2326,12 +2326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2351,12 +2351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2376,12 +2376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2401,12 +2401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2426,12 +2426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2451,12 +2451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2476,12 +2476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2501,12 +2501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2526,12 +2526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2551,12 +2551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2576,12 +2576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2601,12 +2601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2626,12 +2626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2651,12 +2651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2676,12 +2676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2701,12 +2701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2726,12 +2726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2751,12 +2751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2776,12 +2776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2801,12 +2801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2826,12 +2826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2851,12 +2851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2876,12 +2876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2901,12 +2901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2926,12 +2926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2951,12 +2951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2976,12 +2976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3001,12 +3001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3026,12 +3026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3051,12 +3051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3076,12 +3076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3101,12 +3101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3126,12 +3126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3151,12 +3151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3176,12 +3176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3201,12 +3201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3226,12 +3226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3251,12 +3251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3276,12 +3276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3301,12 +3301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3326,12 +3326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3351,12 +3351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3376,12 +3376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3401,12 +3401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3426,12 +3426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3451,12 +3451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3476,12 +3476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3501,12 +3501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3657,7 +3657,7 @@ "()" ] }, - "execution_count": 7, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -3686,7 +3686,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { @@ -3720,23 +3720,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 171513},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 434582},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178144},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409698},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 175},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 175},\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", @@ -3744,7 +3744,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 8, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -3760,7 +3760,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { @@ -3788,7 +3788,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 9, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -3799,7 +3799,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { @@ -3820,9 +3820,10 @@ "Submitting Task3_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 3\n", - " Job ID: 5e58d190-e0a8-4e7c-8a6a-3ffb25f39cd5\n", + " Job ID: 97de0812-1c25-4a9d-be97-55f936dc8c93\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[10:42:27 AM] Current job status: Succeeded\n" + "[1:13:16 PM] Current job status: Executing\n", + "[1:13:21 PM] Current job status: Succeeded\n" ] } ], @@ -3833,7 +3834,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { @@ -3849,7 +3850,7 @@ "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\":1,\"cczCount\":17,\"measurementCount\":1,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":55,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":55,\"numTfactories\":14,\"numTfactoryRuns\":6,\"numTsPerRotation\":null,\"numTstates\":72,\"physicalQubitsForAlgorithm\":9196,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":2.3923444976076555E-07,\"requiredLogicalTstateErrorRate\":6.944444444444445E-06},\"physicalQubits\":99916,\"runtime\":242000},\"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.80 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"2.39e-7\",\"requiredLogicalTstateErrorRate\":\"6.94e-6\",\"runtime\":\"242us\",\"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 9196 physical qubits to implement the algorithm logic, and 90720 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 55 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} = 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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 55. 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 17 CCZ and 1 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 72 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\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 72 T states, the 14 copies of the T factory are repeatedly invoked 6 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 9196 are the product of the 38 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 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 55.\",\"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 72.\",\"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.00000023923444976076555)}{\\\\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 6.94e-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 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\":[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\"]}}", + "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\":80,\"cczCount\":20,\"measurementCount\":80,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":380,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":380,\"numTfactories\":14,\"numTfactoryRuns\":29,\"numTsPerRotation\":null,\"numTstates\":400,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":135520,\"requiredLogicalQubitErrorRate\":3.987240829346092E-08,\"requiredLogicalTstateErrorRate\":1.25E-06},\"physicalQubits\":143506,\"runtime\":1672000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"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\":\"94.44 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"3.99e-8\",\"requiredLogicalTstateErrorRate\":\"1.25e-6\",\"runtime\":\"1ms 672us\",\"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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.\",\"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 400.\",\"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.00000003987240829346092)}{\\\\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.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.25e-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\":[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", @@ -3861,24 +3862,24 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 99916\r\n", + " 143506\r\n", " \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 9196 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Runtime\r\n", - " 242us\r\n", + " 1ms 672us\r\n", " \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 55 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", + "

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 380 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", " \n", @@ -3893,48 +3894,48 @@ "\r\n", " \r\n", " Logical algorithmic qubits\r\n", - " 38\r\n", + " 33\r\n", " \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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Algorithmic depth\r\n", - " 55\r\n", + " 380\r\n", " \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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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", + "

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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 55\r\n", + " 380\r\n", " \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 55. 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", + "

This number is usually equal to the logical depth of the algorithm, which is 380. 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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 72\r\n", + " 400\r\n", " \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 17 CCZ and 1 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 20 CCZ and 80 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", " \r\n", " \n", @@ -3943,70 +3944,70 @@ " Number of T factories\r\n", " 14\r\n", " \r\n", - "

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

\n", + "

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

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 6\r\n", + " 29\r\n", " \r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical algorithmic qubits\r\n", - " 9196\r\n", + " 7986\r\n", " \r\n", "

Number of physical qubits for the algorithm after layout

\n", "
\r\n", "
\r\n", - "

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

\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", " \r\n", " \n", "\r\n", " \r\n", " Physical T factory qubits\r\n", - " 90720\r\n", + " 135520\r\n", " \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 14 in parallel, therefore we need $90720 = 6480 \\cdot 14$ qubits.

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 2.39e-7\r\n", + " 3.99e-8\r\n", " \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 55.

\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 380.

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 6.94e-6\r\n", + " 1.25e-6\r\n", " \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 72.

\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 400.

\n", "\r\n", " \r\n", " \n", @@ -4050,7 +4051,7 @@ "

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.00000023923444976076555)}{\\log(0.01/0.001)} - 1\\)

\n", + "

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

\n", "\r\n", " \r\n", " \n", @@ -4149,7 +4150,7 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 6480\r\n", + " 9680\r\n", " \r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -4161,7 +4162,7 @@ "\r\n", " \r\n", " Runtime\r\n", - " 46us 800ns\r\n", + " 57us 200ns\r\n", " \r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -4178,7 +4179,7 @@ "

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", + "

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", " \r\n", " \n", @@ -4233,7 +4234,7 @@ "\r\n", " \r\n", " Distillation code distances\r\n", - " 9\r\n", + " 11\r\n", " \r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -4245,7 +4246,7 @@ "\r\n", " \r\n", " Number of physical qubits per round\r\n", - " 6480\r\n", + " 9680\r\n", " \r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -4257,7 +4258,7 @@ "\r\n", " \r\n", " Runtime per round\r\n", - " 46us 800ns\r\n", + " 57us 200ns\r\n", " \r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -4269,12 +4270,12 @@ "\r\n", " \r\n", " Logical T state error rate\r\n", - " 2.17e-6\r\n", + " 2.48e-7\r\n", " \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.94e-6.

\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-6.

\n", "\r\n", " \r\n", " \n", @@ -4289,12 +4290,12 @@ "\r\n", " \r\n", " Logical qubits (pre-layout)\r\n", - " 13\r\n", + " 11\r\n", " \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", + "

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", " \r\n", " \n", @@ -4337,7 +4338,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 17\r\n", + " 20\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -4349,7 +4350,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 1\r\n", + " 80\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -4361,7 +4362,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 1\r\n", + " 80\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -4592,10 +4593,10 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 1,\n", - " 'cczCount': 17,\n", - " 'measurementCount': 1,\n", - " 'numQubits': 13,\n", + " 'logicalCounts': {'ccixCount': 80,\n", + " 'cczCount': 20,\n", + " 'measurementCount': 80,\n", + " 'numQubits': 11,\n", " 'rotationCount': 0,\n", " 'rotationDepth': 0,\n", " 'tCount': 0},\n", @@ -4603,21 +4604,21 @@ " 'logicalCycleTime': 4400.0,\n", " 'logicalErrorRate': 3.000000000000002e-08,\n", " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 55,\n", - " 'algorithmicLogicalQubits': 38,\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 380,\n", + " 'algorithmicLogicalQubits': 33,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 55,\n", + " 'logicalDepth': 380,\n", " 'numTfactories': 14,\n", - " 'numTfactoryRuns': 6,\n", + " 'numTfactoryRuns': 29,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 72,\n", - " 'physicalQubitsForAlgorithm': 9196,\n", - " 'physicalQubitsForTfactories': 90720,\n", - " 'requiredLogicalQubitErrorRate': 2.3923444976076555e-07,\n", - " 'requiredLogicalTstateErrorRate': 6.944444444444445e-06},\n", - " 'physicalQubits': 99916,\n", - " 'runtime': 242000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", + " 'numTstates': 400,\n", + " 'physicalQubitsForAlgorithm': 7986,\n", + " 'physicalQubitsForTfactories': 135520,\n", + " 'requiredLogicalQubitErrorRate': 3.987240829346092e-08,\n", + " 'requiredLogicalTstateErrorRate': 1.25e-06},\n", + " 'physicalQubits': 143506,\n", + " 'runtime': 1672000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n", " 'errorBudget': '1.00e-3',\n", " 'errorBudgetLogical': '5.00e-4',\n", " 'errorBudgetRotations': '0.00e0',\n", @@ -4626,14 +4627,14 @@ " 'logicalErrorRate': '3.00e-8',\n", " 'numTsPerRotation': 'No rotations in algorithm',\n", " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '90.80 %',\n", - " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '2.39e-7',\n", - " 'requiredLogicalTstateErrorRate': '6.94e-6',\n", - " 'runtime': '242us',\n", - " 'tfactoryRuntime': '46us 800ns',\n", - " 'tfactoryRuntimePerRound': '46us 800ns',\n", - " 'tstateLogicalErrorRate': '2.17e-6',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.44 %',\n", + " 'physicalQubitsPerRound': '9680',\n", + " 'requiredLogicalQubitErrorRate': '3.99e-8',\n", + " 'requiredLogicalTstateErrorRate': '1.25e-6',\n", + " 'runtime': '1ms 672us',\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", @@ -4644,53 +4645,53 @@ " '**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 9196 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\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 135520 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 55 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", + " '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 380 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", + " '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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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", + " '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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 55. 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", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 380. 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 17 CCZ and 1 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 20 CCZ and 80 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 72 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " {'description': \"Number of T factories capable of producing the demanded 400 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 72 T states, the 14 copies of the T factory are repeatedly invoked 6 times.',\n", + " 'explanation': 'In order to prepare the 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9196 are the product of the 38 logical qubits after layout and the 242 physical qubits that encode a single logical qubit.',\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 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ qubits.',\n", + " 'explanation': 'Each T factory requires 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 55.',\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 380.',\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 72.',\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 400.',\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", @@ -4704,7 +4705,7 @@ " '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.00000023923444976076555)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000003987240829346092)}{\\\\log(0.01/0.001)} - 1$',\n", " 'label': 'Code distance',\n", " 'path': 'logicalQubit/codeDistance'},\n", " {'description': 'Number of physical qubits per logical qubit',\n", @@ -4746,7 +4747,7 @@ " '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", + " '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", @@ -4778,13 +4779,13 @@ " '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.94e-6.',\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-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 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", + " '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", @@ -4873,20 +4874,20 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [9],\n", - " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'tfactory': {'codeDistancePerRound': [11],\n", + " 'logicalErrorRate': 2.480000000000001e-07,\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", + " 'physicalQubits': 9680,\n", + " 'physicalQubitsPerRound': [9680],\n", + " 'runtime': 57200.0,\n", + " 'runtimePerRound': [57200.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 11, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -4899,7 +4900,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { @@ -4926,7 +4927,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { @@ -4944,18 +4945,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "Logical algorithmic qubits = 38\n", - "Algorithmic depth = 55\n", - "Score = 2090\n" + "Logical algorithmic qubits = 33\n", + "Algorithmic depth = 380\n", + "Score = 12540\n" ] }, { "data": { "text/plain": [ - "2090" + "12540" ] }, - "execution_count": 13, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task6.ipynb b/iQuHack-challenge-2023-task6.ipynb index 7babc33..330ddb9 100644 --- a/iQuHack-challenge-2023-task6.ipynb +++ b/iQuHack-challenge-2023-task6.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { @@ -196,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -205,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 29, "metadata": { "collapsed": false, "jupyter": { @@ -262,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { @@ -307,12 +307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -332,12 +332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -357,12 +357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -382,12 +382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -407,12 +407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -432,12 +432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -457,12 +457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -482,12 +482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -507,12 +507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -532,12 +532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -557,12 +557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -582,12 +582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -607,12 +607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -632,12 +632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -657,12 +657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -682,12 +682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -707,12 +707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -732,12 +732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -757,12 +757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -782,12 +782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -807,12 +807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -832,12 +832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -857,12 +857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -882,12 +882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -907,12 +907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -932,12 +932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -957,12 +957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -982,12 +982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1007,12 +1007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1032,12 +1032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1057,12 +1057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1082,12 +1082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1107,12 +1107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1132,12 +1132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1157,12 +1157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1182,12 +1182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1207,12 +1207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1232,12 +1232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1257,12 +1257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1282,12 +1282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1307,12 +1307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1332,12 +1332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1357,12 +1357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1382,12 +1382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1407,12 +1407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1432,12 +1432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1457,12 +1457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1482,12 +1482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1507,12 +1507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1532,12 +1532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1557,12 +1557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1582,12 +1582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1607,12 +1607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1632,12 +1632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1657,12 +1657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1682,12 +1682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1707,12 +1707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1732,12 +1732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1757,12 +1757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1782,12 +1782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1807,12 +1807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1832,12 +1832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1857,12 +1857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1882,12 +1882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1907,12 +1907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1932,12 +1932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1957,12 +1957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1982,12 +1982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2007,12 +2007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2032,12 +2032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2057,12 +2057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2082,12 +2082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2107,12 +2107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2132,12 +2132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2157,12 +2157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2182,12 +2182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2207,12 +2207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2232,12 +2232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2257,12 +2257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2282,12 +2282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2307,12 +2307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2332,12 +2332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2357,12 +2357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2382,12 +2382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2407,12 +2407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2432,12 +2432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2457,12 +2457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2482,12 +2482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2507,12 +2507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2532,12 +2532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2557,12 +2557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2582,12 +2582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2607,12 +2607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2632,12 +2632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2657,12 +2657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2682,12 +2682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2707,12 +2707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2732,12 +2732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2757,12 +2757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2782,12 +2782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2807,12 +2807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2832,12 +2832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2857,12 +2857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2882,12 +2882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2907,12 +2907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2932,12 +2932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2957,12 +2957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2982,12 +2982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3007,12 +3007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3032,12 +3032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3057,12 +3057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3082,12 +3082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3107,12 +3107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3132,12 +3132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3157,12 +3157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3182,12 +3182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3207,12 +3207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3232,12 +3232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3257,12 +3257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3282,12 +3282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3307,12 +3307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3332,12 +3332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3357,12 +3357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3382,12 +3382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3407,12 +3407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3432,12 +3432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3457,12 +3457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3482,12 +3482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3507,12 +3507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3532,12 +3532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3557,12 +3557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3582,12 +3582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3607,12 +3607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3632,12 +3632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3657,12 +3657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3682,12 +3682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3707,12 +3707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3732,12 +3732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3757,12 +3757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3782,12 +3782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3807,12 +3807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3832,12 +3832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3857,12 +3857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3882,12 +3882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3907,12 +3907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3932,12 +3932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3957,12 +3957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3982,12 +3982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4007,12 +4007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4032,12 +4032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4057,12 +4057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4082,12 +4082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4107,12 +4107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4132,12 +4132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4157,12 +4157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4182,12 +4182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4207,12 +4207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4232,12 +4232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4257,12 +4257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4282,12 +4282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4307,12 +4307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4332,12 +4332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4357,12 +4357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4382,12 +4382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4407,12 +4407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4432,12 +4432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4457,12 +4457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4482,12 +4482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4507,12 +4507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4532,12 +4532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4557,12 +4557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4582,12 +4582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4607,12 +4607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4632,12 +4632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4657,12 +4657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4682,12 +4682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4707,12 +4707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4732,12 +4732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4757,12 +4757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4782,12 +4782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4807,12 +4807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4832,12 +4832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4857,12 +4857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4882,12 +4882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4907,12 +4907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4932,12 +4932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4957,12 +4957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4982,12 +4982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5007,12 +5007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5032,12 +5032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5057,12 +5057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5082,12 +5082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5107,12 +5107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5132,12 +5132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5157,12 +5157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5182,12 +5182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5207,12 +5207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5232,12 +5232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5257,12 +5257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5282,12 +5282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5307,12 +5307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5332,12 +5332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5357,12 +5357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5382,12 +5382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5407,12 +5407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5432,12 +5432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5457,12 +5457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5482,12 +5482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5507,12 +5507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5532,12 +5532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5557,12 +5557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5582,12 +5582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5607,12 +5607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5632,12 +5632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5657,12 +5657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5682,12 +5682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5707,12 +5707,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5732,12 +5732,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5757,12 +5757,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5782,12 +5782,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5807,12 +5807,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5832,12 +5832,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5857,12 +5857,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5882,12 +5882,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5907,12 +5907,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5932,12 +5932,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5957,12 +5957,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5982,12 +5982,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6007,12 +6007,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6032,12 +6032,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6057,12 +6057,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6082,12 +6082,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6107,12 +6107,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6132,12 +6132,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6157,12 +6157,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6182,12 +6182,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6207,12 +6207,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6232,12 +6232,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6257,12 +6257,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6282,12 +6282,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6307,12 +6307,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6332,12 +6332,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6357,12 +6357,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6382,12 +6382,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6407,12 +6407,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6432,12 +6432,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6457,12 +6457,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6482,12 +6482,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6507,12 +6507,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6532,12 +6532,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6557,12 +6557,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6582,12 +6582,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6607,12 +6607,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6632,12 +6632,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6657,12 +6657,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6682,12 +6682,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6966,7 +6966,7 @@ "()" ] }, - "execution_count": 7, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -6995,7 +6995,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { @@ -7029,8 +7029,8 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 177740},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 321366},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178621},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409767},\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", @@ -7038,14 +7038,14 @@ " {'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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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", @@ -7053,7 +7053,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 8, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -7069,7 +7069,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { @@ -7097,7 +7097,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 9, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -7108,7 +7108,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { @@ -7129,9 +7129,10 @@ "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 6\n", - " Job ID: 1678631d-016c-4332-ba1f-61fcb3b081b9\n", + " Job ID: 51c97eab-212e-45b6-9f03-7489fad62c36\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[12:40:10 PM] Current job status: Succeeded\n" + "[1:15:38 PM] Current job status: Executing\n", + "[1:15:43 PM] Current job status: Succeeded\n" ] } ], @@ -7142,7 +7143,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { @@ -7158,7 +7159,7 @@ "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\":6,\"cczCount\":2,\"measurementCount\":6,\"numQubits\":12,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":30,\"algorithmicLogicalQubits\":35,\"cliffordErrorRate\":0.001,\"logicalDepth\":30,\"numTfactories\":14,\"numTfactoryRuns\":3,\"numTsPerRotation\":null,\"numTstates\":32,\"physicalQubitsForAlgorithm\":5670,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":4.761904761904762E-07,\"requiredLogicalTstateErrorRate\":1.5625E-05},\"physicalQubits\":96390,\"runtime\":108000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.12 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"4.76e-7\",\"requiredLogicalTstateErrorRate\":\"1.56e-5\",\"runtime\":\"108us\",\"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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.\",\"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 32.\",\"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.0000004761904761904762)}{\\\\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.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 1.56e-5.\",\"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 35 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\"]}}", + "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\"]}}", "text/html": [ "\r\n", "
\r\n", @@ -7170,24 +7171,24 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 96390\r\n", + " 130356\r\n", " \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 5670 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\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", " \r\n", " \n", "\r\n", " \r\n", " Runtime\r\n", - " 108us\r\n", + " 2ms 246us 400ns\r\n", " \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 30 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", + "

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", " \r\n", " \n", @@ -7202,120 +7203,120 @@ "\r\n", " \r\n", " Logical algorithmic qubits\r\n", - " 35\r\n", + " 42\r\n", " \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} = 12\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 35$ logical qubits.

\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", " \r\n", " \n", "\r\n", " \r\n", " Algorithmic depth\r\n", - " 30\r\n", + " 432\r\n", " \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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 30\r\n", + " 432\r\n", " \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 30. 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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 32\r\n", + " 448\r\n", " \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 2 CCZ and 6 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\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", " \r\n", " \n", "\r\n", " \r\n", " Number of T factories\r\n", - " 14\r\n", + " 12\r\n", " \r\n", - "

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

\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 14 that are executed in parallel is computed as \\(\\left\\lceil\\dfrac{32\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 108us\\;\\text{algorithm runtime}}\\right\\rceil\\)

\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", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 3\r\n", + " 38\r\n", " \r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical algorithmic qubits\r\n", - " 5670\r\n", + " 14196\r\n", " \r\n", "

Number of physical qubits for the algorithm after layout

\n", "
\r\n", "
\r\n", - "

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

\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", " \r\n", " \n", "\r\n", " \r\n", " Physical T factory qubits\r\n", - " 90720\r\n", + " 116160\r\n", " \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 14 in parallel, therefore we need $90720 = 6480 \\cdot 14$ qubits.

\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", " \r\n", " \n", "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 4.76e-7\r\n", + " 2.76e-8\r\n", " \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 35 logical qubits and the total cycle count 30.

\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", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 1.56e-5\r\n", + " 1.12e-6\r\n", " \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 32.

\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", " \r\n", " \n", @@ -7354,19 +7355,19 @@ "\r\n", " \r\n", " Code distance\r\n", - " 9\r\n", + " 13\r\n", " \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.0000004761904761904762)}{\\log(0.01/0.001)} - 1\\)

\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", " \r\n", " \n", "\r\n", " \r\n", " Physical qubits\r\n", - " 162\r\n", + " 338\r\n", " \r\n", "

Number of physical qubits per logical qubit

\n", "
\r\n", @@ -7378,7 +7379,7 @@ "\r\n", " \r\n", " Logical cycle time\r\n", - " 3us 600ns\r\n", + " 5us 200ns\r\n", " \r\n", "

Duration of a logical cycle in nanoseconds

\n", "
\r\n", @@ -7390,12 +7391,12 @@ "\r\n", " \r\n", " Logical qubit error rate\r\n", - " 3.00e-7\r\n", + " 3.00e-9\r\n", " \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", + "

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", " \r\n", " \n", @@ -7431,7 +7432,7 @@ "

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", + "

This is the formula that is used to compute the logical cycle time 5us 200ns.

\n", "\r\n", " \r\n", " \n", @@ -7443,7 +7444,7 @@ "

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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -7458,7 +7459,7 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 6480\r\n", + " 9680\r\n", " \r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -7470,7 +7471,7 @@ "\r\n", " \r\n", " Runtime\r\n", - " 46us 800ns\r\n", + " 57us 200ns\r\n", " \r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -7487,7 +7488,7 @@ "

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", + "

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", " \r\n", " \n", @@ -7542,7 +7543,7 @@ "\r\n", " \r\n", " Distillation code distances\r\n", - " 9\r\n", + " 11\r\n", " \r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -7554,7 +7555,7 @@ "\r\n", " \r\n", " Number of physical qubits per round\r\n", - " 6480\r\n", + " 9680\r\n", " \r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -7566,7 +7567,7 @@ "\r\n", " \r\n", " Runtime per round\r\n", - " 46us 800ns\r\n", + " 57us 200ns\r\n", " \r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -7578,12 +7579,12 @@ "\r\n", " \r\n", " Logical T state error rate\r\n", - " 2.17e-6\r\n", + " 2.48e-7\r\n", " \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.56e-5.

\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", " \r\n", " \n", @@ -7598,12 +7599,12 @@ "\r\n", " \r\n", " Logical qubits (pre-layout)\r\n", - " 12\r\n", + " 15\r\n", " \r\n", "

Number of logical qubits in the input quantum program

\n", "
\r\n", "
\r\n", - "

We determine 35 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", + "

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", " \r\n", " \n", @@ -7646,7 +7647,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 2\r\n", + " 16\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -7658,7 +7659,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 6\r\n", + " 96\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -7670,7 +7671,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 6\r\n", + " 96\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -7901,48 +7902,48 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 6,\n", - " 'cczCount': 2,\n", - " 'measurementCount': 6,\n", - " 'numQubits': 12,\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': 9,\n", - " 'logicalCycleTime': 3600.0,\n", - " 'logicalErrorRate': 3.0000000000000015e-07,\n", - " 'physicalQubits': 162},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 30,\n", - " 'algorithmicLogicalQubits': 35,\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': 30,\n", - " 'numTfactories': 14,\n", - " 'numTfactoryRuns': 3,\n", + " 'logicalDepth': 432,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 38,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 32,\n", - " 'physicalQubitsForAlgorithm': 5670,\n", - " 'physicalQubitsForTfactories': 90720,\n", - " 'requiredLogicalQubitErrorRate': 4.761904761904762e-07,\n", - " 'requiredLogicalTstateErrorRate': 1.5625e-05},\n", - " 'physicalQubits': 96390,\n", - " 'runtime': 108000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\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': '3us 600ns',\n", - " 'logicalErrorRate': '3.00e-7',\n", + " 'logicalCycleTime': '5us 200ns',\n", + " 'logicalErrorRate': '3.00e-9',\n", " 'numTsPerRotation': 'No rotations in algorithm',\n", " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '94.12 %',\n", - " 'physicalQubitsPerRound': '6480',\n", - " 'requiredLogicalQubitErrorRate': '4.76e-7',\n", - " 'requiredLogicalTstateErrorRate': '1.56e-5',\n", - " 'runtime': '108us',\n", - " 'tfactoryRuntime': '46us 800ns',\n", - " 'tfactoryRuntimePerRound': '46us 800ns',\n", - " 'tstateLogicalErrorRate': '2.17e-6',\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", @@ -7953,53 +7954,53 @@ " '**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 5670 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\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 (3us 600ns) multiplied by the 30 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", + " '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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ logical qubits.',\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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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", + " '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 30. 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", + " '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 2 CCZ and 6 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 32 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.',\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 5670 are the product of the 35 logical qubits after layout and the 162 physical qubits that encode a single logical qubit.',\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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ qubits.',\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 35 logical qubits and the total cycle count 30.',\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 32.',\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", @@ -8013,7 +8014,7 @@ " '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.0000004761904761904762)}{\\\\log(0.01/0.001)} - 1$',\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", @@ -8025,7 +8026,7 @@ " '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", + " '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", @@ -8037,11 +8038,11 @@ " '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", + " '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 162.',\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", @@ -8055,7 +8056,7 @@ " '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", + " '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", @@ -8087,13 +8088,13 @@ " '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.56e-5.',\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 35 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", + " '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", @@ -8182,20 +8183,20 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [9],\n", - " 'logicalErrorRate': 2.165000000000001e-06,\n", + " 'tfactory': {'codeDistancePerRound': [11],\n", + " 'logicalErrorRate': 2.480000000000001e-07,\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", + " 'physicalQubits': 9680,\n", + " 'physicalQubitsPerRound': [9680],\n", + " 'runtime': 57200.0,\n", + " 'runtimePerRound': [57200.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 11, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -8208,7 +8209,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { @@ -8235,7 +8236,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 36, "metadata": { "collapsed": false, "jupyter": { @@ -8253,18 +8254,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "Logical algorithmic qubits = 35\n", - "Algorithmic depth = 30\n", - "Score = 1050\n" + "Logical algorithmic qubits = 42\n", + "Algorithmic depth = 432\n", + "Score = 18144\n" ] }, { "data": { "text/plain": [ - "1050" + "18144" ] }, - "execution_count": 13, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task7.ipynb b/iQuHack-challenge-2023-task7.ipynb index 84be853..89a785e 100644 --- a/iQuHack-challenge-2023-task7.ipynb +++ b/iQuHack-challenge-2023-task7.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { @@ -80,15 +80,7 @@ } } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Preparing Q# environment...\n" - ] - } - ], + "outputs": [], "source": [ "# Run this code cell to import the modules required to work with Q# and Azure\n", "import qsharp\n", @@ -97,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { @@ -119,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { @@ -156,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { @@ -206,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -215,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 29, "metadata": { "collapsed": false, "jupyter": { @@ -272,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { @@ -317,12 +309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -342,12 +334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -367,12 +359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -392,12 +384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -417,12 +409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -442,12 +434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -467,12 +459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -492,12 +484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -517,12 +509,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -542,12 +534,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -567,12 +559,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -592,12 +584,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -617,12 +609,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -642,12 +634,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -667,12 +659,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -692,12 +684,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -717,12 +709,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -742,12 +734,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -767,12 +759,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -792,12 +784,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -817,12 +809,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -842,12 +834,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -867,12 +859,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -892,12 +884,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -917,12 +909,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -942,12 +934,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -967,12 +959,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -992,12 +984,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1017,12 +1009,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1042,12 +1034,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1067,12 +1059,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1092,12 +1084,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1117,12 +1109,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1142,12 +1134,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1167,12 +1159,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1192,12 +1184,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1217,12 +1209,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1242,12 +1234,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1267,12 +1259,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1292,12 +1284,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1317,12 +1309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1342,12 +1334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1367,12 +1359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1392,12 +1384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1417,12 +1409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1442,12 +1434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1467,12 +1459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1492,12 +1484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1517,12 +1509,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1542,12 +1534,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1567,12 +1559,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1592,12 +1584,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1617,12 +1609,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1642,12 +1634,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1667,12 +1659,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1692,12 +1684,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1717,12 +1709,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1742,12 +1734,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1767,12 +1759,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1792,12 +1784,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1817,12 +1809,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1842,12 +1834,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1867,12 +1859,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1892,12 +1884,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1917,12 +1909,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1942,12 +1934,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1967,12 +1959,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1992,12 +1984,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2017,12 +2009,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2042,12 +2034,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2067,12 +2059,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2092,12 +2084,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2117,12 +2109,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2142,12 +2134,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2167,12 +2159,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2192,12 +2184,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2217,12 +2209,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2242,12 +2234,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2267,12 +2259,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2292,12 +2284,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2317,12 +2309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2342,12 +2334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2367,12 +2359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2392,12 +2384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2417,12 +2409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2442,12 +2434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2467,12 +2459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2492,12 +2484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2517,12 +2509,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2542,12 +2534,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2567,12 +2559,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2592,12 +2584,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2617,12 +2609,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2642,12 +2634,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2667,12 +2659,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2692,12 +2684,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2717,12 +2709,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2742,12 +2734,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2767,12 +2759,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2792,12 +2784,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2817,12 +2809,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2842,12 +2834,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2867,12 +2859,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2892,12 +2884,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2917,12 +2909,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2942,12 +2934,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2967,12 +2959,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2992,12 +2984,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3017,12 +3009,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3042,12 +3034,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3067,12 +3059,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3092,12 +3084,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3117,12 +3109,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3142,12 +3134,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3167,12 +3159,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3192,12 +3184,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3217,12 +3209,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3242,12 +3234,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3267,12 +3259,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3292,12 +3284,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3317,12 +3309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3342,12 +3334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3367,12 +3359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3392,12 +3384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3417,12 +3409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3442,12 +3434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3467,12 +3459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3492,12 +3484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3648,7 +3640,7 @@ "()" ] }, - "execution_count": 7, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -3677,7 +3669,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { @@ -3711,23 +3703,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 176914},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 423509},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178643},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 426101},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 69},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 69},\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", @@ -3735,7 +3727,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 8, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -3751,7 +3743,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { @@ -3779,7 +3771,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 9, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -3790,7 +3782,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { @@ -3811,10 +3803,10 @@ "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 7\n", - " Job ID: fd0504b4-d2d0-4bfc-a151-f6708f20d5ce\n", + " Job ID: a7d42efd-1393-44bf-bf4d-7e90bcc2df62\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[12:35:59 PM] Current job status: Waiting\n", - "[12:36:04 PM] Current job status: Succeeded\n" + "[1:17:00 PM] Current job status: Executing\n", + "[1:17:05 PM] Current job status: Succeeded\n" ] } ], @@ -3825,7 +3817,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 34, "metadata": { "collapsed": false, "jupyter": { @@ -4878,7 +4870,7 @@ " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 11, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -4891,7 +4883,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 35, "metadata": { "collapsed": false, "jupyter": { @@ -4918,7 +4910,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 36, "metadata": { "collapsed": false, "jupyter": { @@ -4947,7 +4939,7 @@ "2546" ] }, - "execution_count": 13, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task9.ipynb b/iQuHack-challenge-2023-task9.ipynb index eea076e..2f3bf93 100644 --- a/iQuHack-challenge-2023-task9.ipynb +++ b/iQuHack-challenge-2023-task9.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -104,14 +104,14 @@ }, "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" + "teamname=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task8\"]\n", + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -172,6 +172,12 @@ "\n", "// Task 9. \n", "// (input will contain 8 qubits)\n", + "operation original(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", + "}\n", + "\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", @@ -181,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { @@ -238,7 +244,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -251,7 +257,6702 @@ } } }, - "outputs": [], + "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.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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.0,\"Imaginary\":0.0,\"Magnitude\":0.0,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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.06250000000000006,\"Imaginary\":0.0,\"Magnitude\":0.06250000000000006,\"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|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|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|000100010100000000\\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|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|001000110100000000\\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|001100100100000000\\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|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|010001110100000000\\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|010101100100000000\\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|011001010100000000\\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|011101000100000000\\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|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|100011110100000000\\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|100111100100000000\\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|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|101011010100000000\\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|101111000100000000\\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|110010110100000000\\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|110110100100000000\\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|111010010100000000\\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|111110000100000000\\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": [ + "|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", + "|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", + "|000100010100000000⟩\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", + "|001000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|001000100⟩\t0.06250000000000006 + 0𝑖\n", + "|001000110100000000⟩\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", + "|001100100100000000⟩\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", + "|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", + "|010001110100000000⟩\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", + "|010101100100000000⟩\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", + "|011001010100000000⟩\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", + "|011101000100000000⟩\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", + "|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", + "|100011110100000000⟩\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", + "|100111100100000000⟩\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", + "|101010010000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101010100⟩\t0.06250000000000006 + 0𝑖\n", + "|101010110000000000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011000⟩\t0.06250000000000006 + 0𝑖\n", + "|101011010100000000⟩\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", + "|101111000100000000⟩\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", + "|110010110100000000⟩\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", + "|110110100100000000⟩\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", + "|111010010100000000⟩\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", + "|111110000100000000⟩\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": 6, + "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", @@ -276,7 +6977,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -289,19 +6990,68 @@ } } }, - "outputs": [], + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178414},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 303167},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\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": 7, + "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=\"...\",\n", - " location=\"...\",\n", + " resourceId=\"/subscriptions/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", " credential=\"CLI\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -314,14 +7064,33 @@ } } }, - "outputs": [], + "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": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "qsharp.azure.target(\"microsoft.estimator\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -334,7 +7103,20 @@ } } }, - "outputs": [], + "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: ae3e32d3-3d41-40d0-8170-61957fdfc5ca\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[12:43:18 PM] 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\")" @@ -342,7 +7124,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -355,7 +7137,1051 @@ } } }, - "outputs": [], + "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\":90,\"cczCount\":15,\"measurementCount\":90,\"numQubits\":15,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":13,\"logicalCycleTime\":5200.0,\"logicalErrorRate\":3.000000000000002E-09,\"physicalQubits\":338},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":405,\"algorithmicLogicalQubits\":42,\"cliffordErrorRate\":0.001,\"logicalDepth\":405,\"numTfactories\":12,\"numTfactoryRuns\":35,\"numTsPerRotation\":null,\"numTstates\":420,\"physicalQubitsForAlgorithm\":14196,\"physicalQubitsForTfactories\":116160,\"requiredLogicalQubitErrorRate\":2.9394473838918283E-08,\"requiredLogicalTstateErrorRate\":1.1904761904761906E-06},\"physicalQubits\":130356,\"runtime\":2106000},\"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.94e-8\",\"requiredLogicalTstateErrorRate\":\"1.19e-6\",\"runtime\":\"2ms 106us\",\"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 405 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 90 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 15 CCZ and 90 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 405. 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 15 CCZ and 90 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 420 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{420\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 106us\\\\;\\\\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 420 T states, the 12 copies of the T factory are repeatedly invoked 35 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 405.\",\"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 420.\",\"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.000000029394473838918283)}{\\\\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.19e-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\"]}}", + "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 106us\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 405 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 depth405\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 90 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 15 CCZ and 90 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 depth405\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 405. 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 states420\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 15 CCZ and 90 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 420 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{420\\;\\text{T states} \\cdot 57us 200ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 2ms 106us\\;\\text{algorithm runtime}}\\right\\rceil\\)

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

Number of times all T factories are invoked

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

In order to prepare the 420 T states, the 12 copies of the T factory are repeatedly invoked 35 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.94e-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 405.

\n", + "\r\n", + "
Required logical T state error rate1.19e-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 420.

\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.000000029394473838918283)}{\\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.19e-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 gates15\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 gates90\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 operations90\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': 90,\n", + " 'cczCount': 15,\n", + " 'measurementCount': 90,\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': 405,\n", + " 'algorithmicLogicalQubits': 42,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 405,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 35,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 420,\n", + " 'physicalQubitsForAlgorithm': 14196,\n", + " 'physicalQubitsForTfactories': 116160,\n", + " 'requiredLogicalQubitErrorRate': 2.9394473838918283e-08,\n", + " 'requiredLogicalTstateErrorRate': 1.1904761904761906e-06},\n", + " 'physicalQubits': 130356,\n", + " 'runtime': 2106000},\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.94e-8',\n", + " 'requiredLogicalTstateErrorRate': '1.19e-6',\n", + " 'runtime': '2ms 106us',\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 405 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 90 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 15 CCZ and 90 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 405. 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 15 CCZ and 90 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 420 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{420\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 2ms 106us\\\\;\\\\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 420 T states, the 12 copies of the T factory are repeatedly invoked 35 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 405.',\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 420.',\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.000000029394473838918283)}{\\\\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.19e-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']}}" + ] + }, + "execution_count": 10, + "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", @@ -364,7 +8190,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -391,7 +8217,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -404,10 +8230,37 @@ } } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 42\n", + "Algorithmic depth = 405\n", + "Score = 17010\n" + ] + }, + { + "data": { + "text/plain": [ + "17010" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "evaluate_results(result)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -415,9 +8268,9 @@ "name": "python3" }, "kernelspec": { - "display_name": "Python 3 [Default]", + "display_name": "Python 3 [Q#]", "language": "python", - "name": "python3" + "name": "python3_qsharp_b54crn" }, "language_info": { "codemirror_mode": { diff --git a/obj/__entrypoint__.dll b/obj/__entrypoint__.dll index 6f1942a7189b1fc25bfc0d930cb21e20dcb28868..d3b32702b1890d29d6cc018d6c45a0a04a5d29c6 100644 GIT binary patch delta 41062 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 delta 40952 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

vIz=#F)jk7!746V? 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 RzT#n9%Aed{8*9tG{|~F++t2_2 diff --git a/obj/__entrypoint__snippets__.dll b/obj/__entrypoint__snippets__.dll index 418cc8903d23bfb8041bdd4d8aedda59299afbcf..3c175aadfff93d99d5b9c51d98de29e37169e8aa 100644 GIT binary patch literal 121344 zcmeHw3z%F-b!K(XQ!^vkGqN6j$*qxPj~+9gm!y%O8cAbYw%(F42F$oMb0xLu=^l0W z7-Yv;nGk15oB#~fXL{=rwOwO-iX|Tra<@)UP9D*rVgx(FLGa z-Siu))W=qQVdJkS4t`A ztX$b~vtfO7LaBp^r26!^uTF`ymsD@6Gcl;tR})GlU1;w6$fuasfU9*LS?bLosY(H8 z>NKf6KdjW%`hPh!MYo!|0ep{`d~lLfUBQUj(3Dc`7DYSC_gm$GlJlk#%ClcK?Xub` zWT^7kK*7o8VHsBk)3&dnjurMOwbv@vl|4$kB2c%aYEk=dQ|j#nr9{G)-v`_=DQVK0 z(bi;BA9U?dYU_0cRGURI!em48DHNNx_9mO2))@fM92cN70KgMnfX)DbZgl}V13-%a zbOwM{0q6_>Z357loyq^#x=yLq;z}sBRjJj3P3p7Kf@HF96~JGFizNE4LM{)@w)KH^ zs}fwdhl7&a`oOe|yT!vn-)(&>Y}~CL4yteK>$GtYkaXoCx2+GVm3j7g^)ydtRmN@c zaA@qdKB(5Jwsth3S!h>Mq0D~kR>>bkwj&Q+w{>h&t;AnH*s6XHDH_qOZhX803P7*c z*8FNvu5NZq`D;+s-J=xk;Tm!^&;CFp~EpoRc*~hJI?M0ZjBfs7S z!IZ78U_%45wzjSNaY#sPUfcdc@mkRJUB?>NvxfRc>n&>S%KvxWH*QfYR=0GwY`+0g z(X!UI{0$&5h4%c7EGYGLrMa(e-KM&An-ZW>>SlHNM^!60Vivhs<$hA3SCqQ0Fy}ho zuNvn=Yg|v#8Tbi$%LV8R0FdDVbcT)tPU1N9n^%!BgZPHeZ=g=OuY7*9!N&ReKSkWu z;68-5Rv$L0Cn&z$hiJCdhb&e0;Z1;4bW^a=Vd1jTSqL?{*nHg`Wt-o$&$T(nKH3TM zVbHfE^w?j=1jdE`yT;WS0N_9_KxY8JC~yHfL-X&1B1N>IV=GI$yi#CaZ1cv39ychK z`(nF?(_^vU#-U)wzOIMq4}GzrshB}V_eqn21DkQx)a-gZT*mau_3(=y0UnjRRnz9D z(3c$@Pi;ipscyRI#|Kbz^A|B5n)`YID{ey6cQc}{ZM)j@n~~v2gPhhC$v&vrT7=Ja zJcm(#eI9n)hM~tH_8i>63_aDJ?*pX&Q{U)p-`>`q--3erx;rwOF*2IBss#KpsruEv zSp{oz>^G}V)Td*Z>d>@f-Q$m}d3^2TMVPpQI(OvV2HhE@L3!A_BfM3g3~v=IsoV7$ zb^i-)yRIwjcAad(I2mRj*M)QjJ_S3v0G**1P0+@kPu=U4zT*vQpCjD~5)bEdq`Qfu zv%CSBt@_?l?JMX4<14E%2Y-|IzG`1d_T2#%H?4R)*>@K*J}-xoz;%U9E%zC}Y z8dBCRh7>UfEGAlSUhlDnl(kW$90=~0YCqQFuxp!Y$3THUw5oru+20|2Lk3B0C()HW zPg$IHhxlWqs3q;lN>NMdnU$gzIMm9Hz`Nog#-Y9|rrinaXUv3!3C*3KbOsX^#;Oa@ z8BSOyIUNk4zP<@Q_OqG3##g->%Ab;CN_O_hDQF@yqW3+xnSa zSNL<+qAweZ_J{#>1{OsFU5n}r09fO?0G$C~jR16pHb0H#m<UyY&9S70ji-FxDJy$Q2p#^_N`j1CMAj0}zp z!KU=~EaF$g{WkreQlCNkWek)}CrX7(?o5#s@5a(_6pQ*z51mkdh_w_PM{Tv5C6;y+g8A+xWSAltS@n!QRqi~PJp7y;Tp#U2UTc-dI}e5 z&`%1hSF8?|9^1sD(=?8FxTwy<9Tj{A;RiYiNAIg*$M1Hvs-M#FcUQcl>nin^Xl{oZ z={UNgLmk!eg)Zi=*ZD6cnEz@s<9r+A?=&4<(W<_*f_#1h9N@Jb@90{kKDuIi^D6ar z#2xB@uJvD6lKu;d^q)z*(AlBx(ePi_@$al6{G))ks*c3}2A@x?B+Vab`t^x!@cFvV z{|;8f9qOkcy;Xfn(_g)Ul;<^M4f3t(<83c=_Necx|Jk`#?M+gXzg8dUTC0kk)MpPQ z_NZGD#2(bxL}E9%eNS`Su##>0&?@qIKlpU0k89l?>uO)ws(w^M&O%m?8cV!qWsmAc zyjFd@`2%zmbsf5r_U6B<)vaColdWE9k1n;NcZf@M?oW1L*?X%l{oe#jtI*@beG#}G zr1$C4^DD@uhr3mD+$KnvfrDh=HCL+-!edscb-vOYJltB~X4Gob`&V3VMJW#^x3_$z zDWPs^`8?v&t$&F4@0-7f`0LGIL)@n!&$WC9d7IM3eoPU2TN?M@{q9 zmVZS47h5`;h4XC7*P2EWuSslZKANJPo?ZWB*9GYFT3!0)iq7_1q4_COn$x9>F1@Aw zW69p;q&jCxpHAM2(vzn2?qq*+lX|l${d{s5r5`h;U+WlaZdN~KN`KjL7fSCnr8gz_ zHMgh_n9_yhL6rWBDLs~aRdcKQRa43)GbsJGDSf1Uthr5n)|CFD{VtUL*pxb&o^Ebe ze`-qCHa&;ZOS<&g_Fry#Z}STEJ-4KOuBjCx_jflcgwLvhre6R~N*_R}Lw#Q3ep;ov zKGNK&{)a9-qej&yn!A*3!IkQ3z2xFraFzNCQ=$b|sc-9&Yr$3OZ%m06T&4cOlxV@L z)XSzs3tpw#vA0#~E$y_#)#_?fq9v|Y*XoknqHfjamUN4{y*98#S?s-8g&peqxi%c^{_6vEn2HyZ%S;@TIJ}{TiU<0a;$l+nlUA{>MoR?Fr|Nw zzFnt&(3IYezFnt&#FYLdIo7;hz0H*VB6$}|@75)@=*8x1)z6#KZ|Ty<+>&nJwQB8V z>d7Aa3MlO!yH2Gvj_vz)^YvM@kIs8icma>w*mHKR*zi?*qfDX~S{ z)Kj|jmiGHrjp2mjhfFDp7Hw0{nbMZdvF7dSou+iS^DdPBgD$Z}9WDLpKbz8T>Cz|M zlJ28^^>?N;(3AqD-A4oJUp0;`8g98w-LTzl!vpHxmSL4OrN>YjsTgCU>UT8GZP5<( zSyN(*cBn7t(p%aOHov-Mhx&>sy`wpc(l<XL~IL3CVe=sGE zF)Z|XOUL;8E^uS2-IV?XxG~kOOYZpFtx|4Dw|%$QT8_VRiR15f^}MEZ$KM_5MO}JE zZNT`uQ>`CxE%8D1p_aSUEvEEyi4V2htwwc;efwg|J!+3GeRD;6Z903#Cu0cdX)B;Ad7+t}81{ zqF>g+>fYQ%xz|UKYg^B+gXnxXN&O$zu}$;$O*~gjsv*eg$2EkrtbSZWSU2|L8p0~E zAJ-7pnfe|GYn%<>0CO+Txv+7go#g*?@$JAuo-y)yt`aWiv zUtYB#!MHDRC+P1^Jc9haiTyf%5czE4B=S!ozQ6g+iPve!TM_@K1mj;yTm$R{HI4Xf zYQH*}_y^Se^TfX-&L^H<^>QMs>t*{1l-L~qcZ#LbOe2@B-l`k}H*O2WRvQa&#PCmF% zoluWFIDlSwwsin|{YB8d0YnOlwG5L#6=vz=IbwbO!yw1A2%@}kLi5c#DrYX`DaW_$n!e?J`)r2qRxNH#Du)0^WQWv zAu6f0GBF`3o!@9;LdJD|Jjr}o=hHg>jLtu!^Y7F7_v!pgI{#P`IbYE6^E!S}$1mwv zH52=yj`y@M|Co+1==gaZzo_Gv+G*<k^*+J^aPJ21SN{aM>LTa?<<&iHf5zefC_ej#VX~4^I67zbKzFH7B!&(Vg zt_^waI}*sPK)xN8OCZ;Ye1}?zd?#YQBXJe-D-kELhv-KBD#YA#u13BaaT0sdHHfdp zt}>~vLz=`KbUm;)AWo_q@h^d1x)J%C@GqfKh?7{+ZbaONxh0AF#b(4?^)7fD;v{-< z3n=>$ClzO>`rJQVjye`_yfScOy-z+c5(q)g4%UCDfgWlj<(D3;DYdC)GWmN@8_# z2jcsINvZ>YC9!fH2hD?slQ?JFhx{SLNp%>fUP-(;av$P{L7P;s22~PwE=)4&HHeey zwZJFT>kuc^qqsXI)awx^)gvaQq6!~U#9QhWUOJ0SzgnX-dJMyjSCy{ScA3?rN{W9_^)R$rH4)ry}oj4I$2m21; z+~;+W@~rAl985ftC??*W`0d1sL)NP1 z3m7aF;mue_!F{~&D^33l2*dSmg7`O^uH#V?f(`pH)^L8<-EGydf~m`u2-Y@O->g8( zJJ8}zNbZ6sZd4z}^-)|O$Mu`IK7;E|;Uh2O`qji{^`*oSwJW(^9qe1lFhStP=^lrNyPFP|$F^4Y92eI$1vR|4cv zzR2XjvGGD7eV)08a+y-PptB`s2HrNjW5>N?`$l%{-!V9`d;i|S(VZhZcaMz^?Hm~y zp4dM!F)^}x=irWs;l29@_f72DF*Z83Z)jp{aR091iGBNrh69a1tnQu5O+7ZO4(v;3 zv$~zb>Q(9Noa452SRI*#IZBy)jzmzT0zIOj{mxO{)?I3H@s{P%`joDV{@l6C2hoq z3+Y+d-|GXzrzXMVBurX3Kg;1aIa$nQz@b#s64)m?L#apRn5VqSNq5AULdDoJuzS-} z@LUXKU1oI*4*I>$PP2UCd=c(3U^;hTU%ucR%$ySNK6?8UJGwY86XXmv#zC;X}!o|(N7ff+S7oi0qP6WPp^gXy*i05Zppr*mgemT6m!pDLCL7^NQI z!2V2eHeckNUU4H+$LDgT%#5R5_kM5(-hen?8_0c*p1toadK)1}yTvkusdbAIC z$_yM%&o}|Y`$T93PD6E9x_2&{t-BH>c@U>r&!vTpP9|i<)-h${Z7fOqxL(e=FXgP3VRFr zH)^lp&D_CKWo9;$bqadY24H%;ggN@u98hizI+!13aVeut5^08+Y_J9Dd}=|TzZP%>SIN|gD5vr(w53L=^1v6=|J^AAjCvsxb4Z{~)KnIznE z?xlBVGpg|0L_l?I0;qAWNC%wcvS9L5J~uu21lDi^r;7O;XBw5CRqmbC8YpI^V-RSP zc9sd;OQArmg`uXr~$4}%F9)*YY8yR5^K#6pty}S70QFt_5Tx2;R(#Z zMdS6j_hUVaq9H$dw&0|v0Ucn|Jg~LwQRj*>&))B3v8pQuDB>I31LZ{)?g&^F)>(%R z7+TMDBJM>nBGr*ok7IpCn<{KOP|@xBP(Ka62ZnlV2sstpH&?(~t)wNHwP&bQaeUrA zLuFMEWpcA~C2X&ra1QgAB3uIN`NYvw?&i(gY^ej@Lei{w^`3UJ2#In8X?O z9G>mZ;$$MNrqo%SuIH44bB6-Tv-s!mJ*V*#IN3OWQ--5B-#CdAmAX0HW7jwiu0^~< zFbCdK$WNeDg5(*Fgf1)1({7FV^WniH$KZ)|UGU(>TW z*|Vi*3kX(eg56iI={c8J)BR9#P0u5VoGIEu=jco^h!GacMmW znf9b1$I)_HQpv;(>zh*wFqP=J@Q&^a?`j`RBsM7In>!LcyQ?iYEWoJ3Y2VS2US8- zb-O9k1-C)n)p(xIR?c68BNXxeIY)>m3! zunWIWZLX}w1G+7ESj|%Kb3F^wQ+h5t(LZVzS6TrQ+VaoV7{JpJP0V-nyiv` z5t@Mxb4aW7%xdEr-4}kisiUVK)ID1?%=I9zHjR7(jojRZ&RwUq(Y{b25gzTU*9{91 zxB>m?BsaMB^JJ}nspv7Qlc)&?wY6a9u2$MtIecInCOCI@GdH?P`wx8ghyV1qf8qR3 zwC{QL4SW9WU7!1VIQ2NL30(bcsKtKjMp`)}RsvEU5j}3n7Eh3`ElsW6gY^7y?RVqM zPU!3ev;8{TuU&>RT{mT}hf_eM_|@8nD`BfhR@Uh%O;Rp*5be$j7%M$PJzF|xiwwG> zCrt=C=Ngx$(#5VObp=Sl=iGYYd!*T7)2u0T@_e9YOSiD{U>G>U%Y%_hGxH#;P19@x zUnA|aftt`~c9+lxT!YbN`?}i@Z8K|@L9;5!n)=i#yqklG6VU{t{`NlDRd*9JzAhoi z>H-$sF1W_c+9pGr%RsN`7*2*sMLP-eHAyQ%A8${XAJcB&o02D!Yq_jGoX<_XY08=9 zt_;gq?EVsUT>Au`}Fo+oXcf1r!&qp z_u?dCTAWQ!kdiD*>7xsm#+K#nFisYFpMLsL=;SI9OaP4wXYjlrS7Kf6 zu7)fo3Kt8YVWZ48bfTaM`@m}TxKdC z$l<)W;7q5|bEP~toUl^%eCpKsROzgfnleWq0~fzl^Z9{(YD1T`-3Tsc#;xZj5g?wZ z#rLM(Bd1T}WLkTvJ7@+y?;eB~;;4p$3M2d}PBl3U;4+Brzb~6F`hXa%+k3Gk=S)=4 zHOHs0UDr9&`u)!7^jx-N;7>!4dn9!)&bKf#-DaMZOzt{0HR6m7@8};J8`;@EIyjo{ zPY>=M>`#yEm>L}1v154GZfD?J5hgwgH8^crEg7z8$%*qbr}9~E_V7mjK|DI_y?uyH z&CboB{?HKAF$4Um-YWFS4yr4&jqYV@lpZU(5Nl?1XN(h>Gr4qWt^ir?bc$mrOwO2S zU>6$F<4BhQjj%`1#>HG=w zJDX}ooUihM;t3~v+MEJ-6W4*F_h3k-Dw<<|eo9Zi`hbY-c^YrUej%Zr`CQcv>sXPG zxG0znkyhKz;m&kgv5U|exKf&jAhec!ON)Q|d~_MS`+gjGIfcdY?x5~`_Sdlf_-Ivk zE_nSBdcfFNhGZJckc+i)l1Z_#48g`h|E{n1>Bcf7)-q&hr?;HoifXaeA)~{Mb%=gJ zW!`njSFjHGuR z9tRo=4}DaH8y2_10S8guY9Qnsta1La2ET_&qq|S_j}51%`$u=~80sIJK0Vrh z+Hul5r<~oxqa&lC=O4S4WZf~eyWVw&ca~ueN9a)Yq1aQsuSyp(JRg-~YjgI2W7~{- zlx-cS^y=3LdLM;n`c6XhYXll*k(Y(@r41}%>Cs^)9x;w-?Qg6>--K_=91sMI_ZT6PnS?5b&^(GhJTJsZV6W1DBHit1P8 zUNWvmUt7F0JG_vDxAb{v7v$d7?<3}M@`WDjy@ciTpH;29mS8!(+zpO=@)x>Ld^GH& zZxQG5#adar^LWt8`psJt>diL?^spQT!>t$X?6%R#?qiqAn|0()-Z@fpcHFu1Y2f{x z+*|okTM701D^NukpHbE?80(YzOsN_n0_kV*n(vm zXTOatSYr!@*{l4#`Jz06UeK+3XvACIFXq|rke=4%*=dw#(B-x1qU<29q&?VB?G45- z&e>n_d$7@(tBldX#vY8Xtt{Uj>>JpFeXVNM^-9`<1uqjHU6Ku$Zx)ZdIG^WDB6k+| zFV4BDe)DGRz-|iY-&fQQ>~iShowX0}usvJ!{g-PNy2+3IQ9}LL=d0Xg0h_Pz-xxM_ zWQ`qJRUR zR6H}F0qoyLEad|bV{C5&T7IEfKi3LaN=68*|OKln)IXBQNsr2jFtv>=5x;tM0ig@6js0O!&k zE>*rI;T~V-PlbKos%o4DG)@B=rvZ)A0B)f#=jXG-JC@`$V7TtnfCX(u%3JEieBW?c zek1%@tax9nx>GH|ig!_46ZuU+|2H11?wd=rh^=(%#ahI=ZXL9U#UD6R_+th9P6@(z zLJijY6Moj?=hpF;AQ9qnVC|O?d>kU47*cXOF8sk8gbE!Za?oa25C=-8eE!A5_&O|% z10_@bbga5&|!SYsqT{8NU%zrmme^n6z8L zTuxZ$`CWBwHOkoe6(X(q^9=4^T|l{3t+=?dPV?mkK~V4PNawH}4}UI9hhCE|PC_XR z{xssyV%1Bxanz21jq^8C_KE&Yt$q=_#6?-a5 z#VQI75HgN<21)7eew-#iBn@U+98PdSsjY!HD`Cuw49auA18V^}?U^s#A{SOwSb)T1 zr#ps#xWU%BnulO-G$`JJ7-$XRxQf!>_M+1lzUMkDRB>I`&0! zme=8`zRBtj5VMKa-v^M|^=J$Z^M?AhI9W>tuB-fkBK#c|MpuispKtAQT$iZLb$%>c zYX`PmMyw5wk|!^FauD83gV$%?$EQege-s&EG>hFsVgo8Bm&lefQ-*}eNEv?!N(cO@ z%Zj?hS4@~LS-d#D!-$&v!|DvzxXF?`ef=hl-$v6UFOfFOz+U5F;>>I{=M;-`byi%( z!`O;=z<>-Jz$sm(bs=GchS)24#mCN4>0Aom;!I~##W{QpAAhPue@ZWvKb^wI z7gPFvox)!`DLF+H^oJN-Siw1iPs=%l0pU*0Tcr>&WgYusHI}VaCkKJv&=D6mgpGLV zV#=h;#dV^^n%l(|{&o^>2O33&hz*aDm$urnn7@Q(8!@LitTdk~apeVLlm>^ldfbBhy5J9R6dtVr;6?$PRy70JXD4XFj#vQ_M&_$ zgJ@pCGqm@o5opQALnj!aB8Y=j04oY%r|~rTt+*NwohqNp)bTLeHZ3O$2AR=iiAOVY zcbK8<-U3h!WI!EQ9@O-OCY!@<=eL4|iP zv0%lA*{`F~Ppu#(tSg_Kcw5~0AcW|{xP~ja+EZD6Ey&b77`TpQ)k)Xmmm{_p= z27Mb+Tk?V6YLTGAJD6CoT=g)}qio3!XlT4hcn8-Ota#E6pX3LFt3`qe?_grV?lkBz zq;{JR23Ly&72d(bf)yXW!zcMraJ5KK;T=pYSf02t+>Og_^I;8*7YXm++Je2upvRHg zl8*#eiv$(k!Nh{yYtZ|V+LDh4SBnG{-oeCzoiOP8klK<@1Xqg$72d(bf|a?7$8x6ASkB2AxJ~OD+Ugiv$(k z!Nh_+Wzh5}TXHeDS|q6O4ki|?coMB^OFkc5EfQ3C2NMhSaf9Z`Fhd6};sj4vv>-KB z81fuafic}0jg3bYw+`#cMP|&`c*l|(%YFG=sgTcRo#`VvygetiTUmV(Lp)7tz859i zV!xIYJpYXUimBM-TRzm%DVhcJ!&trCZ=SJQgw!!(W4Qh&?Yi^3;N zP8giLSXZn{I>|3&vL+wRNM`~gX~xwC%d;5~EjXsZPjo6?Q+;)yfQY~_SBcxj(iQ%; zP#r%^9&Ac`R~wz>%^|_rzyqN zXwG^9O&>JsTLAZdI#LfqKW$tCm*))rw2^_MpX!PyG3Cfy&UX`en#i!pO{#8Vzp=g4up#_&WUQ!)>=%Z?YV>%=Ns%j_z0{w4@g7V#|8T9-j{*pxP0=BLB%YrUTTawIOafH<; z>Do9VOr829$($NTV11G{#}N^$O}8wYBzbTaM__%{+Y(1aEb9#~o1~FtleBx;B+0{o zI0EbQhy!s%m^$@IdSKZkJ-BR=mhQnLn_%BH_;4m}sIQ+6#}$Km^+`IiY?9=0PaJ{u zwdq705vERklK22AZm3VvbX+m0SDz$j*(9A_Hc3nOV2@3(=ZJ-z4cFICOZVW;-=^ZS z_0!Tln3E>RxySsrmKt`-+VuoViBqTE{R!o4tw%A?vW|VRI?Fs@tp2I%zI?&q_V}Qa zJ5xG~OzdEvXxU6CTYAU8=Z&ft>1zJel>$jrJ2bY>)%LL`xq98x<~G0eZAp#ovu(R5 zzH3{rv3*{M^%~pfg;=k#eO`$58r$cESg)~tUWoM?+vkN?ud#hzi1ixV=Y?4BQr|vH z+v?iR)!H!B!nwliXRWHq!!aSXC{5ZC_)-n2J6X1G0fNh8WU^r%w{n|JWXo8oLK8X$p0D(#fOEk zmmK4ozGjN~W)b7pujhepeJb2;NS^+&Qiriu?HcfHM8CsuwG5#Y~=c>YpWR&P`!W z_M7c;9l?GpUg_->m-DxKzA{}aXvXqhPMnXyeE7Hycwk<0NSIOQ>1{NbqJae0_X6b*yOqDsHMc>r7?R+02vrd#b6^`9jLP-8~>*-IMk*Wt-b^ zrT7`~)UE-35hc~LH2esE3 zQm}HDXnZQ5yp?HuDj-Kk4)_R5%_;1aG|(60QvnNkSCpH1d!bZ0xPwa^@^X=ad2b0q zz(PXY*}Hs4;jNwF23+W;xBcDiW-GjDXu~JJgmewMB3K`t=Iyl8we1w;;8< zL{@{gv7+Y1Y{B$`l}(2Kk!iFp5xsdFa)outHe)yLuIw(6)4gD`)`p7FgQ)~NWYGSX zTcdS}=sf~1S6G+qFowAusof=#H|V+&F?w(%!QNre@|97cj@Bij_g$vi!l!Wg!VEtv zK^;X;rqpRU9xRB=J&?z6ubWhDqT;r;wr!0tFA;6z5avD)<65Ww{cO!8n8m$1TlFB+ zR;HS~3}GX9`R5q_o|QCP%he*~;?@zJm@+V}-7!JbM*dbU&uA6htJ63w^|!onI8bfZ+K@2sSPp-c*;0B@ ze!12-9B3R4_`FtJM8J*10kMQh>91i&GBZiSpw*PQIy2n>7Qc-vZ6AQL+IN-C77)CbP{=)%TQ2MGx zDhlslV!<{J2deEOw%KD)_nP$LY&S%k%l>eH&g`G|{d-n6wsAN>E7X5X(KsA1#rsU7^~#^Hc%ohbRn;XtsJ>hVT7Q^hpxT&Xn>_~AI2;fgRV@?id2@hM zzW+`v>q<`mGL6FlI^ZI&to??z4enoEi~kFaorbN@TWz8`@^aImOu3}GlxykJcymCk zHD5|A(%Q1}V!83Ng88iG$JgVpGFyuOHr^a4&CLw#OXu>9HwS!vB`zZ1#^Hci!lX-g zI3V+(Phg~?zuPJ+3AS-KP-z!^qbF#if%^{!WRmq&i&PY&2NMgnaX8?!j~FKGa6s_B zYLSYy>k77UIN&p;7$)p+z(-zJQFsSe5^UpepxQoSn>_~AI2;fg$#Pf9s-D9E9t<=N z2Rzf&$j|{BhXdYWfsDssi-jFm_>Vl|E-&LAd-%1L6%Sh@m(WPr-%@{hvELjxAPU4t z{km1M5UhN2pa*Eej^YH>oOIW zVtR@G{@<@AN9J<=cvQXwa5LmGTpV|jj*>C7*;Piz#4Ykzvba}gW!~~IwlW?tAR}H@ zYn4aO^gJ={P%X=r`wQpPvgbsb-8ULGa#B#{>JFSX0L&*Fsj>c;B5C-_{cXiuW_H#o zO^&69cMXs3KGi=qoSyC<-MM3^e{A~nX#Z))N$;F;b`Ot^j1HVD(lqvO;bq^&pHEA; zIG!ict5fRCt1{S7=4F}^N~TNH!J>#QYN4G@RT;>0tIkD_SjYd>idwbf%3wXY$e;Q8 zCj{1tHZUk7T8O7f;~i(ux-{UWHty{aP5pRDkg^REoYa$Y)ReqfSB~jfUb>wLweq)u zHMv) z$CUoMcKJ$guh_|MbCf(?i*>~g=GRmvpQ zVU5*gb$?ipdQ53mtICFTabsd~C#J@?fjyV8=V-}$$T~6{>CwadbB%p+8-;JxOoK|7 z$fiNeN)=^b_#VxYB6#l@{B?lpc41?P^YqL@TE3 z*5!B{>PoNP1jTL5{O%|c{V7}B*wh=V&=_$J4p>hvvWjO^){5Velv^F*X;SmNwy~*S z{!v=lv9gj7mt!g+2qrkGC*`Oqd9tp3t8HxR=d+$zJE%weF#qP*zgr`HSP0wk#hpqP zqIZyv)P0ffFkwyho9%KPsD3kE>FpJl^S67xGF^*x8=HF1QuZ9}e>2P@ijb)_<5X9l zf3CSgH}zufYLmr5ZX;U|W)PR(=0D}9secdaYE zy)sn%?VhhJ6H{YT?^(*8qva0^&N(h1pZlP;u`##Xv)QeTaQn7YWkN9DYO?_ii zALd7ZH#YUb#^EsHFl%h;J^R>m^g`}8G;Q=SzoaX4Q{Ol@32~CRYb2MQ?Zu6AlO;E? zm^(yJP4Hq*6cn~F=aIz~IWgbZ)L)XDdfvFbA5<-@$Jx`1`4usG&0bvTxl(>6UCKR54n`tf`wS4tIUovBPZn|Tsc`CRIBzK}AX8yoPxHAd}%f{YyN z8)Y|vPS=|}?iBNLg(+vESjtd^eD2{w8ec0bh<6A78u?_paKMaPM3;8^k#X zwlHb8g5`nSX{S(t4^;Zbsq?AQStm7>pP9{Mox(tn@F3Xy3bB^`1~R*#R;{?WAnk%- z72nR=b!uwF85`cwKQ=b9vww7OG~J&b+&$Qz9@#N9IJjfS@UGpC`F5U+P;%vXXV~H< zixkU<@~8EUFe-EDwoy#QHu~Gip)L1v8z;1fS=lBC8(XBCFNlC(I>ELZ^nB+Poo$|vZ+w&I95m(;)+sm>B(pIKh%iu^k*0C>EV%eHM*zxn;*;%hv zxLnS2#1{Ux5N-z=McmznN6C|yJ+fGbu!<2zVB8Sb>0C7^Rosv6Y@3An$}vysxIv@@ z*QYE7IY*JdQg$(hSlKe{BnJ5`x?7qj_8)dfu1y{DW59L})n;!1+RYD(j^3xhZFRDwi*%=8D+BfDHAgr!(C9q_e3rnho|> zGfuiVS8!&WT&Y;G&K7f8v-NdQ>=>nv7Yga~rm;t)tzzNERtjdKdo{LFFhV)VNGn6i zxmvg~)qJ^%ZAKlRA(uZtLH?YQ7;bixip?U&`Q^RXh(CoJb3{mF9w?K_RKk=tWbniC zvzNDJ-BvNa#boW@zxZ2wuDI}?IBet`HK|xO@`TNLOEF}~*T0auygPT{okg3}4s;Q5 zlQN|ZWnMa2CQ|;08U-993O(IrZ zNbisb1Jm`ms{hiKUfUMAemj&e>R-f=w)Wlx1a*dbE-rq&Fr7qh zJ>6b&N4+q0mdk@>tHfs4UY3i2qNh9#W6=%ySUO4gU62@)2yxfHxwQXG_Eh-k|GBYS$HPui?4L$6N3|uqg^QWy-9* zShIjNW!8SD(a4UKgbft`nmj69+~FN zUE)ccZ~o*9nKK#u62eH0m4uBj|Ev_(yi42ZWz(NAt3j<&3 zsy+-llrEjsXhb&zQj8ZerL!~mFvyh91s^LNEjY7j_lJN&$Ya84kq7f<_*E1ks`d0* zXo596k(rsx>R%oTU2mYkeP^N9RLLorPpt?w-|nbZZ+r$nFD%VXJ34b3s`6KaQfFge zoryvrU)Yz&$33QO;$TBr=WoI_*ic9Gj~l%{4kp@{&pm8@=*DAk3zU1upvig z@yQsUnS$l+&6M7lDRTXyLvSx1$L}@sGeWZ$nQD8NdvU;I^M&HTv3)1eddGt7%M_;O z@EcI!)*r}i;!XI4W`;lTOlJr7JN&3hzNmi(>QxLLQuu=qg-otk_VN&4%BG7TN@rnr zes@x|3Gs_Jl^pQQ=ZXXNKpP8G-7%RVn}1`oYPkE&v}j{eQSW--Y2?H0GFZZ+u^lMb77#H71T zD%*6~nm%CQ51RC#Ne`Lyut|@Y^tee+nDh~oPMcIZR+dh(kj)spEHA~;&l`9nxx_5+ Vy@dYi=&U%$LWCPrJ-_@4Hp0MClHm(`O3b|Nia% z_uuZl?^VT~M=U*0ns)7IaQohAC;2%^S#Ad_AzH?W6odKNCg5)1J-8Fa2plqvQ}_h$ z)X#RmS)^{=#PlOCr)$uT(2w0vrY~g^?H4VTHkRo>W7#%tiCe!!f0WJ3JIp7*XD%*< zOw?CI^wgG)54pQ!3MY!&DWlsFcvcPN!f70S2f7$S3bB$2&edDHeAqI7v~p zZcJ6u-1ZcBR6PW2mc=AKZPcm8{AtP?}zTCu&gw^}PdtlQ@KG7b$2aspp1OD(P zNZlF1+bF@DxVkeNsXdUJXif^EN#>Lwnru!DqABJH675D-?3V6az&6^v&5td8Xk1QHyO8De;SSF*+yVDG@F9uglBS*iGMk z_uZJ>==-ek{=QF)Y!oP}ClA>oLf0-gnpfwybmeL+R;?gQQMU;M3~P`f5Z>C@bIsio zF<$It-VpU)p^aa)sEuHYaQ1M_OaJXG)>_dLAWeZ)C4*iHivWf{cI`0eyI}4%rkFEZY zQJ&yQ7%39`o{`|cqanNWzi8QdhdC>n=MhnuyK#Wn3rNq1PVkq75`*2m&{F|%D5Ka< z72}wI(LzsExD1()GW2?(XKJ_%%Q{>(oy$bb3bKd!#L*zK(doxRl{x0yhMAh6fO&Ct zc(B8nGi<9BPbCnzUWZ$EFiT<$Xi5bMHQ=xdOp`~{7vZ8@J z(}I-Sj&3YsVk>RoH#8rt8{Nne{UvL*esyG){%TZK6i?vAe7YiTNB>-j_hV(sqZFrS zp{E|wQ2yK@8P3{5PeZs2!G#~eP2n;WLCTQHLeKf(vN3u0FANtVBjH9Dhs#hsDZ@5Z z=xOG%GZY0y3e|*fV$Y!_*u0&TzS@qu%*9Z1Czcy_KEFYBVtv`2nj<2SpU#a?P(1Si zE#2rZdmpwXxds%^0?xJ?j|E7AJx}p00?TLzabPQ+C0r*_ZsOJhVn^n!Y41dYIMF{a z=TSoBw<#aw>3=sl(&usYP6Wuk_VJ&$APDZ9s4z0VDuv&>yHtaWw zehN4Jv#4x83Xk*8D7-*;u~);GTrK=eyMPbnpWp#HruwZ=56Rr2gp2C02$zki;z~Gl z#%j3q{ifKeu>7~cQZWCDhf|}|-wsYF!}_PDl+HHJ2_}dWqY{Kv#hP)1@r{t-QHhYJ z#A(EzCPdCM>WrN64F>BRc`d+FHPLKnVvBTA(oQ@bq~<1wb!ERgRzDJx%;NM{Vp5QU zajF)@k1=%)X1Y2brsB*3E#UU_TIa+W55y8>Uqcj!hsL+C>arJa+~8Yxc{k>w|HvXL z!>Y+{UQB7Z{AnEcdCm3MBxn-oKK(xD(~K@oz7(oY<7AjQeWwE`|VUO$Y-LsLYGi@N8`AieGy@%B<9rcq$!3! zLma=|!iVn?qkaNtrUPQstI&y}BeqFe6zu{u)8ml`9A=8K@kuvhl#BA%X>j7fG1H@# z1CE4zYE<|D#;RfHVHh$~dgQa1_`xWS-wP!>)nFQZL2QBFMSrH#js%)12K|8!MkG+T zV-hx7bRSa2!{`6-0^^vam_yWG7^gIH3E41YQDmWPLG{~aDG5l|6hTdl;8Y|UgIlQ) zR2*F*@+zLRe@cmT1&*W`I)qchPDx{^wIP`cvQCOcLB7UyBdGN-I&6MGWn?!!1bBgo zix05^Ke9c001=UMBtw5)KDk%oaLE-U6(7$7m5gGAD(kqhU z@kY`cftWM!Yc;D=8jt z4CNS8y)HCJc}bQoJju)c}(grJOg zljvDV@pzNyB|&Yso)@KQNpwt7Yf#=KdS6oc4oyq;(?^n=@33jfbXrh6rfw~T{wArX z1Z5Ft)bk>y6q+fiVs!^J!(&RNMj_)N?bXs~ji7pI9zCRG(36sC1?47x^u&>vGATt+ zMod|hDJdRP7I_4<-P))H#C8j*uYEUBjyimNwXxR~pH}FLIT4?gfw1$3Q<@9z*UV@;+)3eUwP+AUO#TolnAlH$22qJ4teZhb^qVJf2g zCG|Vya!`jQb%(OnR7{Ua>K95ks3A!W+BI!5z2p(+%XaHWb{ohyq;M0~K?%JtsUEC@ z68czDJc(X9Eh(NvFMTPgUt2Y83Vki953M#(2pOO4R=c{zR7#PON>*q=dcV3t{j!aDzX-GnUTY4ik1}5VKpUi$`9Xo z600d)2)A2#602#Vq<9ji(qu{TBu=F&N%34vqZ&!^Tuh^SK^Y-Ur;7|q^vv{8Aq6S_ z^TcDCK~D-*Bc^lcgrIt98)7<_w&DfKSoeEPHMB!er)+JJ^Qd-|td>rM$!1a!UI>hF zhfFi6N>IkQI`A3Y?;!pD)M))^idjD=b-KLI*I!IsrXNgofxfK%E0t>op+e<2ORDk4 zS&pk3=WjW#YHaD{xT^7(QjV({CviEhYMjBbNB$K*{WwdN<{>7cB>9FCC5iB~1taIB<8wN#IMEi%qAySOQzf z`lC|VEJzCh*F;QVjWju`mMszbJ~|w=h;i7$Hv3s1s)O~iJMd(3h*~T@42X2BWjC@d z5$l03wQOSR*|eyivP)>M<36@h7+oU_r2$?;8vz5fRdBWnC$rHI2NlR4*pFUJ>FaXfh{$6v1D_}-ZuUsPW!Cax6|*HI}| zHgLGPp-u4H1iu}eCmJ~XrlALXe||%+5cdl4br77}$YF0|zu@nekVkVb_`hpBDmX(D za{lkYH#MCUoKq5V{>R{-*F=oxgGtEws=(bG`WrF@k;%BAR^YV)ZxeW%z0$s{xdB)?e@0`?1dRKSx0l0`@btP!wPz#fBR<uya@=V5@*V0`?mm2bZ1{kRpV>fHeZP3fN=0A z_ig%4z(>>~;NhAtC{^G*sLTNT#LkUw7w#IPKDKhs1ho#*GmdqO!NveXsVH(0285t) z%c{hW4-Ohh0OnFA zU>Qvns4 z1}%njfS*S*prz0p$Q68jISp_wc#P@+6+CvH3%mhPp+=mT4BzI}0-sNHz|RL%Xn}Y; zTnMO;e-Vr@Y*6QcSOO!AngJDj&(Z+69K#j56ay7%p@opP0xHCJJUpfYD%6eluA!xX>*!*@F4#~+b1G;}d~=HoMFV<(Yc$snLW9>%^zLP%gI57JQy*|M-3;79 z{|4MbPXf2maTJ2T&nKd6CjrxuhsBuuO4?4ZP!5~M=CFI%FWCSaVsEiHrCr&g+^rl@ zV$@7^p6XYRR9aC(lNt3MR!kJ5LwaELfsu3TZH<+wux&LR-yM6 z#0`9#Uv5dMXqk28+ODRy_Eo-h9T#qB>+0&*U|0^c_OX@bb{6ld$9z@`kfqGk z91(8A0t>PDX2nsW3URuU&RllYWerz?4;E7}ws_ZaX1BYVRdX!iVm9(CnE6-Eo+IXX zSI=*m-3)gp#FB_~IjmzShQP^Ka&WVD!y&WqGtC4qdmcxKuI4o4O;OFT?ZywFZWZ&` zBi!%{R$~#-b0!4Z^Eme}JP5zn)r_fm>R~1pKi7#7E^nj}1V;0sgz^{6uS`XVgxMHA zBE)Epu&5)1$RwYH=he$|?n8wZDlR`tzIHbz*%Y~lsY z6~}9=S&)DPQDPBExFa!R4LOlI&PzuxEmZvJ$gC|iwGD~mC5=_0$GC*TfKA;0Z6fWx zQPORrZ=1O{N!*)wiv?9Onpt)=I?={!!I`|6yn{u{*ZaYd%Ep8v3jvl0<3;_rN-P}a zFhVFA6L7QAu4r^G_acpZ!AbNHZ(P1&P-A|JCP_~)Xsdtgr$2r7>H9a|Y^}Neikffs zyzmuzsN4c|-uE%Mk1C84jL~%&;m9z&FtANCyLx&fjnUFm)$ALhRp`pSS zoH2$cc$-KtAl7>?-%oIhlHSW&LY*sjgW_2|a9z}jBV%h7 zH^K~##Pa6M(P`owBmVl3-Uu%gzG00A%je#PFQ#}X(wq!MIK*39|HX8#`Npdl-Pomn zzN&GcdcLk@w|h(5+uJMJi>j(SRuq-3tS%{9QCeP7RO&4&Upb|^t)rxD;7^P0GmS@4 z|I;GRz=s$8oQ+pm|L~%G{g2DuVHE?lGj7sy#^Fqv{&{WkKws;nCLEhRvkJyNM(=Bl z)|;-HJ8l=1c0vFmTc;<)UFobjsrc9&T7lA#!V@{V$5)fYauRPWzm z9n9a&)++;*Hyt#?+_4*`2Tt1A0|Q5IT@f{|F3i6-XTZ1r?s4tp1Nrx6DNg?Dw|u$8 zTQbqEpey=Q_gS5hW2C!-(!lUkW_7y8h;Ivula1acyvvR@zbB}{k^}BYmdNf1G6FZx zfJOe3Vz@hdgJPB)7*2=&T|q{&_-O;`{M-5PA$JEgSW%#-1Ve^{jAZ;liumA7AMPC=<2~YIycK+mm)j?5>|?x?K2bj(<2CY$!uS|ZzK`()`xsB6kMTtL z7*B?e@qm4d2eo{6iKZX@+N!TRRWWe#_3Z!8`T64Q-=XQ39LpbA^5N@IX%)rk$gSJs zTi12vM)yyAYu32iJJ)S&^R07N>F0hnS*c+9?!QhL*!kIdWn2l){Nf>2j=yIjD#3L& z2ZWyaMUFoFTP=|GGj^?h@`fn==&cF*@Sk7T@90a?5ATlAKRdWQP?N-B@CP_@-{Ffr z65k1p^n9T0K~{p%(TFoI@Y*3}Wzpa3qnI=I(I;vkCW1|8ra9jKt?1>((n0j z87K5VJ!u_$dIEE@K-#mgof|miWa|SDyv<_ts?&KwUkE&*@wR-P4Sb6Cc-eZ}WP_j* z-Fv!->xbmtks+m0sVXqEk@>{L%YS8MQ$u5d3e!f$%#dSd1|HjmdFmuND>NpkFk6qg zr9SXo7Tlks9~q9-Gw$rtpLy8I<_C_HvYqVw!2X5o(m?AfmL8Z9Kw!Ul*`ptQ!m7`F z`oTcsx$L4q&lF}2^lPX?>oXT~R_Bi{dEB5@gP+c1jU)8zXZMfP*cVv&AS>e447B=K z-l$ddPqjw(`c8XTUEfDJR}b!LW|t^?YS=PN5EB6Px543!tepj3*k$nan$vlK{(g3j zIPfy=Tm_SXmL6oJ=GF};iWWG$5ZOYaGH-v3d65iF&;Imwkt1$XZ+%qLyPj#_jK;tR zH?ewgIHrj%`SmUM{-RL>-NB~1p2VdLA z`XkP2+~Ch2V&6ue&5*>v-ltfbSXW`m49tCs<(`$9L74HWBWVYy!$U+t$h<=mZFjzOt9#sNgp3gD{_r1xsG1o!) zf8FpM;%V`}`0UP1P!4Yj%z2wl@$Zrw$8LGQP2Ts&`yKMWSKjZE_q*kNSl*Ax`&;t< vw!9yg_xI%eguMUWxaug;N-|iC)SLt8$t-W>UrJ?_@vYh`1(&-ta diff --git a/obj/__snippets__.dll b/obj/__snippets__.dll index 7c3a4922542742c9c15e95e4aecb906466000549..8467e1fa9cfea0b4cf5110341042da1b03c3ab34 100644 GIT binary patch delta 11189 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 R3GfF{9F4|)nt(;|{{!;NWDx)W delta 8513 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 Date: Sun, 29 Jan 2023 13:56:08 +0000 Subject: [PATCH 5/7] final submission --- ...Hack-challenge-2023-task3-checkpoint.ipynb | 741 ++++++----- obj/__entrypoint__.dll | Bin 321536 -> 346112 bytes obj/__entrypoint__snippets__.dll | Bin 121344 -> 114688 bytes obj/__snippets__.dll | Bin 120832 -> 114176 bytes .../iQuHack-challenge-2023-task1.ipynb | 0 .../iQuHack-challenge-2023-task2.ipynb | 0 .../iQuHack-challenge-2023-task3.ipynb | 741 ++++++----- .../iQuHack-challenge-2023-task4.ipynb | 0 .../iQuHack-challenge-2023-task5.ipynb | 0 .../iQuHack-challenge-2023-task6.ipynb | 0 .../iQuHack-challenge-2023-task7.ipynb | 2 +- .../iQuHack-challenge-2023-task8.ipynb | 0 .../iQuHack-challenge-2023-task9.ipynb | 1105 +++++++++-------- 13 files changed, 1306 insertions(+), 1283 deletions(-) rename iQuHack-challenge-2023-task1.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task1.ipynb (100%) rename iQuHack-challenge-2023-task2.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task2.ipynb (100%) rename iQuHack-challenge-2023-task3.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task3.ipynb (85%) rename iQuHack-challenge-2023-task4.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task4.ipynb (100%) rename iQuHack-challenge-2023-task5.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task5.ipynb (100%) rename iQuHack-challenge-2023-task6.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task6.ipynb (100%) rename iQuHack-challenge-2023-task7.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb (99%) rename iQuHack-challenge-2023-task8.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task8.ipynb (100%) rename iQuHack-challenge-2023-task9.ipynb => team_solutions/schrodingers-duck/iQuHack-challenge-2023-task9.ipynb (92%) diff --git a/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb b/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb index 4d5561f..b151510 100644 --- a/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb +++ b/.ipynb_checkpoints/iQuHack-challenge-2023-task3-checkpoint.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 38, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 39, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 40, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 41, "metadata": { "collapsed": false, "jupyter": { @@ -215,7 +215,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 42, "metadata": {}, "outputs": [], "source": [ @@ -224,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 43, "metadata": { "collapsed": false, "jupyter": { @@ -281,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 44, "metadata": { "collapsed": false, "jupyter": { @@ -326,12 +326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -351,12 +351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -376,12 +376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -401,12 +401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -426,12 +426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -451,12 +451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -476,12 +476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -501,12 +501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -526,12 +526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -551,12 +551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -576,12 +576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -601,12 +601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -626,12 +626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -651,12 +651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -676,12 +676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -701,12 +701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -726,12 +726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -751,12 +751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -776,12 +776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -801,12 +801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -826,12 +826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -851,12 +851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -876,12 +876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -901,12 +901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -926,12 +926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -951,12 +951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -976,12 +976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1001,12 +1001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1026,12 +1026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1051,12 +1051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1076,12 +1076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1101,12 +1101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1126,12 +1126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1151,12 +1151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1176,12 +1176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1201,12 +1201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1226,12 +1226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1251,12 +1251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1276,12 +1276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1301,12 +1301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1326,12 +1326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1351,12 +1351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1376,12 +1376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1401,12 +1401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1426,12 +1426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1451,12 +1451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1476,12 +1476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1501,12 +1501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1526,12 +1526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1551,12 +1551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1576,12 +1576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1601,12 +1601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1626,12 +1626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1651,12 +1651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1676,12 +1676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1701,12 +1701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1726,12 +1726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1751,12 +1751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1776,12 +1776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1801,12 +1801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1826,12 +1826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1851,12 +1851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1876,12 +1876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1901,12 +1901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1926,12 +1926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1951,12 +1951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1976,12 +1976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2001,12 +2001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2026,12 +2026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2051,12 +2051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2076,12 +2076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2101,12 +2101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2126,12 +2126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2151,12 +2151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2176,12 +2176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2201,12 +2201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2226,12 +2226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2251,12 +2251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2276,12 +2276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2301,12 +2301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2326,12 +2326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2351,12 +2351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2376,12 +2376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2401,12 +2401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2426,12 +2426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2451,12 +2451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2476,12 +2476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2501,12 +2501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2526,12 +2526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2551,12 +2551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2576,12 +2576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2601,12 +2601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2626,12 +2626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2651,12 +2651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2676,12 +2676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2701,12 +2701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2726,12 +2726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2751,12 +2751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2776,12 +2776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2801,12 +2801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2826,12 +2826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2851,12 +2851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2876,12 +2876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2901,12 +2901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2926,12 +2926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2951,12 +2951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2976,12 +2976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3001,12 +3001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3026,12 +3026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3051,12 +3051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3076,12 +3076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3101,12 +3101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3126,12 +3126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3151,12 +3151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3176,12 +3176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3201,12 +3201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3226,12 +3226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3251,12 +3251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3276,12 +3276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3301,12 +3301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3326,12 +3326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3351,12 +3351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3376,12 +3376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3401,12 +3401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3426,12 +3426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3451,12 +3451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3476,12 +3476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3501,12 +3501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3657,7 +3657,7 @@ "()" ] }, - "execution_count": 18, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -3686,7 +3686,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 45, "metadata": { "collapsed": false, "jupyter": { @@ -3720,22 +3720,22 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178144},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409698},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181814},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 109},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 109},\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", @@ -3744,7 +3744,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 19, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -3760,7 +3760,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 46, "metadata": { "collapsed": false, "jupyter": { @@ -3788,7 +3788,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 20, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -3799,7 +3799,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 47, "metadata": { "collapsed": false, "jupyter": { @@ -3820,10 +3820,9 @@ "Submitting Task3_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 3\n", - " Job ID: 97de0812-1c25-4a9d-be97-55f936dc8c93\n", + " Job ID: 42702b8d-2ed2-47f0-8238-c9d2e88628f8\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[1:13:16 PM] Current job status: Executing\n", - "[1:13:21 PM] Current job status: Succeeded\n" + "[1:35:43 PM] Current job status: Succeeded\n" ] } ], @@ -3834,7 +3833,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 48, "metadata": { "collapsed": false, "jupyter": { @@ -3850,7 +3849,7 @@ "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\":80,\"cczCount\":20,\"measurementCount\":80,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":380,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":380,\"numTfactories\":14,\"numTfactoryRuns\":29,\"numTsPerRotation\":null,\"numTstates\":400,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":135520,\"requiredLogicalQubitErrorRate\":3.987240829346092E-08,\"requiredLogicalTstateErrorRate\":1.25E-06},\"physicalQubits\":143506,\"runtime\":1672000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"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\":\"94.44 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"3.99e-8\",\"requiredLogicalTstateErrorRate\":\"1.25e-6\",\"runtime\":\"1ms 672us\",\"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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.\",\"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 400.\",\"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.00000003987240829346092)}{\\\\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.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.25e-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\":[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\"]}}", + "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\":1,\"cczCount\":17,\"measurementCount\":1,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":55,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":55,\"numTfactories\":14,\"numTfactoryRuns\":6,\"numTsPerRotation\":null,\"numTstates\":72,\"physicalQubitsForAlgorithm\":9196,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":2.3923444976076555E-07,\"requiredLogicalTstateErrorRate\":6.944444444444445E-06},\"physicalQubits\":99916,\"runtime\":242000},\"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.80 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"2.39e-7\",\"requiredLogicalTstateErrorRate\":\"6.94e-6\",\"runtime\":\"242us\",\"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 9196 physical qubits to implement the algorithm logic, and 90720 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 55 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} = 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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 55. 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 17 CCZ and 1 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 72 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\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 72 T states, the 14 copies of the T factory are repeatedly invoked 6 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 9196 are the product of the 38 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 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 55.\",\"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 72.\",\"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.00000023923444976076555)}{\\\\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 6.94e-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 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\":[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", @@ -3862,24 +3861,24 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 143506\r\n", + " 99916\r\n", " \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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Runtime\r\n", - " 1ms 672us\r\n", + " 242us\r\n", " \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 380 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", + "

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 55 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", " \n", @@ -3894,48 +3893,48 @@ "\r\n", " \r\n", " Logical algorithmic qubits\r\n", - " 33\r\n", + " 38\r\n", " \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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Algorithmic depth\r\n", - " 380\r\n", + " 55\r\n", " \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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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", + "

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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 380\r\n", + " 55\r\n", " \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 380. 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", + "

This number is usually equal to the logical depth of the algorithm, which is 55. 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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 400\r\n", + " 72\r\n", " \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 20 CCZ and 80 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 17 CCZ and 1 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", " \r\n", " \n", @@ -3944,70 +3943,70 @@ " Number of T factories\r\n", " 14\r\n", " \r\n", - "

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

\n", + "

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

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 29\r\n", + " 6\r\n", " \r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical algorithmic qubits\r\n", - " 7986\r\n", + " 9196\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical T factory qubits\r\n", - " 135520\r\n", + " 90720\r\n", " \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 14 in parallel, therefore we need $135520 = 9680 \\cdot 14$ qubits.

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 3.99e-8\r\n", + " 2.39e-7\r\n", " \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 380.

\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 55.

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 1.25e-6\r\n", + " 6.94e-6\r\n", " \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 400.

\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 72.

\n", "\r\n", " \r\n", " \n", @@ -4051,7 +4050,7 @@ "

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.00000003987240829346092)}{\\log(0.01/0.001)} - 1\\)

\n", + "

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

\n", "\r\n", " \r\n", " \n", @@ -4150,7 +4149,7 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -4162,7 +4161,7 @@ "\r\n", " \r\n", " Runtime\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -4179,7 +4178,7 @@ "

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", + "

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", " \r\n", " \n", @@ -4234,7 +4233,7 @@ "\r\n", " \r\n", " Distillation code distances\r\n", - " 11\r\n", + " 9\r\n", " \r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -4246,7 +4245,7 @@ "\r\n", " \r\n", " Number of physical qubits per round\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -4258,7 +4257,7 @@ "\r\n", " \r\n", " Runtime per round\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -4270,12 +4269,12 @@ "\r\n", " \r\n", " Logical T state error rate\r\n", - " 2.48e-7\r\n", + " 2.17e-6\r\n", " \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-6.

\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.94e-6.

\n", "\r\n", " \r\n", " \n", @@ -4290,12 +4289,12 @@ "\r\n", " \r\n", " Logical qubits (pre-layout)\r\n", - " 11\r\n", + " 13\r\n", " \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", + "

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", " \r\n", " \n", @@ -4338,7 +4337,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 20\r\n", + " 17\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -4350,7 +4349,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 80\r\n", + " 1\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -4362,7 +4361,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 80\r\n", + " 1\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -4593,10 +4592,10 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 80,\n", - " 'cczCount': 20,\n", - " 'measurementCount': 80,\n", - " 'numQubits': 11,\n", + " 'logicalCounts': {'ccixCount': 1,\n", + " 'cczCount': 17,\n", + " 'measurementCount': 1,\n", + " 'numQubits': 13,\n", " 'rotationCount': 0,\n", " 'rotationDepth': 0,\n", " 'tCount': 0},\n", @@ -4604,21 +4603,21 @@ " 'logicalCycleTime': 4400.0,\n", " 'logicalErrorRate': 3.000000000000002e-08,\n", " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 380,\n", - " 'algorithmicLogicalQubits': 33,\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 55,\n", + " 'algorithmicLogicalQubits': 38,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 380,\n", + " 'logicalDepth': 55,\n", " 'numTfactories': 14,\n", - " 'numTfactoryRuns': 29,\n", + " 'numTfactoryRuns': 6,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 400,\n", - " 'physicalQubitsForAlgorithm': 7986,\n", - " 'physicalQubitsForTfactories': 135520,\n", - " 'requiredLogicalQubitErrorRate': 3.987240829346092e-08,\n", - " 'requiredLogicalTstateErrorRate': 1.25e-06},\n", - " 'physicalQubits': 143506,\n", - " 'runtime': 1672000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n", + " 'numTstates': 72,\n", + " 'physicalQubitsForAlgorithm': 9196,\n", + " 'physicalQubitsForTfactories': 90720,\n", + " 'requiredLogicalQubitErrorRate': 2.3923444976076555e-07,\n", + " 'requiredLogicalTstateErrorRate': 6.944444444444445e-06},\n", + " 'physicalQubits': 99916,\n", + " 'runtime': 242000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", " 'errorBudget': '1.00e-3',\n", " 'errorBudgetLogical': '5.00e-4',\n", " 'errorBudgetRotations': '0.00e0',\n", @@ -4627,14 +4626,14 @@ " 'logicalErrorRate': '3.00e-8',\n", " 'numTsPerRotation': 'No rotations in algorithm',\n", " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '94.44 %',\n", - " 'physicalQubitsPerRound': '9680',\n", - " 'requiredLogicalQubitErrorRate': '3.99e-8',\n", - " 'requiredLogicalTstateErrorRate': '1.25e-6',\n", - " 'runtime': '1ms 672us',\n", - " 'tfactoryRuntime': '57us 200ns',\n", - " 'tfactoryRuntimePerRound': '57us 200ns',\n", - " 'tstateLogicalErrorRate': '2.48e-7',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.80 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '2.39e-7',\n", + " 'requiredLogicalTstateErrorRate': '6.94e-6',\n", + " 'runtime': '242us',\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", @@ -4645,53 +4644,53 @@ " '**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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 9196 physical qubits to implement the algorithm logic, and 90720 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 380 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", + " '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 55 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", + " '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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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", + " '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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 380. 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", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 55. 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 20 CCZ and 80 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 17 CCZ and 1 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 400 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " {'description': \"Number of T factories capable of producing the demanded 72 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 times.',\n", + " 'explanation': 'In order to prepare the 72 T states, the 14 copies of the T factory are repeatedly invoked 6 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", + " 'explanation': 'The 9196 are the product of the 38 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ qubits.',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 380.',\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 55.',\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 400.',\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 72.',\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", @@ -4705,7 +4704,7 @@ " '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.00000003987240829346092)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000023923444976076555)}{\\\\log(0.01/0.001)} - 1$',\n", " 'label': 'Code distance',\n", " 'path': 'logicalQubit/codeDistance'},\n", " {'description': 'Number of physical qubits per logical qubit',\n", @@ -4747,7 +4746,7 @@ " '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", + " '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", @@ -4779,13 +4778,13 @@ " '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-6.',\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.94e-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", + " '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", @@ -4874,20 +4873,20 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [11],\n", - " 'logicalErrorRate': 2.480000000000001e-07,\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\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", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 22, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -4900,7 +4899,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 49, "metadata": { "collapsed": false, "jupyter": { @@ -4927,7 +4926,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 50, "metadata": { "collapsed": false, "jupyter": { @@ -4945,18 +4944,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "Logical algorithmic qubits = 33\n", - "Algorithmic depth = 380\n", - "Score = 12540\n" + "Logical algorithmic qubits = 38\n", + "Algorithmic depth = 55\n", + "Score = 2090\n" ] }, { "data": { "text/plain": [ - "12540" + "2090" ] }, - "execution_count": 24, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } diff --git a/obj/__entrypoint__.dll b/obj/__entrypoint__.dll index d3b32702b1890d29d6cc018d6c45a0a04a5d29c6..316f645bb539f89ee1731e33a4d1fe42c56ad176 100644 GIT binary patch delta 47043 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 diff --git a/obj/__entrypoint__snippets__.dll b/obj/__entrypoint__snippets__.dll index 3c175aadfff93d99d5b9c51d98de29e37169e8aa..7a0662c4b8c8cdb69109445913da2bd00555480c 100644 GIT binary patch delta 13402 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 diff --git a/obj/__snippets__.dll b/obj/__snippets__.dll index 8467e1fa9cfea0b4cf5110341042da1b03c3ab34..0913fa31f3185b2ec9a40133412ee204887e225d 100644 GIT binary patch literal 114176 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 \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -351,12 +351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -376,12 +376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -401,12 +401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -426,12 +426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -451,12 +451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -476,12 +476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -501,12 +501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -526,12 +526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -551,12 +551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -576,12 +576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -601,12 +601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -626,12 +626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -651,12 +651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -676,12 +676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -701,12 +701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -726,12 +726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -751,12 +751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -776,12 +776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -801,12 +801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -826,12 +826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -851,12 +851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -876,12 +876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -901,12 +901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -926,12 +926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -951,12 +951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -976,12 +976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1001,12 +1001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1026,12 +1026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1051,12 +1051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1076,12 +1076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1101,12 +1101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1126,12 +1126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1151,12 +1151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1176,12 +1176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1201,12 +1201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1226,12 +1226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1251,12 +1251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1276,12 +1276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1301,12 +1301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1326,12 +1326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1351,12 +1351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1376,12 +1376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1401,12 +1401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1426,12 +1426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1451,12 +1451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1476,12 +1476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1501,12 +1501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1526,12 +1526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1551,12 +1551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1576,12 +1576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1601,12 +1601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1626,12 +1626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1651,12 +1651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1676,12 +1676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1701,12 +1701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1726,12 +1726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1751,12 +1751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1776,12 +1776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1801,12 +1801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1826,12 +1826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1851,12 +1851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1876,12 +1876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1901,12 +1901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1926,12 +1926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1951,12 +1951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1976,12 +1976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2001,12 +2001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2026,12 +2026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2051,12 +2051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2076,12 +2076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2101,12 +2101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2126,12 +2126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2151,12 +2151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2176,12 +2176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2201,12 +2201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2226,12 +2226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2251,12 +2251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2276,12 +2276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2301,12 +2301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2326,12 +2326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2351,12 +2351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2376,12 +2376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2401,12 +2401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2426,12 +2426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2451,12 +2451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2476,12 +2476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2501,12 +2501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2526,12 +2526,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2551,12 +2551,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2576,12 +2576,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2601,12 +2601,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2626,12 +2626,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2651,12 +2651,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2676,12 +2676,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2701,12 +2701,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2726,12 +2726,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2751,12 +2751,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2776,12 +2776,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2801,12 +2801,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2826,12 +2826,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2851,12 +2851,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2876,12 +2876,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2901,12 +2901,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2926,12 +2926,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2951,12 +2951,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2976,12 +2976,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3001,12 +3001,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3026,12 +3026,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3051,12 +3051,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3076,12 +3076,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3101,12 +3101,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3126,12 +3126,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3151,12 +3151,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3176,12 +3176,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3201,12 +3201,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3226,12 +3226,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3251,12 +3251,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3276,12 +3276,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3301,12 +3301,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3326,12 +3326,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3351,12 +3351,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3376,12 +3376,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3401,12 +3401,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3426,12 +3426,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3451,12 +3451,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3476,12 +3476,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3501,12 +3501,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3657,7 +3657,7 @@ "()" ] }, - "execution_count": 18, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -3686,7 +3686,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 45, "metadata": { "collapsed": false, "jupyter": { @@ -3720,22 +3720,22 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178144},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409698},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181814},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 109},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 109},\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", @@ -3744,7 +3744,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 19, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -3760,7 +3760,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 46, "metadata": { "collapsed": false, "jupyter": { @@ -3788,7 +3788,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 20, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -3799,7 +3799,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 47, "metadata": { "collapsed": false, "jupyter": { @@ -3820,10 +3820,9 @@ "Submitting Task3_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 3\n", - " Job ID: 97de0812-1c25-4a9d-be97-55f936dc8c93\n", + " Job ID: 42702b8d-2ed2-47f0-8238-c9d2e88628f8\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[1:13:16 PM] Current job status: Executing\n", - "[1:13:21 PM] Current job status: Succeeded\n" + "[1:35:43 PM] Current job status: Succeeded\n" ] } ], @@ -3834,7 +3833,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 48, "metadata": { "collapsed": false, "jupyter": { @@ -3850,7 +3849,7 @@ "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\":80,\"cczCount\":20,\"measurementCount\":80,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":380,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":380,\"numTfactories\":14,\"numTfactoryRuns\":29,\"numTsPerRotation\":null,\"numTstates\":400,\"physicalQubitsForAlgorithm\":7986,\"physicalQubitsForTfactories\":135520,\"requiredLogicalQubitErrorRate\":3.987240829346092E-08,\"requiredLogicalTstateErrorRate\":1.25E-06},\"physicalQubits\":143506,\"runtime\":1672000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"11\",\"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\":\"94.44 %\",\"physicalQubitsPerRound\":\"9680\",\"requiredLogicalQubitErrorRate\":\"3.99e-8\",\"requiredLogicalTstateErrorRate\":\"1.25e-6\",\"runtime\":\"1ms 672us\",\"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 7986 physical qubits to implement the algorithm logic, and 135520 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 380 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} = 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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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 380. 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 20 CCZ and 80 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 400 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ 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 380.\",\"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 400.\",\"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.00000003987240829346092)}{\\\\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.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.25e-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\":[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\"]}}", + "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\":1,\"cczCount\":17,\"measurementCount\":1,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":55,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":55,\"numTfactories\":14,\"numTfactoryRuns\":6,\"numTsPerRotation\":null,\"numTstates\":72,\"physicalQubitsForAlgorithm\":9196,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":2.3923444976076555E-07,\"requiredLogicalTstateErrorRate\":6.944444444444445E-06},\"physicalQubits\":99916,\"runtime\":242000},\"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.80 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"2.39e-7\",\"requiredLogicalTstateErrorRate\":\"6.94e-6\",\"runtime\":\"242us\",\"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 9196 physical qubits to implement the algorithm logic, and 90720 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 55 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} = 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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 55. 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 17 CCZ and 1 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 72 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\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 72 T states, the 14 copies of the T factory are repeatedly invoked 6 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 9196 are the product of the 38 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 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 55.\",\"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 72.\",\"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.00000023923444976076555)}{\\\\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 6.94e-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 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\":[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", @@ -3862,24 +3861,24 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 143506\r\n", + " 99916\r\n", " \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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Runtime\r\n", - " 1ms 672us\r\n", + " 242us\r\n", " \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 380 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", + "

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 55 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", " \n", @@ -3894,48 +3893,48 @@ "\r\n", " \r\n", " Logical algorithmic qubits\r\n", - " 33\r\n", + " 38\r\n", " \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", + "

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", " \r\n", " \n", "\r\n", " \r\n", " Algorithmic depth\r\n", - " 380\r\n", + " 55\r\n", " \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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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", + "

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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 380\r\n", + " 55\r\n", " \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 380. 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", + "

This number is usually equal to the logical depth of the algorithm, which is 55. 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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 400\r\n", + " 72\r\n", " \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 20 CCZ and 80 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.

\n", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 17 CCZ and 1 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", " \r\n", " \n", @@ -3944,70 +3943,70 @@ " Number of T factories\r\n", " 14\r\n", " \r\n", - "

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

\n", + "

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

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 29\r\n", + " 6\r\n", " \r\n", "

Number of times all T factories are invoked

\n", "
\r\n", "
\r\n", - "

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

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical algorithmic qubits\r\n", - " 7986\r\n", + " 9196\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical T factory qubits\r\n", - " 135520\r\n", + " 90720\r\n", " \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 14 in parallel, therefore we need $135520 = 9680 \\cdot 14$ qubits.

\n", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 3.99e-8\r\n", + " 2.39e-7\r\n", " \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 380.

\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 55.

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 1.25e-6\r\n", + " 6.94e-6\r\n", " \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 400.

\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 72.

\n", "\r\n", " \r\n", " \n", @@ -4051,7 +4050,7 @@ "

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.00000003987240829346092)}{\\log(0.01/0.001)} - 1\\)

\n", + "

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

\n", "\r\n", " \r\n", " \n", @@ -4150,7 +4149,7 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -4162,7 +4161,7 @@ "\r\n", " \r\n", " Runtime\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -4179,7 +4178,7 @@ "

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", + "

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", " \r\n", " \n", @@ -4234,7 +4233,7 @@ "\r\n", " \r\n", " Distillation code distances\r\n", - " 11\r\n", + " 9\r\n", " \r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -4246,7 +4245,7 @@ "\r\n", " \r\n", " Number of physical qubits per round\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -4258,7 +4257,7 @@ "\r\n", " \r\n", " Runtime per round\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -4270,12 +4269,12 @@ "\r\n", " \r\n", " Logical T state error rate\r\n", - " 2.48e-7\r\n", + " 2.17e-6\r\n", " \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-6.

\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.94e-6.

\n", "\r\n", " \r\n", " \n", @@ -4290,12 +4289,12 @@ "\r\n", " \r\n", " Logical qubits (pre-layout)\r\n", - " 11\r\n", + " 13\r\n", " \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", + "

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", " \r\n", " \n", @@ -4338,7 +4337,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 20\r\n", + " 17\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -4350,7 +4349,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 80\r\n", + " 1\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -4362,7 +4361,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 80\r\n", + " 1\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -4593,10 +4592,10 @@ " 'tGateTime': '50 ns',\n", " 'twoQubitGateErrorRate': 0.001,\n", " 'twoQubitGateTime': '50 ns'}},\n", - " 'logicalCounts': {'ccixCount': 80,\n", - " 'cczCount': 20,\n", - " 'measurementCount': 80,\n", - " 'numQubits': 11,\n", + " 'logicalCounts': {'ccixCount': 1,\n", + " 'cczCount': 17,\n", + " 'measurementCount': 1,\n", + " 'numQubits': 13,\n", " 'rotationCount': 0,\n", " 'rotationDepth': 0,\n", " 'tCount': 0},\n", @@ -4604,21 +4603,21 @@ " 'logicalCycleTime': 4400.0,\n", " 'logicalErrorRate': 3.000000000000002e-08,\n", " 'physicalQubits': 242},\n", - " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 380,\n", - " 'algorithmicLogicalQubits': 33,\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 55,\n", + " 'algorithmicLogicalQubits': 38,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 380,\n", + " 'logicalDepth': 55,\n", " 'numTfactories': 14,\n", - " 'numTfactoryRuns': 29,\n", + " 'numTfactoryRuns': 6,\n", " 'numTsPerRotation': None,\n", - " 'numTstates': 400,\n", - " 'physicalQubitsForAlgorithm': 7986,\n", - " 'physicalQubitsForTfactories': 135520,\n", - " 'requiredLogicalQubitErrorRate': 3.987240829346092e-08,\n", - " 'requiredLogicalTstateErrorRate': 1.25e-06},\n", - " 'physicalQubits': 143506,\n", - " 'runtime': 1672000},\n", - " 'physicalCountsFormatted': {'codeDistancePerRound': '11',\n", + " 'numTstates': 72,\n", + " 'physicalQubitsForAlgorithm': 9196,\n", + " 'physicalQubitsForTfactories': 90720,\n", + " 'requiredLogicalQubitErrorRate': 2.3923444976076555e-07,\n", + " 'requiredLogicalTstateErrorRate': 6.944444444444445e-06},\n", + " 'physicalQubits': 99916,\n", + " 'runtime': 242000},\n", + " 'physicalCountsFormatted': {'codeDistancePerRound': '9',\n", " 'errorBudget': '1.00e-3',\n", " 'errorBudgetLogical': '5.00e-4',\n", " 'errorBudgetRotations': '0.00e0',\n", @@ -4627,14 +4626,14 @@ " 'logicalErrorRate': '3.00e-8',\n", " 'numTsPerRotation': 'No rotations in algorithm',\n", " 'numUnitsPerRound': '2',\n", - " 'physicalQubitsForTfactoriesPercentage': '94.44 %',\n", - " 'physicalQubitsPerRound': '9680',\n", - " 'requiredLogicalQubitErrorRate': '3.99e-8',\n", - " 'requiredLogicalTstateErrorRate': '1.25e-6',\n", - " 'runtime': '1ms 672us',\n", - " 'tfactoryRuntime': '57us 200ns',\n", - " 'tfactoryRuntimePerRound': '57us 200ns',\n", - " 'tstateLogicalErrorRate': '2.48e-7',\n", + " 'physicalQubitsForTfactoriesPercentage': '90.80 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '2.39e-7',\n", + " 'requiredLogicalTstateErrorRate': '6.94e-6',\n", + " 'runtime': '242us',\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", @@ -4645,53 +4644,53 @@ " '**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 135520 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.',\n", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 9196 physical qubits to implement the algorithm logic, and 90720 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 380 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", + " '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 55 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", + " '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 80 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 20 CCZ and 80 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", + " '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 1 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 17 CCZ and 1 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 380. 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", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 55. 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 20 CCZ and 80 CCiX gates, as well as No rotations in algorithm for each of the 0 single-qubit rotation gates with arbitrary angle rotation.',\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 17 CCZ and 1 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 400 T states during the algorithm's runtime\",\n", - " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{400\\\\;\\\\text{T states} \\\\cdot 57us 200ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 1ms 672us\\\\;\\\\text{algorithm runtime}}\\\\right\\\\rceil$',\n", + " {'description': \"Number of T factories capable of producing the demanded 72 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 242us\\\\;\\\\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 400 T states, the 14 copies of the T factory are repeatedly invoked 29 times.',\n", + " 'explanation': 'In order to prepare the 72 T states, the 14 copies of the T factory are repeatedly invoked 6 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", + " 'explanation': 'The 9196 are the product of the 38 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 9680 physical qubits and we run 14 in parallel, therefore we need $135520 = 9680 \\\\cdot 14$ qubits.',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 380.',\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 55.',\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 400.',\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 72.',\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", @@ -4705,7 +4704,7 @@ " '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.00000003987240829346092)}{\\\\log(0.01/0.001)} - 1$',\n", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.00000023923444976076555)}{\\\\log(0.01/0.001)} - 1$',\n", " 'label': 'Code distance',\n", " 'path': 'logicalQubit/codeDistance'},\n", " {'description': 'Number of physical qubits per logical qubit',\n", @@ -4747,7 +4746,7 @@ " '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", + " '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", @@ -4779,13 +4778,13 @@ " '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-6.',\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.94e-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", + " '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", @@ -4874,20 +4873,20 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [11],\n", - " 'logicalErrorRate': 2.480000000000001e-07,\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\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", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 22, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -4900,7 +4899,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 49, "metadata": { "collapsed": false, "jupyter": { @@ -4927,7 +4926,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 50, "metadata": { "collapsed": false, "jupyter": { @@ -4945,18 +4944,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "Logical algorithmic qubits = 33\n", - "Algorithmic depth = 380\n", - "Score = 12540\n" + "Logical algorithmic qubits = 38\n", + "Algorithmic depth = 55\n", + "Score = 2090\n" ] }, { "data": { "text/plain": [ - "12540" + "2090" ] }, - "execution_count": 24, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } diff --git a/iQuHack-challenge-2023-task4.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task4.ipynb similarity index 100% rename from iQuHack-challenge-2023-task4.ipynb rename to team_solutions/schrodingers-duck/iQuHack-challenge-2023-task4.ipynb diff --git a/iQuHack-challenge-2023-task5.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task5.ipynb similarity index 100% rename from iQuHack-challenge-2023-task5.ipynb rename to team_solutions/schrodingers-duck/iQuHack-challenge-2023-task5.ipynb diff --git a/iQuHack-challenge-2023-task6.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task6.ipynb similarity index 100% rename from iQuHack-challenge-2023-task6.ipynb rename to team_solutions/schrodingers-duck/iQuHack-challenge-2023-task6.ipynb diff --git a/iQuHack-challenge-2023-task7.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb similarity index 99% rename from iQuHack-challenge-2023-task7.ipynb rename to team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb index 89a785e..029dfd4 100644 --- a/iQuHack-challenge-2023-task7.ipynb +++ b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb @@ -104,7 +104,7 @@ }, "outputs": [], "source": [ - "teamname=\"schrodingers-cat\" # Update this field with your team name\n", + "teamname=\"schrodingers-duck\" # Update this field with your team name\n", "task=[\"task7\"]\n", "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] diff --git a/iQuHack-challenge-2023-task8.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task8.ipynb similarity index 100% rename from iQuHack-challenge-2023-task8.ipynb rename to team_solutions/schrodingers-duck/iQuHack-challenge-2023-task8.ipynb diff --git a/iQuHack-challenge-2023-task9.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task9.ipynb similarity index 92% rename from iQuHack-challenge-2023-task9.ipynb rename to team_solutions/schrodingers-duck/iQuHack-challenge-2023-task9.ipynb index 2f3bf93..a21494d 100644 --- a/iQuHack-challenge-2023-task9.ipynb +++ b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task9.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { @@ -105,13 +105,13 @@ "outputs": [], "source": [ "teamname=\"schrodingers-duck\" # Update this field with your team name\n", - "task=[\"task8\"]\n", + "task=[\"task9\"]\n", "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { @@ -169,9 +169,11 @@ "%%qsharp\n", "open Microsoft.Quantum.Canon;\n", "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", "\n", "// Task 9. \n", "// (input will contain 8 qubits)\n", + "\n", "operation original(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", @@ -179,15 +181,37 @@ "}\n", "\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", + " for i in [31, 136, 241]{\n", " ControlledOnInt(i, X)(input, target);\n", " }\n", - "}" + " for i in [46,61,76,91,106,121] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " SWAP(input[0], input[4]); SWAP(input[1], input[5]); SWAP(input[2], input[6]); SWAP(input[3],input[7]);\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(8+1, QubitArrayWrapperOperation(Task9, _), QubitArrayWrapperOperation (original, _));\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { @@ -244,7 +268,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { @@ -289,12 +313,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -314,12 +338,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -339,12 +363,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -364,12 +388,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -389,12 +413,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -414,12 +438,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -439,12 +463,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -464,12 +488,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -489,12 +513,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -514,12 +538,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -539,12 +563,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -564,12 +588,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -589,12 +613,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -614,12 +638,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -639,12 +663,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -664,12 +688,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -689,12 +713,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -714,12 +738,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -739,12 +763,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -764,12 +788,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -789,12 +813,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -814,12 +838,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -839,12 +863,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -864,12 +888,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -889,12 +913,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -914,12 +938,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -939,12 +963,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -964,12 +988,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -989,12 +1013,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1014,12 +1038,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1039,12 +1063,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1064,12 +1088,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1089,12 +1113,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1114,12 +1138,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1139,12 +1163,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1164,12 +1188,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1189,12 +1213,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1214,12 +1238,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1239,12 +1263,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1264,12 +1288,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1289,12 +1313,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1314,12 +1338,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1339,12 +1363,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1364,12 +1388,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1389,12 +1413,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1414,12 +1438,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1439,12 +1463,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1464,12 +1488,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1489,12 +1513,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1514,12 +1538,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1539,12 +1563,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1564,12 +1588,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1589,12 +1613,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1614,12 +1638,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1639,12 +1663,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1664,12 +1688,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1689,12 +1713,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1714,12 +1738,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1739,12 +1763,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1764,12 +1788,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1789,12 +1813,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1814,12 +1838,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1839,12 +1863,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1864,12 +1888,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1889,12 +1913,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1914,12 +1938,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1939,12 +1963,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1964,12 +1988,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1989,12 +2013,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2014,12 +2038,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2039,12 +2063,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2064,12 +2088,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2089,12 +2113,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2114,12 +2138,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2139,12 +2163,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2164,12 +2188,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2189,12 +2213,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2214,12 +2238,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2239,12 +2263,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2264,12 +2288,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2289,12 +2313,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2314,12 +2338,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2339,12 +2363,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2364,12 +2388,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2389,12 +2413,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2414,12 +2438,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2439,12 +2463,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2464,12 +2488,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2489,12 +2513,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2514,12 +2538,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2539,12 +2563,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2564,12 +2588,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2589,12 +2613,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2614,12 +2638,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2639,12 +2663,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2664,12 +2688,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2689,12 +2713,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2714,12 +2738,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2739,12 +2763,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2764,12 +2788,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2789,12 +2813,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2814,12 +2838,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2839,12 +2863,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2864,12 +2888,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2889,12 +2913,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2914,12 +2938,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2939,12 +2963,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2964,12 +2988,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2989,12 +3013,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3014,12 +3038,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3039,12 +3063,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3064,12 +3088,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3089,12 +3113,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3114,12 +3138,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3139,12 +3163,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3164,12 +3188,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3189,12 +3213,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3214,12 +3238,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3239,12 +3263,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3264,12 +3288,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3289,12 +3313,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3314,12 +3338,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3339,12 +3363,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3364,12 +3388,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3389,12 +3413,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3414,12 +3438,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3439,12 +3463,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3464,12 +3488,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3489,12 +3513,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3514,12 +3538,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3539,12 +3563,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3564,12 +3588,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3589,12 +3613,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3614,12 +3638,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3639,12 +3663,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3664,12 +3688,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3689,12 +3713,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3714,12 +3738,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3739,12 +3763,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3764,12 +3788,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3789,12 +3813,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3814,12 +3838,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3839,12 +3863,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3864,12 +3888,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3889,12 +3913,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3914,12 +3938,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3939,12 +3963,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3964,12 +3988,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3989,12 +4013,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4014,12 +4038,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4039,12 +4063,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4064,12 +4088,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4089,12 +4113,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4114,12 +4138,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4139,12 +4163,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4164,12 +4188,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4189,12 +4213,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4214,12 +4238,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4239,12 +4263,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4264,12 +4288,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4289,12 +4313,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4314,12 +4338,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4339,12 +4363,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4364,12 +4388,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4389,12 +4413,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4414,12 +4438,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4439,12 +4463,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4464,12 +4488,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4489,12 +4513,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4514,12 +4538,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4539,12 +4563,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4564,12 +4588,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4589,12 +4613,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4614,12 +4638,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4639,12 +4663,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4664,12 +4688,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4689,12 +4713,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4714,12 +4738,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4739,12 +4763,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4764,12 +4788,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4789,12 +4813,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4814,12 +4838,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4839,12 +4863,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4864,12 +4888,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4889,12 +4913,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4914,12 +4938,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4939,12 +4963,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4964,12 +4988,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4989,12 +5013,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5014,12 +5038,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5039,12 +5063,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5064,12 +5088,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5089,12 +5113,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5114,12 +5138,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5139,12 +5163,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5164,12 +5188,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5189,12 +5213,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5214,12 +5238,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5239,12 +5263,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5264,12 +5288,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5289,12 +5313,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5314,12 +5338,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5339,12 +5363,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5364,12 +5388,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5389,12 +5413,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5414,12 +5438,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5439,12 +5463,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5464,12 +5488,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5489,12 +5513,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5514,12 +5538,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5539,12 +5563,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5564,12 +5588,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5589,12 +5613,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5614,12 +5638,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5639,12 +5663,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5664,12 +5688,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5689,12 +5713,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5714,12 +5738,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5739,12 +5763,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5764,12 +5788,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5789,12 +5813,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5814,12 +5838,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5839,12 +5863,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5864,12 +5888,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5889,12 +5913,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5914,12 +5938,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5939,12 +5963,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5964,12 +5988,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5989,12 +6013,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6014,12 +6038,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6039,12 +6063,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6064,12 +6088,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6089,12 +6113,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6114,12 +6138,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6139,12 +6163,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6164,12 +6188,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6189,12 +6213,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6214,12 +6238,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6239,12 +6263,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6264,12 +6288,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6289,12 +6313,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6314,12 +6338,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6339,12 +6363,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6364,12 +6388,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6389,12 +6413,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6414,12 +6438,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6439,12 +6463,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6464,12 +6488,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6489,12 +6513,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6514,12 +6538,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6539,12 +6563,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6564,12 +6588,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6589,12 +6613,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6614,12 +6638,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6639,12 +6663,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6664,12 +6688,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6948,7 +6972,7 @@ "()" ] }, - "execution_count": 6, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -6977,7 +7001,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 28, "metadata": { "collapsed": false, "jupyter": { @@ -7011,23 +7035,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178414},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 303167},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 181200},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 356642},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 166},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 193},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 166},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 193},\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", @@ -7035,7 +7059,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 7, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -7051,7 +7075,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 29, "metadata": { "collapsed": false, "jupyter": { @@ -7079,7 +7103,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 8, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -7090,7 +7114,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 30, "metadata": { "collapsed": false, "jupyter": { @@ -7111,9 +7135,10 @@ "Submitting Task9_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 9\n", - " Job ID: ae3e32d3-3d41-40d0-8170-61957fdfc5ca\n", + " Job ID: 7ace3952-b323-4e0a-b110-cd1d4bfc1c6a\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[12:43:18 PM] Current job status: Succeeded\n" + "[1:47:12 PM] Current job status: Executing\n", + "[1:47:17 PM] Current job status: Succeeded\n" ] } ], @@ -7124,7 +7149,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 31, "metadata": { "collapsed": false, "jupyter": { @@ -8177,7 +8202,7 @@ " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 10, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -8190,7 +8215,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 32, "metadata": { "collapsed": false, "jupyter": { @@ -8217,7 +8242,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 33, "metadata": { "collapsed": false, "jupyter": { @@ -8246,7 +8271,7 @@ "17010" ] }, - "execution_count": 12, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } From 9ce72e08af69aa352c3b6671c4ebf7618e279a61 Mon Sep 17 00:00:00 2001 From: Hamish Hall Date: Sun, 29 Jan 2023 14:19:17 +0000 Subject: [PATCH 6/7] completed some outputs --- ...Hack-challenge-2023-task2-checkpoint.ipynb | 3374 +++++++ ...Hack-challenge-2023-task5-checkpoint.ipynb | 3402 +++++++ ...Hack-challenge-2023-task6-checkpoint.ipynb | 8327 +++++++++++++++++ ...Hack-challenge-2023-task7-checkpoint.ipynb | 4993 ++++++++++ ...Hack-challenge-2023-task8-checkpoint.ipynb | 5018 ++++++++++ .../iQuHack-challenge-2023-task5.ipynb | 363 +- .../iQuHack-challenge-2023-task6.ipynb | 1306 +-- .../iQuHack-challenge-2023-task7.ipynb | 568 +- .../schrodingers-duck/obj/__entrypoint__.dll | Bin 0 -> 321536 bytes .../obj/__entrypoint__snippets__.dll | Bin 0 -> 121344 bytes .../schrodingers-duck/obj/__snippets__.dll | Bin 0 -> 120832 bytes 11 files changed, 26203 insertions(+), 1148 deletions(-) create mode 100644 team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb create mode 100644 team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb create mode 100644 team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb create mode 100644 team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb create mode 100644 team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb create mode 100644 team_solutions/schrodingers-duck/obj/__entrypoint__.dll create mode 100644 team_solutions/schrodingers-duck/obj/__entrypoint__snippets__.dll create mode 100644 team_solutions/schrodingers-duck/obj/__snippets__.dll diff --git a/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb new file mode 100644 index 0000000..c41a4bc --- /dev/null +++ b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task2-checkpoint.ipynb @@ -0,0 +1,3374 @@ +{ + "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": 11, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[93mTo sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code F2JVHXWME to authenticate.\u001b[0m\n", + "[\n", + " {\n", + " \"cloudName\": \"AzureCloud\",\n", + " \"homeTenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"id\": \"7fc54e95-14cf-4a6f-b50e-d6155c241309\",\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 subscription 1\",\n", + " \"state\": \"Enabled\",\n", + " \"tenantId\": \"b4e518fe-3bdc-4371-a4be-7f3d83d7acbd\",\n", + " \"user\": {\n", + " \"name\": \"hachall@hotmail.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": 25, + "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": 26, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task2\"]\n", + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "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": 38, + "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.Bitwise;\n", + "open Microsoft.Quantum.Diagnostics;\n", + "open Microsoft.Quantum.Arrays;\n", + "\n", + "// Task 2. Celebrate MIT iQuHack!\n", + "// (input will contain 5 qubits)\n", + "\n", + "operation old(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", + "}\n", + "\n", + "operation Task2(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " ControlledOnInt(13, X)(input, target); // M\n", + " ControlledOnInt(20, X)(input, target); // T\n", + " ControlledOnInt( 8, X)(input, target); // H\n", + " ControlledOnInt( 1, X)(input, target); // A\n", + " ControlledOnInt(9, X)([input[0],input[1],input[3],input[4]], target);\n", + " ControlledOnInt(3, X)([input[0],input[1],input[2],input[4]], target);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(5+1, QubitArrayWrapperOperation(Task2, _), QubitArrayWrapperOperation (old, _));\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "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": 41, + "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],\"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}}}", + "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", + "
" + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 41, + "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", + "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": 42, + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178071},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409594},\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': 70},\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': 70},\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": 42, + "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/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", + " credential=\"CLI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "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": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task2_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 2\n", + " Job ID: 4e3f0c4e-e8f0-49d5-99bf-d4d7d51bc4f7\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[1:12:00 PM] Current job status: Executing\n", + "[1:12:06 PM] 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(Task2_ResourceEstimationWrapper, jobName=\"RE for the task 2\")" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "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\":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\"]}}", + "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" + ], + "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']}}" + ] + }, + "execution_count": 45, + "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": 46, + "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": 47, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 28\n", + "Algorithmic depth = 150\n", + "Score = 4200\n" + ] + }, + { + "data": { + "text/plain": [ + "4200" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 [Q#]", + "language": "python", + "name": "python3_qsharp_b54crn" + }, + "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 +} diff --git a/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb new file mode 100644 index 0000000..9d4c433 --- /dev/null +++ b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task5-checkpoint.ipynb @@ -0,0 +1,3402 @@ +{ + "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=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task5\"]\n", + "slack_id=\"U04L3SFUCQ2\" # 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", + "open Microsoft.Quantum.Arrays;\n", + "\n", + "\n", + "// Task 5. \n", + "// (input will contain 6 qubits)\n", + "operation Task5(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [21,42] {\n", + " ControlledOnInt(i, X)(input, target);\n", + " }\n", + " use equality = Qubit[3];\n", + " use storageWire = Qubit[1];\n", + " within {\n", + " CNOT(input[0], equality[0]);\n", + " CNOT(input[3], equality[0]);\n", + " CNOT(input[1], equality[1]);\n", + " CNOT(input[4], equality[1]);\n", + " CNOT(input[2], equality[2]);\n", + " CNOT(input[5], equality[2]);\n", + " X(equality[0]); X(equality[1]); X(equality[2]);\n", + " CCNOT(equality[0], equality[1], storageWire[0]);\n", + " } apply {\n", + " CCNOT(equality[2], storageWire[0], target);\n", + " }\n", + "}\n", + "\n", + "operation original(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", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(6+1, QubitArrayWrapperOperation(Task5, _), QubitArrayWrapperOperation (original, _));\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\r\n", + "
\r\n", + " \r\n", + " Unhandled exception of type System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \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", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "
SourceCallable
(notebook)Task5
(notebook)QubitArrayWrapperOperation
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:0Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced
(notebook)TestCompoundGate
\r\n", + "
\r\n", + " " + ], + "text/plain": [ + "Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.\n", + " ---> SNIPPET.Task5 on /snippet_.qs:line 0\n", + " at SNIPPET.QubitArrayWrapperOperation on /snippet_.qs:line 0\n", + " at Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:line 0\n", + " at SNIPPET.TestCompoundGate on /snippet_.qs:line 0\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Specified argument was out of the range of valid values.\n" + ] + } + ], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "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": 6, + "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": 6, + "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": 8, + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 284985},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 412930},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", + " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 257411},\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': 4298},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 137},\n", + " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", + " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 257411},\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': 4298},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 137},\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": 8, + "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/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", + " credential=\"CLI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "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: ce9dd9e8-528c-46ec-94d2-289b8fed02a7\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[11:30:22 PM] Current job status: Executing\n", + "[11:30:27 PM] 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": 11, + "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\":8,\"cczCount\":5,\"measurementCount\":8,\"numQubits\":11,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":47,\"algorithmicLogicalQubits\":33,\"cliffordErrorRate\":0.001,\"logicalDepth\":47,\"numTfactories\":15,\"numTfactoryRuns\":4,\"numTsPerRotation\":null,\"numTstates\":52,\"physicalQubitsForAlgorithm\":5346,\"physicalQubitsForTfactories\":97200,\"requiredLogicalQubitErrorRate\":3.2237266279819474E-07,\"requiredLogicalTstateErrorRate\":9.615384615384616E-06},\"physicalQubits\":102546,\"runtime\":169200},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.79 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"3.22e-7\",\"requiredLogicalTstateErrorRate\":\"9.62e-6\",\"runtime\":\"169us 200ns\",\"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 5346 physical qubits to implement the algorithm logic, and 97200 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 47 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 8 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 8 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 47. 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 5 CCZ and 8 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 52 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{52\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 169us 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 52 T states, the 15 copies of the T factory are repeatedly invoked 4 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5346 are the product of the 33 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 6480 physical qubits and we run 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 47.\",\"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 52.\",\"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.00000032237266279819474)}{\\\\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.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 9.62e-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 qubits102546\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 5346 physical qubits to implement the algorithm logic, and 97200 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime169us 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 (3us 600ns) multiplied by the 47 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 depth47\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 8 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 8 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 depth47\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 47. 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 states52\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 5 CCZ and 8 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 factories15\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

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

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits97200\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 15 in parallel, therefore we need $97200 = 6480 \\cdot 15$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate3.22e-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 33 logical qubits and the total cycle count 47.

\n", + "\r\n", + "
Required logical T state error rate9.62e-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 52.

\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.00000032237266279819474)}{\\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 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 9.62e-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 gates5\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 gates8\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 operations8\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': 8,\n", + " 'cczCount': 5,\n", + " 'measurementCount': 8,\n", + " 'numQubits': 11,\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': 47,\n", + " 'algorithmicLogicalQubits': 33,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 47,\n", + " 'numTfactories': 15,\n", + " 'numTfactoryRuns': 4,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 52,\n", + " 'physicalQubitsForAlgorithm': 5346,\n", + " 'physicalQubitsForTfactories': 97200,\n", + " 'requiredLogicalQubitErrorRate': 3.2237266279819474e-07,\n", + " 'requiredLogicalTstateErrorRate': 9.615384615384616e-06},\n", + " 'physicalQubits': 102546,\n", + " 'runtime': 169200},\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': '3us 600ns',\n", + " 'logicalErrorRate': '3.00e-7',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.79 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '3.22e-7',\n", + " 'requiredLogicalTstateErrorRate': '9.62e-6',\n", + " 'runtime': '169us 200ns',\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 5346 physical qubits to implement the algorithm logic, and 97200 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 47 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 8 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 8 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 47. 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 5 CCZ and 8 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 52 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{52\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 169us 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 52 T states, the 15 copies of the T factory are repeatedly invoked 4 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 5346 are the product of the 33 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 6480 physical qubits and we run 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 47.',\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 52.',\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.00000032237266279819474)}{\\\\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.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 9.62e-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": 11, + "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": 12, + "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": 13, + "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 = 47\n", + "Score = 1551\n" + ] + }, + { + "data": { + "text/plain": [ + "1551" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 [Q#]", + "language": "python", + "name": "python3_qsharp_b54crn" + }, + "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 +} diff --git a/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb new file mode 100644 index 0000000..f811e97 --- /dev/null +++ b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task6-checkpoint.ipynb @@ -0,0 +1,8327 @@ +{ + "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": 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=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task6\"]\n", + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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": 4, + "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", + "open Microsoft.Quantum.Arrays;\n", + "\n", + "// Task 6. \n", + "// (input will contain 8 qubits)\n", + "operation original(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", + "}\n", + "\n", + "operation Task6(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " for i in [20,22] {\n", + " ControlledOnInt(i, X)([input[1],input[2],input[4], input[5], input[7]], target);\n", + " }\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(8+1, QubitArrayWrapperOperation(Task6, _), QubitArrayWrapperOperation (original, _));\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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": 7, + "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.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}}}", + "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", + "
" + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 7, + "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", + "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": 8, + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 180106},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 429377},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 445},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 163},\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': 445},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 163},\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": 8, + "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/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", + " credential=\"CLI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 6\n", + " Job ID: 9acb26ad-ff11-4b7d-8502-bc6a6f2ca438\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[2:12:45 PM] Current job status: Executing\n", + "[2:12:50 PM] 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(Task6_ResourceEstimationWrapper, jobName=\"RE for the task 6\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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\":6,\"cczCount\":2,\"measurementCount\":6,\"numQubits\":12,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":30,\"algorithmicLogicalQubits\":35,\"cliffordErrorRate\":0.001,\"logicalDepth\":30,\"numTfactories\":14,\"numTfactoryRuns\":3,\"numTsPerRotation\":null,\"numTstates\":32,\"physicalQubitsForAlgorithm\":5670,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":4.761904761904762E-07,\"requiredLogicalTstateErrorRate\":1.5625E-05},\"physicalQubits\":96390,\"runtime\":108000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.12 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"4.76e-7\",\"requiredLogicalTstateErrorRate\":\"1.56e-5\",\"runtime\":\"108us\",\"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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.\",\"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 32.\",\"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.0000004761904761904762)}{\\\\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.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 1.56e-5.\",\"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 35 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 qubits96390\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 5670 physical qubits to implement the algorithm logic, and 90720 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime108us\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 30 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 qubits35\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} = 12\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 35$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth30\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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 depth30\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 30. 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 states32\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 2 CCZ and 6 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 factories14\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

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

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits90720\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 14 in parallel, therefore we need $90720 = 6480 \\cdot 14$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate4.76e-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 35 logical qubits and the total cycle count 30.

\n", + "\r\n", + "
Required logical T state error rate1.56e-5\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 32.

\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.0000004761904761904762)}{\\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 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 1.56e-5.

\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)12\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 35 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 gates2\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 gates6\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 operations6\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': 6,\n", + " 'cczCount': 2,\n", + " 'measurementCount': 6,\n", + " 'numQubits': 12,\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': 30,\n", + " 'algorithmicLogicalQubits': 35,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 30,\n", + " 'numTfactories': 14,\n", + " 'numTfactoryRuns': 3,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 32,\n", + " 'physicalQubitsForAlgorithm': 5670,\n", + " 'physicalQubitsForTfactories': 90720,\n", + " 'requiredLogicalQubitErrorRate': 4.761904761904762e-07,\n", + " 'requiredLogicalTstateErrorRate': 1.5625e-05},\n", + " 'physicalQubits': 96390,\n", + " 'runtime': 108000},\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': '3us 600ns',\n", + " 'logicalErrorRate': '3.00e-7',\n", + " 'numTsPerRotation': 'No rotations in algorithm',\n", + " 'numUnitsPerRound': '2',\n", + " 'physicalQubitsForTfactoriesPercentage': '94.12 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '4.76e-7',\n", + " 'requiredLogicalTstateErrorRate': '1.56e-5',\n", + " 'runtime': '108us',\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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 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 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.',\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 32.',\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.0000004761904761904762)}{\\\\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.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 1.56e-5.',\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 35 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": 11, + "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": 12, + "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": 13, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 35\n", + "Algorithmic depth = 30\n", + "Score = 1050\n" + ] + }, + { + "data": { + "text/plain": [ + "1050" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 [Q#]", + "language": "python", + "name": "python3_qsharp_b54crn" + }, + "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 +} diff --git a/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb new file mode 100644 index 0000000..9d38b74 --- /dev/null +++ b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task7-checkpoint.ipynb @@ -0,0 +1,4993 @@ +{ + "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": 1, + "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": 2, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [], + "source": [ + "teamname=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task7\"]\n", + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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": 4, + "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", + "open Microsoft.Quantum.Arrays;\n", + "\n", + "// Task 7. \n", + "// (input will contain 7 qubits)\n", + "operation original(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", + "}\n", + "\n", + "operation Task7(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " ControlledOnInt(9, X)([input[6], input[5], input[4], input[3]], target);\n", + " ControlledOnInt(9, X)([input[5], input[4], input[3], input[2]], target);\n", + " ControlledOnInt(9, X)([input[4], input[3], input[2], input[1]], target);\n", + " ControlledOnInt(9, X)([input[3], input[2], input[1], input[0]], target);\n", + " ControlledOnInt(73, X)(input, target);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(7+1, QubitArrayWrapperOperation(Task7, _), QubitArrayWrapperOperation (original, _));\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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": 7, + "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.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}}}", + "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", + "
" + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 7, + "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", + "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": 8, + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 179536},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 429485},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 479},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 163},\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': 479},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 163},\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": 8, + "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/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", + " credential=\"CLI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 7\n", + " Job ID: 532dd603-96a9-42a3-a29f-91825cb1e61d\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[2:14:25 PM] Current job status: Executing\n", + "[2:14:30 PM] 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(Task7_ResourceEstimationWrapper, jobName=\"RE for the task 7\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "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\":13,\"cczCount\":5,\"measurementCount\":13,\"numQubits\":13,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":67,\"algorithmicLogicalQubits\":38,\"cliffordErrorRate\":0.001,\"logicalDepth\":67,\"numTfactories\":12,\"numTfactoryRuns\":6,\"numTsPerRotation\":null,\"numTstates\":72,\"physicalQubitsForAlgorithm\":9196,\"physicalQubitsForTfactories\":77760,\"requiredLogicalQubitErrorRate\":1.9638648860958366E-07,\"requiredLogicalTstateErrorRate\":6.944444444444445E-06},\"physicalQubits\":86956,\"runtime\":294800},\"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\":\"89.42 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.96e-7\",\"requiredLogicalTstateErrorRate\":\"6.94e-6\",\"runtime\":\"294us 800ns\",\"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 9196 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 67 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} = 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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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 67. 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 5 CCZ and 13 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 72 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{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 294us 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 72 T states, the 12 copies of the T factory are repeatedly invoked 6 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 9196 are the product of the 38 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 38 logical qubits and the total cycle count 67.\",\"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 72.\",\"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.00000019638648860958366)}{\\\\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 6.94e-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 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\":[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 qubits86956\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 9196 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", + "
Runtime294us 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 (4us 400ns) multiplied by the 67 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 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 depth67\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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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 depth67\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 67. 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 states72\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 5 CCZ and 13 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 72 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{72\\;\\text{T states} \\cdot 46us 800ns\\;\\text{T factory duration}}{1\\;\\text{T states per T factory} \\cdot 294us 800ns\\;\\text{algorithm runtime}}\\right\\rceil\\)

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

Number of times all T factories are invoked

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

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

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

Number of physical qubits for the algorithm after layout

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

The 9196 are the product of the 38 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.96e-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 38 logical qubits and the total cycle count 67.

\n", + "\r\n", + "
Required logical T state error rate6.94e-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 72.

\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.00000019638648860958366)}{\\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 6.94e-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)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 gates5\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 gates13\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 operations13\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': 13,\n", + " 'cczCount': 5,\n", + " 'measurementCount': 13,\n", + " 'numQubits': 13,\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': 67,\n", + " 'algorithmicLogicalQubits': 38,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 67,\n", + " 'numTfactories': 12,\n", + " 'numTfactoryRuns': 6,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 72,\n", + " 'physicalQubitsForAlgorithm': 9196,\n", + " 'physicalQubitsForTfactories': 77760,\n", + " 'requiredLogicalQubitErrorRate': 1.9638648860958366e-07,\n", + " 'requiredLogicalTstateErrorRate': 6.944444444444445e-06},\n", + " 'physicalQubits': 86956,\n", + " 'runtime': 294800},\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': '89.42 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '1.96e-7',\n", + " 'requiredLogicalTstateErrorRate': '6.94e-6',\n", + " 'runtime': '294us 800ns',\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 9196 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 67 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} = 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 13 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 5 CCZ and 13 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 67. 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 5 CCZ and 13 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 72 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{72\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 294us 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 72 T states, the 12 copies of the T factory are repeatedly invoked 6 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 9196 are the product of the 38 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 38 logical qubits and the total cycle count 67.',\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 72.',\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.00000019638648860958366)}{\\\\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 6.94e-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 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': [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": 11, + "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": 12, + "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": 13, + "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 = 67\n", + "Score = 2546\n" + ] + }, + { + "data": { + "text/plain": [ + "2546" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 [Q#]", + "language": "python", + "name": "python3_qsharp_b54crn" + }, + "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 +} diff --git a/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb new file mode 100644 index 0000000..ecf01d4 --- /dev/null +++ b/team_solutions/schrodingers-duck/.ipynb_checkpoints/iQuHack-challenge-2023-task8-checkpoint.ipynb @@ -0,0 +1,5018 @@ +{ + "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": 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=\"schrodingers-duck\" # Update this field with your team name\n", + "task=[\"task8\"]\n", + "slack_id=\"U04L3SFUCQ2\" # Update this field with Slack ID of the person who worked on this task as the troubleshooting contact" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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": 4, + "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", + "open Microsoft.Quantum.Arithmetic;\n", + "open Microsoft.Quantum.Math;\n", + "open Microsoft.Quantum.Synthesis;\n", + "open Microsoft.Quantum.Arrays;\n", + "\n", + "// Task 8. \n", + "// (input will contain 7 qubits)\n", + "operation original(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", + "}\n", + "\n", + "operation Task8(input : Qubit[], target : Qubit) : Unit is Adj {\n", + " use sumWires = Qubit[7];\n", + " use zero = Qubit[1];\n", + " within{\n", + " //Ebene 1\n", + " CarryN(input[0], input[1], input[2], sumWires[0]);\n", + " CarryN(input[3], input[4], input[5], sumWires[1]);\n", + " //Ebene 2\n", + " CarryN(zero[0], input[2], input[5], sumWires[2]);\n", + " CarryN(sumWires[2], sumWires[0], sumWires[1], sumWires[3]);\n", + " //Ebene 3\n", + " CarryN(zero[0], input[6], input[5], sumWires[4]);\n", + " CarryN(sumWires[4], zero[0], sumWires[1], sumWires[5]);\n", + " CarryN(sumWires[5], zero[0], sumWires[3], sumWires[6]);\n", + " } apply{\n", + " //CNOT(sumWires[3], target);\n", + " CNOT(sumWires[3], target);\n", + " }\n", + "}\n", + "operation CarryN(carryIn: Qubit, summand1: Qubit, summand2: Qubit, carryOut: Qubit) : Unit is Adj + Ctl {\n", + " CCNOT (summand1, summand2, carryOut);\n", + " CNOT (summand1, summand2);\n", + " CCNOT (carryIn, summand2, carryOut);\n", + " CNOT(carryIn, summand2);\n", + "}\n", + "\n", + "operation QubitArrayWrapperOperation (op : ((Qubit[], Qubit) => Unit is Adj), qs : Qubit[]) : Unit is Adj { \n", + " op(Most(qs), Tail(qs));\n", + "}\n", + "\n", + "operation TestCompoundGate () : Unit {\n", + " AssertOperationsEqualReferenced(7+1, QubitArrayWrapperOperation(Task8, _), QubitArrayWrapperOperation (original, _));\n", + "}\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "TestCompoundGate();" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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": 7, + "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.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}}}", + "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", + "
" + ], + "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𝑖" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "()" + ] + }, + "execution_count": 7, + "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", + "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": 9, + "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": [ + "Connected to Azure Quantum workspace azure-q in location uksouth.\n" + ] + }, + { + "data": { + "text/plain": [ + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 296609},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 366858},\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': 70},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 183},\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': 70},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 183},\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": 9, + "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/7fc54e95-14cf-4a6f-b50e-d6155c241309/resourceGroups/AzureQuantum/providers/Microsoft.Quantum/Workspaces/azure-q\",\n", + " location=\"UK South\",\n", + " credential=\"CLI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "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": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "qsharp.azure.target(\"microsoft.estimator\")" + ] + }, + { + "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": [ + "Submitting Task8_ResourceEstimationWrapper to target microsoft.estimator...\n", + "Job successfully submitted.\n", + " Job name: RE for the task 8\n", + " Job ID: e310d987-293a-4420-8db8-d09b15c2f5ac\n", + "Waiting up to 30 seconds for Azure Quantum job to complete...\n", + "[8:04:56 AM] 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(Task8_ResourceEstimationWrapper, jobName=\"RE for the task 8\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "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\":0,\"cczCount\":28,\"measurementCount\":0,\"numQubits\":16,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":11,\"logicalCycleTime\":4400.0,\"logicalErrorRate\":3.000000000000002E-08,\"physicalQubits\":242},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":84,\"algorithmicLogicalQubits\":45,\"cliffordErrorRate\":0.001,\"logicalDepth\":84,\"numTfactories\":15,\"numTfactoryRuns\":8,\"numTsPerRotation\":null,\"numTstates\":112,\"physicalQubitsForAlgorithm\":10890,\"physicalQubitsForTfactories\":97200,\"requiredLogicalQubitErrorRate\":1.3227513227513228E-07,\"requiredLogicalTstateErrorRate\":4.464285714285715E-06},\"physicalQubits\":108090,\"runtime\":369600},\"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\":\"89.93 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"1.32e-7\",\"requiredLogicalTstateErrorRate\":\"4.46e-6\",\"runtime\":\"369us 600ns\",\"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 10890 physical qubits to implement the algorithm logic, and 97200 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 84 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} = 16$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 45$ 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 28 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 84. 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 28 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 112 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{112\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 369us 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 112 T states, the 15 copies of the T factory are repeatedly invoked 8 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 10890 are the product of the 45 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 45 logical qubits and the total cycle count 84.\",\"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 112.\",\"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.00000013227513227513228)}{\\\\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 4.46e-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 45 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 qubits108090\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 10890 physical qubits to implement the algorithm logic, and 97200 physical qubits to execute the T factories that are responsible to produce the T states that are consumed by the algorithm.

\n", + "\r\n", + "
Runtime369us 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 (4us 400ns) multiplied by the 84 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 qubits45\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} = 16\\) logical qubits in the input algorithm, we require in total $2 \\cdot Q_{\\rm alg} + \\lceil \\sqrt{8 \\cdot Q_{\\rm alg}}\\rceil + 1 = 45$ logical qubits.

\n", + "\r\n", + "
Algorithmic depth84\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 28 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 depth84\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 84. 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 states112\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 28 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 factories15\r\n", + "

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

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

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

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

Number of times all T factories are invoked

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

In order to prepare the 112 T states, the 15 copies of the T factory are repeatedly invoked 8 times.

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

Number of physical qubits for the algorithm after layout

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

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

\n", + "\r\n", + "
Physical T factory qubits97200\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 15 in parallel, therefore we need $97200 = 6480 \\cdot 15$ qubits.

\n", + "\r\n", + "
Required logical qubit error rate1.32e-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 45 logical qubits and the total cycle count 84.

\n", + "\r\n", + "
Required logical T state error rate4.46e-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 112.

\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.00000013227513227513228)}{\\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 4.46e-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)16\r\n", + "

Number of logical qubits in the input quantum program

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

We determine 45 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 gates28\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" + ], + "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': 28,\n", + " 'measurementCount': 0,\n", + " 'numQubits': 16,\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': 84,\n", + " 'algorithmicLogicalQubits': 45,\n", + " 'cliffordErrorRate': 0.001,\n", + " 'logicalDepth': 84,\n", + " 'numTfactories': 15,\n", + " 'numTfactoryRuns': 8,\n", + " 'numTsPerRotation': None,\n", + " 'numTstates': 112,\n", + " 'physicalQubitsForAlgorithm': 10890,\n", + " 'physicalQubitsForTfactories': 97200,\n", + " 'requiredLogicalQubitErrorRate': 1.3227513227513228e-07,\n", + " 'requiredLogicalTstateErrorRate': 4.464285714285715e-06},\n", + " 'physicalQubits': 108090,\n", + " 'runtime': 369600},\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': '89.93 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '1.32e-7',\n", + " 'requiredLogicalTstateErrorRate': '4.46e-6',\n", + " 'runtime': '369us 600ns',\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 10890 physical qubits to implement the algorithm logic, and 97200 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 84 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} = 16$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 45$ 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 28 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 84. 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 28 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 112 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 15 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{112\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 369us 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 112 T states, the 15 copies of the T factory are repeatedly invoked 8 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 10890 are the product of the 45 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 15 in parallel, therefore we need $97200 = 6480 \\\\cdot 15$ 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 45 logical qubits and the total cycle count 84.',\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 112.',\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.00000013227513227513228)}{\\\\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 4.46e-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 45 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": 12, + "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": 13, + "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": 14, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false, + "source_hidden": false + }, + "nteract": { + "transient": { + "deleting": false + } + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logical algorithmic qubits = 45\n", + "Algorithmic depth = 84\n", + "Score = 3780\n" + ] + }, + { + "data": { + "text/plain": [ + "3780" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "evaluate_results(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "display_name": "Python 3 [Q#]", + "language": "python", + "name": "python3_qsharp_b54crn" + }, + "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 +} diff --git a/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task5.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task5.ipynb index 9d4c433..ab667c9 100644 --- a/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task5.ipynb +++ b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task5.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -211,83 +211,16 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\r\n", - "
\r\n", - " \r\n", - " Unhandled exception of type System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \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", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \n", - "\r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - "
SourceCallable
(notebook)Task5
(notebook)QubitArrayWrapperOperation
/home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:0Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced
(notebook)TestCompoundGate
\r\n", - "
\r\n", - " " - ], - "text/plain": [ - "Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.\n", - " ---> SNIPPET.Task5 on /snippet_.qs:line 0\n", - " at SNIPPET.QubitArrayWrapperOperation on /snippet_.qs:line 0\n", - " at Microsoft.Quantum.Diagnostics.AssertOperationsEqualReferenced on /home/jovyan/2023_microsoft/D:\\a\\1\\s\\submodules\\qsharp-runtime\\src\\Simulation\\TargetDefinitions\\Decompositions\\AssertOperationsEqualReferenced.qs:line 0\n", - " at SNIPPET.TestCompoundGate on /snippet_.qs:line 0\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Specified argument was out of the range of valid values.\n" - ] - } - ], + "outputs": [], "source": [ "TestCompoundGate();" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -344,7 +277,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -389,12 +322,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -414,12 +347,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -439,12 +372,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -464,12 +397,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -489,12 +422,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -514,12 +447,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -539,12 +472,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -564,12 +497,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -589,12 +522,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -614,12 +547,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -639,12 +572,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -664,12 +597,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -689,12 +622,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -714,12 +647,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -739,12 +672,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -764,12 +697,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -789,12 +722,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -814,12 +747,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -839,12 +772,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -864,12 +797,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -889,12 +822,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -914,12 +847,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -939,12 +872,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -964,12 +897,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -989,12 +922,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1014,12 +947,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1039,12 +972,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1064,12 +997,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1089,12 +1022,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1114,12 +1047,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1139,12 +1072,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1164,12 +1097,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1189,12 +1122,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1214,12 +1147,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1239,12 +1172,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1264,12 +1197,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1289,12 +1222,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1314,12 +1247,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1339,12 +1272,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1364,12 +1297,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1389,12 +1322,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1414,12 +1347,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1439,12 +1372,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1464,12 +1397,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1489,12 +1422,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1514,12 +1447,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1539,12 +1472,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1564,12 +1497,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1589,12 +1522,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1614,12 +1547,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1639,12 +1572,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1664,12 +1597,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1689,12 +1622,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1714,12 +1647,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1739,12 +1672,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1764,12 +1697,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1789,12 +1722,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1814,12 +1747,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1839,12 +1772,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1864,12 +1797,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1889,12 +1822,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1914,12 +1847,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1939,12 +1872,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1964,12 +1897,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2056,7 +1989,7 @@ "()" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -2119,23 +2052,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 284985},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 412930},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 180463},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 429377},\n", " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\n", " {'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.hqs-lt-s1', 'current_availability': {}, 'average_queue_time': 257411},\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': 4298},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 137},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 412},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 164},\n", " {'id': 'quantinuum.hqs-lt', 'current_availability': {}, 'average_queue_time': 0},\n", - " {'id': 'quantinuum.qpu.h1-1', 'current_availability': {}, 'average_queue_time': 257411},\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': 4298},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 137},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 412},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 164},\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", @@ -2219,10 +2152,10 @@ "Submitting Task5_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 5\n", - " Job ID: ce9dd9e8-528c-46ec-94d2-289b8fed02a7\n", + " Job ID: ae64a7d8-db3c-4bf6-a371-91dc1499d013\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[11:30:22 PM] Current job status: Executing\n", - "[11:30:27 PM] Current job status: Succeeded\n" + "[2:09:44 PM] Current job status: Executing\n", + "[2:09:49 PM] Current job status: Succeeded\n" ] } ], diff --git a/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task6.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task6.ipynb index 330ddb9..f811e97 100644 --- a/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task6.ipynb +++ b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task6.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -80,7 +80,15 @@ } } }, - "outputs": [], + "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", @@ -89,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -196,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -205,7 +213,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -262,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -307,12 +315,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -332,12 +340,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -357,12 +365,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -382,12 +390,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -407,12 +415,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -432,12 +440,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -457,12 +465,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -482,12 +490,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -507,12 +515,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -532,12 +540,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -557,12 +565,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -582,12 +590,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -607,12 +615,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -632,12 +640,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -657,12 +665,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -682,12 +690,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -707,12 +715,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -732,12 +740,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -757,12 +765,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -782,12 +790,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -807,12 +815,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -832,12 +840,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -857,12 +865,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -882,12 +890,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -907,12 +915,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -932,12 +940,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -957,12 +965,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -982,12 +990,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1007,12 +1015,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1032,12 +1040,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1057,12 +1065,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1082,12 +1090,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1107,12 +1115,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1132,12 +1140,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1157,12 +1165,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1182,12 +1190,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1207,12 +1215,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1232,12 +1240,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1257,12 +1265,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1282,12 +1290,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1307,12 +1315,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1332,12 +1340,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1357,12 +1365,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1382,12 +1390,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1407,12 +1415,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1432,12 +1440,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1457,12 +1465,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1482,12 +1490,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1507,12 +1515,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1532,12 +1540,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1557,12 +1565,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1582,12 +1590,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1607,12 +1615,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1632,12 +1640,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1657,12 +1665,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1682,12 +1690,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1707,12 +1715,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1732,12 +1740,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1757,12 +1765,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1782,12 +1790,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1807,12 +1815,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1832,12 +1840,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1857,12 +1865,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1882,12 +1890,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1907,12 +1915,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1932,12 +1940,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1957,12 +1965,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1982,12 +1990,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2007,12 +2015,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2032,12 +2040,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2057,12 +2065,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2082,12 +2090,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2107,12 +2115,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2132,12 +2140,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2157,12 +2165,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2182,12 +2190,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2207,12 +2215,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2232,12 +2240,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2257,12 +2265,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2282,12 +2290,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2307,12 +2315,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2332,12 +2340,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2357,12 +2365,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2382,12 +2390,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2407,12 +2415,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2432,12 +2440,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2457,12 +2465,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2482,12 +2490,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2507,12 +2515,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2532,12 +2540,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2557,12 +2565,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2582,12 +2590,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2607,12 +2615,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2632,12 +2640,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2657,12 +2665,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2682,12 +2690,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2707,12 +2715,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2732,12 +2740,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2757,12 +2765,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2782,12 +2790,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2807,12 +2815,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2832,12 +2840,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2857,12 +2865,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2882,12 +2890,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2907,12 +2915,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2932,12 +2940,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2957,12 +2965,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2982,12 +2990,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3007,12 +3015,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3032,12 +3040,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3057,12 +3065,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3082,12 +3090,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3107,12 +3115,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3132,12 +3140,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3157,12 +3165,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3182,12 +3190,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3207,12 +3215,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3232,12 +3240,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3257,12 +3265,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3282,12 +3290,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3307,12 +3315,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3332,12 +3340,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3357,12 +3365,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3382,12 +3390,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3407,12 +3415,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3432,12 +3440,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3457,12 +3465,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3482,12 +3490,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3507,12 +3515,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3532,12 +3540,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3557,12 +3565,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3582,12 +3590,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3607,12 +3615,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3632,12 +3640,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3657,12 +3665,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3682,12 +3690,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3707,12 +3715,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3732,12 +3740,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3757,12 +3765,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3782,12 +3790,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3807,12 +3815,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3832,12 +3840,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3857,12 +3865,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3882,12 +3890,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3907,12 +3915,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3932,12 +3940,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3957,12 +3965,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3982,12 +3990,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4007,12 +4015,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4032,12 +4040,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4057,12 +4065,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4082,12 +4090,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4107,12 +4115,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4132,12 +4140,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4157,12 +4165,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4182,12 +4190,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4207,12 +4215,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4232,12 +4240,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4257,12 +4265,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4282,12 +4290,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4307,12 +4315,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4332,12 +4340,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4357,12 +4365,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4382,12 +4390,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4407,12 +4415,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4432,12 +4440,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4457,12 +4465,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4482,12 +4490,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4507,12 +4515,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4532,12 +4540,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4557,12 +4565,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4582,12 +4590,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4607,12 +4615,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4632,12 +4640,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4657,12 +4665,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4682,12 +4690,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4707,12 +4715,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4732,12 +4740,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4757,12 +4765,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4782,12 +4790,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4807,12 +4815,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4832,12 +4840,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4857,12 +4865,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4882,12 +4890,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4907,12 +4915,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4932,12 +4940,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4957,12 +4965,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -4982,12 +4990,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5007,12 +5015,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5032,12 +5040,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5057,12 +5065,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5082,12 +5090,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5107,12 +5115,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5132,12 +5140,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5157,12 +5165,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5182,12 +5190,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5207,12 +5215,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5232,12 +5240,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5257,12 +5265,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5282,12 +5290,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5307,12 +5315,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5332,12 +5340,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5357,12 +5365,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5382,12 +5390,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5407,12 +5415,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5432,12 +5440,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5457,12 +5465,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5482,12 +5490,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5507,12 +5515,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5532,12 +5540,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5557,12 +5565,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5582,12 +5590,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5607,12 +5615,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5632,12 +5640,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5657,12 +5665,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5682,12 +5690,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5707,12 +5715,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5732,12 +5740,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5757,12 +5765,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5782,12 +5790,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5807,12 +5815,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5832,12 +5840,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5857,12 +5865,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5882,12 +5890,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5907,12 +5915,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5932,12 +5940,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5957,12 +5965,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -5982,12 +5990,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6007,12 +6015,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6032,12 +6040,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6057,12 +6065,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6082,12 +6090,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6107,12 +6115,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6132,12 +6140,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6157,12 +6165,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6182,12 +6190,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6207,12 +6215,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6232,12 +6240,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6257,12 +6265,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6282,12 +6290,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6307,12 +6315,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6332,12 +6340,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6357,12 +6365,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6382,12 +6390,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6407,12 +6415,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6432,12 +6440,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6457,12 +6465,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6482,12 +6490,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6507,12 +6515,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6532,12 +6540,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6557,12 +6565,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6582,12 +6590,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6607,12 +6615,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6632,12 +6640,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6657,12 +6665,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6682,12 +6690,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -6966,7 +6974,7 @@ "()" ] }, - "execution_count": 30, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -6995,7 +7003,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -7029,23 +7037,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178621},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 409767},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 180106},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 429377},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 70},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 445},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 163},\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': 70},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 445},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 163},\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", @@ -7053,7 +7061,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 31, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -7069,7 +7077,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -7097,7 +7105,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 32, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -7108,7 +7116,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -7129,10 +7137,10 @@ "Submitting Task6_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 6\n", - " Job ID: 51c97eab-212e-45b6-9f03-7489fad62c36\n", + " Job ID: 9acb26ad-ff11-4b7d-8502-bc6a6f2ca438\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[1:15:38 PM] Current job status: Executing\n", - "[1:15:43 PM] Current job status: Succeeded\n" + "[2:12:45 PM] Current job status: Executing\n", + "[2:12:50 PM] Current job status: Succeeded\n" ] } ], @@ -7143,7 +7151,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -7159,7 +7167,7 @@ "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\":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\"]}}", + "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\":6,\"cczCount\":2,\"measurementCount\":6,\"numQubits\":12,\"rotationCount\":0,\"rotationDepth\":0,\"tCount\":0},\"logicalQubit\":{\"codeDistance\":9,\"logicalCycleTime\":3600.0,\"logicalErrorRate\":3.0000000000000015E-07,\"physicalQubits\":162},\"physicalCounts\":{\"breakdown\":{\"algorithmicLogicalDepth\":30,\"algorithmicLogicalQubits\":35,\"cliffordErrorRate\":0.001,\"logicalDepth\":30,\"numTfactories\":14,\"numTfactoryRuns\":3,\"numTsPerRotation\":null,\"numTstates\":32,\"physicalQubitsForAlgorithm\":5670,\"physicalQubitsForTfactories\":90720,\"requiredLogicalQubitErrorRate\":4.761904761904762E-07,\"requiredLogicalTstateErrorRate\":1.5625E-05},\"physicalQubits\":96390,\"runtime\":108000},\"physicalCountsFormatted\":{\"codeDistancePerRound\":\"9\",\"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\":\"94.12 %\",\"physicalQubitsPerRound\":\"6480\",\"requiredLogicalQubitErrorRate\":\"4.76e-7\",\"requiredLogicalTstateErrorRate\":\"1.56e-5\",\"runtime\":\"108us\",\"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 5670 physical qubits to implement the algorithm logic, and 90720 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 30 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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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 30. 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 2 CCZ and 6 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 32 T states during the algorithm's runtime\",\"explanation\":\"The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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 32 T states, the 14 copies of the T factory are repeatedly invoked 3 times.\",\"label\":\"Number of T factory invocations\",\"path\":\"physicalCounts/breakdown/numTfactoryRuns\"},{\"description\":\"Number of physical qubits for the algorithm after layout\",\"explanation\":\"The 5670 are the product of the 35 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 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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 35 logical qubits and the total cycle count 30.\",\"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 32.\",\"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.0000004761904761904762)}{\\\\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.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 1.56e-5.\",\"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 35 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", @@ -7171,24 +7179,24 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 130356\r\n", + " 96390\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Runtime\r\n", - " 2ms 246us 400ns\r\n", + " 108us\r\n", " \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", + "

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 30 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", " \n", @@ -7203,120 +7211,120 @@ "\r\n", " \r\n", " Logical algorithmic qubits\r\n", - " 42\r\n", + " 35\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Algorithmic depth\r\n", - " 432\r\n", + " 30\r\n", " \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", + "

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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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", " \r\n", " \n", "\r\n", " \r\n", " Logical depth\r\n", - " 432\r\n", + " 30\r\n", " \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", + "

This number is usually equal to the logical depth of the algorithm, which is 30. 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", " \r\n", " \n", "\r\n", " \r\n", " Number of T states\r\n", - " 448\r\n", + " 32\r\n", " \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", + "

To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 2 CCZ and 6 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", " \r\n", " \n", "\r\n", " \r\n", " Number of T factories\r\n", - " 12\r\n", + " 14\r\n", " \r\n", - "

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

\n", + "

Number of T factories capable of producing the demanded 32 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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Number of T factory invocations\r\n", - " 38\r\n", + " 3\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical algorithmic qubits\r\n", - " 14196\r\n", + " 5670\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical T factory qubits\r\n", - " 116160\r\n", + " 90720\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical qubit error rate\r\n", - " 2.76e-8\r\n", + " 4.76e-7\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Required logical T state error rate\r\n", - " 1.12e-6\r\n", + " 1.56e-5\r\n", " \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", + "

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 32.

\n", "\r\n", " \r\n", " \n", @@ -7355,19 +7363,19 @@ "\r\n", " \r\n", " Code distance\r\n", - " 13\r\n", + " 9\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", "\r\n", " \r\n", " Physical qubits\r\n", - " 338\r\n", + " 162\r\n", " \r\n", "

Number of physical qubits per logical qubit

\n", "
\r\n", @@ -7379,7 +7387,7 @@ "\r\n", " \r\n", " Logical cycle time\r\n", - " 5us 200ns\r\n", + " 3us 600ns\r\n", " \r\n", "

Duration of a logical cycle in nanoseconds

\n", "
\r\n", @@ -7391,12 +7399,12 @@ "\r\n", " \r\n", " Logical qubit error rate\r\n", - " 3.00e-9\r\n", + " 3.00e-7\r\n", " \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", + "

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", " \r\n", " \n", @@ -7432,7 +7440,7 @@ "

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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -7444,7 +7452,7 @@ "

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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -7459,7 +7467,7 @@ "\r\n", " \r\n", " Physical qubits\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

Number of physical qubits for a single T factory

\n", "
\r\n", @@ -7471,7 +7479,7 @@ "\r\n", " \r\n", " Runtime\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

Runtime of a single T factory

\n", "
\r\n", @@ -7488,7 +7496,7 @@ "

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", + "

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", " \r\n", " \n", @@ -7543,7 +7551,7 @@ "\r\n", " \r\n", " Distillation code distances\r\n", - " 11\r\n", + " 9\r\n", " \r\n", "

The code distance in each round of distillation

\n", "
\r\n", @@ -7555,7 +7563,7 @@ "\r\n", " \r\n", " Number of physical qubits per round\r\n", - " 9680\r\n", + " 6480\r\n", " \r\n", "

The number of physical qubits used in each round of distillation

\n", "
\r\n", @@ -7567,7 +7575,7 @@ "\r\n", " \r\n", " Runtime per round\r\n", - " 57us 200ns\r\n", + " 46us 800ns\r\n", " \r\n", "

The runtime of each distillation round

\n", "
\r\n", @@ -7579,12 +7587,12 @@ "\r\n", " \r\n", " Logical T state error rate\r\n", - " 2.48e-7\r\n", + " 2.17e-6\r\n", " \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", + "

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

\n", "\r\n", " \r\n", " \n", @@ -7599,12 +7607,12 @@ "\r\n", " \r\n", " Logical qubits (pre-layout)\r\n", - " 15\r\n", + " 12\r\n", " \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", + "

We determine 35 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", " \r\n", " \n", @@ -7647,7 +7655,7 @@ "\r\n", " \r\n", " CCZ gates\r\n", - " 16\r\n", + " 2\r\n", " \r\n", "

Number of CCZ-gates in the input quantum program

\n", "
\r\n", @@ -7659,7 +7667,7 @@ "\r\n", " \r\n", " CCiX gates\r\n", - " 96\r\n", + " 6\r\n", " \r\n", "

Number of CCiX-gates in the input quantum program

\n", "
\r\n", @@ -7671,7 +7679,7 @@ "\r\n", " \r\n", " Measurement operations\r\n", - " 96\r\n", + " 6\r\n", " \r\n", "

Number of single qubit measurements in the input quantum program

\n", "
\r\n", @@ -7902,48 +7910,48 @@ " '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", + " 'logicalCounts': {'ccixCount': 6,\n", + " 'cczCount': 2,\n", + " 'measurementCount': 6,\n", + " 'numQubits': 12,\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", + " 'logicalQubit': {'codeDistance': 9,\n", + " 'logicalCycleTime': 3600.0,\n", + " 'logicalErrorRate': 3.0000000000000015e-07,\n", + " 'physicalQubits': 162},\n", + " 'physicalCounts': {'breakdown': {'algorithmicLogicalDepth': 30,\n", + " 'algorithmicLogicalQubits': 35,\n", " 'cliffordErrorRate': 0.001,\n", - " 'logicalDepth': 432,\n", - " 'numTfactories': 12,\n", - " 'numTfactoryRuns': 38,\n", + " 'logicalDepth': 30,\n", + " 'numTfactories': 14,\n", + " 'numTfactoryRuns': 3,\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", + " 'numTstates': 32,\n", + " 'physicalQubitsForAlgorithm': 5670,\n", + " 'physicalQubitsForTfactories': 90720,\n", + " 'requiredLogicalQubitErrorRate': 4.761904761904762e-07,\n", + " 'requiredLogicalTstateErrorRate': 1.5625e-05},\n", + " 'physicalQubits': 96390,\n", + " 'runtime': 108000},\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': '5us 200ns',\n", - " 'logicalErrorRate': '3.00e-9',\n", + " 'logicalCycleTime': '3us 600ns',\n", + " 'logicalErrorRate': '3.00e-7',\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", + " 'physicalQubitsForTfactoriesPercentage': '94.12 %',\n", + " 'physicalQubitsPerRound': '6480',\n", + " 'requiredLogicalQubitErrorRate': '4.76e-7',\n", + " 'requiredLogicalTstateErrorRate': '1.56e-5',\n", + " 'runtime': '108us',\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", @@ -7954,53 +7962,53 @@ " '**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", + " 'explanation': 'This value represents the total number of physical qubits, which is the sum of 5670 physical qubits to implement the algorithm logic, and 90720 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", + " '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 30 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", + " '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} = 12$ logical qubits in the input algorithm, we require in total $2 \\\\cdot Q_{\\\\rm alg} + \\\\lceil \\\\sqrt{8 \\\\cdot Q_{\\\\rm alg}}\\\\rceil + 1 = 35$ 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", + " '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 6 single-qubit measurements, the 0 arbitrary single-qubit rotations, and the 0 T gates, three multi-qubit measurements for each of the 2 CCZ and 6 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", + " 'explanation': \"This number is usually equal to the logical depth of the algorithm, which is 30. 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", + " 'explanation': 'To execute the algorithm, we require one T state for each of the 0 T gates, four T states for each of the 2 CCZ and 6 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", + " {'description': \"Number of T factories capable of producing the demanded 32 T states during the algorithm's runtime\",\n", + " 'explanation': 'The total number of T factories 14 that are executed in parallel is computed as $\\\\left\\\\lceil\\\\dfrac{32\\\\;\\\\text{T states} \\\\cdot 46us 800ns\\\\;\\\\text{T factory duration}}{1\\\\;\\\\text{T states per T factory} \\\\cdot 108us\\\\;\\\\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", + " 'explanation': 'In order to prepare the 32 T states, the 14 copies of the T factory are repeatedly invoked 3 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", + " 'explanation': 'The 5670 are the product of the 35 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 9680 physical qubits and we run 12 in parallel, therefore we need $116160 = 9680 \\\\cdot 12$ qubits.',\n", + " 'explanation': 'Each T factory requires 6480 physical qubits and we run 14 in parallel, therefore we need $90720 = 6480 \\\\cdot 14$ 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", + " 'explanation': 'The minimum logical qubit error rate is obtained by dividing the logical error probability 5.00e-4 by the product of 35 logical qubits and the total cycle count 30.',\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", + " '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 32.',\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", @@ -8014,7 +8022,7 @@ " '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", + " 'explanation': 'The code distance is the smallest odd integer greater or equal to $\\\\dfrac{2\\\\log(0.03 / 0.0000004761904761904762)}{\\\\log(0.01/0.001)} - 1$',\n", " 'label': 'Code distance',\n", " 'path': 'logicalQubit/codeDistance'},\n", " {'description': 'Number of physical qubits per logical qubit',\n", @@ -8026,7 +8034,7 @@ " '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", + " '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", @@ -8038,11 +8046,11 @@ " '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", + " '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 338.',\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", @@ -8056,7 +8064,7 @@ " '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", + " '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", @@ -8088,13 +8096,13 @@ " '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", + " '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.56e-5.',\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", + " 'explanation': 'We determine 35 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", @@ -8183,20 +8191,20 @@ " 'path': 'jobParams/qubitParams/tGateErrorRate'}],\n", " 'title': 'Physical qubit parameters'}]},\n", " 'status': 'success',\n", - " 'tfactory': {'codeDistancePerRound': [11],\n", - " 'logicalErrorRate': 2.480000000000001e-07,\n", + " 'tfactory': {'codeDistancePerRound': [9],\n", + " 'logicalErrorRate': 2.165000000000001e-06,\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", + " 'physicalQubits': 6480,\n", + " 'physicalQubitsPerRound': [6480],\n", + " 'runtime': 46800.0,\n", + " 'runtimePerRound': [46800.0],\n", " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 34, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -8209,7 +8217,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -8236,7 +8244,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -8254,18 +8262,18 @@ "name": "stdout", "output_type": "stream", "text": [ - "Logical algorithmic qubits = 42\n", - "Algorithmic depth = 432\n", - "Score = 18144\n" + "Logical algorithmic qubits = 35\n", + "Algorithmic depth = 30\n", + "Score = 1050\n" ] }, { "data": { "text/plain": [ - "18144" + "1050" ] }, - "execution_count": 36, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } diff --git a/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb index 029dfd4..9d38b74 100644 --- a/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb +++ b/team_solutions/schrodingers-duck/iQuHack-challenge-2023-task7.ipynb @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 1, "metadata": { "collapsed": false, "jupyter": { @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { @@ -198,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -207,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { @@ -264,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { @@ -309,12 +309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -334,12 +334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -359,12 +359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -384,12 +384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -409,12 +409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -434,12 +434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -459,12 +459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -484,12 +484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -509,12 +509,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -534,12 +534,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -559,12 +559,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -584,12 +584,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -609,12 +609,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -634,12 +634,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -659,12 +659,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -684,12 +684,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -709,12 +709,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -734,12 +734,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -759,12 +759,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -784,12 +784,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -809,12 +809,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -834,12 +834,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -859,12 +859,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -884,12 +884,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -909,12 +909,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -934,12 +934,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -959,12 +959,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -984,12 +984,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1009,12 +1009,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1034,12 +1034,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1059,12 +1059,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1084,12 +1084,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1109,12 +1109,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1134,12 +1134,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1159,12 +1159,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1184,12 +1184,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1209,12 +1209,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1234,12 +1234,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1259,12 +1259,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1284,12 +1284,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1309,12 +1309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1334,12 +1334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1359,12 +1359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1384,12 +1384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1409,12 +1409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1434,12 +1434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1459,12 +1459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1484,12 +1484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1509,12 +1509,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1534,12 +1534,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1559,12 +1559,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1584,12 +1584,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1609,12 +1609,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1634,12 +1634,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1659,12 +1659,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1684,12 +1684,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1709,12 +1709,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1734,12 +1734,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1759,12 +1759,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1784,12 +1784,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1809,12 +1809,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1834,12 +1834,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1859,12 +1859,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1884,12 +1884,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1909,12 +1909,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1934,12 +1934,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1959,12 +1959,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -1984,12 +1984,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2009,12 +2009,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2034,12 +2034,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2059,12 +2059,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2084,12 +2084,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2109,12 +2109,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2134,12 +2134,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2159,12 +2159,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2184,12 +2184,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2209,12 +2209,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2234,12 +2234,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2259,12 +2259,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2284,12 +2284,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2309,12 +2309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2334,12 +2334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2359,12 +2359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2384,12 +2384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2409,12 +2409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2434,12 +2434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2459,12 +2459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2484,12 +2484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2509,12 +2509,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2534,12 +2534,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2559,12 +2559,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2584,12 +2584,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2609,12 +2609,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2634,12 +2634,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2659,12 +2659,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2684,12 +2684,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2709,12 +2709,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2734,12 +2734,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2759,12 +2759,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2784,12 +2784,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2809,12 +2809,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2834,12 +2834,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2859,12 +2859,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2884,12 +2884,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2909,12 +2909,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2934,12 +2934,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2959,12 +2959,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -2984,12 +2984,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3009,12 +3009,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3034,12 +3034,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3059,12 +3059,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3084,12 +3084,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3109,12 +3109,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3134,12 +3134,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3159,12 +3159,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3184,12 +3184,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3209,12 +3209,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3234,12 +3234,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3259,12 +3259,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3284,12 +3284,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3309,12 +3309,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3334,12 +3334,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3359,12 +3359,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3384,12 +3384,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3409,12 +3409,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3434,12 +3434,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3459,12 +3459,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3484,12 +3484,12 @@ " style=\"width: 100%;\"\r\n", " > \r\n", " \r\n", - "

\r\n", + "

\r\n", "

\r\n", " \r\n", " \r\n", @@ -3640,7 +3640,7 @@ "()" ] }, - "execution_count": 30, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -3669,7 +3669,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { @@ -3703,23 +3703,23 @@ { "data": { "text/plain": [ - "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 178643},\n", - " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 426101},\n", - " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 4},\n", + "[{'id': 'ionq.qpu', 'current_availability': {}, 'average_queue_time': 179536},\n", + " {'id': 'ionq.qpu.aria-1', 'current_availability': {}, 'average_queue_time': 429485},\n", + " {'id': 'ionq.simulator', 'current_availability': {}, 'average_queue_time': 2},\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': 69},\n", - " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.hqs-lt-s1-sim', 'current_availability': {}, 'average_queue_time': 479},\n", + " {'id': 'quantinuum.hqs-lt-s2-sim', 'current_availability': {}, 'average_queue_time': 163},\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': 69},\n", - " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 168},\n", + " {'id': 'quantinuum.sim.h1-1e', 'current_availability': {}, 'average_queue_time': 479},\n", + " {'id': 'quantinuum.sim.h1-2e', 'current_availability': {}, 'average_queue_time': 163},\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", @@ -3727,7 +3727,7 @@ " {'id': 'rigetti.qpu.aspen-m-3', 'current_availability': {}, 'average_queue_time': 5}]" ] }, - "execution_count": 31, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -3743,7 +3743,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { @@ -3771,7 +3771,7 @@ "{'id': 'microsoft.estimator', 'current_availability': {}, 'average_queue_time': 0}" ] }, - "execution_count": 32, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -3782,7 +3782,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { @@ -3803,10 +3803,10 @@ "Submitting Task7_ResourceEstimationWrapper to target microsoft.estimator...\n", "Job successfully submitted.\n", " Job name: RE for the task 7\n", - " Job ID: a7d42efd-1393-44bf-bf4d-7e90bcc2df62\n", + " Job ID: 532dd603-96a9-42a3-a29f-91825cb1e61d\n", "Waiting up to 30 seconds for Azure Quantum job to complete...\n", - "[1:17:00 PM] Current job status: Executing\n", - "[1:17:05 PM] Current job status: Succeeded\n" + "[2:14:25 PM] Current job status: Executing\n", + "[2:14:30 PM] Current job status: Succeeded\n" ] } ], @@ -3817,7 +3817,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { @@ -4870,7 +4870,7 @@ " 'unitNamePerRound': ['15-to-1 space efficient logical']}}" ] }, - "execution_count": 34, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -4883,7 +4883,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { @@ -4910,7 +4910,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { @@ -4939,7 +4939,7 @@ "2546" ] }, - "execution_count": 36, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } diff --git a/team_solutions/schrodingers-duck/obj/__entrypoint__.dll b/team_solutions/schrodingers-duck/obj/__entrypoint__.dll new file mode 100644 index 0000000000000000000000000000000000000000..bd2a265a924309843a3bf270da3ceedadfbc67ef GIT binary patch literal 321536 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

-_mls5nJ`_e* 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 YW&Q1Em;O~e+MnINtj||ISJDXl|3kYXh5!Hn literal 0 HcmV?d00001 diff --git a/team_solutions/schrodingers-duck/obj/__entrypoint__snippets__.dll b/team_solutions/schrodingers-duck/obj/__entrypoint__snippets__.dll new file mode 100644 index 0000000000000000000000000000000000000000..2b162fa378a86908fff85d81fdd81ab2ebf9fde1 GIT binary patch literal 121344 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 literal 0 HcmV?d00001 diff --git a/team_solutions/schrodingers-duck/obj/__snippets__.dll b/team_solutions/schrodingers-duck/obj/__snippets__.dll new file mode 100644 index 0000000000000000000000000000000000000000..72716051bfee9f5f84e886b559ea676270e7bd10 GIT binary patch literal 120832 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 Date: Mon, 27 Feb 2023 18:02:11 +0100 Subject: [PATCH 7/7] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 58743d7..ccb4356 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ +# Project Submission for Microsoft Challenge @ MIT iQuHACK 2023 by +- Hamish Hall +- Vadym Kuzyak +- Alexander Doye +- Olivia Xuan Zhu +- Ivan Rojas + + +_____________ # Welcome to the Microsoft Challenge @ MIT iQuHACK 2023! ## Challenge overview