From 43f70e09cad41f87d15c9b623747ff53faa17a61 Mon Sep 17 00:00:00 2001 From: gonfeco Date: Tue, 16 Jan 2024 13:02:59 +0100 Subject: [PATCH] Begining notebook documentation of BTC_04_PH --- tnbs/BTC_03_QPE/README.md | 1 + tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb | 95 +- .../PH/notebooks/02_Using_PH_Class.ipynb | 2770 ++++++++++++++++- .../03_ParentHamiltonian_execution.ipynb | 2 +- tnbs/BTC_04_PH/README.md | 2 + 5 files changed, 2686 insertions(+), 184 deletions(-) diff --git a/tnbs/BTC_03_QPE/README.md b/tnbs/BTC_03_QPE/README.md index a9ab94e..9310de0 100644 --- a/tnbs/BTC_03_QPE/README.md +++ b/tnbs/BTC_03_QPE/README.md @@ -11,4 +11,5 @@ If you want a complete execution and create the complete **JSON** file with the bash benchmark_exe.sh All the results files and the corresponding JSON will be stored in the **Results** folder. +For more information about the code implementation and about the kernel, please refer to the jupyter notebooks inside the folder **QPE/notebooks** diff --git a/tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb b/tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb index 4143188..14d2a02 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/01_Ansatzes.ipynb @@ -44,7 +44,7 @@ "outputs": [], "source": [ "import sys\n", - "sys.path.append(\"../\")" + "sys.path.append(\"../../\")" ] }, { @@ -55,9 +55,7 @@ "outputs": [], "source": [ "# myQLM qpus\n", - "from qat.qpus import PyLinalg, CLinalg\n", - "qpu_c = CLinalg()\n", - "qpu_p = PyLinalg()" + "from get_qpu import get_qpu" ] }, { @@ -68,10 +66,8 @@ "outputs": [], "source": [ "# QLM qpus\n", - "from qlmaas.qpus import LinAlg\n", - "qpu_qaass = LinAlg()\n", - "from qlmaas.qpus import MPS\n", - "qpu_mps = MPS()" + "qpu_c = get_qpu(\"c\")\n", + "qpu_p = get_qpu(\"python\")" ] }, { @@ -81,9 +77,9 @@ "source": [ "## 1. ansatzes module\n", "\n", - "One mandatory step for using the Parent Hamiltonian, **PH**, library (see nootebook **02_Using_PH_Class.ipynb**) is computing for a given ansatz its complete state. This is the amplitudes of the state in the computational *n* qubit basis. \n", + "One mandatory step for using the Parent Hamiltonian, **PH**, library (see notebook **02_Using_PH_Class.ipynb**) is computing for a given ansatz its complete state. This is the amplitudes of the state in the computational $n$ qubit basis. \n", "\n", - "In the *ansatzes* module of the **PH** library several functions and classes for deling with this part of the computation was done.\n" + "In the *ansatzes* module of the **PH** library, several functions and classes for dealing with this part of the computation were done.\n" ] }, { @@ -93,7 +89,7 @@ "source": [ "### 1.1 SolveCircuit class\n", "\n", - "The **SolveCircuit** takes a *Atos myqlm circuit* with an ansatz, fix their parameter and simulates using *Atos qpu* and return the state of the ansatz.\n", + "The **SolveCircuit** takes a *Atos myqlm circuit* with an ansatz, fixes their parameter, simulates using *Atos qpu* and returns the state of the ansatz.\n", "\n", "The main input of this class is a QLM circuit where the parameters were set. For showing how this class works we are going to use an ansatz example: the translational invariant circuit of the original Parent Hamiltonian paper." ] @@ -148,9 +144,7 @@ "cell_type": "code", "execution_count": null, "id": "68de1184", - "metadata": { - "scrolled": true - }, + "metadata": {}, "outputs": [], "source": [ "n_qubits = 12\n", @@ -177,14 +171,14 @@ "source": [ "#### 1.1.2 . Setting the parameters\n", "\n", - "As can be seen the circuit has the parameters as variables. We can set the parameters calling the *angles_ansatz01* function. If $n_l$ is the number of layers of the circuit the formula for setting the parameters is:\n", + "As can be seen, the circuit has the parameters as variables. We can set the parameters by calling the *angles_ansatz01* function. If $n_l$ is the number of layers of the circuit the formula for setting the parameters is:\n", "\n", "\n", "$$\\delta \\theta = \\frac{\\pi}{4*(n_l+1)}$$\n", "\n", "$$\\theta_i = (i+1) \\delta \\theta \\; i=0, 1, \\cdots 2n_l-1$$\n", "\n", - "The output of the function are:\n", + "The outputs of the function are:\n", "* circuit with the parameters fixed\n", "* pandas DataFrame with the value of the parameters used" ] @@ -238,8 +232,8 @@ "id": "aebbd82b", "metadata": {}, "source": [ - "In addition we can use the parameters of the circuit providing a pandas DataFrame to the function. In this case the function can be used for setting the parameters for any circuit! The parameters should be passes as a pandas DataFrame with 2 columns:\n", - "* key: string with the name of the parameter (the same name that has in the circuit)\n", + "In addition we can use the parameters of the circuit providing a pandas DataFrame to the function. In this case the function can be used for setting the parameters for any circuit! The parameters should be passed as a pandas DataFrame with 2 columns:\n", + "* key: string with the name of the parameter (the same name that is in the circuit)\n", "* value: float value of the correspondent parameter" ] }, @@ -296,8 +290,8 @@ "source": [ "#### 1.1.3 Solving the ansatz\n", "\n", - "Now we can use the *SolveCircuit* class for solving the circuit. The main inputs are:\n", - "* circuit: QLM circuit were the parameter wer set\n", + "Now we can use the *SolveCircuit* class to solve the circuit. The main inputs are:\n", + "* circuit: QLM circuit where the parameters were set\n", "* Input dictionary with the following keys:\n", " * nqubits: number of qubits of the ansatz\n", " * qpu: myqlm QPU used for solving the circuit\n", @@ -389,8 +383,7 @@ "\n", "Other ansatzes are implemented in the **ansatzes** module.\n", "\n", - "\n", - "The function *ansatz_qlm_02* implements a generalization of the *ansatz_qlm_01* one. In the *ansatz_qlm_01* all the qubits has the same operations with the same parameters. In the *ansatz_qlm_02* each qubit has the same operations but each operation will have a different parameter.\n", + "The function *ansatz_qlm_02* implements a generalization of the *ansatz_qlm_01* one. In the *ansatz_qlm_01* all the qubits have the same operations with the same parameters. In the *ansatz_qlm_02* each qubit has the same operations but each operation will have a different parameter.\n", "\n", "The *SolveCircuit* class can be used for solving the ansatz" ] @@ -703,9 +696,7 @@ "cell_type": "code", "execution_count": null, "id": "37f06d87", - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "circuit = ansatz_selector('simple01', **conf_dict)\n", @@ -770,9 +761,7 @@ "cell_type": "code", "execution_count": null, "id": "fa897cb6", - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "circuit = ansatz_selector('hwe', **conf_dict)\n", @@ -786,7 +775,7 @@ "source": [ "## 1.5 run_ansatz\n", "\n", - "The complete ansatz solving procces can be done by using the function *run_ansatz* of the **ansatzes** module. A complete configuration dictionary should be provided and the function executes the complete steps for ansatz creation and solve." + "The complete ansatz-solving process can be done by using the function *run_ansatz* of the **ansatzes** module. A complete configuration dictionary should be provided and the function executes the complete steps for ansatz creation and solve." ] }, { @@ -884,7 +873,7 @@ "source": [ "## 2. Line command\n", "\n", - "Additionally the **ansatzes** module can be used from command line and several parameters can be provided for congfiguring the ansatz. \n", + "Additionally, the **ansatzes** module can be used from the command line and several parameters can be provided for configuring the ansatz. \n", "\n", " For getting a help type: *python ansatzes.py -h*.\n", "\n", @@ -913,8 +902,8 @@ "source": [ "## 3. Submitting jobs to QLM (only for QLM users)\n", "\n", - "If the ansatz has a great number of qubits or have high depths computations using **myQLM** can not be done (or need lot of time). In these cases computations can be executed in a **Eviden QLM hardware platform** (CESGA has one available for their users able to simultate until 35 qubits). In this case the computation can be submitted to the **QLM** and be retrieved when finished.\n", - "For submiting an ansatz computation to the **QLM**, in addtion with the arguments showed before, following argument should be provided:\n", + "If the ansatz has a great number of qubits or has high depths computations using **myQLM** can not be done (or need a lot of time). In these cases, computations can be executed in an **Eviden QLM hardware platform** (CESGA has one available for their users able to simulate until 35 qubits). In this case, the computation can be submitted to the **QLM** and retrieved when finished.\n", + "For submitting an ansatz computation to the **QLM**, in addition with the arguments shown before, the following argument should be provided:\n", "\n", "* --submit: For submiting ansatz to QLM\n", "\n", @@ -926,12 +915,12 @@ "id": "30543470", "metadata": {}, "source": [ - "Once the computation is submitted to QLM we need to retrieve the results from the **QLM**. Following arguments can be used for getting the state:\n", + "Once the computation is submitted to QLM we need to retrieve the results from the **QLM**. The following arguments can be used for getting the state:\n", "\n", "* --get_job: For getting a job from QLM\n", "* -jobid JOB_ID: jobid of the QLM job. Only when provided --get_job\n", "* -filename FILENAME: Base Filename for saving. Only Valid with get_job\n", - "* --save: For storing resutls\n", + "* --save: For storing results\n", "\n", "If **--save** is provided the *-filename* should be provided too. The state will be saved as a csv with the name: **FILENAME_state.csv**" ] @@ -943,15 +932,15 @@ "source": [ "## 4. Masive ansatzes computations\n", "\n", - "For sendig several ansatzes at the same time the following files can be used:\n", + "For sending several ansatzes at the same time the following files can be used:\n", "\n", - "* ansatzes.json: JSON file with the configuration of the desired ansatzes. Each posible configuration parameter in the JSON file has associated a list with the desired values. The total number of ansatzes will be all the posible combinations of the values of all the parameters. \n", - " * Example: if *nqubits: [10, 14]* and *depth: [1, 2, 3, 4]* (and the otheres parameters has only a one element) then the posible ansatzes will be 2 * 4 = 8.\n", - "* launch_ansatzes.py: this script allows to configure the ansatzes taking the configuration from the **ansatzes.json** and executes them. Use **python launch\\_ansatzes -h** for getting a help. The following arguments can be provided:\n", + "* ansatzes.json: JSON file with the configuration of the desired ansatzes. Each possible configuration parameter in the JSON file has associated a list with the desired values. The total number of ansatzes will be all the possible combinations of the values of all the parameters. \n", + " * Example: if *nqubits: [10, 14]* and *depth: [1, 2, 3, 4]* (and the other parameters have only one element) then the possible ansatzes will be 2 * 4 = 8.\n", + "* launch_ansatzes.py: this script allows to configuration of the ansatzes taking the configuration from the **ansatzes.json** and executing them. Use **python launch\\_ansatzes -h** to get help. The following arguments can be provided:\n", " * --all: for executing all the posible ansatzes resulting from **ansatzes.json** file.\n", - " * -id ID: for executing only one posible ansatz (the number given by ID) from all the posible ansatzes from **ansatzes.json** file.\n", + " * -id ID: for executing only one possible ansatz (the number given by ID) from all the possible ansatzes from **ansatzes.json** file.\n", " * --print: for printing the configuration of the ansatz\n", - " * --count: give the number of all the posible combinations resulting from **ansatzes.json** file.\n", + " * --count: give the number of all the possible combinations resulting from the **ansatzes.json** file.\n", " * --exe: for executing the complete ansatz computation program" ] }, @@ -960,24 +949,32 @@ "id": "d62de278", "metadata": {}, "source": [ - "## 5. Masive retrieving QLM\n", + "## 5. Massive retrieving QLM\n", "\n", - "When using the **launch_ansatzes.py** you can send all the computations to the QLM (**submit** to True in the **ansatzes.json**). You can retrieving all the jobs with its correspondient JobId. You can use the **launch\\_get\\_jobs.py** script for recovering all the jobs automatically. This file uses the JSON file **get\\_jobs.json**. In the JSON file the JobIDs should be provided in the **job\\_id** field of the JSON. In this case one dictionary for JobID should be configurated in the JSON file.\n", + "When using the **launch_ansatzes.py** you can send all the computations to the QLM (**submit** to True in the **ansatzes.json**). You can retrieve all the jobs with their corresponding JobId. You can use the **launch\\_get\\_jobs.py** script to recover all the jobs automatically. This file uses the JSON file **get\\_jobs.json**. In the JSON file, the JobIDs should be provided in the **job\\_id** field of the JSON. In this case, one dictionary for JobID should be configured in the JSON file.\n", "\n", - "For getting the help use: **pyhton launch\\_get\\_jobs.py**. The following arguments can be provided:\n", + "To get the help use: **pyhton launch\\_get\\_jobs.py**. The following arguments can be provided:\n", " * --all: for executing all the posible recoverings from **get\\_jobs.json** file.\n", - " * -id ID: for executing only one posible recovering (the number given by ID) from all the posible ones from **get\\_jobs.json** file.\n", + " * -id ID: for executing only one possible recovery (the number given by ID) from all the possible ones from **get\\_jobs.json** file.\n", " * --print: for printing the configuration of the recovering\n", - " * --count: give the number of all the posible recoverings from **get\\_jobs.json** file.\n", - " * --exe: for executing the complete recovering.\n" + " * --count: give the number of all the possible recoverings from **get\\_jobs.json** file.\n", + " * --exe: for executing the complete recovery.\n" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5061b17e-8031-4203-a6f7-ba3ced2c8fff", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python [conda env:tnbs2c] *", "language": "python", - "name": "python3" + "name": "conda-env-tnbs2c-py" }, "language_info": { "codemirror_mode": { @@ -989,7 +986,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb b/tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb index 946422c..d059787 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/02_Using_PH_Class.ipynb @@ -11,9 +11,7 @@ "$$\\newcommand{\\ket}[1]{\\left|{#1}\\right\\rangle}$$\n", "$$\\newcommand{\\bra}[1]{\\left\\langle{#1}\\right|}$$\n", "\n", - "Here we explain how to use the **Parent Hamiltonian** class of the module *parent_hamiltonian* of the library **PH** that can be use for computing Parent Hamiltonians of an input state\n", - "\n", - "\n", + "Here we explain how to use the **Parent Hamiltonian** class of the module *parent_hamiltonian* of the library **PH** that can be used for computing Parent Hamiltonians of an input state\n", "\n", "The main idea of the parent Hamiltonian is the following:\n", "\n", @@ -24,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "558430a5", "metadata": {}, "outputs": [], @@ -41,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "3449a43c", "metadata": {}, "outputs": [], @@ -52,59 +50,75 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "19de4d79", "metadata": {}, "outputs": [], "source": [ "import sys\n", - "sys.path.append(\"../\")" + "sys.path.append(\"../../\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "ac5e510f", "metadata": {}, "outputs": [], "source": [ "# myQLM qpus\n", - "from qat.qpus import PyLinalg, CLinalg\n", - "qpu_c = CLinalg()\n", - "qpu_p = PyLinalg()" + "from get_qpu import get_qpu" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "a5ac6e2f", "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:45:17 PM-DEBUG: Import real module qat.qpus (path: ['/home/gferro/WP3_Benchmark/tnbs/BTC_04_PH/PH/notebooks', '/home/gferro/anaconda3/envs/tnbs2c/lib/python311.zip', '/home/gferro/anaconda3/envs/tnbs2c/lib/python3.11', '/home/gferro/anaconda3/envs/tnbs2c/lib/python3.11/lib-dynload', '', '/home/gferro/anaconda3/envs/tnbs2c/lib/python3.11/site-packages', '../../'])\n", + "01/16/2024 12:45:17 PM-DEBUG: Submodules: {'qat.qpus.hook_clinalg': , 'qat.qpus.hook_core': , 'qat.qpus.hook_lang': , 'qat.qpus.hook_pylinalg': }\n", + "01/16/2024 12:45:17 PM-INFO: Initializing CPU statevector with Double precision\n" + ] + } + ], "source": [ - "# QLM qpus\n", - "from qlmaas.qpus import LinAlg, MPS\n", - "qpu_qaass = LinAlg()\n", - "qpu_mps = MPS()" + "# myQLM qpus\n", + "qpu_c = get_qpu(\"c\")\n", + "qpu_p = get_qpu(\"python\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "060c0f1f", "metadata": {}, "outputs": [], "source": [ + "sys.path.append(\"../\")\n", "from parent_hamiltonian import PH" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "04163a3b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Folder 'Saving' created.\n" + ] + } + ], "source": [ "# For saving Stuff\n", "from utils_ph import create_folder\n", @@ -119,7 +133,7 @@ "source": [ "## 1. Input Ansatz\n", "\n", - "To create a Parent Hamiltonian (**PH**) with our software we need, given an input ansatz, the complete state of the ansatz. This is the amplitudes of the state of the ansatz in the computational n qubit basis. In the module *ansatzes* of the **PH** library several ansatzes are defined and a *SolveCircuit* class for simulating and getting results usind **Atos myqlm** are provided (see notebook **01_Ansatzes.ipynb** for a explanation and use of this module). Here we use the **ansatz_qlm_01** that is the **Atos myqlm** implementation of the ansatz in the github:\n", + "To create a Parent Hamiltonian (**PH**) with our software we need, given an input ansatz, the complete state of the ansatz. This is the amplitudes of the state of the ansatz in the computational $n$ qubit basis. In the module *ansatzes* of the **PH** library several ansatzes are defined and a *SolveCircuit* class for simulating and getting results using **Atos myqlm** is provided (see notebook **01_Ansatzes.ipynb** for an explanation and use of this module). Here we use the **ansatz_qlm_01** that is the **Atos myqlm** implementation of the ansatz in the github:\n", "\n", "https://github.com/FumiKobayashi/Parent_Hamiltonian_as_a_benchmark_problem_for_variational_quantum_eigensolvers\n", "\n", @@ -130,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "766e53bc", "metadata": {}, "outputs": [], @@ -140,10 +154,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "c01e6ebc", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:46:06 PM-INFO: Generating circuit.\n", + "01/16/2024 12:46:06 PM-INFO: Instantiating a Linker.\n", + "01/16/2024 12:46:06 PM-INFO: Linking libraries to circuit.\n", + "01/16/2024 12:46:06 PM-INFO: Found 0 ancillae\n" + ] + }, + { + "data": { + "text/html": [ + "Q0Q1Q2Q3Q4Q5Q6Q7RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RX [theta_0]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RZ [theta_1]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RX [theta_2]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RZ [theta_3]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RX [theta_4]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]RZ [theta_5]" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:46:06 PM-INFO: Found 0 ancillae\n" + ] + } + ], "source": [ "# Ansatz Configuration\n", "nqubits = 8\n", @@ -164,20 +213,257 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "c8ef35f9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "Q0Q1Q2Q3Q4Q5Q6Q7RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "%qatdisplay circuit --svg" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "4775319f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:46:09 PM-INFO: New batch of length 1 submitted\n", + "01/16/2024 12:46:09 PM-DEBUG: Batch(jobs=[Job(circuit=Circuit(ops=[Op(gate='_0', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_0', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[7], type=0, cbits=None, formula=None, remap=None)], name=None, gateDic={'X': GateDefinition(name='X', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='X', parameters=[]), nbctrls=None, circuit_implementation=None), 'Y': GateDefinition(name='Y', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.0, im=-1.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Y', parameters=[]), nbctrls=None, circuit_implementation=None), 'Z': GateDefinition(name='Z', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Z', parameters=[]), nbctrls=None, circuit_implementation=None), 'H': GateDefinition(name='H', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=-0.7071067811865475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='H', parameters=[]), nbctrls=None, circuit_implementation=None), 'CNOT': GateDefinition(name='CNOT', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='X', syntax=GSyntax(name='CNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'CSIGN': GateDefinition(name='CSIGN', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='Z', syntax=GSyntax(name='CSIGN', parameters=[]), nbctrls=1, circuit_implementation=None), 'ISWAP': GateDefinition(name='ISWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='ISWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'SQRTSWAP': GateDefinition(name='SQRTSWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SQRTSWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'I': GateDefinition(name='I', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='I', parameters=[]), nbctrls=None, circuit_implementation=None), 'SWAP': GateDefinition(name='SWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'CCNOT': GateDefinition(name='CCNOT', arity=3, matrix=Matrix(nRows=8, nCols=8, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='CNOT', syntax=GSyntax(name='CCNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'S': GateDefinition(name='S', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='S', parameters=[]), nbctrls=None, circuit_implementation=None), 'T': GateDefinition(name='T', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7071067811865476, im=0.7071067811865475)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='T', parameters=[]), nbctrls=None, circuit_implementation=None), '_0': GateDefinition(name='_0', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9951847266721969, im=0.0), ComplexNumber(re=0.0, im=-0.0980171403295606), ComplexNumber(re=0.0, im=-0.0980171403295606), ComplexNumber(re=0.9951847266721969, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.19634954084936207, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_1': GateDefinition(name='_1', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9807852804032304, im=-0.19509032201612825), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9807852804032304, im=0.19509032201612825)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.39269908169872414, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_2': GateDefinition(name='_2', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9569403357322088, im=0.0), ComplexNumber(re=0.0, im=-0.29028467725446233), ComplexNumber(re=0.0, im=-0.29028467725446233), ComplexNumber(re=0.9569403357322088, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.5890486225480862, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_3': GateDefinition(name='_3', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9238795325112867, im=-0.3826834323650898), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9238795325112867, im=0.3826834323650898)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.7853981633974483, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_4': GateDefinition(name='_4', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.881921264348355, im=0.0), ComplexNumber(re=0.0, im=-0.47139673682599764), ComplexNumber(re=0.0, im=-0.47139673682599764), ComplexNumber(re=0.881921264348355, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.9817477042468103, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_5': GateDefinition(name='_5', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8314696123025452, im=-0.5555702330196022), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.8314696123025452, im=0.5555702330196022)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1780972450961724, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None)}, nbqbits=8, nbcbits=8, _gate_set=GSet(gate_signatures={'X': GSignature(name='X', parameters=[], arity=1), 'Y': GSignature(name='Y', parameters=[], arity=1), 'Z': GSignature(name='Z', parameters=[], arity=1), 'H': GSignature(name='H', parameters=[], arity=1), 'CNOT': GSignature(name='CNOT', parameters=[], arity=2), 'CSIGN': GSignature(name='CSIGN', parameters=[], arity=2), 'ISWAP': GSignature(name='ISWAP', parameters=[], arity=2), 'SQRTSWAP': GSignature(name='SQRTSWAP', parameters=[], arity=2), 'I': GSignature(name='I', parameters=[], arity=1), 'SWAP': GSignature(name='SWAP', parameters=[], arity=2), 'CCNOT': GSignature(name='CCNOT', parameters=[], arity=3), 'S': GSignature(name='S', parameters=[], arity=1), 'T': GSignature(name='T', parameters=[], arity=1), 'PH': GSignature(name='PH', parameters=[1], arity=1), 'RZ': GSignature(name='RZ', parameters=[1], arity=1), 'RX': GSignature(name='RX', parameters=[1], arity=1), 'RY': GSignature(name='RY', parameters=[1], arity=1), 'LOCK': GSignature(name='LOCK', parameters=[], arity=1), 'RELEASE': GSignature(name='RELEASE', parameters=[], arity=1)}), has_matrices=False, var_dic={}, qregs=[DefaultRegister(length=8, start=0, msb=None, _subtype_metadata=None, key=None)], ancilla_map=, _serialized_gate_set=b\"\\x80\\x04\\x95r\\x05\\x00\\x00\\x00\\x00\\x00\\x00\\x8c\\x11qat.core.gate_set\\x94\\x8c\\x07GateSet\\x94\\x93\\x94)\\x81\\x94}\\x94\\x8c\\x0fgate_signatures\\x94}\\x94(\\x8c\\x01X\\x94h\\x00\\x8c\\rGateSignature\\x94\\x93\\x94)\\x81\\x94}\\x94(\\x8c\\x04name\\x94h\\x07\\x8c\\nparameters\\x94]\\x94\\x8c\\x05arity\\x94K\\x01\\x8c\\x07nb_args\\x94K\\x00\\x8c\\targ_types\\x94]\\x94\\x8c\\x0farity_generator\\x94N\\x8c\\x10matrix_generator\\x94\\x8c$qat.core.circuit_builder.matrix_util\\x94\\x8c\\x05gen_x\\x94\\x93\\x94\\x8c\\x11circuit_generator\\x94Nub\\x8c\\x01Y\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\\x19h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_y\\x94\\x93\\x94h\\x18Nub\\x8c\\x01Z\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_z\\x94\\x93\\x94h\\x18Nub\\x8c\\x01H\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch'h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_h\\x94\\x93\\x94h\\x18Nub\\x8c\\x04CNOT\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch.h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x08gen_cnot\\x94\\x93\\x94h\\x18Nub\\x8c\\x05CSIGN\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch5h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\tgen_csign\\x94\\x93\\x94h\\x18Nub\\x8c\\x05ISWAP\\x94h\\t)\\x81\\x94}\\x94(h\\x0chQ0Q1Q2Q3Q4Q5Q6Q7RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RX [π/16]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RZ [π/8]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RX [ 0.59]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RZ [π/4]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RX [ 0.98]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]RZ [ 1.18]" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# The attribute circuit of the *SolveCircuit* object has now the proper parameters\n", "c= solv_ansatz01.circuit\n", @@ -205,17 +509,161 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "a19f30b3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
StatesInt_lsbProbabilityAmplitudeInt
0|00000000>00.0270110.084186+0.141151j0
128|10000000>1280.009596-0.018682+0.096160j1
64|01000000>640.009596-0.018682+0.096160j2
192|11000000>1920.010734-0.021159-0.101423j3
32|00100000>320.009596-0.018682+0.096160j4
..................
223|11011111>2230.0004910.001495+0.022099j251
63|00111111>630.0007170.002587-0.026658j252
191|10111111>1910.0004910.001495+0.022099j253
127|01111111>1270.0004910.001495+0.022099j254
255|11111111>2550.0002170.008261+0.012208j255
\n", + "

256 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " States Int_lsb Probability Amplitude Int\n", + "0 |00000000> 0 0.027011 0.084186+0.141151j 0\n", + "128 |10000000> 128 0.009596 -0.018682+0.096160j 1\n", + "64 |01000000> 64 0.009596 -0.018682+0.096160j 2\n", + "192 |11000000> 192 0.010734 -0.021159-0.101423j 3\n", + "32 |00100000> 32 0.009596 -0.018682+0.096160j 4\n", + ".. ... ... ... ... ...\n", + "223 |11011111> 223 0.000491 0.001495+0.022099j 251\n", + "63 |00111111> 63 0.000717 0.002587-0.026658j 252\n", + "191 |10111111> 191 0.000491 0.001495+0.022099j 253\n", + "127 |01111111> 127 0.000491 0.001495+0.022099j 254\n", + "255 |11111111> 255 0.000217 0.008261+0.012208j 255\n", + "\n", + "[256 rows x 5 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "solv_ansatz01.state" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "186e7e6b", "metadata": {}, "outputs": [], @@ -230,7 +678,7 @@ "source": [ "## 2. Parent Hamiltonian Class\n", "\n", - "The main step is instantiate the **PH** python class from *parent_hamiltonian* module of **PH** library. For this we need to provided the amplitudes of the ansatz state as a python list. Additionally a configuration dictionary can be provided with the following keys:\n", + "The main step is to instantiate the **PH** python class from the *parent_hamiltonian* module of the **PH** library. For this, we need to provide the amplitudes of the ansatz state as a Python list. Additionally, a configuration dictionary can be provided with the following keys:\n", "\n", "* save: for saving or not the results\n", "* filename: complete base filename for saving the results of the class" @@ -238,7 +686,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "c1acd64e", "metadata": {}, "outputs": [], @@ -267,7 +715,7 @@ "\n", "$$\\text{Kernel}(\\rho) = \\{ \\ket{v^i} / \\rho \\ket{v^i} = 0, i=0, 1, \\cdots m \\, \\text{with} \\; m \\leq dim(\\rho)\\}$$\n", "\n", - "3. Additionally the vectors of the kernel will be chosen that conforms a basis of this null space. \n", + "3. Additionally the vectors of the kernel will be chosen that conform a basis of this null space. \n", "\n", "$$\\braket{v^i}{v^j}= \\delta_{ij}$$\n", "\n", @@ -283,12 +731,12 @@ "\n", "$$h^i \\ket{\\Psi} = \\ket{v^i} \\braket{v^i}{\\Psi} = 0 \\tag{3}$$\n", "\n", - "7. We can join all the projectors terms for computing or desired parent hamiltonian:\n", + "7. We can join all the projectors' terms for computing or desired parent Hamiltonian:\n", "\n", "$$H^{PH} = \\sum_{i=0}^{m} h^i \\tag{4}$$\n", "\n", "\n", - "By construction this Hamiltonian verify the parent Hamiltonian property (1). \n", + "By construction, this Hamiltonian verify the parent Hamiltonian property (1). \n", "\n", "In order to use the computed **parent Hamiltonian** $H^{PH}$ in a **VQE** step a mandatory step is decompose it in *n*-generalized Pauli matrices:\n", "\n", @@ -298,12 +746,12 @@ "\n", "$$a_I = \\frac{\\text{Tr}(H^{PH} \\sigma_I^n)}{2^n} \\tag{6}$$\n", "\n", - "In the naive case the generated Parent Hamiltonian will represent an all-to-all interaction between all the qubits of the ansatz.\n", + "In the naive case, the generated Parent Hamiltonian will represent an all-to-all interaction between all the qubits of the ansatz.\n", "\n", - "The **PH** class allows to compute the naive parent hamiltonian by invoking the **naive_ph** method. This method populates the following attributes:\n", + "The **PH** class allows to computation of the naive parent Hamiltonian by invoking the **naive_ph** method. This method populates the following attributes:\n", "\n", "* *rho*: the density matrix of the input state\n", - "* *naive_parent_hamiltonian*: the parent hamiltonian matrix (projector over null space)\n", + "* *naive_parent_hamiltonian*: the parent Hamiltonian matrix (projector over null space)\n", "* *pauli_strings*: list with the pauli strings obtained\n", "* *pauli_coeficients*: list with the pauli coeficcient of the correspondient *pauli_strings*\n", "* *qubits_list*: list with the qubits affected by the correspondient *pauli_strings* (will be all the qubits of the ansatz).\n", @@ -311,27 +759,50 @@ "\n", "**BE AWARE**\n", "\n", - "A prunning procces was done over the Pauli decomposition. Only coefficients which absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpret as zero and were removed (the associated Pauli strings were removed too).\n", + "A pruning process was done over the Pauli decomposition. Only coefficients with absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpreted as zero and were removed (the associated Pauli strings were removed too).\n", "\n", - "Additionally results for naive computing will not be stored!!!" + "Additionally, results for naive computing will not be stored!!!" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "3fdeb6f0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:47:44 PM-DEBUG: Computing Naive Parent Hamiltonian\n", + "01/16/2024 12:47:44 PM-DEBUG: Computing Density Matrix\n", + "01/16/2024 12:47:44 PM-DEBUG: Computing Projectors on Null space\n", + "01/16/2024 12:47:45 PM-DEBUG: Computing Decomposition in Pauli Matrices\n", + "01/16/2024 12:48:45 PM-INFO: Number Pauli Coefficients: 65536. Number of prunned coefs: 65536\n" + ] + } + ], "source": [ "ph_object.naive_ph()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "a28ec339", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(256, 256)" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Should be a 2^n x 2^n\n", "ph_object.rho.shape" @@ -339,10 +810,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "2ea62925", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(256, 256)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Naive Parent Hamiltonian\n", "ph_object.naive_parent_hamiltonian.shape" @@ -350,10 +832,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "6431bacd", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2.220446049250313e-16" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Float precision. Only higher absolute values were conserved\n", "ph_object.float_precision" @@ -361,22 +854,210 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "b7e57e21", "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PauliCoefficientsPauliStringsQbits
00.996094IIIIIIII[0, 1, 2, 3, 4, 5, 6, 7]
1-0.000036IIIIIIIX[0, 1, 2, 3, 4, 5, 6, 7]
2-0.00109IIIIIIIY[0, 1, 2, 3, 4, 5, 6, 7]
3-0.000839IIIIIIIZ[0, 1, 2, 3, 4, 5, 6, 7]
4-0.000036IIIIIIXI[0, 1, 2, 3, 4, 5, 6, 7]
............
65531-0.000008ZZZZZZYZ[0, 1, 2, 3, 4, 5, 6, 7]
65532-0.000067ZZZZZZZI[0, 1, 2, 3, 4, 5, 6, 7]
65533-0.00024ZZZZZZZX[0, 1, 2, 3, 4, 5, 6, 7]
65534-0.000008ZZZZZZZY[0, 1, 2, 3, 4, 5, 6, 7]
65535-0.000112ZZZZZZZZ[0, 1, 2, 3, 4, 5, 6, 7]
\n", + "

65536 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " PauliCoefficients PauliStrings Qbits\n", + "0 0.996094 IIIIIIII [0, 1, 2, 3, 4, 5, 6, 7]\n", + "1 -0.000036 IIIIIIIX [0, 1, 2, 3, 4, 5, 6, 7]\n", + "2 -0.00109 IIIIIIIY [0, 1, 2, 3, 4, 5, 6, 7]\n", + "3 -0.000839 IIIIIIIZ [0, 1, 2, 3, 4, 5, 6, 7]\n", + "4 -0.000036 IIIIIIXI [0, 1, 2, 3, 4, 5, 6, 7]\n", + "... ... ... ...\n", + "65531 -0.000008 ZZZZZZYZ [0, 1, 2, 3, 4, 5, 6, 7]\n", + "65532 -0.000067 ZZZZZZZI [0, 1, 2, 3, 4, 5, 6, 7]\n", + "65533 -0.00024 ZZZZZZZX [0, 1, 2, 3, 4, 5, 6, 7]\n", + "65534 -0.000008 ZZZZZZZY [0, 1, 2, 3, 4, 5, 6, 7]\n", + "65535 -0.000112 ZZZZZZZZ [0, 1, 2, 3, 4, 5, 6, 7]\n", + "\n", + "[65536 rows x 3 columns]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_object.pauli_pdf" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "d2fa156b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PauliCoefficientsPauliStringsQbits
1-0.000036IIIIIIIX[0, 1, 2, 3, 4, 5, 6, 7]
2-0.00109IIIIIIIY[0, 1, 2, 3, 4, 5, 6, 7]
3-0.000839IIIIIIIZ[0, 1, 2, 3, 4, 5, 6, 7]
4-0.000036IIIIIIXI[0, 1, 2, 3, 4, 5, 6, 7]
\n", + "
" + ], + "text/plain": [ + " PauliCoefficients PauliStrings Qbits\n", + "1 -0.000036 IIIIIIIX [0, 1, 2, 3, 4, 5, 6, 7]\n", + "2 -0.00109 IIIIIIIY [0, 1, 2, 3, 4, 5, 6, 7]\n", + "3 -0.000839 IIIIIIIZ [0, 1, 2, 3, 4, 5, 6, 7]\n", + "4 -0.000036 IIIIIIXI [0, 1, 2, 3, 4, 5, 6, 7]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_object.pauli_pdf.iloc[1:5]" ] @@ -393,15 +1074,15 @@ "source": [ "### 2.2. Local Parent Hamiltonian\n", "\n", - "The main problem of the naive parent Hamiltonian is that the number of Pauli terms will scale with $4^n$ where $n$ is the number of qubits of the ansatz. Even with a prunning procces the naive procedure has a terrible computing performance. In the original papper this is issue was avoided by computing **local parent hamiltonians** for each qubit of the ansatz. The main idea is that local hamiltonian for each qubit will affect only to the nearest qubits and the Pauli decomposition will be computationally affordable. \n", + "The main problem of the naive parent Hamiltonian is that the number of Pauli terms will scale with $4^n$ where $n$ is the number of qubits of the ansatz. Even with a pruning process the naive procedure has a terrible computing performance. In the original paper, this issue was avoided by computing **local parent Hamiltonians** for each qubit of the ansatz. The main idea is that the local Hamiltonian for each qubit will affect only to the nearest qubits and the Pauli decomposition will be computationally affordable. \n", "\n", - "This situation is depicted in following figure:\n", + "This situation is depicted in the following figure:\n", "\n", "\n", "![image.png](attachment:image.png)\n", "\n", "\n", - "As can be seen each qubit will have its own hamiltonian that affeccts only to qubits near to it. For computing the the local parent hamiltonian following ingredients are needed:\n", + "As can be seen, each qubit will have its own Hamiltonian that affects only to qubits near to it. For computing the local parent Hamiltonian following ingredients are needed:\n", "\n", "1. The complete state of the ansatz should be computed and organized as a *n*-rank tensor:\n", "\n", @@ -423,29 +1104,29 @@ " 1. If $dim(\\rho_{j}^{m_j}) = rank(\\rho_{j}^{m_j})$, then, the Kernel cannot be computed. Go to step 1 with $m_j = m_j+1$.\n", " 2. If $dim(\\rho_{j}^{m_j}) > rank(\\rho_{j}^{m_j})$, then, the Kernel can be computed go to step 4.\n", "4. Compute the Kernel of the reduced density matrix, $\\text{Kernel}(\\rho_{j}^{m_j})$\n", - "5. Compute the corresponding projectors from the computed Kernel and sum them all for getting the **local parent Hamiltonian**: $H_{j}^{m_j}$.\n", + "5. Compute the corresponding projectors from the computed Kernel and sum them all to get the **local parent Hamiltonian**: $H_{j}^{m_j}$.\n", "6. Compute the linear combination decomposition of $H_{j}^{m_j}$ in the basis of $m_j$-generalized Pauli matrices. For a $H_{j}^{m_j}$, a list of $4^{m_j}$ tuples $(\\sigma_I^{j, m_j}, a_I^{j, m_j})$ should be obtained, where $\\sigma_I^{j, m_j}$ are all the $m_j$ generalized Pauli matrices and $a_I^{j, m_j}$, the corresponding decomposition coefficients ($I=0, 1, \\cdots 4^{m_j}-1$)\n", "7. Repeat the complete process for qubit, $i_{j+1}$ (setting the corresponding $m_{j+1} = 1$) until all qubits are processed.\n", "\n", "\n", - "The **PH** class allows to compute the local Parent Hamiltonian by invoking the **local_ph** method. Following attributes will be populated by this method:\n", + "The **PH** class allows to computation of the local Parent Hamiltonian by invoking the **local_ph** method. The following attributes will be populated by this method:\n", "\n", "* *reduced_rho*: The reduced local density matrices for each qubit (all the $\\rho_{k}^m$).\n", - "* *local_free_qubits*: the qubits affected for each reduced local density matrices (consecutive set of qubits: $\\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}$)\n", - "* *local_parent_hamiltonians*: Local parent hamiltoninan matrix for each qubit ($H_{j}^{m_j}$)\n", + "* *local_free_qubits*: the qubits affected for each reduced local density matrices (a consecutive set of qubits: $\\{i_{k}, i_{k+1}, \\cdots, i_{k+m}\\}$)\n", + "* *local_parent_hamiltonians*: Local parent hamiltonian matrix for each qubit ($H_{j}^{m_j}$)\n", "* *pauli_strings*: pauli strings decomposition of the local Parent Hamiltonian ($\\sigma_I^{j, m_j}$)\n", "* *pauli_coeficients*: pauli coeficients for each correspondient Pauli string ($a_I^{j, m_j}$)\n", - "* *qubits_list*: list of affected qubits for each correspondient Pauli string ($\\{i_{j}, i_{j+1}, \\cdots, i_{j+m}\\}$)\n", + "* *qubits_list*: list of affected qubits for each corresponding Pauli string ($\\{i_{j}, i_{j+1}, \\cdots, i_{j+m}\\}$)\n", "* *pauli_pdf*: Pandas DataFrame with the Pauli decomposition complete information. \n", "\n", "**BE AWARE**\n", "\n", - "A prunning procces was done over the Pauli decomposition. Only coefficients which absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpret as zero and were removed (the associated Pauli strings were removed too)." + "A pruning process was done over the Pauli decomposition. Only coefficients with absolute values higher than the float precision (attribute **float_precision**) were kept. Other coefficients are interpreted as zero and were removed (the associated Pauli strings were removed too)." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "732b3a83", "metadata": {}, "outputs": [], @@ -459,10 +1140,219 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "id": "d32cf1dc", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:53:17 PM-DEBUG: Computing Local Parent Hamiltonian\n", + "01/16/2024 12:53:17 PM-DEBUG: Computing local reduced density matrix: qb_pos: 0\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1, 2]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [3, 4, 5, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1, 2, 3]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [4, 5, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [0, 1, 2, 3, 4]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [5, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:17 PM-DEBUG: \t Grouped Qubits: [0, 1, 2, 3, 4]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:17 PM-DEBUG: Computing Null Projectors: qb_pos: 0\n", + "01/16/2024 12:53:17 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 0\n", + "01/16/2024 12:53:17 PM-DEBUG: Computing local reduced density matrix: qb_pos: 1\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 3, 4, 5, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2, 3]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 4, 5, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2, 3, 4]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 5, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:17 PM-DEBUG: \t free_indices: [1, 2, 3, 4, 5]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t contraction_indices: [0, 6, 7]\n", + "01/16/2024 12:53:17 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:17 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:17 PM-DEBUG: \t Grouped Qubits: [1, 2, 3, 4, 5]\n", + "01/16/2024 12:53:17 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:17 PM-DEBUG: Computing Null Projectors: qb_pos: 1\n", + "01/16/2024 12:53:17 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 1\n", + "01/16/2024 12:53:18 PM-DEBUG: Computing local reduced density matrix: qb_pos: 2\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 4, 5, 6, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3, 4]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 5, 6, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3, 4, 5]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 6, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [2, 3, 4, 5, 6]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:18 PM-DEBUG: \t Grouped Qubits: [2, 3, 4, 5, 6]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:18 PM-DEBUG: Computing Null Projectors: qb_pos: 2\n", + "01/16/2024 12:53:18 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 2\n", + "01/16/2024 12:53:18 PM-DEBUG: Computing local reduced density matrix: qb_pos: 3\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2, 5, 6, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4, 5]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2, 6, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4, 5, 6]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:18 PM-DEBUG: \t free_indices: [3, 4, 5, 6, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t contraction_indices: [0, 1, 2]\n", + "01/16/2024 12:53:18 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:18 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:18 PM-DEBUG: \t Grouped Qubits: [3, 4, 5, 6, 7]\n", + "01/16/2024 12:53:18 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:18 PM-DEBUG: Computing Null Projectors: qb_pos: 3\n", + "01/16/2024 12:53:18 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 3\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing local reduced density matrix: qb_pos: 4\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 6, 7]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5, 6]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 7]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5, 6, 7]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [4, 5, 6, 7, 0]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [1, 2, 3]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:19 PM-DEBUG: \t Grouped Qubits: [4, 5, 6, 7, 0]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing Null Projectors: qb_pos: 4\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 4\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing local reduced density matrix: qb_pos: 5\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 4, 7]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6, 7]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 4]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6, 7, 0]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [1, 2, 3, 4]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [5, 6, 7, 0, 1]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [2, 3, 4]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:19 PM-DEBUG: \t Grouped Qubits: [5, 6, 7, 0, 1]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing Null Projectors: qb_pos: 5\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 5\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing local reduced density matrix: qb_pos: 6\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [0, 1, 2, 3, 4, 5]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7, 0]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [1, 2, 3, 4, 5]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7, 0, 1]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:19 PM-DEBUG: \t free_indices: [6, 7, 0, 1, 2]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t contraction_indices: [3, 4, 5]\n", + "01/16/2024 12:53:19 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:19 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:19 PM-DEBUG: \t Grouped Qubits: [6, 7, 0, 1, 2]\n", + "01/16/2024 12:53:19 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing Null Projectors: qb_pos: 6\n", + "01/16/2024 12:53:19 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 6\n", + "01/16/2024 12:53:20 PM-DEBUG: Computing local reduced density matrix: qb_pos: 7\n", + "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0]\n", + "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [1, 2, 3, 4, 5, 6]\n", + "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:53:20 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:53:20 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0, 1]\n", + "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5, 6]\n", + "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:53:20 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:53:20 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0, 1, 2]\n", + "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [3, 4, 5, 6]\n", + "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:53:20 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:53:20 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:53:20 PM-DEBUG: \t free_indices: [7, 0, 1, 2, 3]\n", + "01/16/2024 12:53:20 PM-DEBUG: \t contraction_indices: [4, 5, 6]\n", + "01/16/2024 12:53:20 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:53:20 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:53:20 PM-DEBUG: \t Grouped Qubits: [7, 0, 1, 2, 3]\n", + "01/16/2024 12:53:20 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:53:20 PM-DEBUG: Computing Null Projectors: qb_pos: 7\n", + "01/16/2024 12:53:20 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 7\n", + "01/16/2024 12:53:21 PM-INFO: Number Pauli Coefficients: 8192. Number of prunned coefs: 8192\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 2.41 s, sys: 460 ms, total: 2.87 s\n", + "Wall time: 3.75 s\n" + ] + } + ], "source": [ "%%time\n", "ph_object.local_ph()" @@ -470,10 +1360,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 25, "id": "61881c0d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Number of reduced density matrix. MUST BE one for each qubit\n", "len(ph_object.reduced_rho)" @@ -481,20 +1382,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "6905f637", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(32, 32)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_object.reduced_rho[5].shape" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "id": "160d8563", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Affected qubits for each reduced density matrix. MUST BE one for each qubit\n", "len(ph_object.local_free_qubits)" @@ -502,20 +1425,49 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 28, "id": "2a072459", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[[0, 1, 2, 3, 4],\n", + " [1, 2, 3, 4, 5],\n", + " [2, 3, 4, 5, 6],\n", + " [3, 4, 5, 6, 7],\n", + " [4, 5, 6, 7, 0],\n", + " [5, 6, 7, 0, 1],\n", + " [6, 7, 0, 1, 2],\n", + " [7, 0, 1, 2, 3]]" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_object.local_free_qubits" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 29, "id": "022b6ece", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# The local parent hamiltonians for each qubit\n", "len(ph_object.local_parent_hamiltonians)" @@ -523,20 +1475,151 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 30, "id": "9c020d93", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(32, 32)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_object.local_parent_hamiltonians[0].shape" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 31, "id": "fb070de6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PauliCoefficientsPauliStringsQbits
00.75IIIII[0, 1, 2, 3, 4]
1-0.008964IIIIX[0, 1, 2, 3, 4]
2-0.023025IIIIY[0, 1, 2, 3, 4]
3-0.000654IIIIZ[0, 1, 2, 3, 4]
4-0.002252IIIXI[0, 1, 2, 3, 4]
............
81870.00837ZZZYZ[7, 0, 1, 2, 3]
8188-0.0091ZZZZI[7, 0, 1, 2, 3]
81890.002337ZZZZX[7, 0, 1, 2, 3]
81900.000079ZZZZY[7, 0, 1, 2, 3]
8191-0.015186ZZZZZ[7, 0, 1, 2, 3]
\n", + "

8192 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " PauliCoefficients PauliStrings Qbits\n", + "0 0.75 IIIII [0, 1, 2, 3, 4]\n", + "1 -0.008964 IIIIX [0, 1, 2, 3, 4]\n", + "2 -0.023025 IIIIY [0, 1, 2, 3, 4]\n", + "3 -0.000654 IIIIZ [0, 1, 2, 3, 4]\n", + "4 -0.002252 IIIXI [0, 1, 2, 3, 4]\n", + "... ... ... ...\n", + "8187 0.00837 ZZZYZ [7, 0, 1, 2, 3]\n", + "8188 -0.0091 ZZZZI [7, 0, 1, 2, 3]\n", + "8189 0.002337 ZZZZX [7, 0, 1, 2, 3]\n", + "8190 0.000079 ZZZZY [7, 0, 1, 2, 3]\n", + "8191 -0.015186 ZZZZZ [7, 0, 1, 2, 3]\n", + "\n", + "[8192 rows x 3 columns]" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_object.pauli_pdf" ] @@ -546,17 +1629,26 @@ "id": "bb27d645", "metadata": {}, "source": [ - "Due to the symetries of the **ansatz_qlm_01** the obtained reduced density matrix are equal for all the qubits of the ansazt. But this is not necesary true for other type of ansatzes" + "Due to the symmetries of the **ansatz_qlm_01** the obtained reduced density matrix is equal for all the qubits of the ansatz. But this is not necessary true for another type of ansatzes" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "id": "fbe13f33", - "metadata": { - "scrolled": false - }, - "outputs": [], + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "np.isclose(ph_object.reduced_rho[0], ph_object.reduced_rho[1]).all()" ] @@ -568,19 +1660,19 @@ "source": [ "### 2.3 Translational invariant of the ansatz\n", "\n", - "If the ansatz is translational invariant then the computations of the reduced density matrices can be obtained only **for the first qubit** and then used the same reduced density matrix for the other qubits. In this case the time performance of the computation can be boosted. For doing this kind of computation we have to inilitalize the **PH** class providing the input *t_invariant* with a **True**. \n", + "If the ansatz is translational invariant then the computations of the reduced density matrices can be obtained only **for the first qubit** and then used the same reduced density matrix for the other qubits. In this case, the time performance of the computation can be boosted. For doing this kind of computation we have to initialize the **PH** class providing the input *t_invariant* with a **True**. \n", "\n", "In this case *reduced_rho*, *local_free_qubits* and *local_parent_hamiltonians* will have only one element.\n", "\n", "This apply for the other attributes *pauli_matrices*, *pauli_coeficients*, *qubits_list* and *pauli_pdf*. \n", "\n", "\n", - "**Now we are going to use the same ansatz for computing the local Parent Hamiltonian but we are going to set t_inv to True indicating that the ansatz is translational invariant. The result MUST be the same but the number of Pauli string will be lower because only computations on the first qubit were done. The complete local Parent Hamiltonian will need to replicate all the Pauli strings (and coeffcients) for all the qubits**\n" + "**Now we are going to use the same ansatz for computing the local Parent Hamiltonian but we are going to set t_inv to True indicating that the ansatz is translational invariant. The result MUST be the same but the number of Pauli strings will be lower because only computations on the first qubit were done. The complete local Parent Hamiltonian will need to replicate all the Pauli strings (and coefficients) for all the qubits**\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "id": "68fda1c2", "metadata": {}, "outputs": [], @@ -595,10 +1687,64 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "id": "f9da1502", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:55:11 PM-DEBUG: Computing Local Parent Hamiltonian\n", + "01/16/2024 12:55:11 PM-DEBUG: Computing local reduced density matrix: qb_pos: 0\n", + "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1]\n", + "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [2, 3, 4, 5, 6, 7]\n", + "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (4, 64)\n", + "01/16/2024 12:55:11 PM-DEBUG: \t rank: 4. Dimension: 4\n", + "01/16/2024 12:55:11 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1, 2]\n", + "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [3, 4, 5, 6, 7]\n", + "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (8, 32)\n", + "01/16/2024 12:55:11 PM-DEBUG: \t rank: 8. Dimension: 8\n", + "01/16/2024 12:55:11 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1, 2, 3]\n", + "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [4, 5, 6, 7]\n", + "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (16, 16)\n", + "01/16/2024 12:55:11 PM-DEBUG: \t rank: 16. Dimension: 16\n", + "01/16/2024 12:55:11 PM-DEBUG: \t STOP: True\n", + "01/16/2024 12:55:11 PM-DEBUG: \t free_indices: [0, 1, 2, 3, 4]\n", + "01/16/2024 12:55:11 PM-DEBUG: \t contraction_indices: [5, 6, 7]\n", + "01/16/2024 12:55:11 PM-DEBUG: matrix_state_shape: (32, 8)\n", + "01/16/2024 12:55:11 PM-DEBUG: \t rank: 8. Dimension: 32\n", + "01/16/2024 12:55:11 PM-DEBUG: \t Grouped Qubits: [0, 1, 2, 3, 4]\n", + "01/16/2024 12:55:11 PM-DEBUG: \t STOP: False\n", + "01/16/2024 12:55:11 PM-DEBUG: Computing Null Projectors: qb_pos: 0\n", + "01/16/2024 12:55:11 PM-DEBUG: Computing Decomposition in Pauli Matrices: qb_pos: 0\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Invariant Ansatz: Only First Qubit computations\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:55:11 PM-INFO: Number Pauli Coefficients: 1024. Number of prunned coefs: 1024\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 240 ms, sys: 48.6 ms, total: 289 ms\n", + "Wall time: 349 ms\n" + ] + } + ], "source": [ "%%time\n", "ph_object_in.local_ph()" @@ -609,15 +1755,26 @@ "id": "e186ed1f", "metadata": {}, "source": [ - "The obtained reduced density matrices , and the affected qubits, will be equal to the obtained matrices with *t_invariant=False*" + "The obtained reduced density matrices, and the affected qubits, will be equal to the obtained matrices with *t_invariant=False*" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "id": "6fe27bb9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Number of reduced density matrix. MUST BE only one\n", "len(ph_object_in.reduced_rho)" @@ -625,10 +1782,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "id": "b43d0ae3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Affected qubits for each reduced density matrix. MUST BE only one\n", "len(ph_object_in.local_free_qubits)" @@ -636,10 +1804,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "id": "7fa03701", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "len(ph_object_in.local_parent_hamiltonians)" ] @@ -654,10 +1833,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "id": "3b5151a8", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(8192, 1024)" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "len(ph_object.pauli_coeficients),len(ph_object_in.pauli_coeficients)" ] @@ -672,10 +1862,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "id": "0491436d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Testing Pauli coefficients for the first qubit for t_inv set to False and t_inv set to True.\n", "np.isclose(\n", @@ -686,10 +1887,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "id": "ff8ef35b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Testing all the Pauli strings for the first qubit for t_inv set to False and t_inv set to True.\n", "(ph_object.pauli_pdf[:len(ph_object_in.pauli_strings)]['PauliStrings'] == ph_object_in.pauli_pdf[\"PauliStrings\"]).all()" @@ -702,19 +1914,191 @@ "source": [ "## 3. Example of use with more Ansatzes \n", "\n", - "The use of the **PH** class is independent of the ansatz (only the if the ansatz is invariant can be providing to the class in order to boost performance, but this is not mandatory!!). The only mandatory input is the complete amplitudes of the state of the ansatz. \n", + "The use of the **PH** class is independent of the ansatz (only if the ansatz is invariant can be provided to the class to boost performance, but this is not mandatory!!). The only mandatory input is the complete amplitudes of the state of the ansatz. \n", "\n", - "So any ansatz can be used by the class\n" + "So any ansatz can be used by the class." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "id": "21b9c51a", "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:55:55 PM-INFO: Generating circuit.\n", + "01/16/2024 12:55:55 PM-INFO: Instantiating a Linker.\n", + "01/16/2024 12:55:55 PM-INFO: Linking libraries to circuit.\n", + "01/16/2024 12:55:55 PM-INFO: Found 0 ancillae\n" + ] + }, + { + "data": { + "text/html": [ + "Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10Q11RX [theta_0]RX [theta_1]RX [theta_2]RX [theta_3]RX [theta_4]RX [theta_5]RX [theta_6]RX [theta_7]RX [theta_8]RX [theta_9]RX [theta_10]RX [theta_11]RZ [theta_12]RZ [theta_13]RZ [theta_14]RZ [theta_15]RZ [theta_16]RZ [theta_17]RZ [theta_18]RZ [theta_19]RZ [theta_20]RZ [theta_21]RZ [theta_22]RZ [theta_23]RX [theta_24]RX [theta_25]RX [theta_26]RX [theta_27]RX [theta_28]RX [theta_29]RX [theta_30]RX [theta_31]RX [theta_32]RX [theta_33]RX [theta_34]RX [theta_35]RZ [theta_36]RZ [theta_37]RZ [theta_38]RZ [theta_39]RZ [theta_40]RZ [theta_41]RZ [theta_42]RZ [theta_43]RZ [theta_44]RZ [theta_45]RZ [theta_46]RZ [theta_47]RX [theta_48]RX [theta_49]RX [theta_50]RX [theta_51]RX [theta_52]RX [theta_53]RX [theta_54]RX [theta_55]RX [theta_56]RX [theta_57]RX [theta_58]RX [theta_59]RZ [theta_60]RZ [theta_61]RZ [theta_62]RZ [theta_63]RZ [theta_64]RZ [theta_65]RZ [theta_66]RZ [theta_67]RZ [theta_68]RZ [theta_69]RZ [theta_70]RZ [theta_71]" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:55:56 PM-INFO: Found 0 ancillae\n", + "01/16/2024 12:55:56 PM-INFO: New batch of length 1 submitted\n", + "01/16/2024 12:55:56 PM-DEBUG: Batch(jobs=[Job(circuit=Circuit(ops=[Op(gate='_0', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_6', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_7', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_8', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_9', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_10', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_11', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[11, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_12', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_13', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_14', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_15', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_16', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_17', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_18', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_19', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_20', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_21', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_22', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_23', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='_24', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_25', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_26', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_27', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_28', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_29', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_30', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_31', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_32', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_33', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_34', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_35', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[11, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_36', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_37', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_38', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_39', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_40', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_41', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_42', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_43', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_44', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_45', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_46', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_47', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='_48', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_49', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_50', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_51', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_52', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_53', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_54', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_55', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_56', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_57', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_58', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_59', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='CSIGN', qbits=[11, 0], type=0, cbits=None, formula=None, remap=None), Op(gate='_60', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_61', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_62', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_63', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_64', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_65', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_66', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_67', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_68', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_69', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_70', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_71', qbits=[11], type=0, cbits=None, formula=None, remap=None)], name=None, gateDic={'X': GateDefinition(name='X', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='X', parameters=[]), nbctrls=None, circuit_implementation=None), 'Y': GateDefinition(name='Y', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.0, im=-1.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Y', parameters=[]), nbctrls=None, circuit_implementation=None), 'Z': GateDefinition(name='Z', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Z', parameters=[]), nbctrls=None, circuit_implementation=None), 'H': GateDefinition(name='H', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=-0.7071067811865475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='H', parameters=[]), nbctrls=None, circuit_implementation=None), 'CNOT': GateDefinition(name='CNOT', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='X', syntax=GSyntax(name='CNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'CSIGN': GateDefinition(name='CSIGN', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='Z', syntax=GSyntax(name='CSIGN', parameters=[]), nbctrls=1, circuit_implementation=None), 'ISWAP': GateDefinition(name='ISWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='ISWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'SQRTSWAP': GateDefinition(name='SQRTSWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SQRTSWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'I': GateDefinition(name='I', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='I', parameters=[]), nbctrls=None, circuit_implementation=None), 'SWAP': GateDefinition(name='SWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'CCNOT': GateDefinition(name='CCNOT', arity=3, matrix=Matrix(nRows=8, nCols=8, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='CNOT', syntax=GSyntax(name='CCNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'S': GateDefinition(name='S', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='S', parameters=[]), nbctrls=None, circuit_implementation=None), 'T': GateDefinition(name='T', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7071067811865476, im=0.7071067811865475)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='T', parameters=[]), nbctrls=None, circuit_implementation=None), '_0': GateDefinition(name='_0', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9827211546029561, im=0.0), ComplexNumber(re=0.0, im=-0.18509222645976522), ComplexNumber(re=0.0, im=-0.18509222645976522), ComplexNumber(re=-0.9827211546029561, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.9108538880850165, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_1': GateDefinition(name='_1', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.0441729189528509, im=0.0), ComplexNumber(re=0.0, im=-0.9990239002302121), ComplexNumber(re=0.0, im=-0.9990239002302121), ComplexNumber(re=-0.0441729189528509, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.2299672475073167, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_2': GateDefinition(name='_2', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.44619289115503774, im=0.0), ComplexNumber(re=0.0, im=-0.8949368155812502), ComplexNumber(re=0.0, im=-0.8949368155812502), ComplexNumber(re=-0.44619289115503774, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.066606157573559, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_3': GateDefinition(name='_3', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5226317998780633, im=0.0), ComplexNumber(re=0.0, im=-0.8525585034214461), ComplexNumber(re=0.0, im=-0.8525585034214461), ComplexNumber(re=-0.5226317998780633, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.241462621088741, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_4': GateDefinition(name='_4', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.29561145215555407, im=0.0), ComplexNumber(re=0.0, im=-0.9553082588120363), ComplexNumber(re=0.0, im=-0.9553082588120363), ComplexNumber(re=-0.29561145215555407, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.741783679146467, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_5': GateDefinition(name='_5', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9992351104969805, im=0.0), ComplexNumber(re=0.0, im=-0.039104909539431854), ComplexNumber(re=0.0, im=-0.039104909539431854), ComplexNumber(re=0.9992351104969805, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.07822976580502919, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_6': GateDefinition(name='_6', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7951872697593894, im=0.0), ComplexNumber(re=0.0, im=-0.6063639220901983), ComplexNumber(re=0.0, im=-0.6063639220901983), ComplexNumber(re=-0.7951872697593894, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.980225368643198, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_7': GateDefinition(name='_7', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5283025588593121, im=0.0), ComplexNumber(re=0.0, im=-0.8490561855982813), ComplexNumber(re=0.0, im=-0.8490561855982813), ComplexNumber(re=-0.5283025588593121, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.254792872701453, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_8': GateDefinition(name='_8', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8407597743699485, im=0.0), ComplexNumber(re=0.0, im=-0.541408350324774), ComplexNumber(re=0.0, im=-0.541408350324774), ComplexNumber(re=-0.8407597743699485, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.13896270691637, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_9': GateDefinition(name='_9', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9476454795910332, im=0.0), ComplexNumber(re=0.0, im=-0.31932435705827494), ComplexNumber(re=0.0, im=-0.31932435705827494), ComplexNumber(re=0.9476454795910332, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6500328628342616, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_10': GateDefinition(name='_10', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.11608600676640758, im=0.0), ComplexNumber(re=0.0, im=-0.9932391650720533), ComplexNumber(re=0.0, im=-0.9932391650720533), ComplexNumber(re=0.11608600676640758, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.908895995415293, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_11': GateDefinition(name='_11', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.899797559364478, im=0.0), ComplexNumber(re=0.0, im=-0.4363076347735949), ComplexNumber(re=0.0, im=-0.4363076347735949), ComplexNumber(re=-0.899797559364478, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.380203267144107, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_12': GateDefinition(name='_12', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6197239224960226, im=-0.7848198900933537), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.6197239224960226, im=0.7848198900933537)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.478374418643988, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_13': GateDefinition(name='_13', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9442904907598172, im=-0.32911315540492075), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9442904907598172, im=0.32911315540492075)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6707285124825335, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_14': GateDefinition(name='_14', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6976103426140422, im=-0.7164773617344227), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6976103426140422, im=0.7164773617344227)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.597479112666588, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_15': GateDefinition(name='_15', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5224260068322144, im=-0.852684623636047), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.5224260068322144, im=0.852684623636047)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.240979890992171, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_16': GateDefinition(name='_16', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.77437024715818, im=-0.6327327400381453), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.77437024715818, im=0.6327327400381453)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.913031048567518, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_17': GateDefinition(name='_17', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9996494606262122, im=-0.026475571187852178), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.9996494606262122, im=0.026475571187852178)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.2302279767827855, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_18': GateDefinition(name='_18', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.052763708370109165, im=-0.9986070253503297), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.052763708370109165, im=0.9986070253503297)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.2471690966535243, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_19': GateDefinition(name='_19', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9951010241620493, im=-0.098863298102181), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9951010241620493, im=0.098863298102181)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.19805011619897805, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_20': GateDefinition(name='_20', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3840839624775033, im=-0.9232981694813327), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.3840839624775033, im=0.9232981694813327)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.3531616908194857, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_21': GateDefinition(name='_21', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9111755907905702, im=-0.41201825535703557), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.9111755907905702, im=0.41201825535703557)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.8493359148160179, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_22': GateDefinition(name='_22', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.17674282638916314, im=-0.9842570666853097), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.17674282638916314, im=0.9842570666853097)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.4969450338038652, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_23': GateDefinition(name='_23', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8173881744457135, im=-0.5760872957081277), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8173881744457135, im=0.5760872957081277)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.055317841644587, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_24': GateDefinition(name='_24', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8180833550797075, im=0.0), ComplexNumber(re=0.0, im=-0.5750996645291399), ComplexNumber(re=0.0, im=-0.5750996645291399), ComplexNumber(re=-0.8180833550797075, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.057733367787608, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_25': GateDefinition(name='_25', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8005621899531382, im=0.0), ComplexNumber(re=0.0, im=-0.5992496808655267), ComplexNumber(re=0.0, im=-0.5992496808655267), ComplexNumber(re=-0.8005621899531382, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.99805822842666, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_26': GateDefinition(name='_26', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7488794783466803, im=0.0), ComplexNumber(re=0.0, im=-0.662706214631494), ComplexNumber(re=0.0, im=-0.662706214631494), ComplexNumber(re=0.7488794783466803, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.4488533883574575, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_27': GateDefinition(name='_27', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.911901798264727, im=0.0), ComplexNumber(re=0.0, im=-0.4104084676533335), ComplexNumber(re=0.0, im=-0.4104084676533335), ComplexNumber(re=-0.911901798264727, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.437381414196505, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_28': GateDefinition(name='_28', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.02586546289075172, im=0.0), ComplexNumber(re=0.0, im=-0.9996654329471671), ComplexNumber(re=0.0, im=-0.9996654329471671), ComplexNumber(re=0.02586546289075172, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.089855957881652, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_29': GateDefinition(name='_29', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6101639268598295, im=0.0), ComplexNumber(re=0.0, im=-0.7922751935779592), ComplexNumber(re=0.0, im=-0.7922751935779592), ComplexNumber(re=-0.6101639268598295, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.454127615408423, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_30': GateDefinition(name='_30', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9999000792077098, im=0.0), ComplexNumber(re=0.0, im=-0.014136180545523317), ComplexNumber(re=0.0, im=-0.014136180545523317), ComplexNumber(re=0.9999000792077098, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.028273302794258413, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_31': GateDefinition(name='_31', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9692431838236658, im=0.0), ComplexNumber(re=0.0, im=-0.2461049585265674), ComplexNumber(re=0.0, im=-0.2461049585265674), ComplexNumber(re=0.9692431838236658, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.4973190996022366, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_32': GateDefinition(name='_32', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.37420190262146413, im=0.0), ComplexNumber(re=0.0, im=-0.927347257544053), ComplexNumber(re=0.0, im=-0.927347257544053), ComplexNumber(re=0.37420190262146413, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.374520651946741, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_33': GateDefinition(name='_33', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7221316495648751, im=0.0), ComplexNumber(re=0.0, im=-0.6917556510045382), ComplexNumber(re=0.0, im=-0.6917556510045382), ComplexNumber(re=0.7221316495648751, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.5278348738460024, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_34': GateDefinition(name='_34', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9115594091057057, im=0.0), ComplexNumber(re=0.0, im=-0.4111683884625091), ComplexNumber(re=0.0, im=-0.4111683884625091), ComplexNumber(re=-0.9115594091057057, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.435714428878451, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_35': GateDefinition(name='_35', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7584148751575955, im=0.0), ComplexNumber(re=0.0, im=-0.6517721052175284), ComplexNumber(re=0.0, im=-0.6517721052175284), ComplexNumber(re=0.7584148751575955, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.4198373767163093, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_36': GateDefinition(name='_36', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8526029940359767, im=-0.5225592163199193), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.8526029940359767, im=0.5225592163199193)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.0996996996194337, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_37': GateDefinition(name='_37', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6840132447545066, im=-0.7294695888112207), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6840132447545066, im=0.7294695888112207)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.635092379431393, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_38': GateDefinition(name='_38', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9845819674337626, im=-0.17492383886783808), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.9845819674337626, im=0.17492383886783808)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.931528479465762, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_39': GateDefinition(name='_39', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8747101569423469, im=-0.48464640857216185), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8747101569423469, im=0.48464640857216185)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.271267539187619, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_40': GateDefinition(name='_40', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8700746977524452, im=-0.4929198924074694), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.8700746977524452, im=0.4929198924074694)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.0308849702899339, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_41': GateDefinition(name='_41', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7141452430423936, im=-0.699997551309946), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.7141452430423936, im=0.699997551309946)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.732397171650385, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_42': GateDefinition(name='_42', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8253426389874685, im=-0.5646322061919611), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8253426389874685, im=0.5646322061919611)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.083210187141626, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_43': GateDefinition(name='_43', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.46868924861038963, im=-0.8833631123366135), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.46868924861038963, im=0.8833631123366135)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.165979906698012, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_44': GateDefinition(name='_44', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.21127581321200653, im=-0.9774264835534207), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.21127581321200653, im=0.9774264835534207)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.567352761525573, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_45': GateDefinition(name='_45', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.10809285137637645, im=-0.9941408026438331), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.10809285137637645, im=0.9941408026438331)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.924983733886742, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_46': GateDefinition(name='_46', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6272458951693866, im=-0.7788212805215038), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6272458951693866, im=0.7788212805215038)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7855688404427819, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_47': GateDefinition(name='_47', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4876612505844185, im=-0.8730329344752356), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.4876612505844185, im=0.8730329344752356)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.1227749263606825, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_48': GateDefinition(name='_48', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8207730545014855, im=0.0), ComplexNumber(re=0.0, im=-0.5712544030502535), ComplexNumber(re=0.0, im=-0.5712544030502535), ComplexNumber(re=0.8207730545014855, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.2160667256534976, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_49': GateDefinition(name='_49', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8751685233982871, im=0.0), ComplexNumber(re=0.0, im=-0.4838182051689061), ComplexNumber(re=0.0, im=-0.4838182051689061), ComplexNumber(re=-0.8751685233982871, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.273160706641385, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_50': GateDefinition(name='_50', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.532639993238475, im=0.0), ComplexNumber(re=0.0, im=-0.8463419153054617), ComplexNumber(re=0.0, im=-0.8463419153054617), ComplexNumber(re=-0.532639993238475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.265026280215058, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_51': GateDefinition(name='_51', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9514103165499322, im=0.0), ComplexNumber(re=0.0, im=-0.3079259806550231), ComplexNumber(re=0.0, im=-0.3079259806550231), ComplexNumber(re=-0.9514103165499322, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.657160668962643, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_52': GateDefinition(name='_52', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.08362799383560192, im=0.0), ComplexNumber(re=0.0, im=-0.9964970439730529), ComplexNumber(re=0.0, im=-0.9964970439730529), ComplexNumber(re=0.08362799383560192, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.974141095070687, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_53': GateDefinition(name='_53', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.018437117833248837, im=0.0), ComplexNumber(re=0.0, im=-0.9998300218967237), ComplexNumber(re=0.0, im=-0.9998300218967237), ComplexNumber(re=-0.018437117833248837, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.178468978669233, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_54': GateDefinition(name='_54', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9932451108819205, im=0.0), ComplexNumber(re=0.0, im=-0.11603512273945975), ComplexNumber(re=0.0, im=-0.11603512273945975), ComplexNumber(re=0.9932451108819205, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.23259419770692405, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_55': GateDefinition(name='_55', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7787014974547446, im=0.0), ComplexNumber(re=0.0, im=-0.6273945950211385), ComplexNumber(re=0.0, im=-0.6273945950211385), ComplexNumber(re=0.7787014974547446, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.3564057012411126, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_56': GateDefinition(name='_56', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3864492866315284, im=0.0), ComplexNumber(re=0.0, im=-0.9223106574587452), ComplexNumber(re=0.0, im=-0.9223106574587452), ComplexNumber(re=0.3864492866315284, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.3480353112216097, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_57': GateDefinition(name='_57', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9562651604327544, im=0.0), ComplexNumber(re=0.0, im=-0.292501184514727), ComplexNumber(re=0.0, im=-0.292501184514727), ComplexNumber(re=-0.9562651604327544, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.689502563993549, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_58': GateDefinition(name='_58', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9368792557913659, im=0.0), ComplexNumber(re=0.0, im=-0.349653056711673), ComplexNumber(re=0.0, im=-0.349653056711673), ComplexNumber(re=0.9368792557913659, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.7144015200096169, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_59': GateDefinition(name='_59', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6264988631523084, im=0.0), ComplexNumber(re=0.0, im=-0.7794223338273449), ComplexNumber(re=0.0, im=-0.7794223338273449), ComplexNumber(re=0.6264988631523084, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RX', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7874864660385974, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_60': GateDefinition(name='_60', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4978070017180662, im=-0.8672878351738074), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.4978070017180662, im=0.8672878351738074)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.099455923628504, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_61': GateDefinition(name='_61', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6491241433002811, im=-0.7606824873655736), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.6491241433002811, im=0.7606824873655736)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.554457576003495, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_62': GateDefinition(name='_62', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.5844046859317563, im=-0.8114623608406032), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5844046859317563, im=0.8114623608406032)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.8933001883271994, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_63': GateDefinition(name='_63', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6377666813509285, im=-0.7702296152178408), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6377666813509285, im=0.7702296152178408)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7584022071263359, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_64': GateDefinition(name='_64', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.15492137730094277, im=-0.9879268023771695), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.15492137730094277, im=0.9879268023771695)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.452688392231387, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_65': GateDefinition(name='_65', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.30937596282884866, im=-0.9509398054681079), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.30937596282884866, im=0.9509398054681079)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.512519193021484, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_66': GateDefinition(name='_66', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8988175915131159, im=-0.4383228686556993), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.8988175915131159, im=0.4383228686556993)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.3757215234251605, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_67': GateDefinition(name='_67', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.02876843793269068, im=-0.9995861028340245), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.02876843793269068, im=0.9995861028340245)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.1991374688862533, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_68': GateDefinition(name='_68', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6766703280196926, im=-0.7362861313224103), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6766703280196926, im=0.7362861313224103)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.6551307943120903, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_69': GateDefinition(name='_69', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7895488521514445, im=-0.6136877137977722), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7895488521514445, im=0.6136877137977722)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.3214456396364567, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_70': GateDefinition(name='_70', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.03742072802306544, im=-0.9992995992765251), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.03742072802306544, im=0.9992995992765251)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.0667337196436306, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_71': GateDefinition(name='_71', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6969610390800991, im=-0.7171089945080794), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.6969610390800991, im=0.7171089945080794)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RZ', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.5992908025915558, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None)}, nbqbits=12, nbcbits=12, _gate_set=GSet(gate_signatures={'X': GSignature(name='X', parameters=[], arity=1), 'Y': GSignature(name='Y', parameters=[], arity=1), 'Z': GSignature(name='Z', parameters=[], arity=1), 'H': GSignature(name='H', parameters=[], arity=1), 'CNOT': GSignature(name='CNOT', parameters=[], arity=2), 'CSIGN': GSignature(name='CSIGN', parameters=[], arity=2), 'ISWAP': GSignature(name='ISWAP', parameters=[], arity=2), 'SQRTSWAP': GSignature(name='SQRTSWAP', parameters=[], arity=2), 'I': GSignature(name='I', parameters=[], arity=1), 'SWAP': GSignature(name='SWAP', parameters=[], arity=2), 'CCNOT': GSignature(name='CCNOT', parameters=[], arity=3), 'S': GSignature(name='S', parameters=[], arity=1), 'T': GSignature(name='T', parameters=[], arity=1), 'PH': GSignature(name='PH', parameters=[1], arity=1), 'RZ': GSignature(name='RZ', parameters=[1], arity=1), 'RX': GSignature(name='RX', parameters=[1], arity=1), 'RY': GSignature(name='RY', parameters=[1], arity=1), 'LOCK': GSignature(name='LOCK', parameters=[], arity=1), 'RELEASE': GSignature(name='RELEASE', parameters=[], arity=1)}), has_matrices=False, var_dic={}, qregs=[DefaultRegister(length=12, start=0, msb=None, _subtype_metadata=None, key=None)], ancilla_map=, _serialized_gate_set=b\"\\x80\\x04\\x95r\\x05\\x00\\x00\\x00\\x00\\x00\\x00\\x8c\\x11qat.core.gate_set\\x94\\x8c\\x07GateSet\\x94\\x93\\x94)\\x81\\x94}\\x94\\x8c\\x0fgate_signatures\\x94}\\x94(\\x8c\\x01X\\x94h\\x00\\x8c\\rGateSignature\\x94\\x93\\x94)\\x81\\x94}\\x94(\\x8c\\x04name\\x94h\\x07\\x8c\\nparameters\\x94]\\x94\\x8c\\x05arity\\x94K\\x01\\x8c\\x07nb_args\\x94K\\x00\\x8c\\targ_types\\x94]\\x94\\x8c\\x0farity_generator\\x94N\\x8c\\x10matrix_generator\\x94\\x8c$qat.core.circuit_builder.matrix_util\\x94\\x8c\\x05gen_x\\x94\\x93\\x94\\x8c\\x11circuit_generator\\x94Nub\\x8c\\x01Y\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\\x19h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_y\\x94\\x93\\x94h\\x18Nub\\x8c\\x01Z\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_z\\x94\\x93\\x94h\\x18Nub\\x8c\\x01H\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch'h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_h\\x94\\x93\\x94h\\x18Nub\\x8c\\x04CNOT\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch.h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x08gen_cnot\\x94\\x93\\x94h\\x18Nub\\x8c\\x05CSIGN\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch5h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\tgen_csign\\x94\\x93\\x94h\\x18Nub\\x8c\\x05ISWAP\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PauliCoefficientsPauliStringsQbits
00.34375IIIIII[0, 1, 2, 3, 4, 5]
10.021462IIIIIX[0, 1, 2, 3, 4, 5]
2-0.020917IIIIIY[0, 1, 2, 3, 4, 5]
3-0.008572IIIIIZ[0, 1, 2, 3, 4, 5]
40.002326IIIIXI[0, 1, 2, 3, 4, 5]
............
491470.00281ZZZZYZ[11, 0, 1, 2, 3, 4]
491480.000183ZZZZZI[11, 0, 1, 2, 3, 4]
491490.00099ZZZZZX[11, 0, 1, 2, 3, 4]
49150-0.000801ZZZZZY[11, 0, 1, 2, 3, 4]
491510.000168ZZZZZZ[11, 0, 1, 2, 3, 4]
\n", + "

49152 rows × 3 columns

\n", + "" + ], + "text/plain": [ + " PauliCoefficients PauliStrings Qbits\n", + "0 0.34375 IIIIII [0, 1, 2, 3, 4, 5]\n", + "1 0.021462 IIIIIX [0, 1, 2, 3, 4, 5]\n", + "2 -0.020917 IIIIIY [0, 1, 2, 3, 4, 5]\n", + "3 -0.008572 IIIIIZ [0, 1, 2, 3, 4, 5]\n", + "4 0.002326 IIIIXI [0, 1, 2, 3, 4, 5]\n", + "... ... ... ...\n", + "49147 0.00281 ZZZZYZ [11, 0, 1, 2, 3, 4]\n", + "49148 0.000183 ZZZZZI [11, 0, 1, 2, 3, 4]\n", + "49149 0.00099 ZZZZZX [11, 0, 1, 2, 3, 4]\n", + "49150 -0.000801 ZZZZZY [11, 0, 1, 2, 3, 4]\n", + "49151 0.000168 ZZZZZZ [11, 0, 1, 2, 3, 4]\n", + "\n", + "[49152 rows x 3 columns]" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_anstaz02.pauli_pdf" ] @@ -837,12 +2729,185 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "id": "de68b1e2", "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:56:33 PM-INFO: Generating circuit.\n", + "01/16/2024 12:56:33 PM-INFO: Instantiating a Linker.\n", + "01/16/2024 12:56:33 PM-INFO: Linking libraries to circuit.\n", + "01/16/2024 12:56:33 PM-INFO: Found 0 ancillae\n" + ] + }, + { + "data": { + "text/html": [ + "Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10Q11RY [theta_{0}]RY [theta_{1}]RY [theta_{2}]RY [theta_{3}]RY [theta_{4}]RY [theta_{5}]RY [theta_{6}]RY [theta_{7}]RY [theta_{8}]RY [theta_{9}]RY [theta_{10}]RY [theta_{11}]RY [theta_{12}]RY [theta_{13}]RY [theta_{14}]RY [theta_{15}]RY [theta_{16}]RY [theta_{17}]RY [theta_{18}]RY [theta_{19}]RY [theta_{20}]RY [theta_{21}]RY [theta_{22}]RY [theta_{23}]RY [theta_{24}]RY [theta_{25}]RY [theta_{26}]RY [theta_{27}]RY [theta_{28}]RY [theta_{29}]RY [theta_{30}]RY [theta_{31}]RY [theta_{32}]RY [theta_{33}]RY [theta_{34}]RY [theta_{35}]RY [theta_{36}]RY [theta_{37}]RY [theta_{38}]RY [theta_{39}]RY [theta_{40}]RY [theta_{41}]RY [theta_{42}]RY [theta_{43}]RY [theta_{44}]RY [theta_{45}]RY [theta_{46}]RY [theta_{47}]RY [theta_{48}]RY [theta_{49}]RY [theta_{50}]RY [theta_{51}]RY [theta_{52}]RY [theta_{53}]RY [theta_{54}]RY [theta_{55}]RY [theta_{56}]RY [theta_{57}]RY [theta_{58}]RY [theta_{59}]RY [theta_{60}]RY [theta_{61}]RY [theta_{62}]RY [theta_{63}]RY [theta_{64}]RY [theta_{65}]RY [theta_{66}]RY [theta_{67}]RY [theta_{68}]RY [theta_{69}]RY [theta_{70}]RY [theta_{71}]RY [theta_{72}]RY [theta_{73}]RY [theta_{74}]RY [theta_{75}]RY [theta_{76}]RY [theta_{77}]" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "01/16/2024 12:56:33 PM-INFO: Found 0 ancillae\n", + "01/16/2024 12:56:33 PM-INFO: New batch of length 1 submitted\n", + "01/16/2024 12:56:33 PM-DEBUG: Batch(jobs=[Job(circuit=Circuit(ops=[Op(gate='_0', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_1', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_2', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_3', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_4', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_5', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_6', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_7', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_8', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_9', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_10', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_11', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='_12', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_13', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='_14', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_15', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='_16', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_17', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='_18', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_19', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='_20', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_21', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='_22', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_23', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='_24', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_25', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='_26', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_27', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='_28', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_29', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='_30', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_31', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='_32', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_33', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='_34', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_35', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='_36', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_37', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='_38', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_39', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='_40', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_41', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='_42', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_43', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='_44', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_45', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='_46', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_47', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='_48', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_49', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='_50', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_51', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='_52', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_53', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='_54', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_55', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[0, 1], type=0, cbits=None, formula=None, remap=None), Op(gate='_56', qbits=[0], type=0, cbits=None, formula=None, remap=None), Op(gate='_57', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[2, 3], type=0, cbits=None, formula=None, remap=None), Op(gate='_58', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='_59', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[4, 5], type=0, cbits=None, formula=None, remap=None), Op(gate='_60', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='_61', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[6, 7], type=0, cbits=None, formula=None, remap=None), Op(gate='_62', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='_63', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[8, 9], type=0, cbits=None, formula=None, remap=None), Op(gate='_64', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='_65', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[10, 11], type=0, cbits=None, formula=None, remap=None), Op(gate='_66', qbits=[10], type=0, cbits=None, formula=None, remap=None), Op(gate='_67', qbits=[11], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[1, 2], type=0, cbits=None, formula=None, remap=None), Op(gate='_68', qbits=[1], type=0, cbits=None, formula=None, remap=None), Op(gate='_69', qbits=[2], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[3, 4], type=0, cbits=None, formula=None, remap=None), Op(gate='_70', qbits=[3], type=0, cbits=None, formula=None, remap=None), Op(gate='_71', qbits=[4], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[5, 6], type=0, cbits=None, formula=None, remap=None), Op(gate='_72', qbits=[5], type=0, cbits=None, formula=None, remap=None), Op(gate='_73', qbits=[6], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[7, 8], type=0, cbits=None, formula=None, remap=None), Op(gate='_74', qbits=[7], type=0, cbits=None, formula=None, remap=None), Op(gate='_75', qbits=[8], type=0, cbits=None, formula=None, remap=None), Op(gate='CNOT', qbits=[9, 10], type=0, cbits=None, formula=None, remap=None), Op(gate='_76', qbits=[9], type=0, cbits=None, formula=None, remap=None), Op(gate='_77', qbits=[10], type=0, cbits=None, formula=None, remap=None)], name=None, gateDic={'X': GateDefinition(name='X', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='X', parameters=[]), nbctrls=None, circuit_implementation=None), 'Y': GateDefinition(name='Y', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-0.0, im=-1.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Y', parameters=[]), nbctrls=None, circuit_implementation=None), 'Z': GateDefinition(name='Z', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='Z', parameters=[]), nbctrls=None, circuit_implementation=None), 'H': GateDefinition(name='H', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=0.7071067811865475, im=0.0), ComplexNumber(re=-0.7071067811865475, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='H', parameters=[]), nbctrls=None, circuit_implementation=None), 'CNOT': GateDefinition(name='CNOT', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='X', syntax=GSyntax(name='CNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'CSIGN': GateDefinition(name='CSIGN', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=-1.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='Z', syntax=GSyntax(name='CSIGN', parameters=[]), nbctrls=1, circuit_implementation=None), 'ISWAP': GateDefinition(name='ISWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='ISWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'SQRTSWAP': GateDefinition(name='SQRTSWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.5, im=-0.5), ComplexNumber(re=0.5, im=0.5), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SQRTSWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'I': GateDefinition(name='I', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='I', parameters=[]), nbctrls=None, circuit_implementation=None), 'SWAP': GateDefinition(name='SWAP', arity=2, matrix=Matrix(nRows=4, nCols=4, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='SWAP', parameters=[]), nbctrls=None, circuit_implementation=None), 'CCNOT': GateDefinition(name='CCNOT', arity=3, matrix=Matrix(nRows=8, nCols=8, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0)]), is_ctrl=True, is_dag=None, is_trans=None, is_conj=None, subgate='CNOT', syntax=GSyntax(name='CCNOT', parameters=[]), nbctrls=1, circuit_implementation=None), 'S': GateDefinition(name='S', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=1.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='S', parameters=[]), nbctrls=None, circuit_implementation=None), 'T': GateDefinition(name='T', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=1.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.0, im=0.0), ComplexNumber(re=0.7071067811865476, im=0.7071067811865475)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='T', parameters=[]), nbctrls=None, circuit_implementation=None), '_0': GateDefinition(name='_0', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.12320609779284415, im=0.0), ComplexNumber(re=-0.9923811049524573, im=0.0), ComplexNumber(re=0.9923811049524573, im=0.0), ComplexNumber(re=-0.12320609779284415, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.3886325587930988, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_1': GateDefinition(name='_1', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9681271824216141, im=0.0), ComplexNumber(re=-0.2504590957749123, im=0.0), ComplexNumber(re=0.2504590957749123, im=0.0), ComplexNumber(re=-0.9681271824216141, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.776876434649495, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_2': GateDefinition(name='_2', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9987955341417067, im=0.0), ComplexNumber(re=-0.049066087867106624, im=0.0), ComplexNumber(re=0.049066087867106624, im=0.0), ComplexNumber(re=0.9987955341417067, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.09817159367765113, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_3': GateDefinition(name='_3', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9959275971524292, im=0.0), ComplexNumber(re=-0.09015664828612877, im=0.0), ComplexNumber(re=0.09015664828612877, im=0.0), ComplexNumber(re=0.9959275971524292, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.1805584654501564, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_4': GateDefinition(name='_4', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9995304337990383, im=0.0), ComplexNumber(re=-0.03064166949606995, im=0.0), ComplexNumber(re=0.03064166949606995, im=0.0), ComplexNumber(re=0.9995304337990383, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.06129293298906168, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_5': GateDefinition(name='_5', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4983572808930623, im=0.0), ComplexNumber(re=-0.866971753046703, im=0.0), ComplexNumber(re=0.866971753046703, im=0.0), ComplexNumber(re=0.4983572808930623, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.0981867268824885, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_6': GateDefinition(name='_6', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8478324768711218, im=0.0), ComplexNumber(re=-0.5302641711096259, im=0.0), ComplexNumber(re=0.5302641711096259, im=0.0), ComplexNumber(re=0.8478324768711218, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1178242381646497, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_7': GateDefinition(name='_7', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9904061347564331, im=0.0), ComplexNumber(re=-0.1381871493186761, im=0.0), ComplexNumber(re=0.1381871493186761, im=0.0), ComplexNumber(re=0.9904061347564331, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.27726153698373446, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_8': GateDefinition(name='_8', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.00595464900041087, im=0.0), ComplexNumber(re=-0.9999822709204809, im=0.0), ComplexNumber(re=0.9999822709204809, im=0.0), ComplexNumber(re=0.00595464900041087, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.1296832852081753, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_9': GateDefinition(name='_9', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6842592789478483, im=0.0), ComplexNumber(re=-0.7292388080552012, im=0.0), ComplexNumber(re=0.7292388080552012, im=0.0), ComplexNumber(re=-0.6842592789478483, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.648767590872193, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_10': GateDefinition(name='_10', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.5536618600536621, im=0.0), ComplexNumber(re=-0.8327415833990273, im=0.0), ComplexNumber(re=0.8327415833990273, im=0.0), ComplexNumber(re=0.5536618600536621, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.9680822593317773, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_11': GateDefinition(name='_11', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9183673691161047, im=0.0), ComplexNumber(re=-0.3957289164854702, im=0.0), ComplexNumber(re=0.3957289164854702, im=0.0), ComplexNumber(re=0.9183673691161047, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.8137228490008992, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_12': GateDefinition(name='_12', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.2177268237482586, im=0.0), ComplexNumber(re=-0.9760097490396777, im=0.0), ComplexNumber(re=0.9760097490396777, im=0.0), ComplexNumber(re=0.2177268237482586, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.702623029054179, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_13': GateDefinition(name='_13', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9974628190343461, im=0.0), ComplexNumber(re=-0.07118935766008352, im=0.0), ComplexNumber(re=0.07118935766008352, im=0.0), ComplexNumber(re=-0.9974628190343461, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.140686055999889, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_14': GateDefinition(name='_14', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9700085152530673, im=0.0), ComplexNumber(re=-0.24307093684054454, im=0.0), ComplexNumber(re=0.24307093684054454, im=0.0), ComplexNumber(re=0.9700085152530673, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.4910609759931124, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_15': GateDefinition(name='_15', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9687342068450224, im=0.0), ComplexNumber(re=-0.24810085950746996, im=0.0), ComplexNumber(re=0.24810085950746996, im=0.0), ComplexNumber(re=-0.9687342068450224, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.781746654305266, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_16': GateDefinition(name='_16', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.16710438030357955, im=0.0), ComplexNumber(re=-0.9859392101358768, im=0.0), ComplexNumber(re=0.9859392101358768, im=0.0), ComplexNumber(re=0.16710438030357955, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.805808616506077, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_17': GateDefinition(name='_17', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.198332072991756, im=0.0), ComplexNumber(re=-0.9801348829741715, im=0.0), ComplexNumber(re=0.9801348829741715, im=0.0), ComplexNumber(re=-0.198332072991756, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.5409044431038423, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_18': GateDefinition(name='_18', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9439485819119068, im=0.0), ComplexNumber(re=-0.3300925244632182, im=0.0), ComplexNumber(re=0.3300925244632182, im=0.0), ComplexNumber(re=0.9439485819119068, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6728031840315966, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_19': GateDefinition(name='_19', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8400582975113333, im=0.0), ComplexNumber(re=-0.5424961352695152, im=0.0), ComplexNumber(re=0.5424961352695152, im=0.0), ComplexNumber(re=-0.8400582975113333, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.136374003686506, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_20': GateDefinition(name='_20', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5317939623503336, im=0.0), ComplexNumber(re=-0.846873769583007, im=0.0), ComplexNumber(re=0.846873769583007, im=0.0), ComplexNumber(re=-0.5317939623503336, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.26302764336026, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_21': GateDefinition(name='_21', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.779364323187134, im=0.0), ComplexNumber(re=-0.626571026894047, im=0.0), ComplexNumber(re=0.626571026894047, im=0.0), ComplexNumber(re=0.779364323187134, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.3542913668157532, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_22': GateDefinition(name='_22', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9449921547420044, im=0.0), ComplexNumber(re=-0.3270929951497949, im=0.0), ComplexNumber(re=0.3270929951497949, im=0.0), ComplexNumber(re=0.9449921547420044, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6664514192905288, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_23': GateDefinition(name='_23', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7276975123529498, im=0.0), ComplexNumber(re=-0.6858981925295681, im=0.0), ComplexNumber(re=0.6858981925295681, im=0.0), ComplexNumber(re=-0.7276975123529498, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.771510755555875, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_24': GateDefinition(name='_24', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.40339630770232326, im=0.0), ComplexNumber(re=-0.9150253651851038, im=0.0), ComplexNumber(re=0.9150253651851038, im=0.0), ComplexNumber(re=-0.40339630770232326, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.9720437166248286, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_25': GateDefinition(name='_25', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8255575070545533, im=0.0), ComplexNumber(re=-0.5643179977157127, im=0.0), ComplexNumber(re=0.5643179977157127, im=0.0), ComplexNumber(re=0.8255575070545533, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1992138178521008, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_26': GateDefinition(name='_26', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.24892426222891237, im=0.0), ComplexNumber(re=-0.9685229536122475, im=0.0), ComplexNumber(re=0.9685229536122475, im=0.0), ComplexNumber(re=0.24892426222891237, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.638453859528922, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_27': GateDefinition(name='_27', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9804695973845966, im=0.0), ComplexNumber(re=-0.19667071109976447, im=0.0), ComplexNumber(re=0.19667071109976447, im=0.0), ComplexNumber(re=-0.9804695973845966, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.887263005980991, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_28': GateDefinition(name='_28', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.2639999992336852, im=0.0), ComplexNumber(re=-0.9645226800882466, im=0.0), ComplexNumber(re=0.9645226800882466, im=0.0), ComplexNumber(re=-0.2639999992336852, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.6759266374569037, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_29': GateDefinition(name='_29', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9405469295186673, im=0.0), ComplexNumber(re=-0.3396637651752203, im=0.0), ComplexNumber(re=0.3396637651752203, im=0.0), ComplexNumber(re=-0.9405469295186673, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.590066535540655, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_30': GateDefinition(name='_30', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9875598231117025, im=0.0), ComplexNumber(re=-0.15724374637988875, im=0.0), ComplexNumber(re=0.15724374637988875, im=0.0), ComplexNumber(re=-0.9875598231117025, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.967387197022784, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_31': GateDefinition(name='_31', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.0318176919682391, im=0.0), ComplexNumber(re=-0.999493689063525, im=0.0), ComplexNumber(re=0.999493689063525, im=0.0), ComplexNumber(re=0.0318176919682391, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.0779465277141678, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_32': GateDefinition(name='_32', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9869120016174465, im=0.0), ComplexNumber(re=-0.161259731686014, im=0.0), ComplexNumber(re=0.161259731686014, im=0.0), ComplexNumber(re=-0.9869120016174465, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.95925139134992, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_33': GateDefinition(name='_33', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5850700650935557, im=0.0), ComplexNumber(re=-0.8109827488494576, im=0.0), ComplexNumber(re=0.8109827488494576, im=0.0), ComplexNumber(re=-0.5850700650935557, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.391525554317408, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_34': GateDefinition(name='_34', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.4226951581553875, im=0.0), ComplexNumber(re=-0.9062719256779347, im=0.0), ComplexNumber(re=0.9062719256779347, im=0.0), ComplexNumber(re=0.4226951581553875, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.268758332623403, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_35': GateDefinition(name='_35', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5195259903995855, im=0.0), ComplexNumber(re=-0.8544546478891257, im=0.0), ComplexNumber(re=0.8544546478891257, im=0.0), ComplexNumber(re=-0.5195259903995855, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.234184865673725, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_36': GateDefinition(name='_36', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8142200528439706, im=0.0), ComplexNumber(re=-0.580556375855749, im=0.0), ComplexNumber(re=0.580556375855749, im=0.0), ComplexNumber(re=-0.8142200528439706, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.044361611107042, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_37': GateDefinition(name='_37', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6185581206532277, im=0.0), ComplexNumber(re=-0.7857390478867313, im=0.0), ComplexNumber(re=0.7857390478867313, im=0.0), ComplexNumber(re=-0.6185581206532277, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.475405280458877, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_38': GateDefinition(name='_38', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.7504083387603192, im=0.0), ComplexNumber(re=-0.6609745268306321, im=0.0), ComplexNumber(re=0.6609745268306321, im=0.0), ComplexNumber(re=-0.7504083387603192, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.838951944439776, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_39': GateDefinition(name='_39', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.11696101433459415, im=0.0), ComplexNumber(re=-0.993136506793413, im=0.0), ComplexNumber(re=0.993136506793413, im=0.0), ComplexNumber(re=-0.11696101433459415, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.3760513299444055, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_40': GateDefinition(name='_40', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.763518167978913, im=0.0), ComplexNumber(re=-0.6457863479248569, im=0.0), ComplexNumber(re=0.6457863479248569, im=0.0), ComplexNumber(re=0.763518167978913, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.4041054719351709, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_41': GateDefinition(name='_41', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.11216196161730209, im=0.0), ComplexNumber(re=-0.9936899387465684, im=0.0), ComplexNumber(re=0.9936899387465684, im=0.0), ComplexNumber(re=0.11216196161730209, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.9167957036431575, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_42': GateDefinition(name='_42', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.4749763484030567, im=0.0), ComplexNumber(re=-0.8799985616225166, im=0.0), ComplexNumber(re=0.8799985616225166, im=0.0), ComplexNumber(re=-0.4749763484030567, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.131466962916398, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_43': GateDefinition(name='_43', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.11740116311548728, im=0.0), ComplexNumber(re=-0.9930845718764997, im=0.0), ComplexNumber(re=0.9930845718764997, im=0.0), ComplexNumber(re=-0.11740116311548728, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.376937734339999, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_44': GateDefinition(name='_44', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9300185783572881, im=0.0), ComplexNumber(re=-0.36751250850860684, im=0.0), ComplexNumber(re=0.36751250850860684, im=0.0), ComplexNumber(re=-0.9300185783572881, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.530519439343296, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_45': GateDefinition(name='_45', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9998882924106162, im=0.0), ComplexNumber(re=-0.01494666184076196, im=0.0), ComplexNumber(re=0.01494666184076196, im=0.0), ComplexNumber(re=0.9998882924106162, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.0298944368349722, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_46': GateDefinition(name='_46', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9456133605519469, im=0.0), ComplexNumber(re=-0.325292748682865, im=0.0), ComplexNumber(re=0.325292748682865, im=0.0), ComplexNumber(re=0.9456133605519469, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6626425952745728, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_47': GateDefinition(name='_47', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9996676410747746, im=0.0), ComplexNumber(re=-0.02577998037229119, im=0.0), ComplexNumber(re=0.02577998037229119, im=0.0), ComplexNumber(re=-0.9996676410747746, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.231619633537791, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_48': GateDefinition(name='_48', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.3537760342196904, im=0.0), ComplexNumber(re=-0.935330165028258, im=0.0), ComplexNumber(re=0.935330165028258, im=0.0), ComplexNumber(re=-0.3537760342196904, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.864802954918738, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_49': GateDefinition(name='_49', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.966183623447002, im=0.0), ComplexNumber(re=-0.25785500922576965, im=0.0), ComplexNumber(re=0.25785500922576965, im=0.0), ComplexNumber(re=-0.966183623447002, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.761582351842675, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_50': GateDefinition(name='_50', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8911421400593237, im=0.0), ComplexNumber(re=-0.45372424027209374, im=0.0), ComplexNumber(re=0.45372424027209374, im=0.0), ComplexNumber(re=0.8911421400593237, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.941880181588734, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_51': GateDefinition(name='_51', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8345339852760546, im=0.0), ComplexNumber(re=-0.5509564659927914, im=0.0), ComplexNumber(re=0.5509564659927914, im=0.0), ComplexNumber(re=-0.8345339852760546, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.11616548169687, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_52': GateDefinition(name='_52', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.843366093269382, im=0.0), ComplexNumber(re=-0.5373394017969836, im=0.0), ComplexNumber(re=0.5373394017969836, im=0.0), ComplexNumber(re=-0.843366093269382, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.148626926648919, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_53': GateDefinition(name='_53', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.25117736665133145, im=0.0), ComplexNumber(re=-0.9679410780011883, im=0.0), ComplexNumber(re=0.9679410780011883, im=0.0), ComplexNumber(re=-0.25117736665133145, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.649385504465377, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_54': GateDefinition(name='_54', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.863578096520728, im=0.0), ComplexNumber(re=-0.5042151041070033, im=0.0), ComplexNumber(re=0.5042151041070033, im=0.0), ComplexNumber(re=-0.863578096520728, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.226239635649993, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_55': GateDefinition(name='_55', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5854902590774881, im=0.0), ComplexNumber(re=-0.8106794412869837, im=0.0), ComplexNumber(re=0.8106794412869837, im=0.0), ComplexNumber(re=-0.5854902590774881, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.392562006858718, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_56': GateDefinition(name='_56', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9151892760667085, im=0.0), ComplexNumber(re=-0.4030243032032858, im=0.0), ComplexNumber(re=0.4030243032032858, im=0.0), ComplexNumber(re=0.9151892760667085, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.829638033818615, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_57': GateDefinition(name='_57', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.6368827739948605, im=0.0), ComplexNumber(re=-0.770960655408959, im=0.0), ComplexNumber(re=0.770960655408959, im=0.0), ComplexNumber(re=0.6368827739948605, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.7606962970281483, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_58': GateDefinition(name='_58', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.4017662091475502, im=0.0), ComplexNumber(re=-0.9157422744349017, im=0.0), ComplexNumber(re=0.9157422744349017, im=0.0), ComplexNumber(re=-0.4017662091475502, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.9684821546030458, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_59': GateDefinition(name='_59', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.06101460769635383, im=0.0), ComplexNumber(re=-0.9981368732030994, im=0.0), ComplexNumber(re=0.9981368732030994, im=0.0), ComplexNumber(re=0.06101460769635383, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.0194875963725, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_60': GateDefinition(name='_60', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.8454789564000808, im=0.0), ComplexNumber(re=-0.5340087398953601, im=0.0), ComplexNumber(re=0.5340087398953601, im=0.0), ComplexNumber(re=0.8454789564000808, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=1.1266697762227607, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_61': GateDefinition(name='_61', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9422317101742061, im=0.0), ComplexNumber(re=-0.3349617953471571, im=0.0), ComplexNumber(re=0.3349617953471571, im=0.0), ComplexNumber(re=0.9422317101742061, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.6831293656537438, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_62': GateDefinition(name='_62', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9979254879803398, im=0.0), ComplexNumber(re=-0.06437950325375959, im=0.0), ComplexNumber(re=0.06437950325375959, im=0.0), ComplexNumber(re=-0.9979254879803398, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.154337189353802, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_63': GateDefinition(name='_63', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.0024912354189967297, im=0.0), ComplexNumber(re=-0.9999968968682289, im=0.0), ComplexNumber(re=0.9999968968682289, im=0.0), ComplexNumber(re=-0.0024912354189967297, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.1465751295815476, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_64': GateDefinition(name='_64', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.41436439000504255, im=0.0), ComplexNumber(re=-0.9101110659121495, im=0.0), ComplexNumber(re=0.9101110659121495, im=0.0), ComplexNumber(re=-0.41436439000504255, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=3.996081262720359, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_65': GateDefinition(name='_65', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.1784264311693813, im=0.0), ComplexNumber(re=-0.9839532553227099, im=0.0), ComplexNumber(re=0.9839532553227099, im=0.0), ComplexNumber(re=0.1784264311693813, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.7828186789439524, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_66': GateDefinition(name='_66', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3216626374057995, im=0.0), ComplexNumber(re=-0.9468543434431429, im=0.0), ComplexNumber(re=0.9468543434431429, im=0.0), ComplexNumber(re=0.3216626374057995, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.4866228060554136, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_67': GateDefinition(name='_67', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8573777790719007, im=0.0), ComplexNumber(re=-0.5146876178360374, im=0.0), ComplexNumber(re=0.5146876178360374, im=0.0), ComplexNumber(re=-0.8573777790719007, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.201898780402941, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_68': GateDefinition(name='_68', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.5702922317770381, im=0.0), ComplexNumber(re=-0.8214418849649469, im=0.0), ComplexNumber(re=0.8214418849649469, im=0.0), ComplexNumber(re=-0.5702922317770381, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.355315785502922, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_69': GateDefinition(name='_69', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8434273720912646, im=0.0), ComplexNumber(re=-0.5372432112248823, im=0.0), ComplexNumber(re=0.5372432112248823, im=0.0), ComplexNumber(re=-0.8434273720912646, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.148855029434404, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_70': GateDefinition(name='_70', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.8057853507905484, im=0.0), ComplexNumber(re=-0.5922077071867209, im=0.0), ComplexNumber(re=0.5922077071867209, im=0.0), ComplexNumber(re=-0.8057853507905484, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=5.015593483755076, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_71': GateDefinition(name='_71', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.9619896883125665, im=0.0), ComplexNumber(re=-0.27308577330262224, im=0.0), ComplexNumber(re=0.27308577330262224, im=0.0), ComplexNumber(re=0.9619896883125665, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=0.5531985535546691, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_72': GateDefinition(name='_72', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6152861819031361, im=0.0), ComplexNumber(re=-0.7883038210988584, im=0.0), ComplexNumber(re=0.7883038210988584, im=0.0), ComplexNumber(re=-0.6152861819031361, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.467090553834928, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_73': GateDefinition(name='_73', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=0.3603957458705549, im=0.0), ComplexNumber(re=-0.9327994995487543, im=0.0), ComplexNumber(re=0.9327994995487543, im=0.0), ComplexNumber(re=0.3603957458705549, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=2.404208424037177, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_74': GateDefinition(name='_74', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9904877352424343, im=0.0), ComplexNumber(re=-0.13760104045505384, im=0.0), ComplexNumber(re=0.13760104045505384, im=0.0), ComplexNumber(re=-0.9904877352424343, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.007107294170347, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_75': GateDefinition(name='_75', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.9980432409609482, im=0.0), ComplexNumber(re=-0.06252750732410989, im=0.0), ComplexNumber(re=0.06252750732410989, im=0.0), ComplexNumber(re=-0.9980432409609482, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=6.158048661124498, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_76': GateDefinition(name='_76', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.6469510642144275, im=0.0), ComplexNumber(re=-0.7625315209955715, im=0.0), ComplexNumber(re=0.7625315209955715, im=0.0), ComplexNumber(re=-0.6469510642144275, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.548751017109905, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None), '_77': GateDefinition(name='_77', arity=1, matrix=Matrix(nRows=2, nCols=2, data=[ComplexNumber(re=-0.44144453717273135, im=0.0), ComplexNumber(re=-0.8972885380970566, im=0.0), ComplexNumber(re=0.8972885380970566, im=0.0), ComplexNumber(re=-0.44144453717273135, im=0.0)]), is_ctrl=False, is_dag=None, is_trans=None, is_conj=None, subgate=None, syntax=GSyntax(name='RY', parameters=[Param(is_abstract=False, type=1, int_p=None, double_p=4.056008510659604, string_p=None, matrix_p=None, serialized_p=None, complex_p=None)]), nbctrls=None, circuit_implementation=None)}, nbqbits=12, nbcbits=12, _gate_set=GSet(gate_signatures={'X': GSignature(name='X', parameters=[], arity=1), 'Y': GSignature(name='Y', parameters=[], arity=1), 'Z': GSignature(name='Z', parameters=[], arity=1), 'H': GSignature(name='H', parameters=[], arity=1), 'CNOT': GSignature(name='CNOT', parameters=[], arity=2), 'CSIGN': GSignature(name='CSIGN', parameters=[], arity=2), 'ISWAP': GSignature(name='ISWAP', parameters=[], arity=2), 'SQRTSWAP': GSignature(name='SQRTSWAP', parameters=[], arity=2), 'I': GSignature(name='I', parameters=[], arity=1), 'SWAP': GSignature(name='SWAP', parameters=[], arity=2), 'CCNOT': GSignature(name='CCNOT', parameters=[], arity=3), 'S': GSignature(name='S', parameters=[], arity=1), 'T': GSignature(name='T', parameters=[], arity=1), 'PH': GSignature(name='PH', parameters=[1], arity=1), 'RZ': GSignature(name='RZ', parameters=[1], arity=1), 'RX': GSignature(name='RX', parameters=[1], arity=1), 'RY': GSignature(name='RY', parameters=[1], arity=1), 'LOCK': GSignature(name='LOCK', parameters=[], arity=1), 'RELEASE': GSignature(name='RELEASE', parameters=[], arity=1)}), has_matrices=False, var_dic={}, qregs=[DefaultRegister(length=12, start=0, msb=None, _subtype_metadata=None, key=None)], ancilla_map=, _serialized_gate_set=b\"\\x80\\x04\\x95r\\x05\\x00\\x00\\x00\\x00\\x00\\x00\\x8c\\x11qat.core.gate_set\\x94\\x8c\\x07GateSet\\x94\\x93\\x94)\\x81\\x94}\\x94\\x8c\\x0fgate_signatures\\x94}\\x94(\\x8c\\x01X\\x94h\\x00\\x8c\\rGateSignature\\x94\\x93\\x94)\\x81\\x94}\\x94(\\x8c\\x04name\\x94h\\x07\\x8c\\nparameters\\x94]\\x94\\x8c\\x05arity\\x94K\\x01\\x8c\\x07nb_args\\x94K\\x00\\x8c\\targ_types\\x94]\\x94\\x8c\\x0farity_generator\\x94N\\x8c\\x10matrix_generator\\x94\\x8c$qat.core.circuit_builder.matrix_util\\x94\\x8c\\x05gen_x\\x94\\x93\\x94\\x8c\\x11circuit_generator\\x94Nub\\x8c\\x01Y\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\\x19h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_y\\x94\\x93\\x94h\\x18Nub\\x8c\\x01Z\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_z\\x94\\x93\\x94h\\x18Nub\\x8c\\x01H\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch'h\\r]\\x94h\\x0fK\\x01h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x05gen_h\\x94\\x93\\x94h\\x18Nub\\x8c\\x04CNOT\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch.h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\x08gen_cnot\\x94\\x93\\x94h\\x18Nub\\x8c\\x05CSIGN\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch5h\\r]\\x94h\\x0fK\\x02h\\x10K\\x00h\\x11]\\x94h\\x13Nh\\x14h\\x15\\x8c\\tgen_csign\\x94\\x93\\x94h\\x18Nub\\x8c\\x05ISWAP\\x94h\\t)\\x81\\x94}\\x94(h\\x0ch\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
PauliCoefficientsPauliStringsQbits
00.5IIII[0, 1, 2, 3]
1-0.0IIIX[0, 1, 2, 3]
3-0.0IIIZ[0, 1, 2, 3]
4-0.007084IIXI[0, 1, 2, 3]
50.002952IIXX[0, 1, 2, 3]
............
291750.0ZZZXZ[11, 0, 1, 2, 3]
291780.0ZZZYY[11, 0, 1, 2, 3]
29180-0.0ZZZZI[11, 0, 1, 2, 3]
291810.0ZZZZX[11, 0, 1, 2, 3]
291830.0ZZZZZ[11, 0, 1, 2, 3]
\n", + "

14851 rows × 3 columns

\n", + "" + ], + "text/plain": [ + " PauliCoefficients PauliStrings Qbits\n", + "0 0.5 IIII [0, 1, 2, 3]\n", + "1 -0.0 IIIX [0, 1, 2, 3]\n", + "3 -0.0 IIIZ [0, 1, 2, 3]\n", + "4 -0.007084 IIXI [0, 1, 2, 3]\n", + "5 0.002952 IIXX [0, 1, 2, 3]\n", + "... ... ... ...\n", + "29175 0.0 ZZZXZ [11, 0, 1, 2, 3]\n", + "29178 0.0 ZZZYY [11, 0, 1, 2, 3]\n", + "29180 -0.0 ZZZZI [11, 0, 1, 2, 3]\n", + "29181 0.0 ZZZZX [11, 0, 1, 2, 3]\n", + "29183 0.0 ZZZZZ [11, 0, 1, 2, 3]\n", + "\n", + "[14851 rows x 3 columns]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "ph_hwe.pauli_pdf" ] @@ -924,7 +3426,7 @@ "If save is required the following two files will be generated:\n", "\n", "* folder + filename+*_pauli.csv*: where the pauli_pdf attribute is stored\n", - "* folder + filename+*_ph_time.csv*: where the time for computing parent hamiltonian is stroed" + "* folder + filename+*_ph_time.csv*: where the time for computing parent Hamiltonian is stored" ] }, { @@ -934,12 +3436,12 @@ "source": [ "## 4. run_parent_hamiltonian function\n", "\n", - "Inside the **parent\\_hamiltonian.py** module there is the function **run\\_parent\\_hamiltonian**. This function takes the pre-calculated state of an ansatz (using **ansatzes.py** module) and computes its corresponding local parent hamiltonian. The state is provided as a **CSV** file. This function takes a typical keyword arguments (*kwargs*) for configuring the **PH** computations. Following keywords are the processed ones by the function:\n", + "Inside the **parent\\_hamiltonian.py** module there is the function **run\\_parent\\_hamiltonian**. This function takes the pre-calculated state of an ansatz (using **ansatzes.py** module) and computes its corresponding local parent Hamiltonian. The state is provided as a **CSV** file. This function takes typical keyword arguments (*kwargs*) for configuring the **PH** computations. The following keywords are the processed ones by the function:\n", "\n", "* *state*: complete path of the **CSV** file where the precomputed stated was stored. The format should be compatible with the format used by the **ansatzes.py** module for storing the state.\n", - "* *save*: For saving or not the computed parent hamiltonian Pauli decomposition.\n", + "* *save*: For saving or not the computed parent Hamiltonian Pauli decomposition.\n", "* *t_inv*: For computing **PH** for a traslational invariant ansatz.\n", - "* *base_fn*: complete path with the base name for storing the PH Pauli decomposition. The file generated will be: *base_fn_pauli.csv*" + "* *base_fn*: the complete path with the base name for storing the PH Pauli decomposition. The file generated will be: *base_fn_pauli.csv*" ] }, { @@ -949,7 +3451,7 @@ "source": [ "## 5. Command Line execution\n", "\n", - "The **run\\_parent\\_hamiltonian** from **parent\\_hamiltonian.py** module can be executed from command line. Several arguments can be passed for configuring the **PH** computation. A help can be obtained by:\n", + "The **run\\_parent\\_hamiltonian** from **parent\\_hamiltonian.py** module can be executed from the command line. Several arguments can be passed for configuring the **PH** computation. Help can be obtained by:\n", "\n", "**python parent_hamiltonian.py -h**\n", "\n", @@ -968,18 +3470,18 @@ "source": [ "## 6. Massive PH computations\n", "\n", - "As for the case of masive ansatz state computation (see Notebook 01_Ansatzes.ipynb) we can execute masive parent hamiltonians computations for a bunch of computed ansatzes states. For this the 2 following files can be used:\n", + "As for the case of massive ansatz state computation (see Notebook 01_Ansatzes.ipynb) we can execute massive parent Hamiltonian computations for a bunch of computed ansatzes states. For this, the 2 following files can be used:\n", "\n", "* **parent\\_hamiltonian.json**: JSON file with the configuration for the PH computations. For each desired computation a complete dictionary should be provided. The keys are:\n", " * save: for saving or not the results\n", " * t_inv: for setting in the ansatz is, or not, translational invariant.\n", " * state: CSV file with the precomputed state of the ansatz.\n", " * base_fn: base name for storing results.\n", - "* **launch\\_parent\\_hamiltonian.py**: This scripts procces the before **JSON** file creating a complete list of all posible parent hamiltonian configurations. By providing different arguments a selected configuration (or all of them can be executed). For getting help use: **python launch\\_parent\\_hamiltonian.py -h**. Following arguments can be provided:\n", + "* **launch\\_parent\\_hamiltonian.py**: This script processes the before **JSON** file creating a complete list of all possible parent Hamiltonian configurations. By providing different arguments a selected configuration (or all of them can be executed). For getting help use: **python launch\\_parent\\_hamiltonian.py -h**. The following arguments can be provided:\n", " * **--count**: Getting the number of posible parent hamiltonian configurations from the **parent\\_hamiltonian.json** JSON file.\n", " * **--all**: for selecting all the posible parent hamiltonians configurations from the **parent\\_hamiltonian.json** JSON file.\n", " * **-id ID**: for selecting a single (the **ID** one) parent hamiltonian configuration from the **parent\\_hamiltonian.json** JSON file.\n", - " * **--print**: for printing the parent hamiltonian configuration.\n", + " * **--print**: for printing the parent Hamiltonian configuration.\n", " * **--exe**: for executing the parent hamiltonian execution indicated by **--all** or by **-id ID**." ] }, @@ -1008,7 +3510,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/tnbs/BTC_04_PH/PH/notebooks/03_ParentHamiltonian_execution.ipynb b/tnbs/BTC_04_PH/PH/notebooks/03_ParentHamiltonian_execution.ipynb index 998417a..e2fd60a 100644 --- a/tnbs/BTC_04_PH/PH/notebooks/03_ParentHamiltonian_execution.ipynb +++ b/tnbs/BTC_04_PH/PH/notebooks/03_ParentHamiltonian_execution.ipynb @@ -499,7 +499,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.11.7" } }, "nbformat": 4, diff --git a/tnbs/BTC_04_PH/README.md b/tnbs/BTC_04_PH/README.md index 2bc312a..4ed3b84 100644 --- a/tnbs/BTC_04_PH/README.md +++ b/tnbs/BTC_04_PH/README.md @@ -21,3 +21,5 @@ If you want a complete execution and create the complete **JSON** file with the All the results files and the corresponding JSON will be stored in the **Results** folder. +For more information about the code implementation and about the kernel, please refer to the jupyter notebooks inside the folder **PH/notebooks** +